don't repeat function names in comments; NFC
[oota-llvm.git] / lib / Transforms / Scalar / LowerAtomic.cpp
index 4251ac47ed51b3ba2e46b7318525aace4fe1a444..3314e1ed41abfc2b6931fb9c09ff3e55c2ee2f6a 100644 (file)
@@ -32,7 +32,10 @@ static bool LowerAtomicCmpXchgInst(AtomicCmpXchgInst *CXI) {
   Value *Res = Builder.CreateSelect(Equal, Val, Orig);
   Builder.CreateStore(Res, Ptr);
 
-  CXI->replaceAllUsesWith(Orig);
+  Res = Builder.CreateInsertValue(UndefValue::get(CXI->getType()), Orig, 0);
+  Res = Builder.CreateInsertValue(Res, Equal, 1);
+
+  CXI->replaceAllUsesWith(Res);
   CXI->eraseFromParent();
   return true;
 }