aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/aarch64/vect-fp.x
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.target/aarch64/vect-fp.x')
-rw-r--r--gcc/testsuite/gcc.target/aarch64/vect-fp.x20
1 files changed, 18 insertions, 2 deletions
diff --git a/gcc/testsuite/gcc.target/aarch64/vect-fp.x b/gcc/testsuite/gcc.target/aarch64/vect-fp.x
index 338f6edf945..82d1b1c50ee 100644
--- a/gcc/testsuite/gcc.target/aarch64/vect-fp.x
+++ b/gcc/testsuite/gcc.target/aarch64/vect-fp.x
@@ -7,13 +7,23 @@ typedef double *__restrict__ pRF64;
extern float fabsf (float);
extern double fabs (double);
+#define DEF3a(fname, type, op) \
+ void fname##_##type (pR##type a, \
+ pR##type b, \
+ pR##type c) \
+ { \
+ int i; \
+ for (i = 0; i < 16; i++) \
+ a[i] = op (b[i] - c[i]); \
+ }
+
#define DEF3(fname, type, op) \
void fname##_##type (pR##type a, \
pR##type b, \
pR##type c) \
{ \
int i; \
- for (i=0; i<16; i++) \
+ for (i = 0; i < 16; i++) \
a[i] = b[i] op c[i]; \
}
@@ -22,11 +32,15 @@ extern double fabs (double);
pR##type b) \
{ \
int i; \
- for (i=0; i<16; i++) \
+ for (i = 0; i < 16; i++) \
a[i] = op(b[i]); \
}
+#define DEFN3a(fname, op) \
+ DEF3a (fname, F32, op) \
+ DEF3a (fname, F64, op)
+
#define DEFN3(fname, op) \
DEF3 (fname, F32, op) \
DEF3 (fname, F64, op)
@@ -42,3 +56,5 @@ DEFN3 (div, /)
DEFN2 (neg, -)
DEF2 (abs, F32, fabsf)
DEF2 (abs, F64, fabs)
+DEF3a (fabd, F32, fabsf)
+DEF3a (fabd, F64, fabs)