1/* { dg-require-effective-target vect_int } */
2
3#include <stdarg.h>
4#include "tree-vect.h"
5
6#define N 16
7
8unsigned int out[N];
9unsigned int in[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
10
11int i;
12__attribute__ ((noinline)) int
13main1 ()
14{
15  unsigned int *pin = &in[0];
16  unsigned int *pout = &out[0];
17
18  *pout++ = *pin++;
19  *pout++ = *pin++;
20  *pout++ = *pin++;
21  *pout++ = *pin++;
22
23  if (i)
24    __asm__ volatile ("" : : : "memory");
25
26  /* Check results.  */
27  if (out[0] != in[0]
28      || out[1] != in[1]
29      || out[2] != in[2]
30      || out[3] != in[3])
31    abort();
32
33  return 0;
34}
35
36int main (void)
37{
38  check_vect ();
39
40  main1 ();
41
42  return 0;
43}
44
45/* { dg-final { scan-tree-dump-times "basic block vectorized" 1 "slp2" } } */
46/* { dg-final { cleanup-tree-dump "slp2" } } */
47
48