diff options
author | Matt Turner <[email protected]> | 2015-03-17 23:30:32 -0700 |
---|---|---|
committer | Matt Turner <[email protected]> | 2015-03-24 14:43:37 -0700 |
commit | c31158d2cb06a864cf44d6d4f2c539e359990d3d (patch) | |
tree | 755cab67b154fe26532dbf32b054a17d6c508fa7 | |
parent | b481ebbe399fdc6386fd52f890ba7c310d333ed5 (diff) |
nir: Recognize mul(b2f(a), b2f(b)) as a logical AND.
Transform this into b2f(and(a, b)).
total instructions in shared programs: 6205448 -> 6204391 (-0.02%)
instructions in affected programs: 284030 -> 282973 (-0.37%)
helped: 903
HURT: 6
Acked-by: Ian Romanick <[email protected]>
Reviewed-by: Connor Abbott <[email protected]>
-rw-r--r-- | src/glsl/nir/nir_opt_algebraic.py | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/glsl/nir/nir_opt_algebraic.py b/src/glsl/nir/nir_opt_algebraic.py index ef855aa774e..f956edff3c3 100644 --- a/src/glsl/nir/nir_opt_algebraic.py +++ b/src/glsl/nir/nir_opt_algebraic.py @@ -95,6 +95,8 @@ optimizations = [ (('fsat', a), ('fmin', ('fmax', a, 0.0), 1.0), 'options->lower_fsat'), (('fsat', ('fsat', a)), ('fsat', a)), (('fmin', ('fmax', ('fmin', ('fmax', a, 0.0), 1.0), 0.0), 1.0), ('fmin', ('fmax', a, 0.0), 1.0)), + # Emulating booleans + (('fmul', ('b2f', a), ('b2f', b)), ('b2f', ('iand', a, b))), # Comparison with the same args. Note that these are not done for # the float versions because NaN always returns false on float # inequalities. |