nir: Add variants of some of the comparison simplifications.
authorEric Anholt <eric@anholt.net>
Tue, 27 Jan 2015 00:48:48 +0000 (16:48 -0800)
committerEric Anholt <eric@anholt.net>
Thu, 29 Jan 2015 19:44:06 +0000 (11:44 -0800)
We end up with these from TGSI-to-NIR because the pass generating the
comparisons doesn't know if the arg is actually a bool input or not.  vc4
results:

total instructions in shared programs: 41801 -> 41508 (-0.70%)
instructions in affected programs:     4253 -> 3960 (-6.89%)

Reviewed-by: Matt Turner <mattst88@gmail.com>
src/glsl/nir/nir_opt_algebraic.py

index 9c62b2836340e37f2fb9020c98fe71b746ef4fc2..122555bb4f668227e238ce6f9221d0f9328420f7 100644 (file)
@@ -71,6 +71,10 @@ optimizations = [
    (('inot', ('fge', a, b)), ('flt', a, b)),
    (('inot', ('ilt', a, b)), ('ige', a, b)),
    (('inot', ('ige', a, b)), ('ilt', a, b)),
+   (('ine', ('flt', a, b), 0), ('flt', a, b)),
+   (('ine', ('fge', a, b), 0), ('fge', a, b)),
+   (('ine', ('ilt', a, b), 0), ('ilt', a, b)),
+   (('ine', ('ige', a, b), 0), ('ige', a, b)),
    (('flt', ('fadd', a, b), 0.0), ('flt', a, ('fneg', b))),
    (('fge', ('fadd', a, b), 0.0), ('fge', a, ('fneg', b))),
    (('feq', ('fadd', a, b), 0.0), ('feq', a, ('fneg', b))),