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