--- src/compiler/nir/nir_builder.h | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-)
diff --git a/src/compiler/nir/nir_builder.h b/src/compiler/nir/nir_builder.h index 02a9dbfb040..198c42dd823 100644 --- a/src/compiler/nir/nir_builder.h +++ b/src/compiler/nir/nir_builder.h @@ -25,6 +25,7 @@ #define NIR_BUILDER_H #include "nir_control_flow.h" +#include "util/half_float.h" struct exec_list; @@ -227,19 +228,6 @@ 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) { @@ -288,6 +276,21 @@ nir_imm_intN_t(nir_builder *build, uint64_t x, unsigned bit_size) return nir_build_imm(build, 1, bit_size, v); } +static inline nir_ssa_def * +nir_imm_floatN_t(nir_builder *build, double x, unsigned bit_size) +{ + switch (bit_size) { + case 16: + return nir_imm_intN_t(build, _mesa_float_to_half((float)x), 16); + 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_ivec4(nir_builder *build, int x, int y, int z, int w) { -- 2.14.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev