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