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