[Bug tree-optimization/91532] [SVE] Redundant predicated store in gcc.target/aarch64/fmla_2.c
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Sep 19 17:29:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91532
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2019-09-19
Depends on| |33315
Ever confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
gcc.target/aarch64/sve/fmla_2.c you mean?
I think this is the old issue of no pass doing hoisting/sinking of stores where
my patch for PR33315 would help, transforming
if (_4 != 0)
goto <bb 4>; [50.00%]
else
goto <bb 5>; [50.00%]
<bb 4> [local count: 527260923]:
_9 = c_30(D) + _2;
_10 = *_9;
iftmp.0_31 = __builtin_fma (_10, pretmp_54, pretmp_53);
*_55 = iftmp.0_31;
iftmp.1_35 = __builtin_fma (_10, pretmp_53, pretmp_54);
goto <bb 6>; [100.00%]
<bb 5> [local count: 527260923]:
*_55 = pretmp_53;
<bb 6> [local count: 1054521846]:
# iftmp.1_23 = PHI <iftmp.1_35(4), pretmp_54(5)>
_20 = b_36(D) + _2;
to
if (_4 != 0)
goto <bb 4>; [50.00%]
else
goto <bb 5>; [50.00%]
<bb 4> [local count: 527260923]:
_9 = c_30(D) + _2;
_10 = *_9;
iftmp.0_31 = __builtin_fma (_10, pretmp_54, pretmp_53);
iftmp.1_35 = __builtin_fma (_10, pretmp_53, pretmp_54);
goto <bb 6>; [100.00%]
<bb 5> [local count: 527260923]:
<bb 6> [local count: 1054521846]:
# tem = PHI <iftmp.0_31, pretmp_53>
# iftmp.1_23 = PHI <iftmp.1_35(4), pretmp_54(5)>
*_55 = tem;
_20 = b_36(D) + _2;
with the disadvantage of increasing lifetime of the sources.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=33315
[Bug 33315] stores not commoned by sinking
More information about the Gcc-bugs
mailing list