nir/opt_algebraic: Optimize check for single bit.
Foz-DB Navi21: Totals from 3239 (2.40% of 134913) affected shaders: SpillSGPRs: 110 -> 102 (-7.27%) CodeSize: 17426512 -> 17344808 (-0.47%); split: -0.48%, +0.01% Instrs: 3194264 -> 3179366 (-0.47%) Latency: 20498012 -> 20481419 (-0.08%); split: -0.08%, +0.00% InvThroughput: 3311738 -> 3311282 (-0.01%); split: -0.02%, +0.00% SClause: 145810 -> 145690 (-0.08%) Copies: 171748 -> 169009 (-1.59%); split: -1.63%, +0.03% Branches: 86610 -> 86370 (-0.28%) PreSGPRs: 138036 -> 137104 (-0.68%) PreVGPRs: 138540 -> 138545 (+0.00%) Signed-off-by: Georg Lehmann <dadschoorse@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17429>
This commit is contained in:
@@ -163,6 +163,8 @@ optimizations = [
|
||||
(('iadd', ('imul', a, b), ('imul', a, c)), ('imul', a, ('iadd', b, c))),
|
||||
(('iand', ('ior', a, b), ('ior', a, c)), ('ior', a, ('iand', b, c))),
|
||||
(('ior', ('iand', a, b), ('iand', a, c)), ('iand', a, ('ior', b, c))),
|
||||
(('ieq', ('iand', a, '#b(is_pos_power_of_two)'), b), ('ine', ('iand', a, b), 0)),
|
||||
(('ine', ('iand', a, '#b(is_pos_power_of_two)'), b), ('ieq', ('iand', a, b), 0)),
|
||||
(('~fadd', ('fneg', a), a), 0.0),
|
||||
(('iadd', ('ineg', a), a), 0),
|
||||
(('iadd', ('ineg', a), ('iadd', a, b)), b),
|
||||
|
Reference in New Issue
Block a user