nir: Add a couple of iand/ior optimizations
authorJason Ekstrand <jason.ekstrand@intel.com>
Mon, 23 Jul 2018 07:35:02 +0000 (00:35 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Wed, 25 Jul 2018 03:39:43 +0000 (20:39 -0700)
Spotted in a shader in Batman: Arkham City.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/compiler/nir/nir_opt_algebraic.py

index ba277fdfd0e2013dd4fcf5c221ec988c34d0327e..7fc4ff1d407800875abfeda2c59398ca1fcf8dd4 100644 (file)
@@ -377,6 +377,10 @@ optimizations = [
    (('ixor', a, a), 0),
    (('ixor', a, 0), a),
    (('inot', ('inot', a)), a),
+   (('ior', ('iand', a, b), b), b),
+   (('ior', ('ior', a, b), b), ('ior', a, b)),
+   (('iand', ('ior', a, b), b), b),
+   (('iand', ('iand', a, b), b), ('iand', a, b)),
    # DeMorgan's Laws
    (('iand', ('inot', a), ('inot', b)), ('inot', ('ior',  a, b))),
    (('ior',  ('inot', a), ('inot', b)), ('inot', ('iand', a, b))),