https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102464
--- Comment #13 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by hongtao Liu <liuho...@gcc.gnu.org>: https://gcc.gnu.org/g:a1f7ead09cd41d32e2feffff902eb32e587c36e7 commit r12-4985-ga1f7ead09cd41d32e2feffff902eb32e587c36e7 Author: liuhongt <hongtao....@intel.com> Date: Mon Nov 8 09:32:17 2021 +0800 Add !HONOR_SNANS to simplifcation: (trunc)copysign((extend)a, (extend)b) to copysign (a, b). > Note that this is not safe with -fsignaling-nans, so needs to be disabled > for that option (if there isn't already logic somewhere with that effect), > because the extend will convert a signaling NaN to quiet (raising > "invalid"), but copysign won't, so this transformation could result in a > signaling NaN being wrongly returned when the original code would never > have returned a signaling NaN. > > -- > Joseph S. Myers > jos...@codesourcery.com gcc/ChangeLog PR target/102464 * match.pd (Simplifcation (trunc)copysign((extend)a, (extend)b) to .COPYSIGN (a, b)): Add !HONOR_SNANS.