| OLD | NEW |
| 1 /* { dg-do compile } */ | 1 /* { dg-do compile } */ |
| 2 | 2 |
| 3 #define N 64 | 3 #define N 64 |
| 4 signed short image[N][N] __attribute__ ((__aligned__(16))); | 4 signed short image[N][N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__))); |
| 5 signed short block[N][N] __attribute__ ((__aligned__(16))); | 5 signed short block[N][N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__))); |
| 6 | 6 |
| 7 /* Can't do outer-loop vectorization because of non-consecutive access. | 7 /* Can't do outer-loop vectorization because of non-consecutive access. */ |
| 8 Currently fails to vectorize because the reduction pattern is not | |
| 9 recognized. */ | |
| 10 | 8 |
| 11 int | 9 int |
| 12 foo (){ | 10 foo (){ |
| 13 int i,j; | 11 int i,j; |
| 14 int diff = 0; | 12 int diff = 0; |
| 15 | 13 |
| 16 for (i = 0; i < N; i++) { | 14 for (i = 0; i < N; i++) { |
| 17 for (j = 0; j < N; j+=8) { | 15 for (j = 0; j < N; j+=8) { |
| 18 diff += (image[i][j] - block[i][j]); | 16 diff += (image[i][j] - block[i][j]); |
| 19 } | 17 } |
| 20 } | 18 } |
| 21 return diff; | 19 return diff; |
| 22 } | 20 } |
| 23 | 21 |
| 24 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-
*-* } } } */ | 22 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" { xfail *-
*-* } } } */ |
| 25 /* FORNOW */ | 23 /* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" } }
*/ |
| 26 /* { dg-final { scan-tree-dump-times "strided access in outer loop" 1 "vect" { x
fail *-*-* } } } */ | |
| 27 /* { dg-final { scan-tree-dump-times "unexpected pattern" 1 "vect" } } */ | |
| 28 /* { dg-final { cleanup-tree-dump "vect" } } */ | 24 /* { dg-final { cleanup-tree-dump "vect" } } */ |
| OLD | NEW |