Ian and I have been looking at these type of things recently. Ian has started work on a pass to cover this stuff without having to add dozens of these types of opts.

https://lists.freedesktop.org/archives/mesa-dev/2018-July/200583.html

On 23/07/18 17:36, Jason Ekstrand wrote:
Spotted in a shader in Batman: Arkham City.
---
  src/compiler/nir/nir_opt_algebraic.py | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/src/compiler/nir/nir_opt_algebraic.py 
b/src/compiler/nir/nir_opt_algebraic.py
index ba277fdfd0e..f2007852b21 100644
--- a/src/compiler/nir/nir_opt_algebraic.py
+++ b/src/compiler/nir/nir_opt_algebraic.py
@@ -377,6 +377,8 @@ optimizations = [
     (('ixor', a, a), 0),
     (('ixor', a, 0), a),
     (('inot', ('inot', a)), a),
+   (('ior', ('iand', a, b), b), b),
+   (('iand', ('ior', a, b), b), b),
     # DeMorgan's Laws
     (('iand', ('inot', a), ('inot', b)), ('inot', ('ior',  a, b))),
     (('ior',  ('inot', a), ('inot', b)), ('inot', ('iand', a, b))),

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to