OSDN Git Service

* config/rs6000/atlivec.md (mulv4si3): New pattern.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / vect / vect-29.c
1 /* { dg-require-effective-target vect_int } */
2
3 #include <stdarg.h>
4 #include "tree-vect.h"
5
6 #define N 128
7 #define OFF 3
8
9 /* unaligned load.  */
10
11 int main1 (int off)
12 {
13   int i;
14   int ia[N];
15   int ib[N+OFF];
16
17   for (i = 0; i < N+OFF; i++)
18     {
19       ib[i] = i;
20     }
21
22   for (i = 0; i < N; i++)
23     {
24       ia[i] = ib[i+off];
25     }
26
27   /* check results:  */
28   for (i = 0; i < N; i++)
29     {
30       if (ia[i] != ib[i+off])
31         abort ();
32     }
33
34   return 0;
35 }
36
37 int main (void)
38
39   check_vect ();
40   
41   main1 (0); /* aligned */
42   main1 (OFF); /* unaligned */
43   return 0;
44 }
45
46 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
47 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */
48 /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
49 /* { dg-final { cleanup-tree-dump "vect" } } */