https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98854

--- Comment #8 from rguenther at suse dot de <rguenther at suse dot de> ---
On Wed, 27 Jan 2021, marxin at gcc dot gnu.org wrote:

> 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>;
> 
> }

Hmm, maybe my dev tree has related adjustments to SLP ... at least
the posted patch fixes the regression for me.

Reply via email to