nir/opt_algebraic: optimize cmp(fneg(a), #b) and feq with fabs

Foz-DB Navi21:
Totals from 2483 (3.13% of 79395) affected shaders:
Instrs: 4067533 -> 4067756 (+0.01%); split: -0.00%, +0.01%
CodeSize: 22525156 -> 22499904 (-0.11%); split: -0.12%, +0.01%
Latency: 51967223 -> 51963654 (-0.01%); split: -0.01%, +0.00%
InvThroughput: 16685020 -> 16683045 (-0.01%); split: -0.01%, +0.00%
SClause: 131890 -> 131907 (+0.01%)
Copies: 402557 -> 402510 (-0.01%); split: -0.01%, +0.00%
Branches: 146962 -> 146958 (-0.00%)
PreSGPRs: 118404 -> 118401 (-0.00%)
PreVGPRs: 123791 -> 123787 (-0.00%)
VALU: 2709846 -> 2710174 (+0.01%); split: -0.00%, +0.01%
SALU: 565883 -> 565786 (-0.02%)

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29467>
This commit is contained in:
Georg Lehmann
2024-05-29 17:01:33 +02:00
committed by Marge Bot
parent 98cc57bccb
commit 434dfb51ca

View File

@@ -602,12 +602,12 @@ optimizations.extend([
(('fge', ('fneg', a), ('fneg', b)), ('fge', b, a)),
(('feq', ('fneg', a), ('fneg', b)), ('feq', b, a)),
(('fneu', ('fneg', a), ('fneg', b)), ('fneu', b, a)),
(('flt', ('fneg', a), -1.0), ('flt', 1.0, a)),
(('flt', -1.0, ('fneg', a)), ('flt', a, 1.0)),
(('fge', ('fneg', a), -1.0), ('fge', 1.0, a)),
(('fge', -1.0, ('fneg', a)), ('fge', a, 1.0)),
(('fneu', ('fneg', a), -1.0), ('fneu', 1.0, a)),
(('feq', -1.0, ('fneg', a)), ('feq', a, 1.0)),
(('flt', ('fneg', 'a(is_not_const)'), '#b'), ('flt', ('fneg', b), a)),
(('flt', '#b', ('fneg', 'a(is_not_const)')), ('flt', a, ('fneg', b))),
(('fge', ('fneg', 'a(is_not_const)'), '#b'), ('fge', ('fneg', b), a)),
(('fge', '#b', ('fneg', 'a(is_not_const)')), ('fge', a, ('fneg', b))),
(('fneu', ('fneg', 'a(is_not_const)'), '#b'), ('fneu', ('fneg', b), a)),
(('feq', '#b', ('fneg', 'a(is_not_const)')), ('feq', a, ('fneg', b))),
(('flt', a, '#b(is_negative_zero)'), ('flt', a, 0.0)),
(('flt', '#b(is_negative_zero)', a), ('flt', 0.0, a)),
(('fge', a, '#b(is_negative_zero)'), ('fge', a, 0.0)),
@@ -619,6 +619,10 @@ optimizations.extend([
(('ine', ('ineg', a), 0), ('ine', a, 0)),
(('ieq', ('iabs', a), 0), ('ieq', a, 0)),
(('ine', ('iabs', a), 0), ('ine', a, 0)),
(('fneu', ('fabs', a), 0.0), ('fneu', a, 0.0)),
(('feq', ('fabs', a), 0.0), ('feq', a, 0.0)),
(('fneu', ('fabs', a), ('fabs', a)), ('fneu', a, a)),
(('feq', ('fabs', a), ('fabs', a)), ('feq', a, a)),
# b < fsat(NaN) -> b < 0 -> false, and b < Nan -> false.
(('flt', '#b(is_gt_0_and_lt_1)', ('fsat(is_used_once)', a)), ('flt', b, a)),