aboutsummaryrefslogtreecommitdiff
path: root/math/aarch64/advsimd/v_poly_f64.h
diff options
context:
space:
mode:
Diffstat (limited to 'math/aarch64/advsimd/v_poly_f64.h')
-rw-r--r--math/aarch64/advsimd/v_poly_f64.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/math/aarch64/advsimd/v_poly_f64.h b/math/aarch64/advsimd/v_poly_f64.h
new file mode 100644
index 000000000000..4331bfbd03b0
--- /dev/null
+++ b/math/aarch64/advsimd/v_poly_f64.h
@@ -0,0 +1,24 @@
+/*
+ * Helpers for evaluating polynomials on double-precision AdvSIMD input, using
+ * various schemes.
+ *
+ * Copyright (c) 2023-2024, Arm Limited.
+ * SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
+ */
+
+#ifndef MATH_POLY_ADVSIMD_F64_H
+#define MATH_POLY_ADVSIMD_F64_H
+
+#include <arm_neon.h>
+
+/* Wrap AdvSIMD f64 helpers: evaluation of some scheme/order has form:
+ v_[scheme]_[order]_f64. */
+#define VTYPE float64x2_t
+#define FMA(x, y, z) vfmaq_f64 (z, x, y)
+#define VWRAP(f) v_##f##_f64
+#include "poly_generic.h"
+#undef VWRAP
+#undef FMA
+#undef VTYPE
+
+#endif