From: Eric Anholt Date: Sat, 7 Feb 2015 01:12:59 +0000 (-0800) Subject: nir: Add algebraic opt for int comparisons with identical operands. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=56e21647e20db8e3708001a8600c3d8e7d12d841;p=mesa.git nir: Add algebraic opt for int comparisons with identical operands. No change on shader-db on i965. v2: Reword the comment due to feedback from Erik Faye-Lund Reviewed-by: Connor Abbott (v1) Reviewed-by: Jason Ekstrand (v1) --- diff --git a/src/glsl/nir/nir_opt_algebraic.py b/src/glsl/nir/nir_opt_algebraic.py index a5fe19ab988..2b4259e4654 100644 --- a/src/glsl/nir/nir_opt_algebraic.py +++ b/src/glsl/nir/nir_opt_algebraic.py @@ -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),