OSDN Git Service

PR tree-optimization/35982
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / vect / vect-outer-2.c
1 /* { dg-require-effective-target vect_float } */
2 /* { dg-require-effective-target vect_intfloat_cvt } */
3 #include <stdarg.h>
4 #include "tree-vect.h"
5
6 #define N 40
7 float image[N][N] __attribute__ ((__aligned__(16)));
8 float out[N];
9
10 /* Outer-loop vectorization.  */
11
12 __attribute__ ((noinline)) void
13 foo (){
14   int i,j;
15
16   for (i = 0; i < N; i++) {
17     for (j = 0; j < N; j++) {
18       image[j][i] = j+i;
19     }
20   }
21 }
22
23 int main (void)
24 {
25   check_vect ();
26   int i, j;
27
28   foo ();
29
30   for (i = 0; i < N; i++) {
31     for (j = 0; j < N; j++) {
32       if (image[j][i] != j+i)
33         abort ();
34     }
35   }
36
37   return 0;
38 }
39
40 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" } } */
41 /* { dg-final { cleanup-tree-dump "vect" } } */