v_cmpx_class_f64 GPU Native ISA AMD Vector
V CMPX CLASS F64 Comparison
v_cmpx_class_f64
Evaluate the IEEE numeric class function specified as a 10 bit mask in the second input on the first input, a double-precision float, and set the…
Encoding
Verified bit-level encoding data is not yet available for this instruction.
The instruction-format classification below (VOPC)
is well-documented and stable; exact per-target opcode/field bit positions have not
yet been imported from a verified source.
Operands
Operand details have not yet been curated for this instruction.
GFX Target Compatibility
| Target | Support |
|---|---|
| gfx1100 | ✅ Supported |
Related
More in Comparison
Reference
AMDGPU / GFX ISA
Description
Evaluate the IEEE numeric class function specified as a 10 bit mask in the second input on the first input, a double-precision float, and set the per-lane condition code to the result. Store the result into the EXEC mask and to VCC or a scalar register. The function reports true if the floating point value is any of the numeric types selected in the 10 bit mask according to the following list: S1.u[0] value is a signaling NAN. S1.u[1] value is a quiet NAN. S1.u[2] value is negative infinity. S1.u[3] value is a negative normal value. S1.u[4] value is a negative denormal value. S1.u[5] value is negative zero. S1.u[6] value is positive zero. S1.u[7] value is a positive denormal value. S1.u[8] value is a positive normal value. S1.u[9] value is positive infinity.
Semantics
declare result : 1'U;
if isSignalNAN(S0.f64) then
result = S1.u32[0]
elsif isQuietNAN(S0.f64) then
result = S1.u32[1]
elsif exponent(S0.f64) == 2047 then
// +-INF
result = S1.u32[sign(S0.f64) ? 2 : 9]
elsif exponent(S0.f64) > 0 then
// +-normal value
result = S1.u32[sign(S0.f64) ? 3 : 8]
elsif abs(S0.f64) > 0.0 then
// +-denormal value
result = S1.u32[sign(S0.f64) ? 4 : 7]
else
// +-0.0
result = S1.u32[sign(S0.f64) ? 5 : 6]
endif;
EXEC.u64[laneId] = D0.u64[laneId] = result
Example
v_cmpx_class_f64 -1, v2A real instruction accepted by the LLVM assembler, taken verbatim from LLVM's own AMDGPU MC test suite (gfx11). Not from an AMD document, and not authored here.
Sources
- User Guide for AMDGPU Backend ↗ - LLVM Project
-
"AMD Instinct MI300" Instruction Set Architecture: Reference Guide ↗
- Advanced Micro Devices, Inc.
Reference Guide, page 218. - LLVM MC assembler tests for AMDGPU (gfx11) ↗ - LLVM Project