[Mesa-dev] [PATCH 4/4] nir: add a couple of ior opts to nir_opt_algebraic

Timothy Arceri tarceri at itsqueeze.com
Mon Jul 16 04:55:08 UTC 2018


On 16/07/18 14:25, Jason Ekstrand wrote:
> How about just adding
> 
> (('ior', 'a at bool', ('ieq', a, 0)), True)
> 
> and maybe also
> 
> (('ior', 'a at bool', ('inot', a)), True)
> 
> while you're at it.

Ah yes that's much better. Will do.

> 
> --Jason
> 
> On Sun, Jul 15, 2018 at 4:27 PM Timothy Arceri <tarceri at itsqueeze.com 
> <mailto:tarceri at itsqueeze.com>> wrote:
> 
>     One of these was seen in a Deus Ex shader.
>     ---
>       src/compiler/nir/nir_opt_algebraic.py | 3 +++
>       1 file changed, 3 insertions(+)
> 
>     diff --git a/src/compiler/nir/nir_opt_algebraic.py
>     b/src/compiler/nir/nir_opt_algebraic.py
>     index 0986dde6851..682d498b79b 100644
>     --- a/src/compiler/nir/nir_opt_algebraic.py
>     +++ b/src/compiler/nir/nir_opt_algebraic.py
>     @@ -286,6 +286,9 @@ optimizations = [
>          (('iand', ('uge(is_used_once)', a, b), ('uge', a, c)), ('uge',
>     a, ('umax', b, c))),
>          (('iand', ('uge(is_used_once)', a, c), ('uge', b, c)), ('uge',
>     ('umin', a, b), c)),
> 
>     +   (('ior', ('flt', a, b), ('ieq', ('flt', a, b), 0)), True),
>     +   (('ior', ('fge', a, b), ('ieq', ('fge', a, b), 0)), True),
>     +
>          (('iand', ('ieq', 'a at 32', 0), ('ieq', 'b at 32', 0)), ('ieq',
>     ('ior', 'a at 32', 'b at 32'), 0)),
> 
>          # These patterns can result when (a < b || a < c) => (a <
>     min(b, c))
>     -- 
>     2.17.1
> 
>     _______________________________________________
>     mesa-dev mailing list
>     mesa-dev at lists.freedesktop.org <mailto:mesa-dev at lists.freedesktop.org>
>     https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 


More information about the mesa-dev mailing list