summaryrefslogtreecommitdiffstats
path: root/src/compiler/nir/nir_opcodes.py
diff options
context:
space:
mode:
authorJason Ekstrand <jason.ekstrand@intel.com>2016-03-25 13:58:17 -0700
committerJason Ekstrand <jason.ekstrand@intel.com>2016-04-01 13:52:28 -0700
commitde60e250f5095a9237727a3188eb0c092a4e6a05 (patch)
treeea4645c6ecdb60237945a558e69eeadc87678f62 /src/compiler/nir/nir_opcodes.py
parent60e1c6a7fce82e48a36e3a5605222009c47f59bb (diff)
downloadexternal_mesa3d-de60e250f5095a9237727a3188eb0c092a4e6a05.zip
external_mesa3d-de60e250f5095a9237727a3188eb0c092a4e6a05.tar.gz
external_mesa3d-de60e250f5095a9237727a3188eb0c092a4e6a05.tar.bz2
nir: Add an opcode for stomping a 32-bit value to 16-bit precision
This correlates directly to the SPIR-V opcode OpQuantizeToF16 Reviewed-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'src/compiler/nir/nir_opcodes.py')
-rw-r--r--src/compiler/nir/nir_opcodes.py1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/compiler/nir/nir_opcodes.py b/src/compiler/nir/nir_opcodes.py
index 553f924..bc98450 100644
--- a/src/compiler/nir/nir_opcodes.py
+++ b/src/compiler/nir/nir_opcodes.py
@@ -180,6 +180,7 @@ unop("ffloor", tfloat, "bit_size == 64 ? floor(src0) : floorf(src0)")
unop("ffract", tfloat, "src0 - (bit_size == 64 ? floor(src0) : floorf(src0))")
unop("fround_even", tfloat, "bit_size == 64 ? _mesa_roundeven(src0) : _mesa_roundevenf(src0)")
+unop("fquantize2f16", tfloat, "(fabs(src0) < ldexpf(1.0, -14)) ? copysignf(0.0f, src0) : _mesa_half_to_float(_mesa_float_to_half(src0))")
# Trigonometric operations.