summaryrefslogtreecommitdiffstats
path: root/src/glsl/nir
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2015-01-28 16:55:03 -0800
committerJason Ekstrand <[email protected]>2015-01-29 17:11:10 -0800
commit7f19cd5a56f65fd8d188c2f58b3775a0a5cf2b8a (patch)
treecf44fb7464112613d9b4acf8c17a9383f6624d00 /src/glsl/nir
parent70273c5cd56aa109c2870de0843f75aeeb687394 (diff)
nir/opt_algebraic: Add some boolean simplifications
total instructions in shared programs: 5998321 -> 5998287 (-0.00%) instructions in affected programs: 4520 -> 4486 (-0.75%) helped: 8 Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/glsl/nir')
-rw-r--r--src/glsl/nir/nir_opt_algebraic.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/glsl/nir/nir_opt_algebraic.py b/src/glsl/nir/nir_opt_algebraic.py
index 210c40dd158..cf305156c5c 100644
--- a/src/glsl/nir/nir_opt_algebraic.py
+++ b/src/glsl/nir/nir_opt_algebraic.py
@@ -77,10 +77,6 @@ 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))),
@@ -121,6 +117,11 @@ optimizations = [
(('frcp', ('frcp', a)), a),
(('frcp', ('fsqrt', a)), ('frsq', a)),
(('frcp', ('frsq', a)), ('fsqrt', a)),
+ # Boolean simplifications
+ (('ine', 'a@bool', 0), 'a'),
+ (('ieq', 'a@bool', 0), ('inot', 'a')),
+ (('bcsel', 'a@bool', True, False), 'a'),
+ (('bcsel', 'a@bool', False, True), ('inot', 'a')),
# This one may not be exact
(('feq', ('fadd', a, b), 0.0), ('feq', a, ('fneg', b))),