1 typedef unsigned int u32;
2 typedef int s32;
3
4 s32 asr31(s32 a) { return a >> 31; }
5 s32 asr32(s32 a) { return a >> 32; }
6 s32 asr33(s32 a) { return a >> 33; }
7
8 u32 lsr31(u32 a) { return a >> 31; }
9 u32 lsr32(u32 a) { return a >> 32; }
10 u32 lsr33(u32 a) { return a >> 33; }
11
12 u32 shl31(u32 a) { return a << 31; }
13 u32 shl32(u32 a) { return a << 32; }
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 */