2018-01-16 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / pr81410.c
blob8d1bd6c8efda1032bbf9839ce70fec3f385426f4
1 /* { dg-do run } */
2 /* { dg-require-effective-target vect_long_long } */
4 #include "tree-vect.h"
6 long long x[24];
7 long long y[16];
8 long long z[8];
10 void __attribute__((noinline)) foo()
12 for (int i = 0; i < 8; ++i)
14 y[2*i] = x[3*i];
15 y[2*i + 1] = x[3*i + 1];
16 z[i] = 1;
20 int main()
22 check_vect ();
24 for (int i = 0; i < 24; ++i)
26 x[i] = i;
27 __asm__ volatile ("" : : : "memory");
29 foo ();
30 for (int i = 0; i < 8; ++i)
31 if (y[2*i] != 3*i || y[2*i+1] != 3*i + 1)
32 __builtin_abort ();
34 return 0;
37 /* { dg-final { scan-tree-dump "vectorized 1 loops" "vect" } } */