(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.target/
i386/
avx512f-pr96891-1.C
/* { dg-do compile } */
/* { dg-options "-mavx512vl -O2" } */
/* { dg-final { scan-assembler-not "%k\[0-7\]" } } */

typedef float v4sf __attribute__ ((vector_size (16)));
typedef float v8sf __attribute__ ((vector_size (32)));
typedef double v2df __attribute__ ((vector_size (16)));
typedef double v4df __attribute__ ((vector_size (32)));


v4sf
foo_v4sf (v4sf x)
{
  const union U { unsigned u; float f; } u = { -1U };
  return x > 0.0f ? u.f : 0.0f;
}

v8sf
foo_v8sf (v8sf x)
{
  const union U { unsigned u; float f; } u = { -1U };
  return x > 0.0f ? u.f : 0.0f;
}

v2df
foo_v2df (v2df x)
{
  const union U { unsigned long long u; double df; } u = { -1ULL };
  return x > 0.0 ? u.df : 0.0;
}

v4df
foo_v4df (v4df x)
{
  const union U { unsigned long long u; double df; } u = { -1ULL };
  return x > 0.0 ? u.df : 0.0;
}