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 +} _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits