From 4d0233cb1d80f1fed5e3e85eb8eb8229e6a1f2a6 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Thu, 10 Aug 2023 16:21:19 -0400 Subject: [PATCH] agx: Fix uadd_sat packing Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/compiler/agx_pack.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/asahi/compiler/agx_pack.c b/src/asahi/compiler/agx_pack.c index 6c8c545..68c1f9e 100644 --- a/src/asahi/compiler/agx_pack.c +++ b/src/asahi/compiler/agx_pack.c @@ -431,7 +431,8 @@ agx_pack_alu(struct util_dynarray *emission, agx_instr *I) unsigned fmod_offset = is_16 ? 9 : 10; src_short |= (fmod << fmod_offset); } else if (I->op == AGX_OPCODE_IMAD || I->op == AGX_OPCODE_IADD) { - bool zext = I->src[s].abs; + /* Force unsigned for immediates so uadd_sat works properly */ + bool zext = I->src[s].abs || I->src[s].type == AGX_INDEX_IMMEDIATE; bool extends = I->src[s].size < AGX_SIZE_64; unsigned sxt = (extends && !zext) ? (1 << 10) : 0; -- 2.7.4