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