]>
Commit | Line | Data |
---|---|---|
13e08dc9 | 1 | /* { dg-options "-O3 -fdump-tree-lversion-details" } */ |
8d1a718e | 2 | /* { dg-require-effective-target size32plus } */ |
13e08dc9 RS |
3 | |
4 | /* The simplest IV case. */ | |
5 | ||
6 | void | |
7 | f1 (double *x, int stepx, int n) | |
8 | { | |
9 | for (int i = 0; i < n; ++i) | |
10 | x[stepx * i] = 100; | |
11 | } | |
12 | ||
13 | void | |
14 | f2 (double *x, int stepx, int limit) | |
15 | { | |
16 | for (int i = 0; i < limit; i += stepx) | |
17 | x[i] = 100; | |
18 | } | |
19 | ||
20 | void | |
21 | f3 (double *x, int stepx, int limit) | |
22 | { | |
23 | for (double *y = x; y < x + limit; y += stepx) | |
24 | *y = 100; | |
25 | } | |
26 | ||
27 | void | |
28 | f4 (double *x, int stepx, unsigned int n) | |
29 | { | |
30 | for (unsigned int i = 0; i < n; ++i) | |
31 | x[stepx * i] = 100; | |
32 | } | |
33 | ||
34 | void | |
35 | f5 (double *x, int stepx, unsigned int limit) | |
36 | { | |
37 | for (unsigned int i = 0; i < limit; i += stepx) | |
38 | x[i] = 100; | |
39 | } | |
40 | ||
41 | void | |
42 | f6 (double *x, int stepx, unsigned int limit) | |
43 | { | |
44 | for (double *y = x; y < x + limit; y += stepx) | |
45 | *y = 100; | |
46 | } | |
47 | ||
92ea8e1b JL |
48 | #if __SIZEOF_SIZE_T__ < 4 |
49 | double x[1000]; | |
50 | #else | |
13e08dc9 | 51 | double x[10000]; |
92ea8e1b | 52 | #endif |
13e08dc9 RS |
53 | |
54 | void | |
55 | g1 (int stepx, int n) | |
56 | { | |
57 | for (int i = 0; i < n; ++i) | |
58 | x[stepx * i] = 100; | |
59 | } | |
60 | ||
61 | void | |
62 | g2 (int stepx, int limit) | |
63 | { | |
64 | for (int i = 0; i < limit; i += stepx) | |
65 | x[i] = 100; | |
66 | } | |
67 | ||
68 | void | |
69 | g3 (int stepx, int limit) | |
70 | { | |
71 | for (double *y = x; y < x + limit; y += stepx) | |
72 | *y = 100; | |
73 | } | |
74 | ||
75 | void | |
76 | g4 (int stepx, unsigned int n) | |
77 | { | |
78 | for (unsigned int i = 0; i < n; ++i) | |
79 | x[stepx * i] = 100; | |
80 | } | |
81 | ||
82 | void | |
83 | g5 (int stepx, unsigned int limit) | |
84 | { | |
85 | for (unsigned int i = 0; i < limit; i += stepx) | |
86 | x[i] = 100; | |
87 | } | |
88 | ||
89 | void | |
90 | g6 (int stepx, unsigned int limit) | |
91 | { | |
92 | for (double *y = x; y < x + limit; y += stepx) | |
93 | *y = 100; | |
94 | } | |
95 | ||
96 | /* { dg-final { scan-tree-dump-times {want to version containing loop} 12 "lversion" } } */ | |
97 | /* { dg-final { scan-tree-dump-times {versioned this loop} 12 "lversion" } } */ |