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