GCC 11 and later has the vec_msum(__vector unsigned long long, __vector unsigned long long, __vector unsigned __int128) and vec_msum(__vector signed long long, __vector signed long long, __vector signed __int128) intrinsics that are missing from the Clang version of altivec.h.
The vec_msum(__vector unsigned long long, __vector unsigned long long, __vector unsigned __int128) is equivalent to the POWER9 vmsumudm instruction.
The GCC vec_msum(__vector signed long long, __vector signed long long, __vector signed __int128) intrinsic actually does vec_msum((__vector unsigned long)a, (__vector unsigned long)b, (__vector unsigned __int128)c).
GCC 11 and later has the
vec_msum(__vector unsigned long long, __vector unsigned long long, __vector unsigned __int128)andvec_msum(__vector signed long long, __vector signed long long, __vector signed __int128)intrinsics that are missing from the Clang version of altivec.h.The
vec_msum(__vector unsigned long long, __vector unsigned long long, __vector unsigned __int128)is equivalent to the POWER9 vmsumudm instruction.The GCC
vec_msum(__vector signed long long, __vector signed long long, __vector signed __int128)intrinsic actually doesvec_msum((__vector unsigned long)a, (__vector unsigned long)b, (__vector unsigned __int128)c).