On Thu, 4 Nov 2021, liuhongt via Gcc-patches wrote: > a and b are same type as the truncation type and has less precision > than extend type.
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