[Mesa-dev] [PATCH] nir: Add a couple of iand/ior optimizations

Ian Romanick idr at freedesktop.org
Wed Aug 1 18:56:14 UTC 2018


On 07/23/2018 07:10 AM, Jason Ekstrand wrote:
> On Mon, Jul 23, 2018 at 1:08 AM Timothy Arceri <tarceri at itsqueeze.com
> <mailto:tarceri at itsqueeze.com>> wrote:
> 
>     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
> 
> 
> Does said pass work only on logical operations with booleans or also
> regular bitwise operations?  This patch is for bitwise operations though
> it naturally works with booleans.

Currently I'm only tackling Booleans, but I have plans to eventually
extend it to regular bitwise operations.

A bunch of these kinds of algebraic optimizations will "fight" with the
new pass leading to infinite optimization loops.  I'll probably have to
add some sort of @nonbool tag to a bunch of these.  I've still got 99
problems, and this isn't in the top 10. :(

> --Jason
>  
> 
>     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
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list