3 /* { dg-options "-O3" } */
4 /* { dg-options "-O3 -mavx" { target avx_runtime } } */
6 double s1
[4], s2
[4], s3
[64];
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");