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

Reply via email to