https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115871

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
According to the ABI, the _ZGVeM32v_foo clone should have
__attribute__((omp declare simd (simdlen(32) inbranch)))
vector(8) double[4] foo.simdclone.3 (vector(8) double simd.75, vector(8) double
simd.76, vector(8) double simd.77, vector(8) double simd.78, unsigned int
mask.79, unsigned int mask.80, unsigned int mask.81, unsigned int mask.82)
prototype that GCC 13 emitted, but now it creates just the unsigned int mask.79
and not the rest.  While all the 32 bits fit into a single unsigned int, the
ABI says that (for the AVX512 version only):
"The mask parameters are collection of 1-bit masks in unsigned integers. The
total number of mask bits is equal to VLEN. The number of mask parameters is
equal to the number of parameters for the vector of characteristic data type.
The mask
bits occupy the least significant bits of unsigned integer."

Reply via email to