mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 02:58:05 +02:00
nir/load_store_vectorize: set is_store for shared append/consume
So that check_for_aliasing() doesn't ignore them.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Backport-to: 25.1
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36442>
(cherry picked from commit d3476650f1)
This commit is contained in:
parent
f9295bb5ec
commit
4c9b91047b
2 changed files with 8 additions and 3 deletions
|
|
@ -3484,7 +3484,7 @@
|
|||
"description": "nir/load_store_vectorize: set is_store for shared append/consume",
|
||||
"nominated": true,
|
||||
"nomination_type": 4,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null,
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -257,7 +257,9 @@ sort_entries(const void *a_, const void *b_)
|
|||
static unsigned
|
||||
get_bit_size(struct entry *entry)
|
||||
{
|
||||
unsigned size = entry->is_store ? entry->intrin->src[entry->info->value_src].ssa->bit_size : entry->intrin->def.bit_size;
|
||||
unsigned size = entry->info->value_src >= 0
|
||||
? entry->intrin->src[entry->info->value_src].ssa->bit_size
|
||||
: entry->intrin->def.bit_size;
|
||||
return size == 1 ? 32u : size;
|
||||
}
|
||||
|
||||
|
|
@ -599,11 +601,14 @@ create_entry(void *mem_ctx,
|
|||
bool is_shared2 = intrin->intrinsic == nir_intrinsic_load_shared2_amd ||
|
||||
intrin->intrinsic == nir_intrinsic_store_shared2_amd;
|
||||
|
||||
bool is_shared_append = intrin->intrinsic == nir_intrinsic_shared_append_amd ||
|
||||
intrin->intrinsic == nir_intrinsic_shared_consume_amd;
|
||||
|
||||
struct entry *entry = rzalloc(mem_ctx, struct entry);
|
||||
entry->intrin = intrin;
|
||||
entry->instr = &intrin->instr;
|
||||
entry->info = info;
|
||||
entry->is_store = entry->info->value_src >= 0;
|
||||
entry->is_store = entry->info->value_src >= 0 || is_shared_append;
|
||||
entry->num_components =
|
||||
entry->is_store ? intrin->num_components : nir_def_last_component_read(&intrin->def) + 1;
|
||||
if (is_shared2)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue