Index: src/IceTargetLowering.cpp |
diff --git a/src/IceTargetLowering.cpp b/src/IceTargetLowering.cpp |
index 71788dfc8dd011b03b5ab8f1bccdea0ff181370f..4ab6c63dc577e23fca7eb2933c97f4eee84fb62b 100644 |
--- a/src/IceTargetLowering.cpp |
+++ b/src/IceTargetLowering.cpp |
@@ -171,9 +171,13 @@ void TargetLowering::lower() { |
case Inst::InsertElement: |
lowerInsertElement(llvm::dyn_cast<InstInsertElement>(Inst)); |
break; |
- case Inst::IntrinsicCall: |
- lowerIntrinsicCall(llvm::dyn_cast<InstIntrinsicCall>(Inst)); |
+ case Inst::IntrinsicCall: { |
+ InstIntrinsicCall *Call = llvm::dyn_cast<InstIntrinsicCall>(Inst); |
+ if (Call->getIntrinsicInfo().ReturnsTwice) |
+ setCallsReturnsTwice(true); |
+ lowerIntrinsicCall(Call); |
break; |
+ } |
case Inst::Load: |
lowerLoad(llvm::dyn_cast<InstLoad>(Inst)); |
break; |