Extensions
Mnemonics
FNCLEX, FCLEX
Forms
1 (1 Legacy)
Data
Intel XED v2026.08.23

FNCLEX clears the x87’s exception flags: IE, DE, ZE, OE, UE and PE in the status word, and with them SF, the summary bit ES and the busy bit B. Nothing else changes. The control word, TOP, the tags and the registers stay as they were, which is the difference from FNINIT, the full reset. FCLEX, listed on this page, is FWAIT followed by FNCLEX: 9B DB E2 against DB E2.

Sticky flags

The exception flags are sticky: an instruction sets the flag of each exception it raises and never clears one, so the status word collects every exception since the flags were last cleared, masked or not. Code that wants to know whether one computation raised IE or PE clears the flags first and reads them with FNSTSW afterwards. In C that is feclearexcept and fetestexcept; GCC 14 and Clang 23 at -O2 compile both to calls of the library, which on x86-64 must clear MXCSR’s flags as well, since FNCLEX leaves the SSE side alone.

No wait, and the exception handler

An unmasked exception sets its flag and ES, and the #MF comes at the next x87 instruction that waits. ES stays set until something clears it, so an #MF handler that returns into x87 code has to clear the flags first, or the next waiting instruction faults again. FNCLEX is the one to use there: it does not wait, and so does not fault itself. Zen 5 ran it with IE, with UE and PE, and with ZE and OE flagged, ZE unmasked and ES set: there was no #MF, and every flag, ES included, was clear afterwards. With FCLEX, the FWAIT in front would have raised the #MF first.

Both manuals leave C0 to C3 undefined after FNCLEX; Zen 5 kept them as they were in all five recorded cases. FNCLEX raises no floating-point exception of its own, only #NM when CR0.EM or CR0.TS is set.

AMD’s Zen 5 instruction table has no row for FNCLEX.

Forms

Every encoding of FNCLEX that Intel XED knows, one row per XED instruction form (iform). How to read the notation.
InstructionEncodingRequires
FNCLEX FNCLEXDB E2FPU

Operation

What the forms do, in pseudocode that our tests run against results recorded on real processors. How to read.

ie = de = ze = oe = ue = pe = 0      # and ES and B, which follow
stack_fault = 0
c0 = c1 = c2 = c3 = UNDEFINED

Run on AMD Zen 5 (EPYC 9645): 5 cases.

Operands

What each form reads and writes, as Intel XED records it: the operands of its syntax, in order, and the implicit ones that the syntax does not name. How to read.
OperandKindAction
FNCLEX
x87 status wordimplicitwrite

Flags

U undefined; blank: not affected. How to read.
C0C1C2C3
All forms
UUUU

Attributes

What else XED records about the forms. How to read.

All forms
may abort a TSX transaction

CPUID and processors

Each form belongs to an XED ISA set. A form can be used when the processor reports every CPUID bit of one of its ISA set's alternatives.

CPUID requirements and processors of the XED ISA sets above. Alternatives are separated by “or”; processors follow XED’s chip model, whose AMD processors end with Zen 2, and the CPU data of this site for Zen 3 to Zen 6.
ISA setCPUIDProcessors
X87

FPU
CPUID.01H:EDX[0] FPU

Every x86-64 processor in XED’s model and Zen 3 to Zen 6

More x87 instructions

All 90 x87 instructions

Sources

  1. Intel XED v2026.08.23 (commit 0bcb6237345c): forms, encodings, operands, flags, exception classes, attributes, ISA sets, CPUID bits and chip model.
  2. The CPU data of x86-64.net: Zen 3 to Zen 6, from GCC’s -march feature sets and AMD’s Processor Programming References, which the page of each processor cites.
  3. Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2 (325383-093, September 2026): Volume 2A, page 3-320 (FCLEX/FNCLEX)
  4. Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 1 (253665-093, September 2026)
  5. AMD64 Architecture Programmer's Manual, Volume 5: 64-Bit Media and x87 Floating-Point Instructions (26569, rev. 3.16, November 2021), Wayback Machine copy of AMD's PDF
  6. Software Optimization Guide for the AMD Zen5 Microarchitecture (58455, rev. 1.00, August 2024), Wayback Machine copy of AMD's ZIP

The tables are derived from Intel XED, Copyright Intel Corporation, licensed under the Apache License 2.0; x86-64.net converted and reformatted them. The text is our own.