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;

Reply via email to