[llvm] [LoongArch] Don't left shift negative value (PR #106812)
Vitaly Buka via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 30 17:15:06 PDT 2024
https://github.com/vitalybuka created https://github.com/llvm/llvm-project/pull/106812
Fixed another UB from #106332.
>From d2c2d386970bccff45d2b225546860cff19c7bd9 Mon Sep 17 00:00:00 2001
From: Vitaly Buka <vitalybuka at google.com>
Date: Fri, 30 Aug 2024 17:14:46 -0700
Subject: [PATCH] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20initia?=
=?UTF-8?q?l=20version?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Created using spr 1.3.4
---
llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp
index a7823470382756..08e5ccc7bc0be5 100644
--- a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp
+++ b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMatInt.cpp
@@ -82,9 +82,9 @@ LoongArchMatInt::InstSeq LoongArchMatInt::generateInstSeq(int64_t Val) {
TmpVal1 = Insts[1].Imm;
if (N == 3)
break;
- TmpVal2 = Insts[3].Imm << 52 | TmpVal1;
+ TmpVal2 = static_cast<uint64_t>(Insts[3].Imm) << 52 | TmpVal1;
}
- TmpVal1 |= Insts[0].Imm << 12;
+ TmpVal1 |= static_cast<uint64_t>(Insts[0].Imm) << 12;
break;
case LoongArch::ORI:
case LoongArch::ADDI_W:
More information about the llvm-commits
mailing list