vc4: Add algebraic opt for rcp(1.0).

We're generating rcps as part of backend lowering of the packed coordinate
in the CS, and we don't want to lower them in NIR because of the extra
newton-raphson steps in the common case.  However, GLB2.7 is moving a
vertex attribute with a 1.0 W component to the position, and that makes us
produce some silly RCPs.

total instructions in shared programs: 97590 -> 97580 (-0.01%)
instructions in affected programs:     74 -> 64 (-13.51%)
This commit is contained in:
Eric Anholt
2015-08-18 22:19:12 -07:00
parent c800fef2e2
commit 8cae9f2fda
@@ -275,6 +275,14 @@ qir_opt_algebraic(struct vc4_compile *c)
}
break;
case QOP_RCP:
if (is_1f(c, inst->src[0])) {
replace_with_mov(c, inst, inst->src[0]);
progress = true;
break;
}
break;
default:
break;
}