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.

Reply via email to