diff options
Diffstat (limited to 'llvm/lib/Transforms/InstCombine')
| -rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp | 3 | 
1 files changed, 2 insertions, 1 deletions
| diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp index 1aa4b87bb92..c2cf21d5221 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp @@ -2507,7 +2507,8 @@ Instruction *InstCombiner::visitCallSite(CallSite CS) {    if (Function *CalleeF = dyn_cast<Function>(Callee)) {      // Remove the convergent attr on calls when the callee is not convergent. -    if (CS.isConvergent() && !CalleeF->isConvergent()) { +    if (CS.isConvergent() && !CalleeF->isConvergent() && +        !CalleeF->isIntrinsic()) {        DEBUG(dbgs() << "Removing convergent attr from instr "                     << CS.getInstruction() << "\n");        CS.setNotConvergent(); | 

