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