We could already handle vector arguments to these -- we just couldn't handle mixed scalar and vector arguments. So change the commit message to something like "nir: Handle mixed scalar/vector arguments to logical and/or/xor." and fix the typo and then this is
Reviewed-by: Connor Abbott <cwabbo...@gmail.com> On Mon, Mar 23, 2015 at 8:10 PM, Matt Turner <matts...@gmail.com> wrote: > --- > src/glsl/nir/glsl_to_nir.cpp | 39 +++++++++++++++++++++------------------ > 1 file changed, 21 insertions(+), 18 deletions(-) > > diff --git a/src/glsl/nir/glsl_to_nir.cpp b/src/glsl/nir/glsl_to_nir.cpp > index 357944d..e6f5ffc 100644 > --- a/src/glsl/nir/glsl_to_nir.cpp > +++ b/src/glsl/nir/glsl_to_nir.cpp > @@ -1210,6 +1210,9 @@ nir_visitor::visit(ir_expression *ir) > case ir_binop_bit_and: > case ir_binop_bit_or: > case ir_binop_bit_xor: > + case ir_binop_logic_and: > + case ir_binop_logic_or: > + case ir_binop_logic_xor: > case ir_binop_lshift: > case ir_binop_rshift: > switch (ir->operation) { > @@ -1270,6 +1273,24 @@ nir_visitor::visit(ir_expression *ir) > case ir_binop_bit_xor: > op = nir_op_ixor; > break; > + case ir_binop_logic_and: > + if (supports_ints) > + op = nir_op_iand; > + else > + op = nir_op_fand; > + break; > + case ir_binop_logic_or: > + if (supports_ints) > + op = nir_op_ior; > + else > + op = nir_op_for; > + break; > + case ir_binop_logic_xor: > + if (supports_ints) > + op - nir_op_ixor; > + else > + op = nir_op_fxor; > + break; > case ir_binop_lshift: > op = nir_op_ishl; > break; > @@ -1444,24 +1465,6 @@ nir_visitor::visit(ir_expression *ir) > } > } > break; > - case ir_binop_logic_and: > - if (supports_ints) > - emit(nir_op_iand, dest_size, srcs); > - else > - emit(nir_op_fand, dest_size, srcs); > - break; > - case ir_binop_logic_or: > - if (supports_ints) > - emit(nir_op_ior, dest_size, srcs); > - else > - emit(nir_op_for, dest_size, srcs); > - break; > - case ir_binop_logic_xor: > - if (supports_ints) > - emit(nir_op_ixor, dest_size, srcs); > - else > - emit(nir_op_fxor, dest_size, srcs); > - break; > case ir_binop_dot: > switch (ir->operands[0]->type->vector_elements) { > case 2: emit(nir_op_fdot2, dest_size, srcs); break; > -- > 2.0.5 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev