[Mesa-dev] [PATCH 1/4] nir/builder: Add a nir_imm_floatN_t helper

Neil Roberts nroberts at igalia.com
Wed Mar 21 19:34:37 UTC 2018


This lets you easily build float immediates just given the bit size.
If we have this single place here to handle this then it will be
easier to add support for 16-bit floats later.
---
 src/compiler/nir/nir_builder.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h
index 36e0ae3ac63..32f86249ad3 100644
--- a/src/compiler/nir/nir_builder.h
+++ b/src/compiler/nir/nir_builder.h
@@ -227,6 +227,19 @@ nir_imm_double(nir_builder *build, double x)
    return nir_build_imm(build, 1, 64, v);
 }
 
+static inline nir_ssa_def *
+nir_imm_floatN_t(nir_builder *build, double x, unsigned bit_size)
+{
+   switch (bit_size) {
+   case 32:
+      return nir_imm_float(build, x);
+   case 64:
+      return nir_imm_double(build, x);
+   }
+
+   unreachable("unknown float immediate bit size");
+}
+
 static inline nir_ssa_def *
 nir_imm_vec4(nir_builder *build, float x, float y, float z, float w)
 {
-- 
2.14.3



More information about the mesa-dev mailing list