From: Jason Ekstrand Date: Wed, 15 Aug 2018 09:29:42 +0000 (-0500) Subject: nir/algebraic: Add some max/min optimizations X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d448fa3ae35c3aa4e7bf25f8b1870315573e32fa;p=mesa.git nir/algebraic: Add some max/min optimizations Found by inspection. This doesn't help much now but we'll see this pattern with images if you load UNORM and then store UNORM. Shader-db results on Kaby Lake: total instructions in shared programs: 15166916 -> 15166910 (<.01%) instructions in affected programs: 761 -> 755 (-0.79%) helped: 6 HURT: 0 Reviewed-by: Bas Nieuwenhuizen Reviewed-by: Kenneth Graunke --- diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py index 8a0ddf1c325..ae1261f8744 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -302,6 +302,12 @@ optimizations = [ (('imax', a, a), a), (('umin', a, a), a), (('umax', a, a), a), + (('fmax', ('fmax', a, b), b), ('fmax', a, b)), + (('umax', ('umax', a, b), b), ('umax', a, b)), + (('imax', ('imax', a, b), b), ('imax', a, b)), + (('fmin', ('fmin', a, b), b), ('fmin', a, b)), + (('umin', ('umin', a, b), b), ('umin', a, b)), + (('imin', ('imin', a, b), b), ('imin', a, b)), (('fmax', a, ('fneg', a)), ('fabs', a)), (('imax', a, ('ineg', a)), ('iabs', a)), (('fmin', a, ('fneg', a)), ('fneg', ('fabs', a))),