Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/loop-versioning-14.c @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 /* { dg-options "-O3 -fdump-tree-lversion-details" } */ | |
2 | |
3 /* Test that we don't try to version for a step of 1 when that would | |
4 cause the iterations to leave a gap between accesses. */ | |
5 | |
6 void | |
7 f1 (unsigned short *x, int stepx, int n) | |
8 { | |
9 for (int i = 0; i < n; ++i) | |
10 { | |
11 x[i * stepx * 4] = 100; | |
12 x[i * stepx * 4 + 1] = 99; | |
13 } | |
14 } | |
15 | |
16 void | |
17 f2 (unsigned short *x, int stepx, int n) | |
18 { | |
19 for (int i = 0; i < n; i += stepx * 4) | |
20 { | |
21 x[i] = 100; | |
22 x[i + 1] = 99; | |
23 } | |
24 } | |
25 | |
26 void | |
27 f3 (unsigned short *x, int stepx, int n) | |
28 { | |
29 for (int i = 0; i < n; ++i) | |
30 { | |
31 x[i * stepx * 4 - 16] = 100; | |
32 x[i * stepx * 4 - 15] = 99; | |
33 } | |
34 } | |
35 | |
36 void | |
37 f4 (unsigned short *x, int stepx, int n) | |
38 { | |
39 for (int i = 0; i < n; i += stepx * 4) | |
40 { | |
41 x[i - 16] = 100; | |
42 x[i - 15] = 99; | |
43 } | |
44 } | |
45 | |
46 void | |
47 f5 (unsigned short *x, int stepx, int n) | |
48 { | |
49 for (int i = 0; i < n; ++i) | |
50 { | |
51 x[i * stepx * 64 - 16] = 100; | |
52 x[i * stepx * 64 + 15] = 99; | |
53 } | |
54 } | |
55 | |
56 void | |
57 f6 (unsigned short *x, int stepx, int n) | |
58 { | |
59 for (int i = 0; i < n; i += stepx * 64) | |
60 { | |
61 x[i - 16] = 100; | |
62 x[i + 15] = 99; | |
63 } | |
64 } | |
65 | |
66 void | |
67 f7 (unsigned short *x, int stepx, int n) | |
68 { | |
69 for (unsigned short *y = x; y < x + n; y += stepx * 4) | |
70 { | |
71 y[0] = 100; | |
72 y[1] = 99; | |
73 } | |
74 } | |
75 | |
76 unsigned short x[1000]; | |
77 | |
78 void | |
79 g1 (int stepx, int n) | |
80 { | |
81 for (int i = 0; i < n; ++i) | |
82 { | |
83 x[i * stepx * 4] = 100; | |
84 x[i * stepx * 4 + 1] = 99; | |
85 } | |
86 } | |
87 | |
88 void | |
89 g2 (int stepx, int n) | |
90 { | |
91 for (int i = 0; i < n; i += stepx * 4) | |
92 { | |
93 x[i] = 100; | |
94 x[i + 1] = 99; | |
95 } | |
96 } | |
97 | |
98 void | |
99 g3 (int stepx, int n) | |
100 { | |
101 for (int i = 0; i < n; ++i) | |
102 { | |
103 x[i * stepx * 4 - 16] = 100; | |
104 x[i * stepx * 4 - 15] = 99; | |
105 } | |
106 } | |
107 | |
108 void | |
109 g4 (int stepx, int n) | |
110 { | |
111 for (int i = 0; i < n; i += stepx * 4) | |
112 { | |
113 x[i - 16] = 100; | |
114 x[i - 15] = 99; | |
115 } | |
116 } | |
117 | |
118 void | |
119 g5 (int stepx, int n) | |
120 { | |
121 for (int i = 0; i < n; ++i) | |
122 { | |
123 x[i * stepx * 64 - 16] = 100; | |
124 x[i * stepx * 64 + 15] = 99; | |
125 } | |
126 } | |
127 | |
128 void | |
129 g6 (int stepx, int n) | |
130 { | |
131 for (int i = 0; i < n; i += stepx * 64) | |
132 { | |
133 x[i - 16] = 100; | |
134 x[i + 15] = 99; | |
135 } | |
136 } | |
137 | |
138 void | |
139 g7 (int stepx, int n) | |
140 { | |
141 for (unsigned short *y = x; y < x + n; y += stepx * 4) | |
142 { | |
143 y[0] = 100; | |
144 y[1] = 99; | |
145 } | |
146 } | |
147 | |
148 /* { dg-final { scan-tree-dump-not {want to version} "lversion" } } */ | |
149 /* { dg-final { scan-tree-dump-not {versioned} "lversion" } } */ |