On 08/09/2016 07:30 PM, Kenneth Graunke wrote: > On Haswell (GL 3.3): > > total instructions in shared programs: 6208759 -> 6203860 (-0.08%) > instructions in affected programs: 856541 -> 851642 (-0.57%) > helped: 3157 > HURT: 113 > LOST: 7 > GAINED: 15 > > On Broadwell (GL 4.4): > > total instructions in shared programs: 11637854 -> 11632016 (-0.05%) > instructions in affected programs: 1055693 -> 1049855 (-0.55%) > helped: 3900 > HURT: 176 > LOST: 1 > GAINED: 18 > > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/compiler/nir/nir_opt_algebraic.py | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/src/compiler/nir/nir_opt_algebraic.py > b/src/compiler/nir/nir_opt_algebraic.py > index 1cf614c..4e9896f 100644 > --- a/src/compiler/nir/nir_opt_algebraic.py > +++ b/src/compiler/nir/nir_opt_algebraic.py > @@ -251,6 +251,10 @@ optimizations = [ > (('ieq', 'a@bool', False), ('inot', 'a')), > (('bcsel', a, True, False), ('ine', a, 0)), > (('bcsel', a, False, True), ('ieq', a, 0)), > + (('bcsel@32', a, 1.0, 0.0), ('b2f', ('ine', a, 0))), > + (('bcsel@32', a, 0.0, 1.0), ('b2f', ('ieq', a, 0))), > + (('bcsel@32', a, -1.0, -0.0), ('fneg', ('b2f', ('ine', a, 0)))), > + (('bcsel@32', a, -0.0, -1.0), ('fneg', ('b2f', ('ieq', a, 0)))),
One of the other things I was experimenting with, that had mixed results, was rearranging larger sequences like x * bcsel(b, 1.0, 0.0). There were a few different ways to handle it, and the optimal way was dependent on the way the Boolean value was generated and on the way the result was used. This dovetailed into my work in removing spurious b2f (and f2i) expressions. > (('bcsel', True, b, c), b), > (('bcsel', False, b, c), c), > # The result of this should be hit by constant propagation and, in the > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev