ir3/a6xx: fix ldg/stg of ulong2 and ulong4 data

Partially revert the commit f4c9e9329c ("ir3/a6xx: Fix immediate
offset stg/ldg path").

There is no need to multiply the immediate offsets by 4. Doing so
results in loading and/or storing the data at wrong locations.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26817>
This commit is contained in:
Dmitry Baryshkov 2023-10-22 18:05:23 +00:00 committed by Marge Bot
parent 3f25a73f17
commit 60686d4146

View file

@ -343,7 +343,7 @@ emit_intrinsic_load_global_ir3(struct ir3_context *ctx,
nir_src_as_int(intr->src[1]) > -(1 << 10);
if (const_offset_in_bounds) {
load = ir3_LDG(b, addr, 0, create_immed(b, nir_src_as_int(intr->src[1]) * 4),
load = ir3_LDG(b, addr, 0, create_immed(b, nir_src_as_int(intr->src[1])),
0, create_immed(b, dest_components), 0);
} else {
offset = ir3_get_src(ctx, &intr->src[1])[0];
@ -386,7 +386,7 @@ emit_intrinsic_store_global_ir3(struct ir3_context *ctx,
if (const_offset_in_bounds) {
stg = ir3_STG(b, addr, 0,
create_immed(b, nir_src_as_int(intr->src[2]) * 4), 0,
create_immed(b, nir_src_as_int(intr->src[2])), 0,
value, 0,
create_immed(b, ncomp), 0);
} else {