Instruction
VUCOMXSH
Compares the low half-precision values of two operands like VCOMXSH but signals an invalid exception only for signaling NaNs.
- Extensions
- Forms
- 2 (2 EVEX)
- Data
- Intel XED v2026.08.23
VUCOMXSH compares the low half-precision values of a register and a
register or two bytes of memory and sets OF, SF, ZF, PF and CF in the
four patterns that VCOMXSD’s page tabulates. It
raises the invalid-operation exception only for a signaling NaN, where
VCOMXSH does so for any NaN. It extends
VUCOMISH as VUCOMXSS extends
VUCOMISS: opcode 2Eh in EVEX map 5, with an F3 prefix where VUCOMISH
has none, part of AVX10.2. Like the other half-precision compares it
takes {sae} to suppress the exception.
Equality on halves
An unordered result clears ZF, so ZF alone answers C’s ==. Clang 23
with -mavx10.2 compiles return a == b; on two _Float16 values to
VUCOMXSH and SETE, and a < b to VUCOMISH with the operands swapped and
SETA, as for floats and doubles. The intrinsics take another path:
_mm_ucomieq_sh and _mm_ucomineq_sh become VCMPSH into a mask
register, read back with KMOVW, rather than VUCOMXSH.
Availability
GCC 14 has no AVX10.2 option, so these builds are Clang’s alone. The AVX10.2 specification’s entry (revision 7.0) describes VUCOMXSH as differing from “VCOMISH” where VUCOMISH is meant, the counterpart of a slip in VCOMXSH’s entry. No AVX10.2 processor appears in this site’s recorded cases.
Forms
Data flow
Where the elements of the sources go, element 0 on the right; results that depend on a control value are drawn for an example. How to read.
The flags come from half 0 of xmm1 and xmm2. RFLAGS: CF, PF, ZF.
Operation
What the forms do, in pseudocode that our tests run against results recorded on real processors. How to read.
x = ucomx(xmm1.f16[0], src2.f16[0]) # 0 >, 1 <, 2 =, 3 unordered
of = x != 0
sf = x in (2, 3)
zf = x == 2
pf = x == 3
cf = x in (1, 3)
af = 0
# only an SNaN raises IE
# {sae}: no exception flagsNot run on a processor: none of these processors has AVX10.2.
Operands
| Operand | Kind | Action |
|---|---|---|
VUCOMXSH xmm, xmm/m16, {sae} | ||
xmm | explicit | read |
xmm/m16 | explicit | read |
RFLAGS | implicit | write |
Flags
| OF | SF | ZF | AF | PF | CF |
|---|---|---|---|---|---|
| All forms | |||||
| 0 | 0 | M | 0 | M | M |
Exceptions
The exception class is XED's name for the set of exception conditions that a form follows. How to read.
- All forms
AVX512-E3NF
Attributes
What else XED records about the forms. How to read.
- All forms
- follows MXCSR
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 |
|---|---|---|
AVX512_COM_EF_SCALAR | AVX10.2 | Nova Lake, Diamond Rapids |
More AVX10.2 instructions
- VFNMSUB132BF16
- VFNMSUB213BF16
- VFNMSUB231BF16
- VFPCLASSBF16
- VGETEXPBF16
- VGETMANTBF16
- VMAXBF16
- VMINBF16
- VMINMAXBF16
- VMINMAXPD
- VMINMAXPH
- VMINMAXPS
- VMINMAXSD
- VMINMAXSH
- VMINMAXSS
- VMOVD
- VMOVW
- VMPSADBW
- VMULBF16
- VPDPBSSD
- VPDPBSSDS
- VPDPBSUD
- VPDPBSUDS
- VPDPBUUD
- VPDPBUUDS
- VPDPWSUD
- VPDPWSUDS
- VPDPWUSD
- VPDPWUSDS
- VPDPWUUD
- VPDPWUUDS
- VRCPBF16
- VREDUCEBF16
- VRNDSCALEBF16
- VRSQRTBF16
- VSCALEFBF16
- VSQRTBF16
- VSUBBF16
- VUCOMXSD
- VUCOMXSS
Sources
- Intel XED v2026.08.23 (commit
0bcb6237345c): forms, encodings, operands, flags, exception classes, attributes, ISA sets, CPUID bits and chip model. - Intel Advanced Vector Extensions 10.2 Architecture Specification, revision 7.0 (361050-007, April 2026)
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.