Skip to content

Commit 5ececb4

Browse files
authored
LowerAtomic: Use explicit alignment in lowerAtomicCmpXchgInst (#103767)
1 parent b006007 commit 5ececb4

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

llvm/lib/Transforms/Utils/LowerAtomic.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@ bool llvm::lowerAtomicCmpXchgInst(AtomicCmpXchgInst *CXI) {
2525
Value *Cmp = CXI->getCompareOperand();
2626
Value *Val = CXI->getNewValOperand();
2727

28-
LoadInst *Orig = Builder.CreateLoad(Val->getType(), Ptr);
28+
LoadInst *Orig =
29+
Builder.CreateAlignedLoad(Val->getType(), Ptr, CXI->getAlign());
2930
Value *Equal = Builder.CreateICmpEQ(Orig, Cmp);
3031
Value *Res = Builder.CreateSelect(Equal, Val, Orig);
31-
Builder.CreateStore(Res, Ptr);
32+
Builder.CreateAlignedStore(Res, Ptr, CXI->getAlign());
3233

3334
Res = Builder.CreateInsertValue(PoisonValue::get(CXI->getType()), Orig, 0);
3435
Res = Builder.CreateInsertValue(Res, Equal, 1);

0 commit comments

Comments
 (0)