[llvm-branch-commits] [llvm] 9429165 - [PowerPC] Use getSignedTargetConstant in SelectOptimalAddrMode. (#127305)

Tom Stellard via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Sat Feb 15 22:12:28 PST 2025


Author: Craig Topper
Date: 2025-02-15T22:12:01-08:00
New Revision: 94291653a7414df9d825d6be9d10be345456d30c

URL: https://github.com/llvm/llvm-project/commit/94291653a7414df9d825d6be9d10be345456d30c
DIFF: https://github.com/llvm/llvm-project/commit/94291653a7414df9d825d6be9d10be345456d30c.diff

LOG: [PowerPC] Use getSignedTargetConstant in SelectOptimalAddrMode. (#127305)

Fixes #127298.

(cherry picked from commit 256145b4b0058ae22a1040cd4b7ea44fc49a4ece)

Added: 
    llvm/test/CodeGen/PowerPC/pr127298.ll

Modified: 
    llvm/lib/Target/PowerPC/PPCISelLowering.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
index 4ca328bd9a9ba..21ff6f050817a 100644
--- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
@@ -19050,8 +19050,8 @@ PPC::AddrMode PPCTargetLowering::SelectOptimalAddrMode(const SDNode *Parent,
         int32_t Addr = (int32_t)CNImm;
         // Otherwise, break this down into LIS + Disp.
         Disp = DAG.getSignedTargetConstant((int16_t)Addr, DL, MVT::i32);
-        Base =
-            DAG.getTargetConstant((Addr - (int16_t)Addr) >> 16, DL, MVT::i32);
+        Base = DAG.getSignedTargetConstant((Addr - (int16_t)Addr) >> 16, DL,
+                                           MVT::i32);
         uint32_t LIS = CNType == MVT::i32 ? PPC::LIS : PPC::LIS8;
         Base = SDValue(DAG.getMachineNode(LIS, DL, CNType, Base), 0);
         break;

diff  --git a/llvm/test/CodeGen/PowerPC/pr127298.ll b/llvm/test/CodeGen/PowerPC/pr127298.ll
new file mode 100644
index 0000000000000..f7560216ef7d8
--- /dev/null
+++ b/llvm/test/CodeGen/PowerPC/pr127298.ll
@@ -0,0 +1,13 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
+; RUN: llc < %s -mtriple=powerpc | FileCheck %s
+
+define void @foo() {
+; CHECK-LABEL: foo:
+; CHECK:       # %bb.0: # %Entry
+; CHECK-NEXT:    lis 3, -8530
+; CHECK-NEXT:    lbz 3, -16657(3)
+; CHECK-NEXT:    blr
+Entry:
+  %0 = load volatile i8, ptr inttoptr (i32 -559038737 to ptr), align 1
+  ret void
+}


        


More information about the llvm-branch-commits mailing list