CLDEMOTE: Demote Cache Line

For information about interpreting this page, see the help page.
Opcode and MnemonicEncoding16 bit Mode32 bit Mode64 bit ModeCPUID Feature FlagDescription
NP 0F 1C /0
MValidValidValidCLDEMOTEHint to the processor to move the cache line containing m8 to a more distant cache without writing back to memory.




The CLDEMOTE instruction hints to the processor that the cache line containing the operand's effective address should be moved ("demoted") to a cache further away from the core.

Software using this instruction should ensure that the referenced memory is not accessed afterwards to avoid cache data move penalties.

This instruction has no guarantees and may be ignored by the processor. For example, usage of this instruction with an effective memory address that is not in the cache will do nothing.

In some architectures, this instruction may cause a transactional abort with the Transactional Synchronization Extensions (TSX). However, programmers must not rely on this behavior.


This pseudo-code uses C# syntax. A list of the types used is available here.
public void CLDEMOTE(IntPtr ptr)

C Intrinsics


Protected Mode

If the LOCK prefix is used.

Real-Address Mode

If the LOCK prefix is used.

Virtual-8086 Mode

If the LOCK prefix is used.

Compatibility Mode

If the LOCK prefix is used.

Long Mode

If the LOCK prefix is used.