OSDN Git Service

3f5920ca3dc9d72a583f00aabc381a40930f1d24
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / vect / vect-10.c
1 /* { dg-do compile { target powerpc*-*-* i?86-*-* x86_64-*-* sparc*-*-* } } */
2 /* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -maltivec" { target powerpc*-*-* } } */
3 /* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -msse2" { target i?86-*-* x86_64-*-* } } */
4 /* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -mcpu=ultrasparc -mvis" { target sparc*-*-* } } */
5
6 #define N 16
7
8 short a[N];
9 short d[N];
10
11 int foo ()
12 {
13   int i;
14   short b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
15   short c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
16
17
18   /* Not vetorizable yet (strided access pattern).  */
19   for (i = 0; i < N/2; i++)
20     {
21       a[i] = b[2*i+1] * c[2*i+1] - b[2*i] * c[2*i];
22       d[i] = b[2*i] * c[2*i+1] + b[2*i+1] * c[2*i];
23     } 
24
25   return 0;
26 }
27
28 /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */