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