Index: src/IceTargetLoweringX8632.cpp |
diff --git a/src/IceTargetLoweringX8632.cpp b/src/IceTargetLoweringX8632.cpp |
index ebfc4d2da1ea6eaa5e0d5f728ad959b13808bc90..fd58120bdfdbf26940f9103c3b32176acc68e7c4 100644 |
--- a/src/IceTargetLoweringX8632.cpp |
+++ b/src/IceTargetLoweringX8632.cpp |
@@ -2857,16 +2857,12 @@ void TargetX8632::lowerInsertElement(const InstInsertElement *Inst) { |
} |
void TargetX8632::lowerIntrinsicCall(const InstIntrinsicCall *Instr) { |
- switch (Instr->getIntrinsicInfo().ID) { |
+ switch (Intrinsics::IntrinsicID ID = Instr->getIntrinsicInfo().ID) { |
case Intrinsics::AtomicCmpxchg: { |
if (!Intrinsics::VerifyMemoryOrder( |
- llvm::cast<ConstantInteger32>(Instr->getArg(3))->getValue())) { |
- Func->setError("Unexpected memory ordering (success) for AtomicCmpxchg"); |
- return; |
- } |
- if (!Intrinsics::VerifyMemoryOrder( |
+ ID, llvm::cast<ConstantInteger32>(Instr->getArg(3))->getValue(), |
llvm::cast<ConstantInteger32>(Instr->getArg(4))->getValue())) { |
- Func->setError("Unexpected memory ordering (failure) for AtomicCmpxchg"); |
+ Func->setError("Unexpected memory ordering for AtomicCmpxchg"); |
return; |
} |
Variable *DestPrev = Instr->getDest(); |
@@ -2880,7 +2876,7 @@ void TargetX8632::lowerIntrinsicCall(const InstIntrinsicCall *Instr) { |
} |
case Intrinsics::AtomicFence: |
if (!Intrinsics::VerifyMemoryOrder( |
- llvm::cast<ConstantInteger32>(Instr->getArg(0))->getValue())) { |
+ ID, llvm::cast<ConstantInteger32>(Instr->getArg(0))->getValue())) { |
Func->setError("Unexpected memory ordering for AtomicFence"); |
return; |
} |
@@ -2926,7 +2922,7 @@ void TargetX8632::lowerIntrinsicCall(const InstIntrinsicCall *Instr) { |
// We require the memory address to be naturally aligned. |
// Given that is the case, then normal loads are atomic. |
if (!Intrinsics::VerifyMemoryOrder( |
- llvm::cast<ConstantInteger32>(Instr->getArg(1))->getValue())) { |
+ ID, llvm::cast<ConstantInteger32>(Instr->getArg(1))->getValue())) { |
Func->setError("Unexpected memory ordering for AtomicLoad"); |
return; |
} |
@@ -2959,7 +2955,7 @@ void TargetX8632::lowerIntrinsicCall(const InstIntrinsicCall *Instr) { |
} |
case Intrinsics::AtomicRMW: |
if (!Intrinsics::VerifyMemoryOrder( |
- llvm::cast<ConstantInteger32>(Instr->getArg(3))->getValue())) { |
+ ID, llvm::cast<ConstantInteger32>(Instr->getArg(3))->getValue())) { |
Func->setError("Unexpected memory ordering for AtomicRMW"); |
return; |
} |
@@ -2970,7 +2966,7 @@ void TargetX8632::lowerIntrinsicCall(const InstIntrinsicCall *Instr) { |
return; |
case Intrinsics::AtomicStore: { |
if (!Intrinsics::VerifyMemoryOrder( |
- llvm::cast<ConstantInteger32>(Instr->getArg(2))->getValue())) { |
+ ID, llvm::cast<ConstantInteger32>(Instr->getArg(2))->getValue())) { |
Func->setError("Unexpected memory ordering for AtomicStore"); |
return; |
} |