nir: Add optimization for (a || True == True)
authorEric Anholt <eric@anholt.net>
Wed, 6 Jul 2016 22:00:45 +0000 (15:00 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 12 Jul 2016 22:46:09 +0000 (15:46 -0700)
This was appearing in vc4 VS/CS in mupen64, due to vertex attrib lowering
producing some constants that were getting compared.

total instructions in shared programs: 112276 -> 112198 (-0.07%)
instructions in affected programs:     2239 -> 2161 (-3.48%)
total estimated cycles in shared programs: 283102 -> 283038 (-0.02%)
estimated cycles in affected programs:     2365 -> 2301 (-2.71%)

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/compiler/nir/nir_opt_algebraic.py

index fd22801..7d04ef9 100644 (file)
@@ -197,6 +197,7 @@ optimizations = [
    (('iand', a, 0), 0),
    (('ior', a, a), a),
    (('ior', a, 0), a),
+   (('ior', a, True), True),
    (('fxor', a, a), 0.0),
    (('ixor', a, a), 0),
    (('ixor', a, 0), a),