https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98854
--- Comment #7 from Martin Liška <marxin at gcc dot gnu.org> --- > I used -O3 but -O2 -ftree-slp-vectorize also vectorizes it. I must be blind, but I see for the current master: gcc pr98854.c -c -O2 -ftree-slp-vectorize -fdump-tree-optimized=/dev/stdout foo (int n) { unsigned long ivtmp.8; double y; double x; double _6; double _8; double _9; double _11; int _14; void * _29; unsigned long _31; <bb 2>: ivtmp.8_28 = (unsigned long) &MEM[(void *)&a + 8184B]; _31 = (unsigned long) &a; <bb 3>: # x_1 = PHI <0.0(2), x_10(5)> # y_2 = PHI <0.0(2), y_12(5)> # ivtmp.8_18 = PHI <ivtmp.8_28(2), ivtmp.8_27(5)> _29 = (void *) ivtmp.8_18; _6 = MEM[base: _29, offset: 0B]; _8 = MEM[base: _29, offset: 8B]; _9 = _6 + _8; x_10 = _9 + x_1; _11 = _6 / _8; y_12 = _11 + y_2; _14 = bar (); if (_14 != 0) goto <bb 4>; else goto <bb 5>; <bb 4>: a[0] = x_10; a[1] = y_12; return; <bb 5>: ivtmp.8_27 = ivtmp.8_18 - 8; if (ivtmp.8_27 != _31) goto <bb 3>; else goto <bb 4>; }