From 05c5e52054ff41bfbe47c86d08d61246a40c899a Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 30 Mar 2026 18:09:42 -0400 Subject: [PATCH] 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: bc17288697f8 ("pan/bi: Lower split/collect before RA") Reviewed-by: Lorenzo Rossi Part-of: --- src/panfrost/compiler/bifrost/bi_ra.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/panfrost/compiler/bifrost/bi_ra.c b/src/panfrost/compiler/bifrost/bi_ra.c index b056ec8c9a8..990500a7ac4 100644 --- a/src/panfrost/compiler/bifrost/bi_ra.c +++ b/src/panfrost/compiler/bifrost/bi_ra.c @@ -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]);