https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61139
kugan at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |NEW Resolution|DUPLICATE |--- --- Comment #4 from kugan at gcc dot gnu.org --- After handling float, still seeing difference in asm. diff of .199t.resx now looks: -;; Function void mirror(float&, float) (_Z6mirrorRff, funcdef_no=0, decl_uid=2704, cgraph_uid=0, symbol_order=0) +;; Function void mirror(float&, float) (_Z6mirrorRff, funcdef_no=0, decl_uid=2472, cgraph_uid=0, symbol_order=0) void mirror(float&, float) (float & x, float w) { float _3; float _6; - float reassocmul_9; + float _8; <bb 2>: _3 = *x_2(D); - reassocmul_9 = w_4(D) * 2.0e+0; - _6 = reassocmul_9 - _3; + _8 = -_3; + _6 = w_4(D) * 2.0e+0 + _8; *x_2(D) = _6; return; @@ -18,18 +18,18 @@ -;; Function void mirror2(float&, float) (_Z7mirror2Rff, funcdef_no=1, decl_uid=2708, cgraph_uid=1, symbol_order=1) +;; Function void mirror2(float&, float) (_Z7mirror2Rff, funcdef_no=1, decl_uid=2476, cgraph_uid=1, symbol_order=1) void mirror2(float&, float) (float & x, float w) { - float _2; float _5; float _6; + float _8; <bb 2>: - _2 = w_1(D) * 2.0e+0; _5 = *x_4(D); - _6 = _2 - _5; + _8 = -_5; + _6 = w_1(D) * 2.0e+0 + _8; *x_4(D) = _6; return;