On Mon, Mar 21, 2016 at 5:06 AM, Samuel Iglesias Gonsálvez < sigles...@igalia.com> wrote:
> From: Iago Toral Quiroga <ito...@igalia.com> > > --- > src/compiler/nir/glsl_to_nir.cpp | 6 ++++++ > src/compiler/nir/nir_opcodes.py | 2 ++ > 2 files changed, 8 insertions(+) > > diff --git a/src/compiler/nir/glsl_to_nir.cpp > b/src/compiler/nir/glsl_to_nir.cpp > index 952d787..d087a77 100644 > --- a/src/compiler/nir/glsl_to_nir.cpp > +++ b/src/compiler/nir/glsl_to_nir.cpp > @@ -1357,6 +1357,12 @@ nir_visitor::visit(ir_expression *ir) > 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_i2d: > + result = supports_ints ? nir_i2d(&b, srcs[0]) : nir_fmov(&b, > srcs[0]); > + break; > + case ir_unop_u2d: > + result = supports_ints ? nir_u2d(&b, srcs[0]) : nir_fmov(&b, > srcs[0]); > If you're going to be using the u2d opcode, you'd better support integers. > + 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 a161ac1..cf6ce83 100644 > --- a/src/compiler/nir/nir_opcodes.py > +++ b/src/compiler/nir/nir_opcodes.py > @@ -164,6 +164,7 @@ 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. > +unop_convert("i2d", tfloat64, tint32, "src0") # Integer-to-double > conversion. > # Float-to-boolean conversion > unop_convert("f2b", tbool, tfloat32, "src0 != 0.0f") > unop_convert("d2b", tbool, tfloat64, "src0 != 0.0") > @@ -173,6 +174,7 @@ unop_convert("b2f", tfloat32, tbool, "src0 ? 1.0f : > 0.0f") > unop_convert("i2b", tbool, tint32, "src0 != 0") > unop_convert("b2i", tint32, tbool, "src0 ? 1 : 0") # Boolean-to-int > conversion > unop_convert("u2f", tfloat32, tuint32, "src0") # Unsigned-to-float > conversion. > +unop_convert("u2d", tfloat64, tuint32, "src0") # Unsigned-to-double > conversion. > # double-to-float conversion > unop_convert("d2f", tfloat32, tfloat64, "src0") # Single to double > precision > unop_convert("f2d", tfloat64, tfloat32, "src0") # Double to single > precision > -- > 2.5.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev