/* 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 (); }