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