[Mesa-dev] [PATCH 1/3] nir: Simplify fne(fneg(a), a) -> fne(a, 0.0)

Aaron Watry awatry at gmail.com
Thu Aug 6 08:26:57 PDT 2015


Nevermind. Patch 2 answers that question in the commit message.

--Aaron

On Thu, Aug 6, 2015 at 10:25 AM, Aaron Watry <awatry at gmail.com> wrote:

>
>
> On Thu, Aug 6, 2015 at 6:36 AM, Thomas Helland <thomashelland90 at 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 <thomashelland90 at 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 at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150806/b000309f/attachment.html>


More information about the mesa-dev mailing list