[Mesa-dev] [PATCH 1/2] nir: Optimize (a*b)+(a*c) -> a*(b+c)
Matt Turner
mattst88 at gmail.com
Sat Feb 28 11:43:25 PST 2015
On Sat, Feb 28, 2015 at 11:32 AM, Thomas Helland
<thomashelland90 at gmail.com> wrote:
> Shader-db i965 instructions:
> total instructions in shared programs: 1715894 -> 1710802 (-0.30%)
> instructions in affected programs: 443080 -> 437988 (-1.15%)
> helped: 1502
> HURT: 13
> GAINED: 4
> LOST: 4
>
> Shader-db NIR instructions:
> total instructions in shared programs: 607710 -> 606187 (-0.25%)
> instructions in affected programs: 208285 -> 206762 (-0.73%)
> helped: 769
> HURT: 8
> GAINED: 0
> LOST: 0
>
> Signed-off-by: Thomas Helland <thomashelland90 at gmail.com>
> ---
> src/glsl/nir/nir_opt_algebraic.py | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/src/glsl/nir/nir_opt_algebraic.py b/src/glsl/nir/nir_opt_algebraic.py
> index 7bf6431..688ceff 100644
> --- a/src/glsl/nir/nir_opt_algebraic.py
> +++ b/src/glsl/nir/nir_opt_algebraic.py
> @@ -56,6 +56,8 @@ optimizations = [
> (('iabs', ('ineg', a)), ('iabs', a)),
> (('fadd', a, 0.0), a),
> (('iadd', a, 0), a),
> + (('fadd', ('fmul', a, b), ('fmul', a, c)), ('fmul', a, ('fadd', b, c))),
Neither of the optimizations added in these two patches are safe for
floating-point values, strictly speaking.
I think we're probably okay with that though, at least for now.
Both are
Reviewed-by: Matt Turner <mattst88 at gmail.com>
More information about the mesa-dev
mailing list