2018-01-16 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / pr80631-2.c
blob777738ad763cf4e3a5a6dee1ab240e61d96d4ca1
1 /* PR tree-optimization/80631 */
2 /* { dg-do run } */
4 #include "tree-vect.h"
6 int v[8] = { 77, 1, 79, 3, 4, 3, 6, 7 };
8 __attribute__((noipa)) void
9 f1 (void)
11 int k, r = -1;
12 for (k = 7; k >= 0; k--)
13 if (v[k] == 77)
14 r = k;
15 if (r != 0)
16 abort ();
19 __attribute__((noipa)) void
20 f2 (void)
22 int k, r = 4;
23 for (k = 7; k >= 0; k--)
24 if (v[k] == 79)
25 r = k;
26 if (r != 2)
27 abort ();
30 __attribute__((noipa)) void
31 f3 (void)
33 int k, r = -17;
34 for (k = 7; k >= 0; k--)
35 if (v[k] == 78)
36 r = k;
37 if (r != -17)
38 abort ();
41 __attribute__((noipa)) void
42 f4 (void)
44 int k, r = 7;
45 for (k = 7; k >= 0; k--)
46 if (v[k] == 78)
47 r = k;
48 if (r != 7)
49 abort ();
52 __attribute__((noipa)) void
53 f5 (void)
55 int k, r = -1;
56 for (k = 7; k >= 0; k--)
57 if (v[k] == 3)
58 r = k;
59 if (r != 3)
60 abort ();
63 int
64 main ()
66 check_vect ();
67 f1 ();
68 f2 ();
69 f3 ();
70 f4 ();
71 f5 ();
72 return 0;
75 /* { dg-final { scan-tree-dump-times "LOOP VECTORIZED" 5 "vect" { target vect_condition } } } */
76 /* { dg-final { scan-tree-dump-times "condition expression based on integer induction." 10 "vect" { target vect_condition } } } */