/* { dg-do compile } */ /* { dg-options "-O2 -mavx512f" } */ /* { dg-final { scan-assembler-not "vmovdqa" } } */ /* { dg-final { scan-assembler-times "vpcmpeqd\[ \\t\]+%ymm\[0-9\]" 4 } } */ typedef long long __v8di __attribute__ ((__vector_size__ (64))); typedef int __v16si __attribute__ ((__vector_size__ (64))); typedef short __v32hi __attribute__ ((__vector_size__ (64))); typedef char __v64qi __attribute__ ((__vector_size__ (64))); typedef long long __m512i __attribute__ ((__vector_size__ (64), __may_alias__)); __m512i __attribute__ ((noinline, noclone)) foo1 () { return __extension__ (__m512i)(__v8di) { -1, -1, -1, -1, 0, 0, 0, 0 }; } __m512i __attribute__ ((noinline, noclone)) foo2 () { return __extension__ (__m512i)(__v16si) { -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0 }; } __m512i __attribute__ ((noinline, noclone)) foo3 () { return __extension__ (__m512i)(__v32hi) { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; } __m512i __attribute__ ((noinline, noclone)) foo4 () { return __extension__ (__m512i)(__v64qi) { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; }