From bc973d687c9dd92c16eba107a215d9c5f37df6b4 Mon Sep 17 00:00:00 2001 From: Romaric Jodin Date: Thu, 19 Jun 2025 17:22:31 +0200 Subject: [PATCH] panvk: fix bi_emit_alu calling bi_make_vec_to bi_emit_alu needs to fully set the vector of bi_index pass to bi_make_vec_to, as it is expected by the callee. Fixes: 3cc6a4c5 ("pan/bi: Handle swizzles in i2i8") Reviewed-by: Mary Guillemard Part-of: --- src/panfrost/compiler/bifrost_compile.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/panfrost/compiler/bifrost_compile.c b/src/panfrost/compiler/bifrost_compile.c index 3c56cb4a3cc..7ab636a98b7 100644 --- a/src/panfrost/compiler/bifrost_compile.c +++ b/src/panfrost/compiler/bifrost_compile.c @@ -2978,11 +2978,14 @@ bi_emit_alu(bi_builder *b, nir_alu_instr *instr) bi_index idx = bi_src_index(&instr->src[0].src); unsigned factor = src_sz / 8; unsigned chan[4] = {0}; + bi_index idxs[4]; - for (unsigned i = 0; i < comps; ++i) + for (unsigned i = 0; i < comps; ++i) { + idxs[i] = idx; chan[i] = instr->src[0].swizzle[i] * factor; + } - bi_make_vec_to(b, dst, &idx, chan, comps, 8); + bi_make_vec_to(b, dst, idxs, chan, comps, 8); return; }