1f08c3bdfSopenharmony_citypedef  __INT16_TYPE__ s16;
2f08c3bdfSopenharmony_citypedef  __INT32_TYPE__ s32;
3f08c3bdfSopenharmony_citypedef  __INT64_TYPE__ s64;
4f08c3bdfSopenharmony_citypedef __UINT16_TYPE__ u16;
5f08c3bdfSopenharmony_citypedef __UINT32_TYPE__ u32;
6f08c3bdfSopenharmony_citypedef __UINT64_TYPE__ u64;
7f08c3bdfSopenharmony_ci
8f08c3bdfSopenharmony_cis16 s16s16(s16 a, s16 b) { a >>= b; return a; }
9f08c3bdfSopenharmony_cis16 s16s32(s16 a, s32 b) { a >>= b; return a; }
10f08c3bdfSopenharmony_cis16 s16s64(s16 a, s64 b) { a >>= b; return a; }
11f08c3bdfSopenharmony_cis16 s16u16(s16 a, u16 b) { a >>= b; return a; }
12f08c3bdfSopenharmony_cis16 s16u32(s16 a, u32 b) { a >>= b; return a; }
13f08c3bdfSopenharmony_cis16 s16u64(s16 a, u64 b) { a >>= b; return a; }
14f08c3bdfSopenharmony_cis32 s32s16(s32 a, s16 b) { a >>= b; return a; }
15f08c3bdfSopenharmony_cis32 s32s32(s32 a, s32 b) { a >>= b; return a; }
16f08c3bdfSopenharmony_cis32 s32s64(s32 a, s64 b) { a >>= b; return a; }
17f08c3bdfSopenharmony_cis32 s32u16(s32 a, u16 b) { a >>= b; return a; }
18f08c3bdfSopenharmony_cis32 s32u32(s32 a, u32 b) { a >>= b; return a; }
19f08c3bdfSopenharmony_cis32 s32u64(s32 a, u64 b) { a >>= b; return a; }
20f08c3bdfSopenharmony_cis64 s64s16(s64 a, s16 b);
21f08c3bdfSopenharmony_cis64 s64s32(s64 a, s32 b);
22f08c3bdfSopenharmony_cis64 s64s64(s64 a, s64 b) { a >>= b; return a; }
23f08c3bdfSopenharmony_cis64 s64u16(s64 a, u16 b) { a >>= b; return a; }
24f08c3bdfSopenharmony_cis64 s64u32(s64 a, u32 b) { a >>= b; return a; }
25f08c3bdfSopenharmony_cis64 s64u64(s64 a, u64 b) { a >>= b; return a; }
26f08c3bdfSopenharmony_ciu16 u16s16(u16 a, s16 b) { a >>= b; return a; }
27f08c3bdfSopenharmony_ciu16 u16s32(u16 a, s32 b) { a >>= b; return a; }
28f08c3bdfSopenharmony_ciu16 u16s64(u16 a, s64 b) { a >>= b; return a; }
29f08c3bdfSopenharmony_ciu16 u16u16(u16 a, u16 b) { a >>= b; return a; }
30f08c3bdfSopenharmony_ciu16 u16u32(u16 a, u32 b) { a >>= b; return a; }
31f08c3bdfSopenharmony_ciu16 u16u64(u16 a, u64 b) { a >>= b; return a; }
32f08c3bdfSopenharmony_ciu32 u32s16(u32 a, s16 b) { a >>= b; return a; }
33f08c3bdfSopenharmony_ciu32 u32s32(u32 a, s32 b) { a >>= b; return a; }
34f08c3bdfSopenharmony_ciu32 u32s64(u32 a, s64 b) { a >>= b; return a; }
35f08c3bdfSopenharmony_ciu32 u32u16(u32 a, u16 b) { a >>= b; return a; }
36f08c3bdfSopenharmony_ciu32 u32u32(u32 a, u32 b) { a >>= b; return a; }
37f08c3bdfSopenharmony_ciu32 u32u64(u32 a, u64 b) { a >>= b; return a; }
38f08c3bdfSopenharmony_ciu64 u64s16(u64 a, s16 b);
39f08c3bdfSopenharmony_ciu64 u64s32(u64 a, s32 b);
40f08c3bdfSopenharmony_ciu64 u64s64(u64 a, s64 b) { a >>= b; return a; }
41f08c3bdfSopenharmony_ciu64 u64u16(u64 a, u16 b) { a >>= b; return a; }
42f08c3bdfSopenharmony_ciu64 u64u32(u64 a, u32 b) { a >>= b; return a; }
43f08c3bdfSopenharmony_ciu64 u64u64(u64 a, u64 b) { a >>= b; return a; }
44f08c3bdfSopenharmony_ci
45f08c3bdfSopenharmony_ci/*
46f08c3bdfSopenharmony_ci * check-name: shift-assign1
47f08c3bdfSopenharmony_ci * check-command: test-linearize -Wno-decl $file
48f08c3bdfSopenharmony_ci *
49f08c3bdfSopenharmony_ci * check-output-start
50f08c3bdfSopenharmony_cis16s16:
51f08c3bdfSopenharmony_ci.L0:
52f08c3bdfSopenharmony_ci	<entry-point>
53f08c3bdfSopenharmony_ci	sext.32     %r2 <- (16) %arg2
54f08c3bdfSopenharmony_ci	sext.32     %r4 <- (16) %arg1
55f08c3bdfSopenharmony_ci	asr.32      %r5 <- %r4, %r2
56f08c3bdfSopenharmony_ci	trunc.16    %r6 <- (32) %r5
57f08c3bdfSopenharmony_ci	ret.16      %r6
58f08c3bdfSopenharmony_ci
59f08c3bdfSopenharmony_ci
60f08c3bdfSopenharmony_cis16s32:
61f08c3bdfSopenharmony_ci.L2:
62f08c3bdfSopenharmony_ci	<entry-point>
63f08c3bdfSopenharmony_ci	sext.32     %r11 <- (16) %arg1
64f08c3bdfSopenharmony_ci	asr.32      %r12 <- %r11, %arg2
65f08c3bdfSopenharmony_ci	trunc.16    %r13 <- (32) %r12
66f08c3bdfSopenharmony_ci	ret.16      %r13
67f08c3bdfSopenharmony_ci
68f08c3bdfSopenharmony_ci
69f08c3bdfSopenharmony_cis16s64:
70f08c3bdfSopenharmony_ci.L4:
71f08c3bdfSopenharmony_ci	<entry-point>
72f08c3bdfSopenharmony_ci	trunc.32    %r17 <- (64) %arg2
73f08c3bdfSopenharmony_ci	sext.32     %r19 <- (16) %arg1
74f08c3bdfSopenharmony_ci	asr.32      %r20 <- %r19, %r17
75f08c3bdfSopenharmony_ci	trunc.16    %r21 <- (32) %r20
76f08c3bdfSopenharmony_ci	ret.16      %r21
77f08c3bdfSopenharmony_ci
78f08c3bdfSopenharmony_ci
79f08c3bdfSopenharmony_cis16u16:
80f08c3bdfSopenharmony_ci.L6:
81f08c3bdfSopenharmony_ci	<entry-point>
82f08c3bdfSopenharmony_ci	zext.32     %r25 <- (16) %arg2
83f08c3bdfSopenharmony_ci	sext.32     %r27 <- (16) %arg1
84f08c3bdfSopenharmony_ci	asr.32      %r28 <- %r27, %r25
85f08c3bdfSopenharmony_ci	trunc.16    %r29 <- (32) %r28
86f08c3bdfSopenharmony_ci	ret.16      %r29
87f08c3bdfSopenharmony_ci
88f08c3bdfSopenharmony_ci
89f08c3bdfSopenharmony_cis16u32:
90f08c3bdfSopenharmony_ci.L8:
91f08c3bdfSopenharmony_ci	<entry-point>
92f08c3bdfSopenharmony_ci	sext.32     %r34 <- (16) %arg1
93f08c3bdfSopenharmony_ci	asr.32      %r35 <- %r34, %arg2
94f08c3bdfSopenharmony_ci	trunc.16    %r36 <- (32) %r35
95f08c3bdfSopenharmony_ci	ret.16      %r36
96f08c3bdfSopenharmony_ci
97f08c3bdfSopenharmony_ci
98f08c3bdfSopenharmony_cis16u64:
99f08c3bdfSopenharmony_ci.L10:
100f08c3bdfSopenharmony_ci	<entry-point>
101f08c3bdfSopenharmony_ci	trunc.32    %r40 <- (64) %arg2
102f08c3bdfSopenharmony_ci	sext.32     %r42 <- (16) %arg1
103f08c3bdfSopenharmony_ci	asr.32      %r43 <- %r42, %r40
104f08c3bdfSopenharmony_ci	trunc.16    %r44 <- (32) %r43
105f08c3bdfSopenharmony_ci	ret.16      %r44
106f08c3bdfSopenharmony_ci
107f08c3bdfSopenharmony_ci
108f08c3bdfSopenharmony_cis32s16:
109f08c3bdfSopenharmony_ci.L12:
110f08c3bdfSopenharmony_ci	<entry-point>
111f08c3bdfSopenharmony_ci	sext.32     %r48 <- (16) %arg2
112f08c3bdfSopenharmony_ci	asr.32      %r50 <- %arg1, %r48
113f08c3bdfSopenharmony_ci	ret.32      %r50
114f08c3bdfSopenharmony_ci
115f08c3bdfSopenharmony_ci
116f08c3bdfSopenharmony_cis32s32:
117f08c3bdfSopenharmony_ci.L14:
118f08c3bdfSopenharmony_ci	<entry-point>
119f08c3bdfSopenharmony_ci	asr.32      %r55 <- %arg1, %arg2
120f08c3bdfSopenharmony_ci	ret.32      %r55
121f08c3bdfSopenharmony_ci
122f08c3bdfSopenharmony_ci
123f08c3bdfSopenharmony_cis32s64:
124f08c3bdfSopenharmony_ci.L16:
125f08c3bdfSopenharmony_ci	<entry-point>
126f08c3bdfSopenharmony_ci	trunc.32    %r59 <- (64) %arg2
127f08c3bdfSopenharmony_ci	asr.32      %r61 <- %arg1, %r59
128f08c3bdfSopenharmony_ci	ret.32      %r61
129f08c3bdfSopenharmony_ci
130f08c3bdfSopenharmony_ci
131f08c3bdfSopenharmony_cis32u16:
132f08c3bdfSopenharmony_ci.L18:
133f08c3bdfSopenharmony_ci	<entry-point>
134f08c3bdfSopenharmony_ci	zext.32     %r65 <- (16) %arg2
135f08c3bdfSopenharmony_ci	asr.32      %r67 <- %arg1, %r65
136f08c3bdfSopenharmony_ci	ret.32      %r67
137f08c3bdfSopenharmony_ci
138f08c3bdfSopenharmony_ci
139f08c3bdfSopenharmony_cis32u32:
140f08c3bdfSopenharmony_ci.L20:
141f08c3bdfSopenharmony_ci	<entry-point>
142f08c3bdfSopenharmony_ci	asr.32      %r72 <- %arg1, %arg2
143f08c3bdfSopenharmony_ci	ret.32      %r72
144f08c3bdfSopenharmony_ci
145f08c3bdfSopenharmony_ci
146f08c3bdfSopenharmony_cis32u64:
147f08c3bdfSopenharmony_ci.L22:
148f08c3bdfSopenharmony_ci	<entry-point>
149f08c3bdfSopenharmony_ci	trunc.32    %r76 <- (64) %arg2
150f08c3bdfSopenharmony_ci	asr.32      %r78 <- %arg1, %r76
151f08c3bdfSopenharmony_ci	ret.32      %r78
152f08c3bdfSopenharmony_ci
153f08c3bdfSopenharmony_ci
154f08c3bdfSopenharmony_cis64s64:
155f08c3bdfSopenharmony_ci.L24:
156f08c3bdfSopenharmony_ci	<entry-point>
157f08c3bdfSopenharmony_ci	asr.64      %r83 <- %arg1, %arg2
158f08c3bdfSopenharmony_ci	ret.64      %r83
159f08c3bdfSopenharmony_ci
160f08c3bdfSopenharmony_ci
161f08c3bdfSopenharmony_cis64u16:
162f08c3bdfSopenharmony_ci.L26:
163f08c3bdfSopenharmony_ci	<entry-point>
164f08c3bdfSopenharmony_ci	zext.64     %r88 <- (16) %arg2
165f08c3bdfSopenharmony_ci	asr.64      %r90 <- %arg1, %r88
166f08c3bdfSopenharmony_ci	ret.64      %r90
167f08c3bdfSopenharmony_ci
168f08c3bdfSopenharmony_ci
169f08c3bdfSopenharmony_cis64u32:
170f08c3bdfSopenharmony_ci.L28:
171f08c3bdfSopenharmony_ci	<entry-point>
172f08c3bdfSopenharmony_ci	zext.64     %r94 <- (32) %arg2
173f08c3bdfSopenharmony_ci	asr.64      %r96 <- %arg1, %r94
174f08c3bdfSopenharmony_ci	ret.64      %r96
175f08c3bdfSopenharmony_ci
176f08c3bdfSopenharmony_ci
177f08c3bdfSopenharmony_cis64u64:
178f08c3bdfSopenharmony_ci.L30:
179f08c3bdfSopenharmony_ci	<entry-point>
180f08c3bdfSopenharmony_ci	asr.64      %r101 <- %arg1, %arg2
181f08c3bdfSopenharmony_ci	ret.64      %r101
182f08c3bdfSopenharmony_ci
183f08c3bdfSopenharmony_ci
184f08c3bdfSopenharmony_ciu16s16:
185f08c3bdfSopenharmony_ci.L32:
186f08c3bdfSopenharmony_ci	<entry-point>
187f08c3bdfSopenharmony_ci	sext.32     %r105 <- (16) %arg2
188f08c3bdfSopenharmony_ci	zext.32     %r107 <- (16) %arg1
189f08c3bdfSopenharmony_ci	asr.32      %r108 <- %r107, %r105
190f08c3bdfSopenharmony_ci	trunc.16    %r109 <- (32) %r108
191f08c3bdfSopenharmony_ci	ret.16      %r109
192f08c3bdfSopenharmony_ci
193f08c3bdfSopenharmony_ci
194f08c3bdfSopenharmony_ciu16s32:
195f08c3bdfSopenharmony_ci.L34:
196f08c3bdfSopenharmony_ci	<entry-point>
197f08c3bdfSopenharmony_ci	zext.32     %r114 <- (16) %arg1
198f08c3bdfSopenharmony_ci	asr.32      %r115 <- %r114, %arg2
199f08c3bdfSopenharmony_ci	trunc.16    %r116 <- (32) %r115
200f08c3bdfSopenharmony_ci	ret.16      %r116
201f08c3bdfSopenharmony_ci
202f08c3bdfSopenharmony_ci
203f08c3bdfSopenharmony_ciu16s64:
204f08c3bdfSopenharmony_ci.L36:
205f08c3bdfSopenharmony_ci	<entry-point>
206f08c3bdfSopenharmony_ci	trunc.32    %r120 <- (64) %arg2
207f08c3bdfSopenharmony_ci	zext.32     %r122 <- (16) %arg1
208f08c3bdfSopenharmony_ci	asr.32      %r123 <- %r122, %r120
209f08c3bdfSopenharmony_ci	trunc.16    %r124 <- (32) %r123
210f08c3bdfSopenharmony_ci	ret.16      %r124
211f08c3bdfSopenharmony_ci
212f08c3bdfSopenharmony_ci
213f08c3bdfSopenharmony_ciu16u16:
214f08c3bdfSopenharmony_ci.L38:
215f08c3bdfSopenharmony_ci	<entry-point>
216f08c3bdfSopenharmony_ci	zext.32     %r128 <- (16) %arg2
217f08c3bdfSopenharmony_ci	zext.32     %r130 <- (16) %arg1
218f08c3bdfSopenharmony_ci	asr.32      %r131 <- %r130, %r128
219f08c3bdfSopenharmony_ci	trunc.16    %r132 <- (32) %r131
220f08c3bdfSopenharmony_ci	ret.16      %r132
221f08c3bdfSopenharmony_ci
222f08c3bdfSopenharmony_ci
223f08c3bdfSopenharmony_ciu16u32:
224f08c3bdfSopenharmony_ci.L40:
225f08c3bdfSopenharmony_ci	<entry-point>
226f08c3bdfSopenharmony_ci	zext.32     %r137 <- (16) %arg1
227f08c3bdfSopenharmony_ci	asr.32      %r138 <- %r137, %arg2
228f08c3bdfSopenharmony_ci	trunc.16    %r139 <- (32) %r138
229f08c3bdfSopenharmony_ci	ret.16      %r139
230f08c3bdfSopenharmony_ci
231f08c3bdfSopenharmony_ci
232f08c3bdfSopenharmony_ciu16u64:
233f08c3bdfSopenharmony_ci.L42:
234f08c3bdfSopenharmony_ci	<entry-point>
235f08c3bdfSopenharmony_ci	trunc.32    %r143 <- (64) %arg2
236f08c3bdfSopenharmony_ci	zext.32     %r145 <- (16) %arg1
237f08c3bdfSopenharmony_ci	asr.32      %r146 <- %r145, %r143
238f08c3bdfSopenharmony_ci	trunc.16    %r147 <- (32) %r146
239f08c3bdfSopenharmony_ci	ret.16      %r147
240f08c3bdfSopenharmony_ci
241f08c3bdfSopenharmony_ci
242f08c3bdfSopenharmony_ciu32s16:
243f08c3bdfSopenharmony_ci.L44:
244f08c3bdfSopenharmony_ci	<entry-point>
245f08c3bdfSopenharmony_ci	sext.32     %r151 <- (16) %arg2
246f08c3bdfSopenharmony_ci	lsr.32      %r153 <- %arg1, %r151
247f08c3bdfSopenharmony_ci	ret.32      %r153
248f08c3bdfSopenharmony_ci
249f08c3bdfSopenharmony_ci
250f08c3bdfSopenharmony_ciu32s32:
251f08c3bdfSopenharmony_ci.L46:
252f08c3bdfSopenharmony_ci	<entry-point>
253f08c3bdfSopenharmony_ci	lsr.32      %r158 <- %arg1, %arg2
254f08c3bdfSopenharmony_ci	ret.32      %r158
255f08c3bdfSopenharmony_ci
256f08c3bdfSopenharmony_ci
257f08c3bdfSopenharmony_ciu32s64:
258f08c3bdfSopenharmony_ci.L48:
259f08c3bdfSopenharmony_ci	<entry-point>
260f08c3bdfSopenharmony_ci	trunc.32    %r162 <- (64) %arg2
261f08c3bdfSopenharmony_ci	lsr.32      %r164 <- %arg1, %r162
262f08c3bdfSopenharmony_ci	ret.32      %r164
263f08c3bdfSopenharmony_ci
264f08c3bdfSopenharmony_ci
265f08c3bdfSopenharmony_ciu32u16:
266f08c3bdfSopenharmony_ci.L50:
267f08c3bdfSopenharmony_ci	<entry-point>
268f08c3bdfSopenharmony_ci	zext.32     %r168 <- (16) %arg2
269f08c3bdfSopenharmony_ci	lsr.32      %r170 <- %arg1, %r168
270f08c3bdfSopenharmony_ci	ret.32      %r170
271f08c3bdfSopenharmony_ci
272f08c3bdfSopenharmony_ci
273f08c3bdfSopenharmony_ciu32u32:
274f08c3bdfSopenharmony_ci.L52:
275f08c3bdfSopenharmony_ci	<entry-point>
276f08c3bdfSopenharmony_ci	lsr.32      %r175 <- %arg1, %arg2
277f08c3bdfSopenharmony_ci	ret.32      %r175
278f08c3bdfSopenharmony_ci
279f08c3bdfSopenharmony_ci
280f08c3bdfSopenharmony_ciu32u64:
281f08c3bdfSopenharmony_ci.L54:
282f08c3bdfSopenharmony_ci	<entry-point>
283f08c3bdfSopenharmony_ci	trunc.32    %r179 <- (64) %arg2
284f08c3bdfSopenharmony_ci	lsr.32      %r181 <- %arg1, %r179
285f08c3bdfSopenharmony_ci	ret.32      %r181
286f08c3bdfSopenharmony_ci
287f08c3bdfSopenharmony_ci
288f08c3bdfSopenharmony_ciu64s64:
289f08c3bdfSopenharmony_ci.L56:
290f08c3bdfSopenharmony_ci	<entry-point>
291f08c3bdfSopenharmony_ci	lsr.64      %r186 <- %arg1, %arg2
292f08c3bdfSopenharmony_ci	ret.64      %r186
293f08c3bdfSopenharmony_ci
294f08c3bdfSopenharmony_ci
295f08c3bdfSopenharmony_ciu64u16:
296f08c3bdfSopenharmony_ci.L58:
297f08c3bdfSopenharmony_ci	<entry-point>
298f08c3bdfSopenharmony_ci	zext.64     %r191 <- (16) %arg2
299f08c3bdfSopenharmony_ci	lsr.64      %r193 <- %arg1, %r191
300f08c3bdfSopenharmony_ci	ret.64      %r193
301f08c3bdfSopenharmony_ci
302f08c3bdfSopenharmony_ci
303f08c3bdfSopenharmony_ciu64u32:
304f08c3bdfSopenharmony_ci.L60:
305f08c3bdfSopenharmony_ci	<entry-point>
306f08c3bdfSopenharmony_ci	zext.64     %r197 <- (32) %arg2
307f08c3bdfSopenharmony_ci	lsr.64      %r199 <- %arg1, %r197
308f08c3bdfSopenharmony_ci	ret.64      %r199
309f08c3bdfSopenharmony_ci
310f08c3bdfSopenharmony_ci
311f08c3bdfSopenharmony_ciu64u64:
312f08c3bdfSopenharmony_ci.L62:
313f08c3bdfSopenharmony_ci	<entry-point>
314f08c3bdfSopenharmony_ci	lsr.64      %r204 <- %arg1, %arg2
315f08c3bdfSopenharmony_ci	ret.64      %r204
316f08c3bdfSopenharmony_ci
317f08c3bdfSopenharmony_ci
318f08c3bdfSopenharmony_ci * check-output-end
319f08c3bdfSopenharmony_ci */
320