https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101985
--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by William Schmidt <wschm...@gcc.gnu.org>: https://gcc.gnu.org/g:76ba473b99c30ddec6171840a76292d6d4b67e7c commit r12-4361-g76ba473b99c30ddec6171840a76292d6d4b67e7c Author: Bill Schmidt <wschm...@linux.ibm.com> Date: Tue Oct 12 17:37:16 2021 -0500 rs6000: Fix vec_cpsgn parameter order (PR101985) The vec_cpsgn built-in function API differs in argument order from the copysign<mode>3 convention. Currently that pattern is incorrctly used to implement vec_cpsgn. Fix that by reversing the operand order of the builtin while leaving the existing pattern in place to implement copysignf for vector modes. Part of the fix when using the new built-in support requires an adjustment to a pending patch that replaces much of altivec.h with an automatically generated file. Also fix a bug in the new built-in overload infrastructure where we were using the VSX form of the VEC_COPYSIGN built-in when we should default to the VMX form. 2021-10-12 Bill Schmidt <wschm...@linux.ibm.com> gcc/ PR target/101985 * config/rs6000/altivec.h (vec_cpsgn): Swap operand order. * config/rs6000/rs6000-overload.def (VEC_COPYSIGN): Use SKIP to avoid generating an automatic #define of vec_cpsgn. Use the correct built-in for V4SFmode that doesn't depend on VSX. gcc/testsuite/ PR target/101985 * gcc.target/powerpc/pr101985-1.c: New. * gcc.target/powerpc/pr101985-2.c: New.