Instruction
PREFETCHWT1
Prefetches the cache line of a byte in memory into the second-level cache with intent to write, in exclusive state.
Only the Xeon Phi processors Knights Landing and Knights Mill have this instruction; no other Intel processor supports it.
- Extensions
- Forms
- 1 (1 Legacy)
- Data
- Intel XED v2026.08.23
PREFETCHWT1 is PREFETCHW with a T1 hint: it asks for the cache line holding a byte in a state that a store can write at once (the request for ownership that a write would make), but into the second-level cache rather than the first, for data that will be written a little later. Like every prefetch, it is only a hint: no register, flag or memory changes, no fault for any address, and nothing is fetched from uncacheable or write-combining memory.
A Xeon Phi instruction
Intel documents it in the part of its manual reserved for the Xeon Phi processors, and its CPUID bit, leaf 7, ECX bit 0, is reported by Knights Landing and Knights Mill only, as the table of processors shows; Zen 5 does not report it either, so the probe did not run it.
Its bytes are another matter. 0F 0D /2 sits in AMD’s prefetch group, where /0 is PREFETCH and /1 PREFETCHW, and AMD’s manual makes every reserved value of the ModRM reg field act as PREFETCH. On an AMD processor, PREFETCHWT1 therefore runs as a plain read prefetch into the first-level cache instead of faulting.
From C
GCC 14 at -O2 emits it for _mm_prefetch(p, _MM_HINT_ET1), and for
__builtin_prefetch(p, 1, n) with a locality n of 0, 1 or 2, when
compiling with -mprefetchwt1 or -march=knl; locality 3 stays
PREFETCHW. Without the option, all of them become PREFETCHW (with
-mprfchw) or one of the read prefetches. Clang 23 no longer has the
option at all: with -march=knl it emits PREFETCHW for every one of
them.
Forms
| Instruction | Encoding | Requires |
|---|---|---|
PREFETCHWT1 m8
PREFETCHWT1_MEMu8 | 0F 0D /2 | PREFETCHWT1 |
Operation
What the forms do, in pseudocode that our tests run against results recorded on real processors. How to read.
pass # T1, ready to be written: into the
# second level and up
# no fault for any address. Only Intel's Xeon Phi processors report
# it; AMD's run 0F 0D /2 as PREFETCHNot run on a processor: the Zen 5 guest that ran the probe does not report PREFETCHWT1 in CPUID.
Operands
| Operand | Kind | Action |
|---|---|---|
PREFETCHWT1 m8 | ||
m8 | explicit | read |
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
- memory operand only names cache lines
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.
| ISA set | CPUID | Processors |
|---|---|---|
PREFETCHWT1 | PREFETCHWT1 | Knights Landing, Knights Mill |
Sources
- Intel XED v2026.08.23 (commit
0bcb6237345c): forms, encodings, operands, flags, exception classes, attributes, ISA sets, CPUID bits and chip model. - Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2 (325383-093, September 2026): Volume 2D, page 8-2 (PREFETCHWT1)
- AMD64 Architecture Programmer's Manual, Volume 3: General-Purpose and System Instructions (24594, rev. 3.36, March 2024), Wayback Machine copy of AMD's PDF
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.