aco: check that global addresses are 64bit, apply_nuw_to_ssa to global_amd/smem

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37101>
This commit is contained in:
Marek Olšák 2025-08-18 20:16:24 -04:00
parent 2d0f93631c
commit 7d5288b5b7
2 changed files with 5 additions and 0 deletions

View file

@ -205,6 +205,10 @@ apply_nuw_to_offsets(isel_context* ctx, nir_function_impl* impl)
case nir_intrinsic_load_scratch: apply_nuw_to_ssa(ctx, intrin->src[0].ssa); break;
case nir_intrinsic_store_scratch:
case nir_intrinsic_load_smem_amd: apply_nuw_to_ssa(ctx, intrin->src[1].ssa); break;
case nir_intrinsic_load_global_amd:
if (nir_intrinsic_access(intrin) & ACCESS_SMEM_AMD)
apply_nuw_to_ssa(ctx, intrin->src[1].ssa);
break;
default: break;
}
}

View file

@ -2295,6 +2295,7 @@ parse_global(isel_context* ctx, nir_intrinsic_instr* intrin, Temp* address, uint
{
bool is_store = intrin->intrinsic == nir_intrinsic_store_global_amd;
*address = get_ssa_temp(ctx, intrin->src[is_store ? 1 : 0].ssa);
assert(address->bytes() == 8);
*const_offset = nir_intrinsic_base(intrin);