ir_to_mesa: Do not emit OPCODE_SLE or OPCODE_SGT
Nothing that consumes the output of this backend consumes them navtively. This is the way i915 has implemented these instructions since it began consuming GLSL. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
e46ac18ebe
commit
15e6a1a3be
|
@ -1067,10 +1067,20 @@ ir_to_mesa_visitor::visit(ir_expression *ir)
|
|||
emit(ir, OPCODE_SLT, result_dst, op[0], op[1]);
|
||||
break;
|
||||
case ir_binop_greater:
|
||||
emit(ir, OPCODE_SGT, result_dst, op[0], op[1]);
|
||||
/* Negating the operands (as opposed to switching the order of the
|
||||
* operands) produces the correct result when both are +/-Inf.
|
||||
*/
|
||||
op[0].negate = ~op[0].negate;
|
||||
op[1].negate = ~op[1].negate;
|
||||
emit(ir, OPCODE_SLT, result_dst, op[0], op[1]);
|
||||
break;
|
||||
case ir_binop_lequal:
|
||||
emit(ir, OPCODE_SLE, result_dst, op[0], op[1]);
|
||||
/* Negating the operands (as opposed to switching the order of the
|
||||
* operands) produces the correct result when both are +/-Inf.
|
||||
*/
|
||||
op[0].negate = ~op[0].negate;
|
||||
op[1].negate = ~op[1].negate;
|
||||
emit(ir, OPCODE_SGE, result_dst, op[0], op[1]);
|
||||
break;
|
||||
case ir_binop_gequal:
|
||||
emit(ir, OPCODE_SGE, result_dst, op[0], op[1]);
|
||||
|
|
Loading…
Reference in New Issue