Reviewed-by: Samuel Iglesias Gonsálvez <sigles...@igalia.com>

On 24/02/18 00:55, Ian Romanick wrote:
> From: Ian Romanick <ian.d.roman...@intel.com>
>
> All of the affected shaders are HDR mappers from Serious Sam 3.
>
> All Gen7+ platforms had similar results. (Skylake shown)
> total instructions in shared programs: 14516285 -> 14516273 (<.01%)
> instructions in affected programs: 348 -> 336 (-3.45%)
> helped: 12
> HURT: 0
> helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
> helped stats (rel) min: 2.08% max: 6.67% x̄: 4.31% x̃: 4.17%
> 95% mean confidence interval for instructions value: -1.00 -1.00
> 95% mean confidence interval for instructions %-change: -5.55% -3.06%
> Instructions are helped.
>
> total cycles in shared programs: 533163876 -> 533163808 (<.01%)
> cycles in affected programs: 1144 -> 1076 (-5.94%)
> helped: 4
> HURT: 0
> helped stats (abs) min: 16 max: 18 x̄: 17.00 x̃: 17
> helped stats (rel) min: 5.80% max: 6.08% x̄: 5.94% x̃: 5.94%
> 95% mean confidence interval for cycles value: -18.84 -15.16
> 95% mean confidence interval for cycles %-change: -6.20% -5.68%
> Cycles are helped.
>
> Sandy Bridge
> total instructions in shared programs: 10533321 -> 10533309 (<.01%)
> instructions in affected programs: 372 -> 360 (-3.23%)
> helped: 12
> HURT: 0
> helped stats (abs) min: 1 max: 1 x̄: 1.00 x̃: 1
> helped stats (rel) min: 2.00% max: 5.88% x̄: 3.91% x̃: 3.85%
> 95% mean confidence interval for instructions value: -1.00 -1.00
> 95% mean confidence interval for instructions %-change: -4.96% -2.86%
> Instructions are helped.
>
> total cycles in shared programs: 146136632 -> 146136428 (<.01%)
> cycles in affected programs: 11668 -> 11464 (-1.75%)
> helped: 12
> HURT: 0
> helped stats (abs) min: 16 max: 18 x̄: 17.00 x̃: 17
> helped stats (rel) min: 0.99% max: 3.44% x̄: 2.20% x̃: 2.29%
> 95% mean confidence interval for cycles value: -17.66 -16.34
> 95% mean confidence interval for cycles %-change: -2.82% -1.58%
> Cycles are helped.
>
> Iron Lake
> total instructions in shared programs: 7886301 -> 7886277 (<.01%)
> instructions in affected programs: 576 -> 552 (-4.17%)
> helped: 12
> HURT: 0
> helped stats (abs) min: 2 max: 2 x̄: 2.00 x̃: 2
> helped stats (rel) min: 2.94% max: 6.06% x̄: 4.51% x̃: 4.65%
> 95% mean confidence interval for instructions value: -2.00 -2.00
> 95% mean confidence interval for instructions %-change: -5.30% -3.72%
> Instructions are helped.
>
> total cycles in shared programs: 178113176 -> 178113176 (0.00%)
> cycles in affected programs: 2116 -> 2116 (0.00%)
> helped: 2
> HURT: 4
> helped stats (abs) min: 4 max: 4 x̄: 4.00 x̃: 4
> helped stats (rel) min: 1.14% max: 1.14% x̄: 1.14% x̃: 1.14%
> HURT stats (abs)   min: 2 max: 2 x̄: 2.00 x̃: 2
> HURT stats (rel)   min: 0.50% max: 0.65% x̄: 0.58% x̃: 0.58%
> 95% mean confidence interval for cycles value: -3.25 3.25
> 95% mean confidence interval for cycles %-change: -0.93% 0.94%
> Inconclusive result (value mean confidence interval includes 0).
>
> GM45
> total instructions in shared programs: 4857756 -> 4857744 (<.01%)
> instructions in affected programs: 294 -> 282 (-4.08%)
> helped: 6
> HURT: 0
> helped stats (abs) min: 2 max: 2 x̄: 2.00 x̃: 2
> helped stats (rel) min: 2.94% max: 5.71% x̄: 4.40% x̃: 4.55%
> 95% mean confidence interval for instructions value: -2.00 -2.00
> 95% mean confidence interval for instructions %-change: -5.71% -3.09%
> Instructions are helped.
>
> total cycles in shared programs: 122178730 -> 122178722 (<.01%)
> cycles in affected programs: 700 -> 692 (-1.14%)
> helped: 2
> HURT: 0
>
> Signed-off-by: Ian Romanick <ian.d.roman...@intel.com>
> ---
>  src/compiler/nir/nir_opt_algebraic.py | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/src/compiler/nir/nir_opt_algebraic.py 
> b/src/compiler/nir/nir_opt_algebraic.py
> index 65211e6..314b064 100644
> --- a/src/compiler/nir/nir_opt_algebraic.py
> +++ b/src/compiler/nir/nir_opt_algebraic.py
> @@ -176,6 +176,15 @@ optimizations = [
>     (('fmin',                        ('b2f(is_used_once)', a),           
> ('b2f', b)),           ('b2f', ('iand', a, b))),
>     (('fmin', ('fneg(is_used_once)', ('b2f(is_used_once)', a)), ('fneg', 
> ('b2f', b))), ('fneg', ('b2f', ('iand', a, b)))),
>  
> +   # fmin(b2f(a), b)
> +   # bcsel(a, fmin(b2f(a), b), fmin(b2f(a), b))
> +   # bcsel(a, fmin(b2f(True), b), fmin(b2f(False), b))
> +   # bcsel(a, fmin(1.0, b), fmin(0.0, b))
> +   #
> +   # Since b is a constant, constant folding will eliminate the fmin and the
> +   # fmax.  If b is > 1.0, the bcsel will be replaced with a b2f.
> +   (('fmin', ('b2f', a), '#b'), ('bcsel', a, ('fmin', b, 1.0), ('fmin', b, 
> 0.0))),
> +
>     # ignore this opt when the result is used by a bcsel or if so we can make
>     # use of conditional modifiers on supported hardware.
>     (('flt(is_not_used_by_conditional)', ('fadd(is_used_once)', a, ('fneg', 
> b)), 0.0), ('flt', a, b)),

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to