Index: src/IceTargetLoweringX8632.cpp |
diff --git a/src/IceTargetLoweringX8632.cpp b/src/IceTargetLoweringX8632.cpp |
index ebfc4d2da1ea6eaa5e0d5f728ad959b13808bc90..a49927ed4752eff84caca43c9089b2c792b1b032 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( |
+ if (!Intrinsics::isMemoryOrderValid( |
+ 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(); |
@@ -2879,8 +2875,8 @@ void TargetX8632::lowerIntrinsicCall(const InstIntrinsicCall *Instr) { |
return; |
} |
case Intrinsics::AtomicFence: |
- if (!Intrinsics::VerifyMemoryOrder( |
- llvm::cast<ConstantInteger32>(Instr->getArg(0))->getValue())) { |
+ if (!Intrinsics::isMemoryOrderValid( |
+ ID, llvm::cast<ConstantInteger32>(Instr->getArg(0))->getValue())) { |
Func->setError("Unexpected memory ordering for AtomicFence"); |
return; |
} |
@@ -2925,8 +2921,8 @@ void TargetX8632::lowerIntrinsicCall(const InstIntrinsicCall *Instr) { |
case Intrinsics::AtomicLoad: { |
// 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())) { |
+ if (!Intrinsics::isMemoryOrderValid( |
+ ID, llvm::cast<ConstantInteger32>(Instr->getArg(1))->getValue())) { |
Func->setError("Unexpected memory ordering for AtomicLoad"); |
return; |
} |
@@ -2958,8 +2954,8 @@ void TargetX8632::lowerIntrinsicCall(const InstIntrinsicCall *Instr) { |
return; |
} |
case Intrinsics::AtomicRMW: |
- if (!Intrinsics::VerifyMemoryOrder( |
- llvm::cast<ConstantInteger32>(Instr->getArg(3))->getValue())) { |
+ if (!Intrinsics::isMemoryOrderValid( |
+ ID, llvm::cast<ConstantInteger32>(Instr->getArg(3))->getValue())) { |
Func->setError("Unexpected memory ordering for AtomicRMW"); |
return; |
} |
@@ -2969,8 +2965,8 @@ void TargetX8632::lowerIntrinsicCall(const InstIntrinsicCall *Instr) { |
Instr->getArg(1), Instr->getArg(2)); |
return; |
case Intrinsics::AtomicStore: { |
- if (!Intrinsics::VerifyMemoryOrder( |
- llvm::cast<ConstantInteger32>(Instr->getArg(2))->getValue())) { |
+ if (!Intrinsics::isMemoryOrderValid( |
+ ID, llvm::cast<ConstantInteger32>(Instr->getArg(2))->getValue())) { |
Func->setError("Unexpected memory ordering for AtomicStore"); |
return; |
} |