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