2018-01-16 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / vect-align-3.c
blob156bb018241fe7f72f26a87817f92a5c0ca8406d
1 /* { dg-do compile } */
2 /* { dg-require-effective-target vect_int } */
3 /* { dg-add-options bind_pic_locally } */
5 int a[2048];
7 void
8 f1 (int x, int y)
10 int i;
11 x &= -256;
12 y &= -256;
13 for (i = x + 256; i < y; i++)
14 a[i]++;
17 void
18 f2 (int x, int y)
20 int i;
21 if (x & 31)
22 __builtin_unreachable ();
23 if (y & 31)
24 __builtin_unreachable ();
25 for (i = x + 256; i < x + y; i++)
26 a[i]++;
29 void
30 f3 (int x, int y)
32 int i;
33 if (x % 256)
34 __builtin_unreachable ();
35 if (y % 256)
36 __builtin_unreachable ();
37 for (i = x + 256; i < x + y; i++)
38 a[i]++;
41 void
42 f4 (int x, int y)
44 int i;
45 if ((x % 256) != 0)
46 __builtin_unreachable ();
47 if ((y % 256) != 0)
48 __builtin_unreachable ();
49 for (i = x + 256; i < x + y; i++)
50 a[i]++;
53 /* { dg-final { scan-tree-dump-not "vect_do_peeling_for_loop_bound" "vect" } } */
54 /* { dg-final { scan-tree-dump-not "loop peeled for vectorization" "vect" } } */