We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent b006007 commit 5ececb4Copy full SHA for 5ececb4
llvm/lib/Transforms/Utils/LowerAtomic.cpp
@@ -25,10 +25,11 @@ bool llvm::lowerAtomicCmpXchgInst(AtomicCmpXchgInst *CXI) {
25
Value *Cmp = CXI->getCompareOperand();
26
Value *Val = CXI->getNewValOperand();
27
28
- LoadInst *Orig = Builder.CreateLoad(Val->getType(), Ptr);
+ LoadInst *Orig =
29
+ Builder.CreateAlignedLoad(Val->getType(), Ptr, CXI->getAlign());
30
Value *Equal = Builder.CreateICmpEQ(Orig, Cmp);
31
Value *Res = Builder.CreateSelect(Equal, Val, Orig);
- Builder.CreateStore(Res, Ptr);
32
+ Builder.CreateAlignedStore(Res, Ptr, CXI->getAlign());
33
34
Res = Builder.CreateInsertValue(PoisonValue::get(CXI->getType()), Orig, 0);
35
Res = Builder.CreateInsertValue(Res, Equal, 1);
0 commit comments