1 /* This testcase checks that the shift operand of r*sbg instructions is in
2 range. */
3
4 /* { dg-do compile } */
5 /* { dg-options "-O3 -march=zEC12 -Wno-shift-count-overflow" } */
6
7 int g;
8
9 void pos_ll_129 (long long b)
10 {
11 if (b >> 129 & 1)
12 g = b;
13 }
14
15 void sizepos_ll_134 (long long b)
16 {
17 if (b >> 134 & 1)
18 g = b;
19 }
20
21 void pos_ll_65 (long long b)
22 {
23 if (b >> 65 & 1)
24 g = b;
25 }
26
27 void sizepos_ll_70 (long long b)
28 {
29 if (b >> 70 & 1)
30 g = b;
31 }
32
33 void pos_ll_33 (long long b)
34 {
35 if (b >> 33 & 1)
36 g = b;
37 }
38
39 void sizepos_ll_38 (long long b)
40 {
41 if (b >> 38 & 1)
42 g = b;
43 }
44
45 void pos_ll_17 (long long b)
46 {
47 if (b >> 17 & 1)
48 g = b;
49 }
50
51 void sizepos_ll_22 (long long b)
52 {
53 if (b >> 22 & 1)
54 g = b;
55 }
56
57 void pos_ll_8 (long long b)
58 {
59 if (b >> 8 & 1)
60 g = b;
61 }
62
63 void sizepos_ll_13 (long long b)
64 {
65 if (b >> 13 & 1)
66 g = b;
67 }
68
69 void pos_l_129 (long b)
70 {
71 if (b >> 129 & 1)
72 g = b;
73 }
74
75 void sizepos_l_134 (long b)
76 {
77 if (b >> 134 & 1)
78 g = b;
79 }
80
81 void pos_l_65 (long b)
82 {
83 if (b >> 65 & 1)
84 g = b;
85 }
86
87 void sizepos_l_70 (long b)
88 {
89 if (b >> 70 & 1)
90 g = b;
91 }
92
93 void pos_l_33 (long b)
94 {
95 if (b >> 33 & 1)
96 g = b;
97 }
98
99 void sizepos_l_38 (long b)
100 {
101 if (b >> 38 & 1)
102 g = b;
103 }
104
105 void pos_l_17 (long b)
106 {
107 if (b >> 17 & 1)
108 g = b;
109 }
110
111 void sizepos_l_22 (long b)
112 {
113 if (b >> 22 & 1)
114 g = b;
115 }
116
117 void pos_l_8 (long b)
118 {
119 if (b >> 8 & 1)
120 g = b;
121 }
122
123 void sizepos_l_13 (long b)
124 {
125 if (b >> 13 & 1)
126 g = b;
127 }
128
129 void pos_i_129 (int b)
130 {
131 if (b >> 129 & 1)
132 g = b;
133 }
134
135 void sizepos_i_134 (int b)
136 {
137 if (b >> 134 & 1)
138 g = b;
139 }
140
141 void pos_i_65 (int b)
142 {
143 if (b >> 65 & 1)
144 g = b;
145 }
146
147 void sizepos_i_70 (int b)
148 {
149 if (b >> 70 & 1)
150 g = b;
151 }
152
153 void pos_i_33 (int b)
154 {
155 if (b >> 33 & 1)
156 g = b;
157 }
158
159 void sizepos_i_38 (int b)
160 {
161 if (b >> 38 & 1)
162 g = b;
163 }
164
165 void pos_i_17 (int b)
166 {
167 if (b >> 17 & 1)
168 g = b;
169 }
170
171 void sizepos_i_22 (int b)
172 {
173 if (b >> 22 & 1)
174 g = b;
175 }
176
177 void pos_i_8 (int b)
178 {
179 if (b >> 8 & 1)
180 g = b;
181 }
182
183 void sizepos_i_13 (int b)
184 {
185 if (b >> 13 & 1)
186 g = b;
187 }
188
189 void pos_s_129 (short b)
190 {
191 if (b >> 129 & 1)
192 g = b;
193 }
194
195 void sizepos_s_134 (short b)
196 {
197 if (b >> 134 & 1)
198 g = b;
199 }
200
201 void pos_s_65 (short b)
202 {
203 if (b >> 65 & 1)
204 g = b;
205 }
206
207 void sizepos_s_70 (short b)
208 {
209 if (b >> 70 & 1)
210 g = b;
211 }
212
213 void pos_s_33 (short b)
214 {
215 if (b >> 33 & 1)
216 g = b;
217 }
218
219 void sizepos_s_38 (short b)
220 {
221 if (b >> 38 & 1)
222 g = b;
223 }
224
225 void pos_s_17 (short b)
226 {
227 if (b >> 17 & 1)
228 g = b;
229 }
230
231 void sizepos_s_22 (short b)
232 {
233 if (b >> 22 & 1)
234 g = b;
235 }
236
237 void pos_s_8 (short b)
238 {
239 if (b >> 8 & 1)
240 g = b;
241 }
242
243 void sizepos_s_13 (short b)
244 {
245 if (b >> 13 & 1)
246 g = b;
247 }
248
249 void pos_c_129 (signed char b)
250 {
251 if (b >> 129 & 1)
252 g = b;
253 }
254
255 void sizepos_c_134 (signed char b)
256 {
257 if (b >> 134 & 1)
258 g = b;
259 }
260
261 void pos_c_65 (signed char b)
262 {
263 if (b >> 65 & 1)
264 g = b;
265 }
266
267 void sizepos_c_70 (signed char b)
268 {
269 if (b >> 70 & 1)
270 g = b;
271 }
272
273 void pos_c_33 (signed char b)
274 {
275 if (b >> 33 & 1)
276 g = b;
277 }
278
279 void sizepos_c_38 (signed char b)
280 {
281 if (b >> 38 & 1)
282 g = b;
283 }
284
285 void pos_c_17 (signed char b)
286 {
287 if (b >> 17 & 1)
288 g = b;
289 }
290
291 void sizepos_c_22 (signed char b)
292 {
293 if (b >> 22 & 1)
294 g = b;
295 }
296
297 void pos_c_8 (signed char b)
298 {
299 if (b >> 8 & 1)
300 g = b;
301 }
302
303 void sizepos_c_13 (signed char b)
304 {
305 if (b >> 13 & 1)
306 g = b;
307 }
308
309 /* { dg-final { scan-assembler-not "risbg.*-\[0-9\]+\\\+1\n" } } */