[llvm] [InstCombine] Transform high latency, dependent FSQRT/FDIV into FMUL (PR #87474)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 9 00:53:24 PDT 2024


================
@@ -626,6 +626,129 @@ Instruction *InstCombinerImpl::foldPowiReassoc(BinaryOperator &I) {
   return nullptr;
 }
 
+static bool isFSqrtDivToFMulLegal(Instruction *X,
+                                  SmallSetVector<Instruction *, 2> &R1,
+                                  SmallSetVector<Instruction *, 2> &R2) {
+
+  BasicBlock *BBx = X->getParent();
+  BasicBlock *BBr1 = R1[0]->getParent();
+  BasicBlock *BBr2 = R2[0]->getParent();
+
+  auto IsStrictFP = [](Instruction *I) {
+    IntrinsicInst *II = dyn_cast<IntrinsicInst>(I);
+    return II && II->isStrictFP();
+  };
----------------
nikic wrote:

What's this for? Your code isn't matching intrinsics in the first place, right?

https://github.com/llvm/llvm-project/pull/87474


More information about the llvm-commits mailing list