1f08c3bdfSopenharmony_ciunsigned int shl0(unsigned int x)
2f08c3bdfSopenharmony_ci{
3f08c3bdfSopenharmony_ci	return x << 15 << 15;
4f08c3bdfSopenharmony_ci}
5f08c3bdfSopenharmony_ci
6f08c3bdfSopenharmony_ciunsigned int shl1(unsigned int x)
7f08c3bdfSopenharmony_ci{
8f08c3bdfSopenharmony_ci	return x << 16 << 15;
9f08c3bdfSopenharmony_ci}
10f08c3bdfSopenharmony_ci
11f08c3bdfSopenharmony_ciunsigned int shl2(unsigned int x)
12f08c3bdfSopenharmony_ci{
13f08c3bdfSopenharmony_ci	return x << 16 << 16;
14f08c3bdfSopenharmony_ci}
15f08c3bdfSopenharmony_ci
16f08c3bdfSopenharmony_ciunsigned int shl3(unsigned int x)
17f08c3bdfSopenharmony_ci{
18f08c3bdfSopenharmony_ci	return x << 12 << 10 << 10;
19f08c3bdfSopenharmony_ci}
20f08c3bdfSopenharmony_ci
21f08c3bdfSopenharmony_ci
22f08c3bdfSopenharmony_ciunsigned int lsr0(unsigned int x)
23f08c3bdfSopenharmony_ci{
24f08c3bdfSopenharmony_ci	return x >> 15 >> 15;
25f08c3bdfSopenharmony_ci}
26f08c3bdfSopenharmony_ci
27f08c3bdfSopenharmony_ciunsigned int lsr1(unsigned int x)
28f08c3bdfSopenharmony_ci{
29f08c3bdfSopenharmony_ci	return x >> 16 >> 15;
30f08c3bdfSopenharmony_ci}
31f08c3bdfSopenharmony_ci
32f08c3bdfSopenharmony_ciunsigned int lsr2(unsigned int x)
33f08c3bdfSopenharmony_ci{
34f08c3bdfSopenharmony_ci	return x >> 16 >> 16;
35f08c3bdfSopenharmony_ci}
36f08c3bdfSopenharmony_ci
37f08c3bdfSopenharmony_ciunsigned int lsr3(unsigned int x)
38f08c3bdfSopenharmony_ci{
39f08c3bdfSopenharmony_ci	return x >> 12 >> 10 >> 10;
40f08c3bdfSopenharmony_ci}
41f08c3bdfSopenharmony_ci
42f08c3bdfSopenharmony_ci
43f08c3bdfSopenharmony_ciint asr0(int x)
44f08c3bdfSopenharmony_ci{
45f08c3bdfSopenharmony_ci	return x >> 15 >> 15;
46f08c3bdfSopenharmony_ci}
47f08c3bdfSopenharmony_ci
48f08c3bdfSopenharmony_ciint asr1(int x)
49f08c3bdfSopenharmony_ci{
50f08c3bdfSopenharmony_ci	return x >> 16 >> 15;
51f08c3bdfSopenharmony_ci}
52f08c3bdfSopenharmony_ci
53f08c3bdfSopenharmony_ciint asr2(int x)
54f08c3bdfSopenharmony_ci{
55f08c3bdfSopenharmony_ci	return x >> 16 >> 16;
56f08c3bdfSopenharmony_ci}
57f08c3bdfSopenharmony_ci
58f08c3bdfSopenharmony_ciint asr3(int x)
59f08c3bdfSopenharmony_ci{
60f08c3bdfSopenharmony_ci	return x >> 12 >> 10 >> 10;
61f08c3bdfSopenharmony_ci}
62f08c3bdfSopenharmony_ci
63f08c3bdfSopenharmony_ci/*
64f08c3bdfSopenharmony_ci * check-name: shift-shift
65f08c3bdfSopenharmony_ci * check-command: test-linearize -Wno-decl $file
66f08c3bdfSopenharmony_ci *
67f08c3bdfSopenharmony_ci * check-output-start
68f08c3bdfSopenharmony_cishl0:
69f08c3bdfSopenharmony_ci.L0:
70f08c3bdfSopenharmony_ci	<entry-point>
71f08c3bdfSopenharmony_ci	shl.32      %r3 <- %arg1, $30
72f08c3bdfSopenharmony_ci	ret.32      %r3
73f08c3bdfSopenharmony_ci
74f08c3bdfSopenharmony_ci
75f08c3bdfSopenharmony_cishl1:
76f08c3bdfSopenharmony_ci.L2:
77f08c3bdfSopenharmony_ci	<entry-point>
78f08c3bdfSopenharmony_ci	shl.32      %r7 <- %arg1, $31
79f08c3bdfSopenharmony_ci	ret.32      %r7
80f08c3bdfSopenharmony_ci
81f08c3bdfSopenharmony_ci
82f08c3bdfSopenharmony_cishl2:
83f08c3bdfSopenharmony_ci.L4:
84f08c3bdfSopenharmony_ci	<entry-point>
85f08c3bdfSopenharmony_ci	ret.32      $0
86f08c3bdfSopenharmony_ci
87f08c3bdfSopenharmony_ci
88f08c3bdfSopenharmony_cishl3:
89f08c3bdfSopenharmony_ci.L6:
90f08c3bdfSopenharmony_ci	<entry-point>
91f08c3bdfSopenharmony_ci	ret.32      $0
92f08c3bdfSopenharmony_ci
93f08c3bdfSopenharmony_ci
94f08c3bdfSopenharmony_cilsr0:
95f08c3bdfSopenharmony_ci.L8:
96f08c3bdfSopenharmony_ci	<entry-point>
97f08c3bdfSopenharmony_ci	lsr.32      %r20 <- %arg1, $30
98f08c3bdfSopenharmony_ci	ret.32      %r20
99f08c3bdfSopenharmony_ci
100f08c3bdfSopenharmony_ci
101f08c3bdfSopenharmony_cilsr1:
102f08c3bdfSopenharmony_ci.L10:
103f08c3bdfSopenharmony_ci	<entry-point>
104f08c3bdfSopenharmony_ci	lsr.32      %r24 <- %arg1, $31
105f08c3bdfSopenharmony_ci	ret.32      %r24
106f08c3bdfSopenharmony_ci
107f08c3bdfSopenharmony_ci
108f08c3bdfSopenharmony_cilsr2:
109f08c3bdfSopenharmony_ci.L12:
110f08c3bdfSopenharmony_ci	<entry-point>
111f08c3bdfSopenharmony_ci	ret.32      $0
112f08c3bdfSopenharmony_ci
113f08c3bdfSopenharmony_ci
114f08c3bdfSopenharmony_cilsr3:
115f08c3bdfSopenharmony_ci.L14:
116f08c3bdfSopenharmony_ci	<entry-point>
117f08c3bdfSopenharmony_ci	ret.32      $0
118f08c3bdfSopenharmony_ci
119f08c3bdfSopenharmony_ci
120f08c3bdfSopenharmony_ciasr0:
121f08c3bdfSopenharmony_ci.L16:
122f08c3bdfSopenharmony_ci	<entry-point>
123f08c3bdfSopenharmony_ci	asr.32      %r37 <- %arg1, $30
124f08c3bdfSopenharmony_ci	ret.32      %r37
125f08c3bdfSopenharmony_ci
126f08c3bdfSopenharmony_ci
127f08c3bdfSopenharmony_ciasr1:
128f08c3bdfSopenharmony_ci.L18:
129f08c3bdfSopenharmony_ci	<entry-point>
130f08c3bdfSopenharmony_ci	asr.32      %r41 <- %arg1, $31
131f08c3bdfSopenharmony_ci	ret.32      %r41
132f08c3bdfSopenharmony_ci
133f08c3bdfSopenharmony_ci
134f08c3bdfSopenharmony_ciasr2:
135f08c3bdfSopenharmony_ci.L20:
136f08c3bdfSopenharmony_ci	<entry-point>
137f08c3bdfSopenharmony_ci	asr.32      %r45 <- %arg1, $31
138f08c3bdfSopenharmony_ci	ret.32      %r45
139f08c3bdfSopenharmony_ci
140f08c3bdfSopenharmony_ci
141f08c3bdfSopenharmony_ciasr3:
142f08c3bdfSopenharmony_ci.L22:
143f08c3bdfSopenharmony_ci	<entry-point>
144f08c3bdfSopenharmony_ci	asr.32      %r50 <- %arg1, $31
145f08c3bdfSopenharmony_ci	ret.32      %r50
146f08c3bdfSopenharmony_ci
147f08c3bdfSopenharmony_ci
148f08c3bdfSopenharmony_ci * check-output-end
149f08c3bdfSopenharmony_ci */
150