[llvm] GlobalISel needs fdiv 1 / sqrt(x) to rsq combine (PR #78673)

Nick Anderson via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 6 01:17:27 PST 2024


================
@@ -33,6 +33,11 @@ def rcp_sqrt_to_rsq : GICombineRule<
          [{ return matchRcpSqrtToRsq(*${rcp}, ${matchinfo}); }]),
   (apply [{ Helper.applyBuildFn(*${rcp}, ${matchinfo}); }])>;
 
+def fdiv_by_sqrt_to_rsq : GICombineRule<
+  (defs root:$root),
+  (match (G_FSQRT $sqrt, $x, (MIFlags FmContract)),
+         (G_FDIV $dst, $y, $sqrt, (MIFlags FmContract)):$root),
----------------
nickleus27 wrote:

Do we not want to do the combine at all if the SQRT has multi-uses?

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


More information about the llvm-commits mailing list