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