diff options
author | Iago Toral Quiroga <[email protected]> | 2016-01-12 12:39:58 +0100 |
---|---|---|
committer | Samuel Iglesias Gonsálvez <[email protected]> | 2016-04-11 08:29:27 +0200 |
commit | b16d06252e9179f5c279da69ee194cc0400ae403 (patch) | |
tree | 490ea2727a9ef0699f51f375f2f5f8efa494ffd8 | |
parent | a4bce07dc6ebbd74dfb47394962d573ed01ee482 (diff) |
nir: add d2i, d2u, d2b opcodes
Reviewed-by: Jason Ekstrand <[email protected]>
-rw-r--r-- | src/compiler/nir/glsl_to_nir.cpp | 3 | ||||
-rw-r--r-- | src/compiler/nir/nir_opcodes.py | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/compiler/nir/glsl_to_nir.cpp b/src/compiler/nir/glsl_to_nir.cpp index 6a70c4d1758..6428b95965f 100644 --- a/src/compiler/nir/glsl_to_nir.cpp +++ b/src/compiler/nir/glsl_to_nir.cpp @@ -1358,6 +1358,9 @@ nir_visitor::visit(ir_expression *ir) case ir_unop_b2i: result = nir_b2i(&b, srcs[0]); break; case ir_unop_d2f: result = nir_d2f(&b, srcs[0]); break; case ir_unop_f2d: result = nir_f2d(&b, srcs[0]); break; + case ir_unop_d2i: result = nir_d2i(&b, srcs[0]); break; + case ir_unop_d2u: result = nir_d2u(&b, srcs[0]); break; + case ir_unop_d2b: result = nir_d2b(&b, srcs[0]); break; case ir_unop_i2u: case ir_unop_u2i: case ir_unop_bitcast_i2f: diff --git a/src/compiler/nir/nir_opcodes.py b/src/compiler/nir/nir_opcodes.py index ef544250652..0898abcedfd 100644 --- a/src/compiler/nir/nir_opcodes.py +++ b/src/compiler/nir/nir_opcodes.py @@ -161,9 +161,12 @@ unop("fexp2", tfloat, "exp2f(src0)") unop("flog2", tfloat, "log2f(src0)") unop_convert("f2i", tint32, tfloat32, "src0") # Float-to-integer conversion. unop_convert("f2u", tuint32, tfloat32, "src0") # Float-to-unsigned conversion +unop_convert("d2i", tint32, tfloat64, "src0") # Double-to-integer conversion. +unop_convert("d2u", tuint32, tfloat64, "src0") # Double-to-unsigned conversion. unop_convert("i2f", tfloat32, tint32, "src0") # Integer-to-float conversion. # Float-to-boolean conversion unop_convert("f2b", tbool, tfloat32, "src0 != 0.0f") +unop_convert("d2b", tbool, tfloat64, "src0 != 0.0") # Boolean-to-float conversion unop_convert("b2f", tfloat32, tbool, "src0 ? 1.0f : 0.0f") # Int-to-boolean conversion |