ACE
ACE-E3 exception class
ACE-E3 is the ACE specification's exception class for BSRMOVH and BSRMOVL, which move one half of the block scale register to or from a ZMM register or memory: the checks of ACE-E2 plus an unused EVEX.vvvv.
- Class
ACE-E3in Intel XED- Applies to
- BSRMOVH and BSRMOVL (ACE), loading or storing the upper or lower 512 bits of the block scale register.
- Instructions
- 2 mnemonics, 8 forms
- Data
- Intel XED v2026.08.23
Exception conditions
| Exception | Real | Virtual-8086 | Protected | 64-bit | Condition |
|---|---|---|---|---|---|
#UD | yes | yes | yes | no | Always: the ACE instructions exist only in 64-bit mode (IA32_EFER.LMA = 1 and CS.L = 1). |
#UD | no | no | no | yes | A LOCK, 66H, F2H, F3H or REX prefix comes before the EVEX prefix. |
#UD | no | no | no | yes | CR4.OSXSAVE is 0, or XCR0 bits 17, 18 and 20 (the tile configuration, the tile data and ACE’s block scale state) are not all set. |
#UD | no | no | no | yes | XCR0 bits 5 to 7 (the AVX-512 state) or bits 1 and 2 (the SSE and AVX state) are not all set. |
#UD | no | no | no | yes | No tile configuration is loaded. |
#UD | no | no | no | yes | EVEX.z or EVEX.b is 1, EVEX.aaa is not 000B, or EVEX.L’L is not 10B: no masking or broadcast, and only 512-bit vectors. |
#UD | no | no | no | yes | The block scale operand is not bsr0: ModRM.reg is not 000B, or EVEX.R or EVEX.R’ is 0. |
#UD | no | no | no | yes | EVEX.vvvv is not 1111B or EVEX.V’ is not 1: the instruction has no register operand there. |
#NM | no | no | no | yes | CR0.TS is 1. |
#NM | no | no | no | yes | IA32_XFD bit 18 is set: extended feature disable blocks the tile data for this thread. |
#SS(0) | no | no | no | yes | The memory address uses the SS segment and is not canonical. |
#GP | no | no | no | yes | The memory address is not canonical. |
#PF(fault-code) | no | no | no | yes | The memory access causes a page fault. |
#AC(0) | no | no | no | yes | On processors whose alignment checking also tests 16-byte alignment of 16-, 32- and 64-byte accesses: the memory operand is not 16-byte aligned while CR0.AM and EFLAGS.AC are 1 at CPL 3. |
Notes
BSRMOVH moves the upper half of the block scale register, the A scales for the input that runs along the tile’s rows, and BSRMOVL the lower half, the B scales; EVEX.W chooses the direction. The #AC row applies only on processors that extend alignment checking to 16-byte alignment, which the ACE specification permits.
Related classes
Instructions
Intel XED puts forms of 2 mnemonics 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.
ACE
Sources
- x86 Ecosystem Advisory Group: AI Compute Extensions (ACE) Specification, version 1.16.2 (July 2026): Section 5.7.3; Section 5.8; Section 13.3.
- 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.