[Mesa-dev] [PATCH] nir: lower fexp2(fmul(flog2(a), 2)) to fmul(a, a)

Samuel Pitoiset samuel.pitoiset at gmail.com
Wed Feb 7 09:29:30 UTC 2018



On 02/06/2018 12:29 AM, Ian Romanick wrote:
> Do you have any data from shader-db for this change (and the other patch)?

We didn't see any changes for this patch on ivy bridge, but it helps 
when fpow is lowered.

shader-db results for the other patch https://hastebin.com/gajajodebo.hs 
on ivy bridge, seems good overall.

> 
> On 02/05/2018 06:08 AM, Samuel Pitoiset wrote:
>> Similar for the 4 case.
>>
>> Suggested by Bas.
>>
>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>> ---
>>   src/compiler/nir/nir_opt_algebraic.py | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py
>> index 6dc19d9b12..b30d1df199 100644
>> --- a/src/compiler/nir/nir_opt_algebraic.py
>> +++ b/src/compiler/nir/nir_opt_algebraic.py
>> @@ -321,6 +321,8 @@ optimizations = [
>>      (('~fexp2', ('fmul', ('flog2', a), b)), ('fpow', a, b), '!options->lower_fpow'), # 2^(lg2(a)*b) = a^b
>>      (('~fexp2', ('fadd', ('fmul', ('flog2', a), b), ('fmul', ('flog2', c), d))),
>>       ('~fmul', ('fpow', a, b), ('fpow', c, d)), '!options->lower_fpow'), # 2^(lg2(a) * b + lg2(c) + d) = a^b * c^d
>> +   (('~fexp2', ('fmul', ('flog2', a), 2.0)), ('fmul', a, a)),
>> +   (('~fexp2', ('fmul', ('flog2', a), 4.0)), ('fmul', ('fmul', a, a), ('fmul', a, a))),
>>      (('~fpow', a, 1.0), a),
>>      (('~fpow', a, 2.0), ('fmul', a, a)),
>>      (('~fpow', a, 4.0), ('fmul', ('fmul', a, a), ('fmul', a, a))),
>>
> 


More information about the mesa-dev mailing list