1f08c3bdfSopenharmony_citypedef unsigned int u32;
2f08c3bdfSopenharmony_citypedef          int s32;
3f08c3bdfSopenharmony_ci
4f08c3bdfSopenharmony_cis32 asr31(s32 a) { return a >> 31; }
5f08c3bdfSopenharmony_cis32 asr32(s32 a) { return a >> 32; }
6f08c3bdfSopenharmony_cis32 asr33(s32 a) { return a >> 33; }
7f08c3bdfSopenharmony_ci
8f08c3bdfSopenharmony_ciu32 lsr31(u32 a) { return a >> 31; }
9f08c3bdfSopenharmony_ciu32 lsr32(u32 a) { return a >> 32; }
10f08c3bdfSopenharmony_ciu32 lsr33(u32 a) { return a >> 33; }
11f08c3bdfSopenharmony_ci
12f08c3bdfSopenharmony_ciu32 shl31(u32 a) { return a << 31; }
13f08c3bdfSopenharmony_ciu32 shl32(u32 a) { return a << 32; }
14f08c3bdfSopenharmony_ciu32 shl33(u32 a) { return a << 33; }
15f08c3bdfSopenharmony_ci
16f08c3bdfSopenharmony_ci/*
17f08c3bdfSopenharmony_ci * check-name: optim/shift-big.c
18f08c3bdfSopenharmony_ci * check-command: test-linearize -Wno-decl -m64 $file
19f08c3bdfSopenharmony_ci *
20f08c3bdfSopenharmony_ci * check-error-ignore
21f08c3bdfSopenharmony_ci * check-output-start
22f08c3bdfSopenharmony_ciasr31:
23f08c3bdfSopenharmony_ci.L0:
24f08c3bdfSopenharmony_ci	<entry-point>
25f08c3bdfSopenharmony_ci	asr.32      %r2 <- %arg1, $31
26f08c3bdfSopenharmony_ci	ret.32      %r2
27f08c3bdfSopenharmony_ci
28f08c3bdfSopenharmony_ci
29f08c3bdfSopenharmony_ciasr32:
30f08c3bdfSopenharmony_ci.L2:
31f08c3bdfSopenharmony_ci	<entry-point>
32f08c3bdfSopenharmony_ci	asr.32      %r5 <- %arg1, $32
33f08c3bdfSopenharmony_ci	ret.32      %r5
34f08c3bdfSopenharmony_ci
35f08c3bdfSopenharmony_ci
36f08c3bdfSopenharmony_ciasr33:
37f08c3bdfSopenharmony_ci.L4:
38f08c3bdfSopenharmony_ci	<entry-point>
39f08c3bdfSopenharmony_ci	asr.32      %r8 <- %arg1, $33
40f08c3bdfSopenharmony_ci	ret.32      %r8
41f08c3bdfSopenharmony_ci
42f08c3bdfSopenharmony_ci
43f08c3bdfSopenharmony_cilsr31:
44f08c3bdfSopenharmony_ci.L6:
45f08c3bdfSopenharmony_ci	<entry-point>
46f08c3bdfSopenharmony_ci	lsr.32      %r11 <- %arg1, $31
47f08c3bdfSopenharmony_ci	ret.32      %r11
48f08c3bdfSopenharmony_ci
49f08c3bdfSopenharmony_ci
50f08c3bdfSopenharmony_cilsr32:
51f08c3bdfSopenharmony_ci.L8:
52f08c3bdfSopenharmony_ci	<entry-point>
53f08c3bdfSopenharmony_ci	lsr.32      %r14 <- %arg1, $32
54f08c3bdfSopenharmony_ci	ret.32      %r14
55f08c3bdfSopenharmony_ci
56f08c3bdfSopenharmony_ci
57f08c3bdfSopenharmony_cilsr33:
58f08c3bdfSopenharmony_ci.L10:
59f08c3bdfSopenharmony_ci	<entry-point>
60f08c3bdfSopenharmony_ci	lsr.32      %r17 <- %arg1, $33
61f08c3bdfSopenharmony_ci	ret.32      %r17
62f08c3bdfSopenharmony_ci
63f08c3bdfSopenharmony_ci
64f08c3bdfSopenharmony_cishl31:
65f08c3bdfSopenharmony_ci.L12:
66f08c3bdfSopenharmony_ci	<entry-point>
67f08c3bdfSopenharmony_ci	shl.32      %r20 <- %arg1, $31
68f08c3bdfSopenharmony_ci	ret.32      %r20
69f08c3bdfSopenharmony_ci
70f08c3bdfSopenharmony_ci
71f08c3bdfSopenharmony_cishl32:
72f08c3bdfSopenharmony_ci.L14:
73f08c3bdfSopenharmony_ci	<entry-point>
74f08c3bdfSopenharmony_ci	shl.32      %r23 <- %arg1, $32
75f08c3bdfSopenharmony_ci	ret.32      %r23
76f08c3bdfSopenharmony_ci
77f08c3bdfSopenharmony_ci
78f08c3bdfSopenharmony_cishl33:
79f08c3bdfSopenharmony_ci.L16:
80f08c3bdfSopenharmony_ci	<entry-point>
81f08c3bdfSopenharmony_ci	shl.32      %r26 <- %arg1, $33
82f08c3bdfSopenharmony_ci	ret.32      %r26
83f08c3bdfSopenharmony_ci
84f08c3bdfSopenharmony_ci
85f08c3bdfSopenharmony_ci * check-output-end
86f08c3bdfSopenharmony_ci */
87