mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-30 23:28:06 +02:00
nir/opt_algebraic: create 16bit fmin/fmax if only used by pack_half_2x16_rtz_split
Foz-DB Navi21: Totals from 1842 (2.30% of 80066) affected shaders: Instrs: 869152 -> 866751 (-0.28%) CodeSize: 4687316 -> 4682496 (-0.10%); split: -0.14%, +0.03% VGPRs: 75216 -> 75312 (+0.13%) Latency: 7297749 -> 7297929 (+0.00%); split: -0.01%, +0.02% InvThroughput: 1864933 -> 1860706 (-0.23%); split: -0.23%, +0.00% Copies: 52679 -> 52463 (-0.41%) VALU: 665076 -> 662890 (-0.33%) SALU: 56226 -> 56010 (-0.38%) Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36535>
This commit is contained in:
parent
22afe83473
commit
8512479097
1 changed files with 13 additions and 0 deletions
|
|
@ -3015,6 +3015,19 @@ optimizations += [
|
|||
('fmax', ('f2f16', ('vec2', a, c)), ('f2f16', ('vec2', b, d))), 'options->support_16bit_alu'),
|
||||
(('f2f16', ('vec2(is_used_once)', ('fmin(is_used_once)', a, '#b'), ('fmin(is_used_once)', c, '#d'))),
|
||||
('fmin', ('f2f16', ('vec2', a, c)), ('f2f16', ('vec2', b, d))), 'options->support_16bit_alu'),
|
||||
|
||||
(('pack_half_2x16_rtz_split', ('fmax(is_used_once)', a, '#b'), ('fmax(is_used_once)', c, '#d')),
|
||||
('pack_32_2x16', ('fmax', ('unpack_32_2x16', ('pack_half_2x16_rtz_split', a, c)), ('unpack_32_2x16', ('pack_half_2x16_rtz_split', b, d)))),
|
||||
'options->vectorize_vec2_16bit'),
|
||||
(('pack_half_2x16_rtz_split', ('fmin(is_used_once)', a, '#b'), ('fmin(is_used_once)', c, '#d')),
|
||||
('pack_32_2x16', ('fmin', ('unpack_32_2x16', ('pack_half_2x16_rtz_split', a, c)), ('unpack_32_2x16', ('pack_half_2x16_rtz_split', b, d)))),
|
||||
'options->vectorize_vec2_16bit'),
|
||||
(('pack_half_2x16_rtz_split', ('fneg(is_used_once)', ('fmax(is_used_once)', a, '#b')), ('fneg(is_used_once)', ('fmax(is_used_once)', c, '#d'))),
|
||||
('pack_32_2x16', ('fmin', ('fneg', ('unpack_32_2x16', ('pack_half_2x16_rtz_split', a, c))), ('fneg', ('unpack_32_2x16', ('pack_half_2x16_rtz_split', b, d))))),
|
||||
'options->vectorize_vec2_16bit'),
|
||||
(('pack_half_2x16_rtz_split', ('fneg(is_used_once)', ('fmin(is_used_once)', a, '#b')), ('fneg(is_used_once)', ('fmin(is_used_once)', c, '#d'))),
|
||||
('pack_32_2x16', ('fmax', ('fneg', ('unpack_32_2x16', ('pack_half_2x16_rtz_split', a, c))), ('fneg', ('unpack_32_2x16', ('pack_half_2x16_rtz_split', b, d))))),
|
||||
'options->vectorize_vec2_16bit'),
|
||||
]
|
||||
|
||||
# Some operations such as iadd have the property that the bottom N bits of the
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue