mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-25 22:10:38 +02:00
nir/opt_algebraic: optimize bcsel of b2f and constants
Foz-DB Navi21: Totals from 212 (0.27% of 79789) affected shaders: MaxWaves: 4024 -> 4030 (+0.15%) Instrs: 1314134 -> 1313894 (-0.02%); split: -0.03%, +0.02% CodeSize: 7033216 -> 7026888 (-0.09%); split: -0.10%, +0.01% VGPRs: 14224 -> 14176 (-0.34%) Latency: 7402062 -> 7399180 (-0.04%); split: -0.06%, +0.02% InvThroughput: 1724879 -> 1723773 (-0.06%); split: -0.07%, +0.00% VClause: 37741 -> 37711 (-0.08%); split: -0.11%, +0.03% SClause: 29266 -> 29268 (+0.01%); split: -0.01%, +0.01% Copies: 123810 -> 123786 (-0.02%); split: -0.19%, +0.17% Branches: 42370 -> 42407 (+0.09%); split: -0.03%, +0.11% PreSGPRs: 13149 -> 13196 (+0.36%); split: -0.05%, +0.40% PreVGPRs: 12407 -> 12395 (-0.10%) VALU: 884471 -> 883475 (-0.11%); split: -0.12%, +0.01% SALU: 177671 -> 178408 (+0.41%); split: -0.03%, +0.45% Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33761>
This commit is contained in:
parent
4a62f8bc75
commit
2bfcfef5da
1 changed files with 5 additions and 6 deletions
|
|
@ -734,18 +734,12 @@ optimizations.extend([
|
|||
(('fge', ('fneg', ('b2f', 'a@1')), 0.0), ('inot', a)),
|
||||
|
||||
(('fneu', ('fadd', ('b2f', 'a@1'), ('b2f', 'b@1')), 0.0), ('ior', a, b)),
|
||||
(('fneu', ('bcsel', a, 1.0, ('b2f', 'b@1')) , 0.0), ('ior', a, b)),
|
||||
(('fneu', ('b2f', 'a@1'), ('fneg', ('b2f', 'b@1'))), ('ior', a, b)),
|
||||
(('fneu', ('fmul', ('b2f', 'a@1'), ('b2f', 'b@1')), 0.0), ('iand', a, b)),
|
||||
(('fneu', ('bcsel', a, ('b2f', 'b@1'), 0.0) , 0.0), ('iand', a, b)),
|
||||
(('fneu', ('fadd', ('b2f', 'a@1'), ('fneg', ('b2f', 'b@1'))), 0.0), ('ixor', a, b)),
|
||||
(('fneu', ('b2f', 'a@1') , ('b2f', 'b@1') ), ('ixor', a, b)),
|
||||
(('fneu', ('fneg', ('b2f', 'a@1')), ('fneg', ('b2f', 'b@1'))), ('ixor', a, b)),
|
||||
(('feq', ('fadd', ('b2f', 'a@1'), ('b2f', 'b@1')), 0.0), ('inot', ('ior', a, b))),
|
||||
(('feq', ('bcsel', a, 1.0, ('b2f', 'b@1')) , 0.0), ('inot', ('ior', a, b))),
|
||||
(('feq', ('b2f', 'a@1'), ('fneg', ('b2f', 'b@1'))), ('inot', ('ior', a, b))),
|
||||
(('feq', ('fmul', ('b2f', 'a@1'), ('b2f', 'b@1')), 0.0), ('inot', ('iand', a, b))),
|
||||
(('feq', ('bcsel', a, ('b2f', 'b@1'), 0.0) , 0.0), ('inot', ('iand', a, b))),
|
||||
(('feq', ('fadd', ('b2f', 'a@1'), ('fneg', ('b2f', 'b@1'))), 0.0), ('ieq', a, b)),
|
||||
(('feq', ('b2f', 'a@1') , ('b2f', 'b@1') ), ('ieq', a, b)),
|
||||
(('feq', ('fneg', ('b2f', 'a@1')), ('fneg', ('b2f', 'b@1'))), ('ieq', a, b)),
|
||||
|
|
@ -847,6 +841,11 @@ optimizations.extend([
|
|||
(('fmin', ('b2f(is_used_once)', 'a@1'), ('b2f', 'b@1')), ('b2f', ('iand', a, b))),
|
||||
(('fmin', ('fneg(is_used_once)', ('b2f(is_used_once)', 'a@1')), ('fneg', ('b2f', 'b@1'))), ('fneg', ('b2f', ('ior', a, b)))),
|
||||
|
||||
(('bcsel', a, ('b2f', 'b@1'), 0), ('b2f', ('bcsel', a, b, False))),
|
||||
(('bcsel', a, ('b2f', 'b@1'), 1.0), ('b2f', ('bcsel', a, b, True))),
|
||||
(('bcsel', a, 0, ('b2f', 'b@1')), ('b2f', ('bcsel', a, False, b))),
|
||||
(('bcsel', a, 1.0, ('b2f', 'b@1')), ('b2f', ('bcsel', a, True, b))),
|
||||
|
||||
# fmin(b2f(a), b)
|
||||
# bcsel(a, fmin(b2f(a), b), fmin(b2f(a), b))
|
||||
# bcsel(a, fmin(b2f(True), b), fmin(b2f(False), b))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue