RISC-V: Promote Zaamo/Zalrsc to a when using an old binutils
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / avx512f-roundf-sfix-vec-1.c
blobd40f7d9f7bddcb1e518f3a11c534e770102389f6
1 /* { dg-do run } */
2 /* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512f" } */
3 /* { dg-require-effective-target avx512f } */
5 #define __NO_MATH_INLINES
6 #include "math_m_pi.h"
7 #include "avx512f-check.h"
9 #define NUM 64
11 static void
12 __attribute__((__target__("fpmath=sse")))
13 init_src (float *src)
15 int i, sign = 1;
16 float f = rand ();
18 for (i = 0; i < NUM; i++)
20 src[i] = (i + 1) * f * M_PI * sign;
21 if (i < (NUM / 2))
23 if ((i % 6) == 0)
24 f = f * src[i];
26 else if (i == (NUM / 2))
27 f = rand ();
28 else if ((i % 6) == 0)
29 f = 1 / (f * (i + 1) * src[i] * M_PI * sign);
30 sign = -sign;
34 static void
35 __attribute__((__target__("fpmath=387")))
36 avx512f_test (void)
38 float a[NUM];
39 int r[NUM];
40 int i;
42 init_src (a);
44 for (i = 0; i < NUM; i++)
45 r[i] = (int) roundf (a[i]);
47 /* check results: */
48 #pragma GCC novector
49 for (i = 0; i < NUM; i++)
50 if (r[i] != (int) roundf (a[i]))
51 abort();