mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 11:18:08 +02:00
vc4: Optimize the other case of SEL_X_Y wih a 0 -> SEL_X_0(a).
Cleans up some output to be more obvious in a piglit test I'm looking at.
This commit is contained in:
parent
ac557b4c12
commit
7c474f9f2e
1 changed files with 23 additions and 1 deletions
|
|
@ -174,7 +174,10 @@ qir_opt_algebraic(struct vc4_compile *c)
|
|||
*/
|
||||
replace_with_mov(c, inst, inst->src[1]);
|
||||
progress = true;
|
||||
} else if (is_zero(c, defs, inst->src[1])) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (is_zero(c, defs, inst->src[1])) {
|
||||
/* Replace references to a 0 uniform value
|
||||
* with the SEL_X_0 equivalent.
|
||||
*/
|
||||
|
|
@ -183,7 +186,26 @@ qir_opt_algebraic(struct vc4_compile *c)
|
|||
inst->src[1] = c->undef;
|
||||
progress = true;
|
||||
dump_to(c, inst);
|
||||
break;
|
||||
}
|
||||
|
||||
if (is_zero(c, defs, inst->src[0])) {
|
||||
/* Replace references to a 0 uniform value
|
||||
* with the SEL_X_0 equivalent, flipping the
|
||||
* condition being evaluated since the operand
|
||||
* order is flipped.
|
||||
*/
|
||||
dump_from(c, inst);
|
||||
inst->op -= QOP_SEL_X_Y_ZS;
|
||||
inst->op ^= 1;
|
||||
inst->op += QOP_SEL_X_0_ZS;
|
||||
inst->src[0] = inst->src[1];
|
||||
inst->src[1] = c->undef;
|
||||
progress = true;
|
||||
dump_to(c, inst);
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case QOP_FSUB:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue