diff options
Diffstat (limited to 'src/compiler/nir/nir_opcodes.py')
-rw-r--r-- | src/compiler/nir/nir_opcodes.py | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/compiler/nir/nir_opcodes.py b/src/compiler/nir/nir_opcodes.py index d69d09d30ce..00720708305 100644 --- a/src/compiler/nir/nir_opcodes.py +++ b/src/compiler/nir/nir_opcodes.py @@ -90,7 +90,7 @@ class Opcode(object): # helper variables for strings tfloat = "float" tint = "int" -tbool = "bool32" +tbool32 = "bool32" tuint = "uint" tuint16 = "uint16" tfloat32 = "float32" @@ -216,10 +216,10 @@ for src_t in [tint, tuint, tfloat]: # We'll hand-code the to/from bool conversion opcodes. Because bool doesn't # have multiple bit-sizes, we can always infer the size from the other type. -unop_convert("f2b", tbool, tfloat, "src0 != 0.0") -unop_convert("i2b", tbool, tint, "src0 != 0") -unop_convert("b2f", tfloat, tbool, "src0 ? 1.0 : 0.0") -unop_convert("b2i", tint, tbool, "src0 ? 1 : 0") +unop_convert("f2b", tbool32, tfloat, "src0 != 0.0") +unop_convert("i2b", tbool32, tint, "src0 != 0") +unop_convert("b2f", tfloat, tbool32, "src0 ? 1.0 : 0.0") +unop_convert("b2i", tint, tbool32, "src0 ? 1 : 0") # Unary floating-point rounding operations. @@ -430,7 +430,7 @@ def binop(name, ty, alg_props, const_expr): binop_convert(name, ty, ty, alg_props, const_expr) def binop_compare(name, ty, alg_props, const_expr): - binop_convert(name, tbool, ty, alg_props, const_expr) + binop_convert(name, tbool32, ty, alg_props, const_expr) def binop_horiz(name, out_size, out_type, src1_size, src1_type, src2_size, src2_type, const_expr): @@ -525,13 +525,13 @@ binop_compare("uge", tuint, "", "src0 >= src1") # integer-aware GLSL-style comparisons that compare floats and ints -binop_reduce("ball_fequal", 1, tbool, tfloat, "{src0} == {src1}", +binop_reduce("ball_fequal", 1, tbool32, tfloat, "{src0} == {src1}", "{src0} && {src1}", "{src}") -binop_reduce("bany_fnequal", 1, tbool, tfloat, "{src0} != {src1}", +binop_reduce("bany_fnequal", 1, tbool32, tfloat, "{src0} != {src1}", "{src0} || {src1}", "{src}") -binop_reduce("ball_iequal", 1, tbool, tint, "{src0} == {src1}", +binop_reduce("ball_iequal", 1, tbool32, tint, "{src0} == {src1}", "{src0} && {src1}", "{src}") -binop_reduce("bany_inequal", 1, tbool, tint, "{src0} != {src1}", +binop_reduce("bany_inequal", 1, tbool32, tint, "{src0} != {src1}", "{src0} || {src1}", "{src}") # non-integer-aware GLSL-style comparisons that return 0.0 or 1.0 @@ -719,7 +719,7 @@ triop("imed3", tint, "MAX2(MIN2(MAX2(src0, src1), src2), MIN2(src0, src1))") triop("umed3", tuint, "MAX2(MIN2(MAX2(src0, src1), src2), MIN2(src0, src1))") opcode("bcsel", 0, tuint, [0, 0, 0], - [tbool, tuint, tuint], "", "src0 ? src1 : src2") + [tbool32, tuint, tuint], "", "src0 ? src1 : src2") # SM5 bfi assembly triop("bfi", tuint32, """ |