https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112483
--- Comment #4 from Xi Ruoyao <xry111 at gcc dot gnu.org> --- In 268r.cse1: (insn 26 25 27 2 (set (reg:SF 93) (mem/u/c:SF (reg/f:DI 94) [0 S4 A32])) "ieee_2.f90":13:6 discrim 4 146 {*movsf_hardfloat} (expr_list:REG_EQUAL (const_double:SF -1.0e+0 [-0x0.8p+1]) (nil))) (insn 27 26 28 2 (set (reg:SF 81 [ _8 ]) (copysign:SF (reg/v:SF 80 [ sx1 ]) (reg:SF 93))) "ieee_2.f90":13:6 discrim 4 63 {copysignsf3} (nil)) But in 269r.fwprop1: (insn 27 24 28 2 (set (reg:SF 81 [ _8 ]) (neg:SF (reg/v:SF 80 [ sx1 ]))) "ieee_2.f90":13:6 discrim 4 89 {negsf2} (expr_list:REG_DEAD (reg:SF 93) (nil))) ???