blob: c7d0d8b4030b46d4496970ca1c461feac4b091b7 [file] [log] [blame]
/* PR tree-optimization/91157 */
/* { dg-do run { target { avx512f && lp64 } } } */
/* { dg-options "-O2 -mavx512f -fexceptions -fnon-call-exceptions -fsignaling-nans" } */
#include "avx512f-helper.h"
typedef long double V __attribute__ ((vector_size (4 * sizeof (long double))));
typedef __int128 W __attribute__ ((vector_size (4 * sizeof (__int128))));
__attribute__((noipa)) W
foo (V x)
{
return x == 0;
}
static void
test_512 (void)
{
V a = { 5.0L, 0.0L, -0.0L, -17.0L };
V b = { -0.0L, 16.0L, 0.0L, 18.0L };
V c = { 6.0L, 7.0L, 8.0L, 0.0L };
W ar = foo (a);
W br = foo (b);
W cr = foo (c);
if (ar[0] != 0 || ar[1] != -1 || ar[2] != -1 || ar[3] != 0
|| br[0] != -1 || br[1] != 0 || br[2] != -1 || br[3] != 0
|| cr[0] != 0 || cr[1] != 0 || cr[2] != 0 || cr[3] != -1)
__builtin_abort ();
}