Nevermind. Patch 2 answers that question in the commit message. --Aaron
On Thu, Aug 6, 2015 at 10:25 AM, Aaron Watry <awa...@gmail.com> wrote: > > > On Thu, Aug 6, 2015 at 6:36 AM, Thomas Helland <thomashellan...@gmail.com> > wrote: > >> -NaN != NaN, and -Inf != Inf, so this should be safe. >> > > What about -0.0 ? Does feq/fne treat both negative and positive zero as > equivalent? > > --Aaron > > >> 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 <thomashellan...@gmail.com> >> --- >> src/glsl/nir/nir_opt_algebraic.py | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/src/glsl/nir/nir_opt_algebraic.py >> b/src/glsl/nir/nir_opt_algebraic.py >> index 3068445..471191b 100644 >> --- a/src/glsl/nir/nir_opt_algebraic.py >> +++ b/src/glsl/nir/nir_opt_algebraic.py >> @@ -113,6 +113,7 @@ optimizations = [ >> (('sge', a, b), ('b2f', ('fge', a, b)), 'options->lower_scmp'), >> (('seq', a, b), ('b2f', ('feq', a, b)), 'options->lower_scmp'), >> (('sne', a, b), ('b2f', ('fne', a, b)), 'options->lower_scmp'), >> + (('fne', ('fneg', a), a), ('fne', a, 0.0)), >> # Emulating booleans >> (('imul', ('b2i', a), ('b2i', b)), ('b2i', ('iand', a, b))), >> (('fmul', ('b2f', a), ('b2f', b)), ('b2f', ('iand', a, b))), >> -- >> 2.5.0 >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev >> > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev