[Mesa-dev] [PATCH 1/3] nir: Simplify fne(fneg(a), a) -> fne(a, 0.0)
mattst88 at gmail.com
Thu Aug 6 15:48:19 PDT 2015
On Thu, Aug 6, 2015 at 4:36 AM, Thomas Helland
<thomashelland90 at gmail.com> wrote:
> -NaN != NaN, and -Inf != Inf, so this should be safe.
> Found while working on my VRP pass.
> Shader-db results on my IVB:
> total instructions in shared programs: 1698267 -> 1698067 (-0.01%)
> instructions in affected programs: 15785 -> 15585 (-1.27%)
> helped: 36
> HURT: 0
> GAINED: 0
> LOST: 0
> Some shaders was found to have the following pattern in NIR:
> vec1 ssa_26 = fneg ssa_21
> vec1 ssa_27 = fne ssa_21, ssa_26
> Make that:
> vec1 ssa_27 = fne ssa_21, 0.0f
> This is found in Dota2 and Brutal Legend.
> One shader is cut by 8%, from 323 -> 296 instructons in SIMD8
> Signed-off-by: Thomas Helland <thomashelland90 at gmail.com>
I have seen this pattern before and I believe this is safe.
Reviewed-by: Matt Turner <mattst88 at gmail.com>
More information about the mesa-dev