nir: add opcode to perform int64 to bool conversions
authorSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Wed, 8 Feb 2017 12:50:57 +0000 (13:50 +0100)
committerSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Thu, 9 Feb 2017 09:18:34 +0000 (10:18 +0100)
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99660
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
src/compiler/glsl/glsl_to_nir.cpp
src/compiler/nir/nir_opcodes.py

index fde6a018750166a45aaf2a343795c2d2366d26e9..96d8164ea43c8ba939fc1c977d9d7090c19245dc 100644 (file)
@@ -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;
index 0f6dd0add8393f3bf6ca9cf3eb4423f58279d0af..ece673cda36d00c4a21e8ca5b000b77123e852ee 100644 (file)
@@ -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.