Skip to content

Commit af110e1

Browse files
authored
[X86] combineTruncate - drop load alignment after (trunc (srl (load p), amt)) -> (load p + amt/8) fold (#165436)
The pointer adjustment no longer guarantees any alignment Missed in #165266 and only noticed in some follow up work
1 parent 22f860a commit af110e1

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

llvm/lib/Target/X86/X86ISelLowering.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54679,7 +54679,8 @@ static SDValue combineTruncate(SDNode *N, SelectionDAG &DAG,
5467954679
SDValue NewPtr = DAG.getMemBasePlusOffset(
5468054680
Ld->getBasePtr(), PtrByteOfs, DL, SDNodeFlags::NoUnsignedWrap);
5468154681
SDValue NewLoad =
54682-
DAG.getLoad(VT, DL, Ld->getChain(), NewPtr, Ld->getMemOperand());
54682+
DAG.getLoad(VT, DL, Ld->getChain(), NewPtr, Ld->getPointerInfo(),
54683+
Align(), Ld->getMemOperand()->getFlags());
5468354684
DAG.ReplaceAllUsesOfValueWith(Src.getOperand(0).getValue(1),
5468454685
NewLoad.getValue(1));
5468554686
return NewLoad;

0 commit comments

Comments
 (0)