1 typedef unsigned int u32;
2 typedef          int s32;
3 
asr31(s32 a)4 s32 asr31(s32 a) { return a >> 31; }
asr32(s32 a)5 s32 asr32(s32 a) { return a >> 32; }
asr33(s32 a)6 s32 asr33(s32 a) { return a >> 33; }
7 
lsr31(u32 a)8 u32 lsr31(u32 a) { return a >> 31; }
lsr32(u32 a)9 u32 lsr32(u32 a) { return a >> 32; }
lsr33(u32 a)10 u32 lsr33(u32 a) { return a >> 33; }
11 
shl31(u32 a)12 u32 shl31(u32 a) { return a << 31; }
shl32(u32 a)13 u32 shl32(u32 a) { return a << 32; }
shl33(u32 a)14 u32 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
22 asr31:
23 .L0:
24 	<entry-point>
25 	asr.32      %r2 <- %arg1, $31
26 	ret.32      %r2
27 
28 
29 asr32:
30 .L2:
31 	<entry-point>
32 	asr.32      %r5 <- %arg1, $32
33 	ret.32      %r5
34 
35 
36 asr33:
37 .L4:
38 	<entry-point>
39 	asr.32      %r8 <- %arg1, $33
40 	ret.32      %r8
41 
42 
43 lsr31:
44 .L6:
45 	<entry-point>
46 	lsr.32      %r11 <- %arg1, $31
47 	ret.32      %r11
48 
49 
50 lsr32:
51 .L8:
52 	<entry-point>
53 	ret.32      $0
54 
55 
56 lsr33:
57 .L10:
58 	<entry-point>
59 	ret.32      $0
60 
61 
62 shl31:
63 .L12:
64 	<entry-point>
65 	shl.32      %r20 <- %arg1, $31
66 	ret.32      %r20
67 
68 
69 shl32:
70 .L14:
71 	<entry-point>
72 	ret.32      $0
73 
74 
75 shl33:
76 .L16:
77 	<entry-point>
78 	ret.32      $0
79 
80 
81  * check-output-end
82  */
83