summaryrefslogtreecommitdiffstats
path: root/src/amd/common/sid.h
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2017-03-17 12:11:30 +1000
committerDave Airlie <[email protected]>2017-05-03 12:55:34 +1000
commit83e58b036e1c34f26c99d04615df2b530f3045d9 (patch)
tree1c89241329944a5b75c2f4b3a1ea925f649309ad /src/amd/common/sid.h
parenteeff7e11544f333d211c8f8ad3679db814050cfa (diff)
radv: flush f32->f16 conversion denormals to zero. (v2)
SPIR-V defines the f32->f16 operation as flushing denormals to 0, this compares the class using amd class opcode. Thanks to Matt Arsenault for figuring it out. This fix is VI+ only, add a TODO for SI/CIK. This fixes: dEQP-VK.spirv_assembly.instruction.compute.opquantize.flush_to_zero Acked-by: Bas Nieuwenhuizen <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/amd/common/sid.h')
-rw-r--r--src/amd/common/sid.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/amd/common/sid.h b/src/amd/common/sid.h
index 08cdfd77f07..d329ad9493f 100644
--- a/src/amd/common/sid.h
+++ b/src/amd/common/sid.h
@@ -9095,5 +9095,18 @@
#define CIK_SDMA_PACKET_SRBM_WRITE 0xe
#define CIK_SDMA_COPY_MAX_SIZE 0x3fffe0
+enum amd_cmp_class_flags {
+ S_NAN = 1 << 0, // Signaling NaN
+ Q_NAN = 1 << 1, // Quiet NaN
+ N_INFINITY = 1 << 2, // Negative infinity
+ N_NORMAL = 1 << 3, // Negative normal
+ N_SUBNORMAL = 1 << 4, // Negative subnormal
+ N_ZERO = 1 << 5, // Negative zero
+ P_ZERO = 1 << 6, // Positive zero
+ P_SUBNORMAL = 1 << 7, // Positive subnormal
+ P_NORMAL = 1 << 8, // Positive normal
+ P_INFINITY = 1 << 9 // Positive infinity
+};
+
#endif /* _SID_H */