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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|s311 benchmark of TSVC is   |s311 and s31111 benchmark
                   |vectorized by clang better  |of TSVC is vectorized by
                   |than by gcc                 |clang better than by gcc

--- Comment #1 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
I think this is same case

typedef float real_t;

#define iterations 1000000
#define LEN_1D 32000
#define LEN_2D 256
real_t a[LEN_1D];
real_t test(real_t* A){
  real_t s = (real_t)0.0;
  for (int i = 0; i < 4; i++)
    s += A[i];
  return s;
}

int main()
{

//    reductions
//    sum reduction
    real_t sum;
    for (int nl = 0; nl < 2000*iterations; nl++) {
        sum = (real_t)0.;
        sum += test(a);
        sum += test(&a[4]);
        sum += test(&a[8]);
        sum += test(&a[12]);
        sum += test(&a[16]);
        sum += test(&a[20]);
        sum += test(&a[24]);
        sum += test(&a[28]);
    }
  return sum>4;
}

Reply via email to