The first batch removes bonus fnot/inot operations, possibly allowing other optimizations to better recognize patterns.
The next batch replaces a fadd and constant 0.0 with an fneg - negation is usually free on GPUs, while addition is not.
total NIR instructions in shared programs: 2020814 -> 2015593 (-0.26%) NIR instructions in affected programs: 411143 -> 405922 (-1.27%) helped: 2233 HURT: 214
A few shaders are hurt by a few instructions due to moving neg such that it has a constant operand, which is then folded, resulting in two distinct load_consts for x and -x. We can always clean that up later.
total i965 instructions in shared programs: 6035392 -> 6025505 (-0.16%) i965 instructions in affected programs: 784980 -> 775093 (-1.26%) helped: 4508 HURT: 2
391fb32 nir: Add algebraic optimizations for simplifying comparisons.
src/glsl/nir/nir_opt_algebraic.py | 9 +++++++++
1 file changed, 9 insertions(+)
Upstream: cgit.freedesktop.org