summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Iglesias Gonsálvez <[email protected]>2017-02-08 13:50:57 +0100
committerSamuel Iglesias Gonsálvez <[email protected]>2017-02-09 10:18:34 +0100
commit824e1bb078ad0caeb0b6a7292aebddd06ed84291 (patch)
tree713f65268e5501e5bff7254dd2a84755a77ebcbd
parent7ab26613dbe7e917f823d16c5edca2d14dd21d13 (diff)
nir: add opcode to perform int64 to bool conversions
Signed-off-by: Samuel Iglesias Gonsálvez <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99660 Reviewed-by: Lionel Landwerlin <[email protected]>
-rw-r--r--src/compiler/glsl/glsl_to_nir.cpp1
-rw-r--r--src/compiler/nir/nir_opcodes.py1
2 files changed, 2 insertions, 0 deletions
diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp
index fde6a018750..96d8164ea43 100644
--- a/src/compiler/glsl/glsl_to_nir.cpp
+++ b/src/compiler/glsl/glsl_to_nir.cpp
@@ -1501,6 +1501,7 @@ nir_visitor::visit(ir_expression *ir)
case ir_unop_i642i: result = nir_i2i32(&b, srcs[0]); break;
case ir_unop_i642u: result = nir_i2u32(&b, srcs[0]); break;
case ir_unop_i642f: result = nir_i642f(&b, srcs[0]); break;
+ case ir_unop_i642b: result = nir_i642b(&b, srcs[0]); break;
case ir_unop_i642d: result = nir_i642d(&b, srcs[0]); break;
case ir_unop_u642i: result = nir_u2i32(&b, srcs[0]); break;
diff --git a/src/compiler/nir/nir_opcodes.py b/src/compiler/nir/nir_opcodes.py
index 0f6dd0add83..ece673cda36 100644
--- a/src/compiler/nir/nir_opcodes.py
+++ b/src/compiler/nir/nir_opcodes.py
@@ -183,6 +183,7 @@ unop_convert("i2u64", tuint64, tint, "src0") # General int (int8_t, int64_t, e
unop_convert("u2u64", tuint64, tuint, "src0") # General uint (uint8_t, uint32_t, etc.) to uint64_t conversion
unop_convert("f2u64", tuint64, tfloat, "src0") # General float (float or double) to uint64_t conversion
unop_convert("i642f", tfloat32, tint64, "src0") # int64_t-to-float conversion.
+unop_convert("i642b", tbool, tint64, "src0") # int64_t-to-bool conversion.
unop_convert("i642d", tfloat64, tint64, "src0") # int64_t-to-double conversion.
unop_convert("u642f", tfloat32, tuint64, "src0") # uint64_t-to-float conversion.
unop_convert("u642d", tfloat64, tuint64, "src0") # uint64_t-to-double conversion.