From: Dominik Montada Date: Thu, 30 Jan 2020 13:25:10 +0000 (-0500) Subject: [GlobalISel] (fix) Use pointer type size for offset constant when lowering stores X-Git-Tag: llvmorg-12-init~16310 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dc141af7553871b94f0d7cb4b1f2096578a923be;p=platform%2Fupstream%2Fllvm.git [GlobalISel] (fix) Use pointer type size for offset constant when lowering stores Commit 9965b12fd1b was supposed to change the offset constant when lowering load/stores, but only introduced this change for loads. This patch adds the same fix for stores. --- diff --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp index 5eb87c2..1bdd8eb 100644 --- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp +++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp @@ -2346,8 +2346,8 @@ LegalizerHelper::lower(MachineInstr &MI, unsigned TypeIdx, LLT Ty) { // Generate the PtrAdd and truncating stores. LLT PtrTy = MRI.getType(PtrReg); - auto OffsetCst = - MIRBuilder.buildConstant(LLT::scalar(64), LargeSplitSize / 8); + auto OffsetCst = MIRBuilder.buildConstant( + LLT::scalar(PtrTy.getSizeInBits()), LargeSplitSize / 8); Register PtrAddReg = MRI.createGenericVirtualRegister(PtrTy); auto SmallPtr = MIRBuilder.buildPtrAdd(PtrAddReg, PtrReg, OffsetCst.getReg(0));