[llvm] [AArch64] Combine manual reciprocal square root refinement into FRSQRTS. (PR #172067)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 2 02:18:37 PST 2026
================
@@ -0,0 +1,148 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc < %s -mtriple=aarch64-unknown-linux-gnu -mattr=+neon,+use-reciprocal-square-root | FileCheck %s
+
+; Test that manual Newton-Raphson reciprocal square root refinement patterns
+; are recognized and converted to FRSQRTS instructions.
+
+declare <4 x float> @llvm.aarch64.neon.frsqrte.v4f32(<4 x float>)
+declare <2 x float> @llvm.aarch64.neon.frsqrte.v2f32(<2 x float>)
+declare <2 x double> @llvm.aarch64.neon.frsqrte.v2f64(<2 x double>)
+declare float @llvm.aarch64.neon.frsqrte.f32(float)
+declare double @llvm.aarch64.neon.frsqrte.f64(double)
+declare <4 x float> @llvm.fma.v4f32(<4 x float>, <4 x float>, <4 x float>)
+declare <2 x float> @llvm.fma.v2f32(<2 x float>, <2 x float>, <2 x float>)
+declare <2 x double> @llvm.fma.v2f64(<2 x double>, <2 x double>, <2 x double>)
+declare float @llvm.fma.f32(float, float, float)
+declare double @llvm.fma.f64(double, double, double)
----------------
davemgreen wrote:
All of these can be removed nowadays.
https://github.com/llvm/llvm-project/pull/172067
More information about the llvm-commits
mailing list