As Andrew pointed out in PR108396, there is one typo in
rs6000-overload.def on built-in function vec_vsubcuq:
[VEC_VSUBCUQ, vec_vsubcuqP, __builtin_vec_vsubcuq]
"vec_vsubcuqP" should be "vec_vsubcuq", this typo caused
us to define vec_vsubcuqP in rs6000-vecdefines.h instead
of vec_vsubcuq, so that compiler is not able to realize
the built-in function name vec_vsubcuq any more.
Co-authored-By: Andrew Pinski <apinski@marvell.com>
PR target/108396
gcc/ChangeLog:
* config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
vec_vsubcuqP with vec_vsubcuq.
gcc/testsuite/ChangeLog:
* gcc.target/powerpc/pr108396.c: New test.
unsigned int __builtin_vec_scalar_test_data_class_sp (float, const int);
VSTDCSP VSTDCSP_DEPR1
-[VEC_VSUBCUQ, vec_vsubcuqP, __builtin_vec_vsubcuq]
+[VEC_VSUBCUQ, vec_vsubcuq, __builtin_vec_vsubcuq]
vsq __builtin_vec_vsubcuq (vsq, vsq);
VSUBCUQ VSUBCUQ_DEPR1
vuq __builtin_vec_vsubcuq (vuq, vuq);
--- /dev/null
+/* { dg-require-effective-target powerpc_p8vector_ok } */
+/* { dg-require-effective-target int128 } */
+/* { dg-options "-mdejagnu-cpu=power8" } */
+
+/* Verify there is no error message. */
+
+#include <altivec.h>
+
+vector unsigned __int128
+vsubcuq (vector unsigned __int128 a, vector unsigned __int128 b)
+{
+ return vec_vsubcuq (a, b);
+}
+