nir/lower_subgroups: remove lower_fp64 option

This was incorrect (it also lowered int64 reductions/scans), and the only
user can just use the general callback to precisely only lower what it wants.

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37164>
This commit is contained in:
Georg Lehmann 2025-09-03 14:54:04 +02:00 committed by Marge Bot
parent 687510495f
commit 08b58c3fac
2 changed files with 3 additions and 7 deletions

View file

@ -5515,7 +5515,6 @@ typedef struct nir_lower_subgroups_options {
uint8_t ballot_bit_size;
uint8_t ballot_components;
bool lower_to_scalar : 1;
bool lower_fp64 : 1;
bool lower_vote_trivial : 1;
bool lower_vote_feq : 1;
bool lower_vote_ieq : 1;

View file

@ -1077,8 +1077,7 @@ lower_subgroups_instr(nir_builder *b, nir_instr *instr, void *_options)
return lower_vote_eq(b, intrin);
} else {
if (intrin->intrinsic == nir_intrinsic_vote_feq &&
(options->lower_vote_feq ||
(options->lower_fp64 && intrin->src[0].ssa->bit_size == 64)))
options->lower_vote_feq)
return lower_vote_eq(b, intrin);
if (intrin->intrinsic == nir_intrinsic_vote_ieq &&
options->lower_vote_ieq)
@ -1339,8 +1338,7 @@ lower_subgroups_instr(nir_builder *b, nir_instr *instr, void *_options)
if (intrin->def.bit_size == 1 && options->ballot_components == 1 &&
(options->lower_boolean_reduce || options->lower_reduce))
return lower_boolean_reduce(b, intrin, options);
if (options->lower_reduce ||
(options->lower_fp64 && intrin->def.bit_size == 64))
if (options->lower_reduce)
return lower_scan_reduce(b, intrin, options);
return ret;
}
@ -1351,8 +1349,7 @@ lower_subgroups_instr(nir_builder *b, nir_instr *instr, void *_options)
if (intrin->def.bit_size == 1 && options->ballot_components == 1 &&
(options->lower_boolean_reduce || options->lower_reduce))
return lower_boolean_reduce(b, intrin, options);
if (options->lower_reduce ||
(options->lower_fp64 && intrin->def.bit_size == 64))
if (options->lower_reduce)
return lower_scan_reduce(b, intrin, options);
break;