1 /* PR target/50310 */
2 /* { dg-do run } */
3 /* { dg-options "-O3" } */
4 /* { dg-options "-O3 -mavx" { target avx_runtime } } */
5 
6 double s1[4], s2[4], s3[64];
7 
8 int
main(void)9 main (void)
10 {
11   int i;
12   asm volatile ("" : : : "memory");
13   for (i = 0; i < 4; i++)
14     s3[0 * 4 + i] = __builtin_isgreater (s1[i], s2[i]) ? -1.0 : 0.0;
15   for (i = 0; i < 4; i++)
16     s3[1 * 4 + i] = (!__builtin_isgreater (s1[i], s2[i])) ? -1.0 : 0.0;
17   for (i = 0; i < 4; i++)
18     s3[2 * 4 + i] = __builtin_isgreaterequal (s1[i], s2[i]) ? -1.0 : 0.0;
19   for (i = 0; i < 4; i++)
20     s3[3 * 4 + i] = (!__builtin_isgreaterequal (s1[i], s2[i])) ? -1.0 : 0.0;
21   for (i = 0; i < 4; i++)
22     s3[4 * 4 + i] = __builtin_isless (s1[i], s2[i]) ? -1.0 : 0.0;
23   for (i = 0; i < 4; i++)
24     s3[5 * 4 + i] = (!__builtin_isless (s1[i], s2[i])) ? -1.0 : 0.0;
25   for (i = 0; i < 4; i++)
26     s3[6 * 4 + i] = __builtin_islessequal (s1[i], s2[i]) ? -1.0 : 0.0;
27   for (i = 0; i < 4; i++)
28     s3[7 * 4 + i] = (!__builtin_islessequal (s1[i], s2[i])) ? -1.0 : 0.0;
29   for (i = 0; i < 4; i++)
30     s3[8 * 4 + i] = __builtin_islessgreater (s1[i], s2[i]) ? -1.0 : 0.0;
31   for (i = 0; i < 4; i++)
32     s3[9 * 4 + i] = (!__builtin_islessgreater (s1[i], s2[i])) ? -1.0 : 0.0;
33   for (i = 0; i < 4; i++)
34     s3[10 * 4 + i] = __builtin_isunordered (s1[i], s2[i]) ? -1.0 : 0.0;
35   for (i = 0; i < 4; i++)
36     s3[11 * 4 + i] = (!__builtin_isunordered (s1[i], s2[i])) ? -1.0 : 0.0;
37   for (i = 0; i < 4; i++)
38     s3[12 * 4 + i] = s1[i] > s2[i] ? -1.0 : 0.0;
39   for (i = 0; i < 4; i++)
40     s3[13 * 4 + i] = s1[i] >= s2[i] ? -1.0 : 0.0;
41   for (i = 0; i < 4; i++)
42     s3[14 * 4 + i] = s1[i] < s2[i] ? -1.0 : 0.0;
43   for (i = 0; i < 4; i++)
44     s3[15 * 4 + i] = s1[i] <= s2[i] ? -1.0 : 0.0;
45   asm volatile ("" : : : "memory");
46   return 0;
47 }
48