[IndVarSimplify] Bail out if not a branch in `maybeFloatingPointRecurrence` clang-riscv-gauntlet buildbot was previously failing. Conservatively bail out if not handling a branch when looking for floating-point recurrences, we may wish to support select and branch in the future. Fixes: https://lab.llvm.org/buildbot/#/builders/210/builds/5908.
diff --git a/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp b/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp index 9900a13..400cb1e 100644 --- a/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
@@ -306,6 +306,9 @@ // The branch block must be in the loop and one of the successors must be out // of the loop. auto *BI = dyn_cast<BranchInst>(Compare->user_back()); + if (!BI) + return std::nullopt; + assert(BI->isConditional() && "Can't use fcmp if not conditional"); if (!L->contains(BI->getParent()) || (L->contains(BI->getSuccessor(0)) && L->contains(BI->getSuccessor(1))))