Extensions
Forms
1 (1 Legacy)
Data
Intel XED v2026.08.23

PAUSE belongs in the body of a spin-wait loop: the loop that rereads a lock word or a flag until another thread changes it. The usual shape is to try the atomic operation (a LOCK CMPXCHG or XCHG), and while it fails, spin on plain loads with a PAUSE in each iteration until the lock looks free, then try again. The PAUSE gives the core’s resources to the other hardware thread, saves power and makes the loop leave faster when the value changes.

Its encoding, F3 90, is NOP with a REP prefix, so it needs no CPUID check: processors that predate it run it as a NOP. GCC 14 even prints it as rep nop, where Clang 23 prints pause.

How long one PAUSE waits differs widely, by the vendors’ optimization manuals:

  • about 10 cycles on Intel’s cores before Skylake, and up to 140 on the Skylake client cores;
  • about 64 cycles, during which the thread dispatches nothing, on Zen 5.

A loop that waits a fixed number of PAUSEs can therefore wait more than ten times longer on one processor than on another. Intel’s optimization manual suggests bounding the wait by time read with RDTSC instead, and, for a contended lock, doubling the number of PAUSEs after each failed attempt up to a limit. For waits of thousands of cycles or more, it advises giving the processor back to the operating system, through a futex on Linux, rather than spinning.

Under virtualization a spinning guest may wait for a virtual processor that is not running at all. Intel’s VMX can exit to the hypervisor when a guest keeps executing PAUSE in a loop (PAUSE-loop exiting), and AMD’s SVM after a set number of PAUSEs (pause filtering); the hypervisor can then run another virtual processor instead.

To wait without spinning, see UMWAIT and TPAUSE on Intel’s processors and MWAITX on AMD’s.

In the optimization guide

What the optimization guide says about PAUSE, a line per claim. Each links to the claim in the guide, with its sources and where they differ.

Branches

  • The cost of a misprediction: A tight spin-wait loop ends in a flush of its own: its loads run ahead of the store that releases it, and the processor must discard them to keep memory order.

Memory

  • Sharing between cores: A contended lock is best taken by spinning on a plain load with PAUSE and trying cmpxchg only when it looks free, with backoff.

Crestmont and Gracemont

  • Hybrid processors: Intel advises against pinning threads to cores and for waiting with UMWAIT, TPAUSE or PAUSE. sources differ

Golden Cove and Raptor Cove

  • Threads and hybrid parts: On Alder Lake and Raptor Lake, Thread Director tells the operating system how each thread would fare on either kind of core. sources differ

Silvermont to Goldmont Plus

Skylake to Cooper Lake

  • Threads: PAUSE takes up to about 140 cycles, against about 10 on earlier cores, to leave the core to the sibling thread and save power. sources differ

Zen 3

  • Two threads on a core: PAUSE stops the thread’s dispatch for about 64 cycles, which saves power and leaves resources to the other thread while a spin loop waits.

Zen 4

  • Two threads on a core: PAUSE stops the thread’s dispatch for about 64 cycles, which saves power and leaves resources to the other thread while a spin loop waits.

Zen 5

  • Two threads on a core: PAUSE stops the thread’s dispatch for about 64 cycles, which saves power and leaves resources to the other thread while a spin loop waits.

Forms

Every encoding of PAUSE that Intel XED knows, one row per XED instruction form (iform). How to read the notation.
InstructionEncodingRequires
PAUSE PAUSEF3 90Base instruction set

Latency and throughput

What the scheduling models of LLVM 23.1.2 give for each form, not measurements: latency / reciprocal throughput in cycles, the ports under them. A row is a model, or models that agree; a dash, a form that its processors lack. Memory forms: latency from the address, ports without the load and store units. Which processors each model covers.
ModelPAUSE
Sandy Bridge4 / 1.33p015
Haswell, Broadwell5 / 1.25p0156
Skylake4 / 1p0156
Skylake-SP, Ice Lake140 / 1p0156
Alder Lake4 / 1p056
Sapphire Rapids140 / 1p056
Lunar Lake1 / 0
Bonnell17 / 8.5p01
Silvermont1 / 0.5
Piledriver1 / 1EX0 EX1
Zen, Zen 2100 / 0.25
Zen 3, Zen 40 / 0.25ALU0 ALU1 ALU2 ALU3
Jaguar1 / 0.5ALU0 ALU1

Operation

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

pass                             # a hint that the code spins, waiting
                                 # for a value that another processor
                                 # writes: the processor waits a short
                                 # while, which differs between models,
                                 # and leaves the loop sooner when the
                                 # value changes; nothing else happens
# F3 90 is NOP with a REP prefix, which older processors run as NOP

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

Operands

None: XED lists no operands for this form.

Flags

None: XED records no flag that the forms test or change.

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
PAUSE

No CPUID bit: part of the base instruction set.

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

More General-purpose instructions

All 109 General-purpose 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. LLVM 23.1.2's x86 scheduling models (commit 85ac56026243): the latency, reciprocal throughput and ports of each form, as llvm-mca reports them.
  4. Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2 (325383-093, September 2026): Volume 2B, page 4-226 (PAUSE)
  5. Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 3 (325384-093, September 2026)
  6. AMD64 Architecture Programmer's Manual, Volume 2: System Programming (24593, rev. 3.46, October 2026)
  7. AMD64 Architecture Programmer's Manual, Volume 3: General-Purpose and System Instructions (24594, rev. 3.39, October 2026)
  8. Intel 64 and IA-32 Architectures Optimization Reference Manual, Volume 1 (248966-051, October 2026)
  9. 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 timings come from LLVM's scheduling models, part of the LLVM Project, licensed under the Apache License 2.0 with LLVM Exceptions. The text is our own.