http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60656

            Bug ID: 60656
           Summary: [4.8/4.9 regression] x86 vectorization produces wrong
                    code
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ppluzhnikov at google dot com

Current trunk (r208813) and gcc-4.8 are affected, 4.7 does not appear to be.

gcc -O0 t.c && ./a.out
500450210036

gcc -O3 t.c && ./a.out
500450200033

gcc -O2 t.c && ./a.out
500450210036

gcc -O2 t.c -ftree-vectorize && ./a.out
500450200033

// t.c
#include <stdio.h>

int
main ()
{
  int v[] = {5000, 5001, 5002, 5003};
  long s = 0;
  int i;

  for(i = 0; i < 4; ++i)
    {
      long P = v[i];
      s += P*P*P;
    }
  printf("%ld\n", s);
}

Reply via email to