[Bug tree-optimization/61139] missed fma/reassoc optimization
kugan at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Dec 10 04:50:00 GMT 2015
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;
More information about the Gcc-bugs
mailing list