blob: 6a2e82086b9cc03a926ef4d245b0f90f5b13f439 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-mavx512fp16 -mno-avx512vl -O2" } */
/* { dg-final { scan-assembler-times {(?n)vpblendvb[ \t]+%xmm[0-9]} 1 } } */
/* { dg-final { scan-assembler-times {(?n)vpblendvb[ \t]+%ymm[0-9]} 1 } } */
/* { dg-final { scan-assembler-times {(?n)(?:vpbroadcastw|vmovdq[ua]16)[ \t].*%zmm[0-9].*%k[0-7]} 1 } } */
typedef _Float16 v32hf __attribute__((vector_size(64)));
typedef _Float16 v16hf __attribute__((vector_size(32)));
typedef _Float16 v8hf __attribute__((vector_size(16)));
v8hf
foo1 (v8hf a, _Float16 b, int c)
{
a[c] = b;
return a;
}
v16hf
foo2 (v16hf a, _Float16 b, int c)
{
a[c] = b;
return a;
}
v32hf
foo3 (v32hf a, _Float16 b, int c)
{
a[c] = b;
return a;
}