APX
APX-EVEX-CFCMOV exception class
APX-EVEX-CFCMOV is the APX specification's exception class for CFCMOVcc, the conditionally faulting CMOVcc of EVEX map 4, whose memory faults and debug exceptions occur only when the condition is true.
- Class
APX-EVEX-CFCMOVin Intel XED- Applies to
- CFCMOVcc (APX) in its three forms, a load, a store and a form with a new destination register, all in EVEX map 4.
- Instructions
- 1 mnemonic, 5 forms
- Data
- Intel XED v2026.08.23
Exception conditions
| Exception | Real | Virtual-8086 | Protected | 64-bit | Condition |
|---|---|---|---|---|---|
#UD | yes | yes | no | no | Always: the EVEX prefix raises #UD in real-address and virtual-8086 mode. |
#UD | no | no | yes | no | Always: EVEX map 4, where these instructions are, exists only in 64-bit mode. |
#UD | no | no | no | yes | XCR0 bit 19 (APX) or CR4.OSXSAVE is 0: the operating system has not enabled APX. |
#UD | no | no | no | yes | A bit of the last EVEX payload byte other than ND, V4 and NF is 1. |
#UD | no | no | no | yes | EVEX.ND is 0 and EVEX.V4 and EVEX.vvvv are not all 1s. |
#UD | no | no | no | yes | The operand is a register (ModRM.mod = 11B) and EVEX.U is 0. |
#UD | no | no | no | yes | A LOCK, 66H, F2H, F3H or REX prefix comes before the EVEX prefix. |
#UD | no | no | no | yes | CPUID reports no APX_F. |
#SS(0) | no | no | no | yes | The condition is true, and the memory address uses the SS segment and is not canonical. |
#GP(0) | no | no | no | yes | The condition is true and the memory address is not canonical. |
#PF(fault-code) | no | no | no | yes | The condition is true and the memory access causes a page fault. |
#AC(0) | no | no | no | yes | The condition is true, alignment checking is enabled, CPL is 3 and the memory access is unaligned. |
#DB | no | no | no | yes | The condition is true and the instruction triggers a debug exception. |
Notes
With a false condition, CFCMOVcc suppresses every memory fault and #DB: the load form zeroes its destination register, the form with a new destination copies the other register source into it, and the store form writes nothing. The APX specification presents these instructions as a way for compilers to if-convert larger regions of code, since a guarded load or store no longer needs a branch. The EVEX CMOVcc with a new destination (ND = 1, NF = 0) does not suppress faults and belongs to APX-EVEX-INT; CMOVcc with a REX2 prefix behaves like the legacy instruction.
Related classes
Instructions
Intel XED puts forms of 1 mnemonic in this class, listed here by extension. Where a mnemonic also has forms of other classes, its link leads to its first form of this one.
APX
Sources
- Intel Advanced Performance Extensions (Intel APX) Architecture Specification, revision 7.0 (July 2025): Section 4.2.8, Table 4.9; Sections 3.1.3.2 and 3.1.3.2.2, Table 3.5.
- Intel XED v2026.08.23 (commit
0bcb6237345c): the exception class of each instruction form.
The list of instructions is derived from Intel XED, Copyright Intel Corporation, licensed under the Apache License 2.0; x86-64.net converted and reformatted it. The text is our own.