From: Ian Romanick Date: Thu, 1 Feb 2018 23:33:04 +0000 (-0800) Subject: nir: Pull b2f out of bcsel X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b974dfee114cc7a4857af324e86ab81318c78176;p=mesa.git nir: Pull b2f out of bcsel All platforms had similar results. (Skylake shown) total instructions in shared programs: 14516592 -> 14516586 (<.01%) instructions in affected programs: 500 -> 494 (-1.20%) helped: 2 HURT: 0 total cycles in shared programs: 533167044 -> 533166998 (<.01%) cycles in affected programs: 6988 -> 6942 (-0.66%) helped: 2 HURT: 0 Signed-off-by: Ian Romanick Reviewed-by: Samuel Iglesias Gonsálvez --- diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py index 553f82065a1..d94536439c8 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -372,6 +372,7 @@ optimizations = [ (('bcsel@32', a, -0.0, -1.0), ('fneg', ('b2f', ('inot', a)))), (('bcsel', True, b, c), b), (('bcsel', False, b, c), c), + (('bcsel', a, ('b2f(is_used_once)', b), ('b2f', c)), ('b2f', ('bcsel', a, b, c))), # The result of this should be hit by constant propagation and, in the # next round of opt_algebraic, get picked up by one of the above two. (('bcsel', '#a', b, c), ('bcsel', ('ine', 'a', 0), b, c)),