nir: Optimize useless comparisons against true/false.
authorMatt Turner <mattst88@gmail.com>
Wed, 2 Dec 2015 00:13:11 +0000 (16:13 -0800)
committerMatt Turner <mattst88@gmail.com>
Tue, 8 Dec 2015 23:41:08 +0000 (15:41 -0800)
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com> [v1]
Reviewed-by: Eric Anholt <eric@anholt.net> [v1]
v2: Move new rule to Boolean simplification section
    Add a a@bool != true simplification

Suggested-by: Neil Roberts <neil@linux.intel.com>
src/glsl/nir/nir_opt_algebraic.py

index 6aa8b1f6caeb1bd6b4e41738f2f3a85f45c556fe..cb715c0b2c1a6e8c279228349c04aadb13c8336f 100644 (file)
@@ -184,8 +184,10 @@ optimizations = [
    (('fsqrt', a), ('frcp', ('frsq', a)), 'options->lower_fsqrt'),
    (('frcp', ('frsq', a)), ('fsqrt', a), '!options->lower_fsqrt'),
    # Boolean simplifications
-   (('ine', 'a@bool', 0), 'a'),
-   (('ieq', 'a@bool', 0), ('inot', 'a')),
+   (('ieq', 'a@bool', True), a),
+   (('ine', 'a@bool', True), ('inot', a)),
+   (('ine', 'a@bool', False), a),
+   (('ieq', 'a@bool', False), ('inot', 'a')),
    (('bcsel', a, True, False), ('ine', a, 0)),
    (('bcsel', a, False, True), ('ieq', a, 0)),
    (('bcsel', True, b, c), b),