nir: Add algebraic opt for int comparisons with identical operands.
authorEric Anholt <eric@anholt.net>
Sat, 7 Feb 2015 01:12:59 +0000 (17:12 -0800)
committerEric Anholt <eric@anholt.net>
Wed, 11 Feb 2015 19:52:38 +0000 (11:52 -0800)
No change on shader-db on i965.

v2: Reword the comment due to feedback from Erik Faye-Lund

Reviewed-by: Connor Abbott <cwabbott0@gmail.com> (v1)
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com> (v1)
src/glsl/nir/nir_opt_algebraic.py

index a5fe19ab988774ed1995e30548296f28d51d4544..2b4259e4654d7d1d93b90574e899afaf7dc01b05 100644 (file)
@@ -83,6 +83,15 @@ optimizations = [
    (('fne', ('fadd', a, b), 0.0), ('fne', a, ('fneg', b))),
    (('fge', ('fneg', ('fabs', a)), 0.0), ('feq', a, 0.0)),
    (('fmin', ('fmax', a, 0.0), 1.0), ('fsat', a)),
+   # Comparison with the same args.  Note that these are not done for
+   # the float versions because NaN always returns false on float
+   # inequalities.
+   (('ilt', a, a), False),
+   (('ige', a, a), True),
+   (('ieq', a, a), True),
+   (('ine', a, a), False),
+   (('ult', a, a), False),
+   (('uge', a, a), True),
    # Logical and bit operations
    (('fand', a, 0.0), 0.0),
    (('iand', a, a), a),