https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112606
--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Kewen Lin <li...@gcc.gnu.org>: https://gcc.gnu.org/g:cf5f6a048e376ab0d2f7bc283c158605e1166061 commit r14-7090-gcf5f6a048e376ab0d2f7bc283c158605e1166061 Author: Kewen Lin <li...@linux.ibm.com> Date: Tue Jan 9 23:06:12 2024 -0600 rs6000: Make copysign (x, -1) back to -abs (x) for IEEE128 float [PR112606] I noticed that commit r14-6192 can't help PR112606 #c3 as it only takes care of SF/DF but TF/KF can still suffer the issue. Similar to commit r14-6192, this patch is to take care of copysign<mode>3 with IEEE128 as well. PR target/112606 gcc/ChangeLog: * config/rs6000/rs6000.md (copysign<mode>3 IEEE128): Change predicate of the last argument from altivec_register_operand to any_operand. If operands[2] is CONST_DOUBLE, emit abs or neg abs depending on its sign otherwise if it doesn't satisfy altivec_register_operand, force it to REG using copy_to_mode_reg.