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

Jan Hubicka <hubicka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|s235, s2233 and s233        |s235, s2233, s275 and s233
                   |benchmarks of TSVC is       |benchmarks of TSVC is
                   |vectorized better by icc    |vectorized better by icc
                   |than gcc (loop interchange) |than gcc (loop interchange)

--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
s275:
typedef float real_t;

#define iterations 100000
#define LEN_1D 32000
#define LEN_2D 256
// array definitions

real_t
a[LEN_2D],d[LEN_2D],aa[LEN_2D][LEN_2D],bb[LEN_2D][LEN_2D],cc[LEN_2D][LEN_2D],tt[LEN_2D][LEN_2D];

int main(struct args_t * func_args)
{
//    control flow
//    if around inner loop, interchanging needed

    for (int i = 0; i < LEN_2D; i++) 
                aa[0][i]=1;

    for (int nl = 0; nl < 10*(iterations/LEN_2D); nl++) {
        for (int i = 0; i < LEN_2D; i++) {
            if (aa[0][i] > (real_t)0.) {
                for (int j = 1; j < LEN_2D; j++) {
                    aa[j][i] = aa[j-1][i] + bb[j][i] * cc[j][i];
                }
            }
        }
        dummy();
    }
   return aa[0][0];
}

Reply via email to