https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91403
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org, | |rguenth at gcc dot gnu.org --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Doesn't ICE for me, but SLP during vectorization goes wild, for very short *.ifcvt <bb 2> [local count: 12199019]: b_lsm.4_24 = b; <bb 3> [local count: 97603136]: # d_69 = PHI <2(2), d_9(5)> # b_lsm.4_17 = PHI <b_lsm.4_24(2), _79(5)> # ivtmp_76 = PHI <8(2), ivtmp_73(5)> _14 = a[d_69][5]; _16 = _14 + b_lsm.4_17; _23 = _14 + _16; _30 = _14 + _23; _37 = _14 + _30; _44 = _14 + _37; _51 = _14 + _44; _58 = _14 + _51; _65 = _14 + _58; _72 = _14 + _65; _79 = _14 + _72; d_9 = d_69 + 1; ivtmp_73 = ivtmp_76 - 1; if (ivtmp_73 != 0) goto <bb 5>; [87.50%] else goto <bb 4>; [12.50%] <bb 5> [local count: 85404116]: goto <bb 3>; [100.00%] <bb 4> [local count: 12199019]: # _80 = PHI <_79(3)> b = _80; return; it creates a *.vect dump with 1860297 lines, with: vect__14.10_5 = MEM <vector(8) int> [(int *)vectp_a.8_7]; vectp_a.8_4 = vectp_a.8_7 + 32; vect__14.11_3 = MEM <vector(8) int> [(int *)vectp_a.8_4]; vectp_a.8_2 = vectp_a.8_4 + 32; vect__14.12_1 = MEM <vector(8) int> [(int *)vectp_a.8_2]; vectp_a.8_10 = vectp_a.8_2 + 32; vect__14.13_15 = MEM <vector(8) int> [(int *)vectp_a.8_10]; vectp_a.8_31 = vectp_a.8_10 + 32; ... where there are 620046 those MEM loads that nothing consumes and 620046 additions of 32.