i386: Adjust rtx cost for imulq and imulw [PR115749]
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / vect-neg-zero.c
blob21fa00cfa15553d59712ceeb4972ddefd28b1fe0
1 /* { dg-add-options ieee } */
2 /* { dg-additional-options "-fno-associative-math -fsigned-zeros" } */
4 double x[4] = {-0.0, 0.0, -0.0, 0.0};
5 float y[8] = {-0.0, 0.0, -0.0, 0.0, -0.0, -0.0, 0.0, 0.0};
7 static __attribute__ ((always_inline)) inline void
8 test (int factor)
10 double a[4];
11 float b[8];
13 asm ("" ::: "memory");
15 for (int i = 0; i < 2 * factor; i++)
16 a[i] = -x[i];
18 for (int i = 0; i < 4 * factor; i++)
19 b[i] = -y[i];
21 #pragma GCC novector
22 for (int i = 0; i < 2 * factor; i++)
23 if (__builtin_signbit (a[i]) == __builtin_signbit (x[i]))
24 __builtin_abort ();
26 #pragma GCC novector
27 for (int i = 0; i < 4 * factor; i++)
28 if (__builtin_signbit (b[i]) == __builtin_signbit (y[i]))
29 __builtin_abort ();
32 int
33 main (void)
35 test (1);
36 test (2);
37 return 0;