https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121737
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rguenth at gcc dot gnu.org
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
On trunk with SVE I see the loop vectorized:
<bb 4> [local count: 212600882]:
# i_37 = PHI <i_21(11), 0(34)>
# vectp_poly.12_88 = PHI <vectp_poly.12_89(11), vectp_poly.13_87(34)>
# ivtmp_95 = PHI <ivtmp_96(11), 0(34)>
# loop_mask_90 = PHI <next_mask_99(11), max_mask_98(34)>
vect_array.14 = .MASK_LOAD_LANES (vectp_poly.12_88, 32B, loop_mask_90, { 0.0,
... });
vect_pretmp_4.16_91 = vect_array.14[0];
vect_pretmp_4.18_92 = vect_array.14[1];
vect_array.14 ={v} {CLOBBER};
pretmp_4 = poly_13(D)->v[i_37].y;
_46 = poly_13(D)->v[0].x;
_36 = poly_13(D)->v[0].y;
i_21 = i_37 + 1;
vectp_poly.12_89 = vectp_poly.12_88 + POLY_INT_CST [32, 32];
ivtmp_96 = ivtmp_95 + POLY_INT_CST [4, 4];
_97 = (unsigned int) ivtmp_96;
next_mask_99 = .WHILE_ULT (_97, ni_gap.10_84, { 0, ... });
if (next_mask_99 != { 0, ... })
without SVE it's not vectorized at all. On x86-64 AVX512 and --param
vect-partial-vector-usage=2 doesn't help either.
What taget were you testing?
What do you mean by "manualy peeling"?