mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-21 19:30:38 +01:00
i965/vec4: Remove 'mul_arg' from try_emit_mad().
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
1e50bc9ee1
commit
9565392031
2 changed files with 12 additions and 7 deletions
|
|
@ -591,7 +591,7 @@ public:
|
|||
int base_offset);
|
||||
|
||||
bool try_emit_sat(ir_expression *ir);
|
||||
bool try_emit_mad(ir_expression *ir, int mul_arg);
|
||||
bool try_emit_mad(ir_expression *ir);
|
||||
void resolve_ud_negate(src_reg *reg);
|
||||
|
||||
src_reg get_timestamp();
|
||||
|
|
|
|||
|
|
@ -1090,7 +1090,7 @@ vec4_visitor::try_emit_sat(ir_expression *ir)
|
|||
}
|
||||
|
||||
bool
|
||||
vec4_visitor::try_emit_mad(ir_expression *ir, int mul_arg)
|
||||
vec4_visitor::try_emit_mad(ir_expression *ir)
|
||||
{
|
||||
/* 3-src instructions were introduced in gen6. */
|
||||
if (brw->gen < 6)
|
||||
|
|
@ -1100,11 +1100,16 @@ vec4_visitor::try_emit_mad(ir_expression *ir, int mul_arg)
|
|||
if (ir->type->base_type != GLSL_TYPE_FLOAT)
|
||||
return false;
|
||||
|
||||
ir_rvalue *nonmul = ir->operands[1 - mul_arg];
|
||||
ir_expression *mul = ir->operands[mul_arg]->as_expression();
|
||||
ir_rvalue *nonmul = ir->operands[1];
|
||||
ir_expression *mul = ir->operands[0]->as_expression();
|
||||
|
||||
if (!mul || mul->operation != ir_binop_mul)
|
||||
return false;
|
||||
if (!mul || mul->operation != ir_binop_mul) {
|
||||
nonmul = ir->operands[0];
|
||||
mul = ir->operands[1]->as_expression();
|
||||
|
||||
if (!mul || mul->operation != ir_binop_mul)
|
||||
return false;
|
||||
}
|
||||
|
||||
nonmul->accept(this);
|
||||
src_reg src0 = fix_3src_operand(this->result);
|
||||
|
|
@ -1189,7 +1194,7 @@ vec4_visitor::visit(ir_expression *ir)
|
|||
return;
|
||||
|
||||
if (ir->operation == ir_binop_add) {
|
||||
if (try_emit_mad(ir, 0) || try_emit_mad(ir, 1))
|
||||
if (try_emit_mad(ir))
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue