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