| 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; | 
|  |