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

--- Comment #3 from harmeeksingh at gmail dot com ---
#include <stdio.h>

#define VEC 1024

typedef long  int int64;
typedef  int int32;

void foo (int       arraysize,
          int       *__restrict  result,
          int       *__restrict  selectvector,
          int       selectelements,
          int64     *__restrict array,
          int64     compval)
{
  int k, i;
  for (k =0,i=0; i < arraysize; ++i) {
      result[k] = i; k += (array[i] == compval);
  }
}

main()
{
  int       result[VEC];
  int       selectvector[VEC];
  int       selectelements;
  int64     array[VEC];

  int k, i;
  foo(VEC, result, selectvector, VEC, array, 1);
}

Even the above does not vectorize 

gcc -fPIC -shared -DCLS=64 -ffast-math -mfpmath=sse -mmmx -msse -msse2
-ftree-vectorize -ftree-vectorizer-verbose=7 -O3 -march=native /tmp/x.c -o
/tmp/x

Analyzing loop at /tmp/x.c:17

17: not vectorized: data ref analysis failed *D.2502_9 = i_27;

/tmp/x.c:9: note: vectorized 0 loops in function.

Reply via email to