On 07/23/2018 07:10 AM, Jason Ekstrand wrote: > On Mon, Jul 23, 2018 at 1:08 AM Timothy Arceri <tarc...@itsqueeze.com > <mailto:tarc...@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@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev