mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 04:20:18 +01:00
i965: Handle all_equal/any_nequal in the new FS.
These are generated for scalar operands instead of plain equal/nequal. But for scalars, they're the same anyway. +30 piglits.
This commit is contained in:
parent
a5c6c8a31b
commit
169ff0cc9d
1 changed files with 2 additions and 2 deletions
|
|
@ -725,11 +725,13 @@ fs_visitor::visit(ir_expression *ir)
|
|||
emit(fs_inst(BRW_OPCODE_AND, this->result, this->result, fs_reg(0x1)));
|
||||
break;
|
||||
case ir_binop_equal:
|
||||
case ir_binop_all_equal: /* same as nequal for scalars */
|
||||
inst = emit(fs_inst(BRW_OPCODE_CMP, this->result, op[0], op[1]));
|
||||
inst->conditional_mod = BRW_CONDITIONAL_Z;
|
||||
emit(fs_inst(BRW_OPCODE_AND, this->result, this->result, fs_reg(0x1)));
|
||||
break;
|
||||
case ir_binop_nequal:
|
||||
case ir_binop_any_nequal: /* same as nequal for scalars */
|
||||
inst = emit(fs_inst(BRW_OPCODE_CMP, this->result, op[0], op[1]));
|
||||
inst->conditional_mod = BRW_CONDITIONAL_NZ;
|
||||
emit(fs_inst(BRW_OPCODE_AND, this->result, this->result, fs_reg(0x1)));
|
||||
|
|
@ -750,8 +752,6 @@ fs_visitor::visit(ir_expression *ir)
|
|||
case ir_binop_dot:
|
||||
case ir_binop_cross:
|
||||
case ir_unop_any:
|
||||
case ir_binop_all_equal:
|
||||
case ir_binop_any_nequal:
|
||||
assert(!"not reached: should be handled by brw_fs_channel_expressions");
|
||||
break;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue