From 0db5577ee2e0f037a6e630c5831393664e88cf16 Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Wed, 29 Apr 2026 16:58:23 -0700 Subject: [PATCH] ir3: Fix shared IMAD24 lowering. Caught by dEQP-VK.spirv_assembly.instruction.compute.opsdotkhr.all_us_v2i16_out32 and friends in !41178 Fixes: b4874aa5cf5 ("ir3: Use scalar ALU instructions when possible") (cherry picked from commit d8b525466ca4d51a75d460f84697dd497d7c5a43) Part-of: --- .pick_status.json | 2 +- src/freedreno/ir3/ir3_compiler_nir.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index f61873ef592..9c58cab7142 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2234,7 +2234,7 @@ "description": "ir3: Fix shared IMAD24 lowering.", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "b4874aa5cf56a7041eb609b6d9829719f8a49bcb", "notes": null diff --git a/src/freedreno/ir3/ir3_compiler_nir.c b/src/freedreno/ir3/ir3_compiler_nir.c index 38d9db43782..8c3cf4d2610 100644 --- a/src/freedreno/ir3/ir3_compiler_nir.c +++ b/src/freedreno/ir3/ir3_compiler_nir.c @@ -870,7 +870,7 @@ emit_alu(struct ir3_context *ctx, nir_alu_instr *alu) case nir_op_imad24_ir3: if (use_shared) { dst = ir3_ADD_U_rpt(b, dst_sz, - ir3_MUL_U24_rpt(b, dst_sz, src[0], 0, src[1], 0), + ir3_MUL_S24_rpt(b, dst_sz, src[0], 0, src[1], 0), 0, src[2], 0); } else { dst = ir3_MAD_S24_rpt(b, dst_sz, src[0], 0, src[1], 0, src[2], 0);