From 62508856401e082486f2ff0dc80f17ac852f4882 Mon Sep 17 00:00:00 2001 From: Eric Engestrom Date: Fri, 2 Feb 2024 11:16:22 +0000 Subject: [PATCH] panfrost: fix UB caused by shifting signed int too far Fixes: 13d7ca13001064dc7114 ("pan/va: Optimize add with imm to ADD_IMM") Part-of: --- src/panfrost/compiler/valhall/va_optimize.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/panfrost/compiler/valhall/va_optimize.c b/src/panfrost/compiler/valhall/va_optimize.c index 46202e4d52d..f494bf7f6c4 100644 --- a/src/panfrost/compiler/valhall/va_optimize.c +++ b/src/panfrost/compiler/valhall/va_optimize.c @@ -106,9 +106,9 @@ va_fuse_add_imm(bi_instr *I) /* If the constant is negated, flip the sign bit */ if (I->src[s].neg) { if (I->op == BI_OPCODE_FADD_IMM_F32) - I->index ^= (1 << 31); + I->index ^= (1u << 31); else if (I->op == BI_OPCODE_FADD_IMM_V2F16) - I->index ^= (1 << 31) | (1 << 15); + I->index ^= (1u << 31) | (1u << 15); else unreachable("unexpected .neg"); }