1typedef __INT16_TYPE__ s16; 2typedef __INT32_TYPE__ s32; 3typedef __INT64_TYPE__ s64; 4typedef __UINT16_TYPE__ u16; 5typedef __UINT32_TYPE__ u32; 6typedef __UINT64_TYPE__ u64; 7 8s16 s16s16(s16 a, s16 b) { a >>= b; return a; } 9s16 s16s32(s16 a, s32 b) { a >>= b; return a; } 10s16 s16s64(s16 a, s64 b) { a >>= b; return a; } 11s16 s16u16(s16 a, u16 b) { a >>= b; return a; } 12s16 s16u32(s16 a, u32 b) { a >>= b; return a; } 13s16 s16u64(s16 a, u64 b) { a >>= b; return a; } 14s32 s32s16(s32 a, s16 b) { a >>= b; return a; } 15s32 s32s32(s32 a, s32 b) { a >>= b; return a; } 16s32 s32s64(s32 a, s64 b) { a >>= b; return a; } 17s32 s32u16(s32 a, u16 b) { a >>= b; return a; } 18s32 s32u32(s32 a, u32 b) { a >>= b; return a; } 19s32 s32u64(s32 a, u64 b) { a >>= b; return a; } 20s64 s64s16(s64 a, s16 b); 21s64 s64s32(s64 a, s32 b); 22s64 s64s64(s64 a, s64 b) { a >>= b; return a; } 23s64 s64u16(s64 a, u16 b) { a >>= b; return a; } 24s64 s64u32(s64 a, u32 b) { a >>= b; return a; } 25s64 s64u64(s64 a, u64 b) { a >>= b; return a; } 26u16 u16s16(u16 a, s16 b) { a >>= b; return a; } 27u16 u16s32(u16 a, s32 b) { a >>= b; return a; } 28u16 u16s64(u16 a, s64 b) { a >>= b; return a; } 29u16 u16u16(u16 a, u16 b) { a >>= b; return a; } 30u16 u16u32(u16 a, u32 b) { a >>= b; return a; } 31u16 u16u64(u16 a, u64 b) { a >>= b; return a; } 32u32 u32s16(u32 a, s16 b) { a >>= b; return a; } 33u32 u32s32(u32 a, s32 b) { a >>= b; return a; } 34u32 u32s64(u32 a, s64 b) { a >>= b; return a; } 35u32 u32u16(u32 a, u16 b) { a >>= b; return a; } 36u32 u32u32(u32 a, u32 b) { a >>= b; return a; } 37u32 u32u64(u32 a, u64 b) { a >>= b; return a; } 38u64 u64s16(u64 a, s16 b); 39u64 u64s32(u64 a, s32 b); 40u64 u64s64(u64 a, s64 b) { a >>= b; return a; } 41u64 u64u16(u64 a, u16 b) { a >>= b; return a; } 42u64 u64u32(u64 a, u32 b) { a >>= b; return a; } 43u64 u64u64(u64 a, u64 b) { a >>= b; return a; } 44 45/* 46 * check-name: shift-assign1 47 * check-command: test-linearize -Wno-decl $file 48 * 49 * check-output-start 50s16s16: 51.L0: 52 <entry-point> 53 sext.32 %r2 <- (16) %arg2 54 sext.32 %r4 <- (16) %arg1 55 asr.32 %r5 <- %r4, %r2 56 trunc.16 %r6 <- (32) %r5 57 ret.16 %r6 58 59 60s16s32: 61.L2: 62 <entry-point> 63 sext.32 %r11 <- (16) %arg1 64 asr.32 %r12 <- %r11, %arg2 65 trunc.16 %r13 <- (32) %r12 66 ret.16 %r13 67 68 69s16s64: 70.L4: 71 <entry-point> 72 trunc.32 %r17 <- (64) %arg2 73 sext.32 %r19 <- (16) %arg1 74 asr.32 %r20 <- %r19, %r17 75 trunc.16 %r21 <- (32) %r20 76 ret.16 %r21 77 78 79s16u16: 80.L6: 81 <entry-point> 82 zext.32 %r25 <- (16) %arg2 83 sext.32 %r27 <- (16) %arg1 84 asr.32 %r28 <- %r27, %r25 85 trunc.16 %r29 <- (32) %r28 86 ret.16 %r29 87 88 89s16u32: 90.L8: 91 <entry-point> 92 sext.32 %r34 <- (16) %arg1 93 asr.32 %r35 <- %r34, %arg2 94 trunc.16 %r36 <- (32) %r35 95 ret.16 %r36 96 97 98s16u64: 99.L10: 100 <entry-point> 101 trunc.32 %r40 <- (64) %arg2 102 sext.32 %r42 <- (16) %arg1 103 asr.32 %r43 <- %r42, %r40 104 trunc.16 %r44 <- (32) %r43 105 ret.16 %r44 106 107 108s32s16: 109.L12: 110 <entry-point> 111 sext.32 %r48 <- (16) %arg2 112 asr.32 %r50 <- %arg1, %r48 113 ret.32 %r50 114 115 116s32s32: 117.L14: 118 <entry-point> 119 asr.32 %r55 <- %arg1, %arg2 120 ret.32 %r55 121 122 123s32s64: 124.L16: 125 <entry-point> 126 trunc.32 %r59 <- (64) %arg2 127 asr.32 %r61 <- %arg1, %r59 128 ret.32 %r61 129 130 131s32u16: 132.L18: 133 <entry-point> 134 zext.32 %r65 <- (16) %arg2 135 asr.32 %r67 <- %arg1, %r65 136 ret.32 %r67 137 138 139s32u32: 140.L20: 141 <entry-point> 142 asr.32 %r72 <- %arg1, %arg2 143 ret.32 %r72 144 145 146s32u64: 147.L22: 148 <entry-point> 149 trunc.32 %r76 <- (64) %arg2 150 asr.32 %r78 <- %arg1, %r76 151 ret.32 %r78 152 153 154s64s64: 155.L24: 156 <entry-point> 157 asr.64 %r83 <- %arg1, %arg2 158 ret.64 %r83 159 160 161s64u16: 162.L26: 163 <entry-point> 164 zext.64 %r88 <- (16) %arg2 165 asr.64 %r90 <- %arg1, %r88 166 ret.64 %r90 167 168 169s64u32: 170.L28: 171 <entry-point> 172 zext.64 %r94 <- (32) %arg2 173 asr.64 %r96 <- %arg1, %r94 174 ret.64 %r96 175 176 177s64u64: 178.L30: 179 <entry-point> 180 asr.64 %r101 <- %arg1, %arg2 181 ret.64 %r101 182 183 184u16s16: 185.L32: 186 <entry-point> 187 sext.32 %r105 <- (16) %arg2 188 zext.32 %r107 <- (16) %arg1 189 asr.32 %r108 <- %r107, %r105 190 trunc.16 %r109 <- (32) %r108 191 ret.16 %r109 192 193 194u16s32: 195.L34: 196 <entry-point> 197 zext.32 %r114 <- (16) %arg1 198 asr.32 %r115 <- %r114, %arg2 199 trunc.16 %r116 <- (32) %r115 200 ret.16 %r116 201 202 203u16s64: 204.L36: 205 <entry-point> 206 trunc.32 %r120 <- (64) %arg2 207 zext.32 %r122 <- (16) %arg1 208 asr.32 %r123 <- %r122, %r120 209 trunc.16 %r124 <- (32) %r123 210 ret.16 %r124 211 212 213u16u16: 214.L38: 215 <entry-point> 216 zext.32 %r128 <- (16) %arg2 217 zext.32 %r130 <- (16) %arg1 218 asr.32 %r131 <- %r130, %r128 219 trunc.16 %r132 <- (32) %r131 220 ret.16 %r132 221 222 223u16u32: 224.L40: 225 <entry-point> 226 zext.32 %r137 <- (16) %arg1 227 asr.32 %r138 <- %r137, %arg2 228 trunc.16 %r139 <- (32) %r138 229 ret.16 %r139 230 231 232u16u64: 233.L42: 234 <entry-point> 235 trunc.32 %r143 <- (64) %arg2 236 zext.32 %r145 <- (16) %arg1 237 asr.32 %r146 <- %r145, %r143 238 trunc.16 %r147 <- (32) %r146 239 ret.16 %r147 240 241 242u32s16: 243.L44: 244 <entry-point> 245 sext.32 %r151 <- (16) %arg2 246 lsr.32 %r153 <- %arg1, %r151 247 ret.32 %r153 248 249 250u32s32: 251.L46: 252 <entry-point> 253 lsr.32 %r158 <- %arg1, %arg2 254 ret.32 %r158 255 256 257u32s64: 258.L48: 259 <entry-point> 260 trunc.32 %r162 <- (64) %arg2 261 lsr.32 %r164 <- %arg1, %r162 262 ret.32 %r164 263 264 265u32u16: 266.L50: 267 <entry-point> 268 zext.32 %r168 <- (16) %arg2 269 lsr.32 %r170 <- %arg1, %r168 270 ret.32 %r170 271 272 273u32u32: 274.L52: 275 <entry-point> 276 lsr.32 %r175 <- %arg1, %arg2 277 ret.32 %r175 278 279 280u32u64: 281.L54: 282 <entry-point> 283 trunc.32 %r179 <- (64) %arg2 284 lsr.32 %r181 <- %arg1, %r179 285 ret.32 %r181 286 287 288u64s64: 289.L56: 290 <entry-point> 291 lsr.64 %r186 <- %arg1, %arg2 292 ret.64 %r186 293 294 295u64u16: 296.L58: 297 <entry-point> 298 zext.64 %r191 <- (16) %arg2 299 lsr.64 %r193 <- %arg1, %r191 300 ret.64 %r193 301 302 303u64u32: 304.L60: 305 <entry-point> 306 zext.64 %r197 <- (32) %arg2 307 lsr.64 %r199 <- %arg1, %r197 308 ret.64 %r199 309 310 311u64u64: 312.L62: 313 <entry-point> 314 lsr.64 %r204 <- %arg1, %arg2 315 ret.64 %r204 316 317 318 * check-output-end 319 */ 320