pan/bi/ra: Allow offsets on tied sources

The only real requirement here is that the destination offset is zero
and that the destination is big enough to hold the source.  The source
offset doesn't matter.

Fixes: bc17288697 ("pan/bi: Lower split/collect before RA")
Reviewed-by: Lorenzo Rossi <lorenzo.rossi@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40720>
This commit is contained in:
Faith Ekstrand 2026-03-30 18:09:42 -04:00 committed by Marge Bot
parent 538b5c411e
commit 05c5e52054

View file

@ -919,13 +919,12 @@ bi_coalesce_tied(bi_context *ctx)
bi_builder b = bi_init_builder(ctx, bi_before_instr(I));
unsigned n = bi_count_read_registers(I, 0);
bi_index dst = I->dest[0], src = I->src[0];
assert(dst.offset == 0);
for (unsigned i = 0; i < n; ++i) {
bi_index dst = I->dest[0], src = I->src[0];
assert(dst.offset == 0 && src.offset == 0);
dst.offset = src.offset = i;
bi_mov_i32_to(&b, dst, src);
dst.offset++;
src.offset++;
}
bi_replace_src(I, 0, I->dest[0]);