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