nir: Add algebraic optimizations for simplifying comparisons

Graphics / Mesa 3D Graphics Library / Mesa - Kenneth Graunke [whitecape.org] - 23 January 2015 16:53 UTC

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


  • Share