1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -O0 -mtriple thumb-- -mattr=+v6t2 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s 3--- | 4 define void @test_trunc_and_zext_s1_to_s32() { ret void } 5 define void @test_trunc_and_sext_s1_to_s32() { ret void } 6 define void @test_trunc_and_anyext_s1_to_s32() { ret void } 7 8 define void @test_trunc_and_zext_s8_to_s32() { ret void } 9 define void @test_trunc_and_sext_s8_to_s32() { ret void } 10 define void @test_trunc_and_anyext_s8_to_s32() { ret void } 11 12 define void @test_trunc_and_zext_s16_to_s32() { ret void } 13 define void @test_trunc_and_sext_s16_to_s32() { ret void } 14 define void @test_trunc_and_anyext_s16_to_s32() { ret void } 15 16 define void @test_trunc_and_zext_s1_to_s16() { ret void } 17 define void @test_trunc_and_sext_s1_to_s16() { ret void } 18 define void @test_trunc_and_anyext_s1_to_s16() { ret void } 19 20 define void @test_trunc_and_zext_s8_to_s16() { ret void } 21 define void @test_trunc_and_sext_s8_to_s16() { ret void } 22 define void @test_trunc_and_anyext_s8_to_s16() { ret void } 23 24 define void @test_trunc_and_zext_s1_to_s8() { ret void } 25 define void @test_trunc_and_sext_s1_to_s8() { ret void } 26 define void @test_trunc_and_anyext_s1_to_s8() { ret void } 27... 28--- 29name: test_trunc_and_zext_s1_to_s32 30legalized: true 31regBankSelected: true 32selected: false 33tracksRegLiveness: true 34registers: 35 - { id: 0, class: gprb } 36 - { id: 1, class: gprb } 37 - { id: 2, class: gprb } 38body: | 39 bb.0: 40 liveins: $r0 41 42 ; CHECK-LABEL: name: test_trunc_and_zext_s1_to_s32 43 ; CHECK: liveins: $r0 44 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 45 ; CHECK: [[COPY1:%[0-9]+]]:rgpr = COPY [[COPY]] 46 ; CHECK: [[t2ANDri:%[0-9]+]]:rgpr = t2ANDri [[COPY1]], 1, 14 /* CC::al */, $noreg, $noreg 47 ; CHECK: $r0 = COPY [[t2ANDri]] 48 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0 49 %0(s32) = COPY $r0 50 51 %1(s1) = G_TRUNC %0(s32) 52 53 %2(s32) = G_ZEXT %1(s1) 54 55 $r0 = COPY %2(s32) 56 57 BX_RET 14, $noreg, implicit $r0 58... 59--- 60name: test_trunc_and_sext_s1_to_s32 61legalized: true 62regBankSelected: true 63selected: false 64tracksRegLiveness: true 65registers: 66 - { id: 0, class: gprb } 67 - { id: 1, class: gprb } 68 - { id: 2, class: gprb } 69body: | 70 bb.0: 71 liveins: $r0 72 73 ; CHECK-LABEL: name: test_trunc_and_sext_s1_to_s32 74 ; CHECK: liveins: $r0 75 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 76 ; CHECK: [[COPY1:%[0-9]+]]:rgpr = COPY [[COPY]] 77 ; CHECK: [[t2ANDri:%[0-9]+]]:rgpr = t2ANDri [[COPY1]], 1, 14 /* CC::al */, $noreg, $noreg 78 ; CHECK: [[t2RSBri:%[0-9]+]]:rgpr = t2RSBri [[t2ANDri]], 0, 14 /* CC::al */, $noreg, $noreg 79 ; CHECK: $r0 = COPY [[t2RSBri]] 80 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0 81 %0(s32) = COPY $r0 82 83 %1(s1) = G_TRUNC %0(s32) 84 85 %2(s32) = G_SEXT %1(s1) 86 87 $r0 = COPY %2(s32) 88 89 BX_RET 14, $noreg, implicit $r0 90... 91--- 92name: test_trunc_and_anyext_s1_to_s32 93legalized: true 94regBankSelected: true 95selected: false 96tracksRegLiveness: true 97registers: 98 - { id: 0, class: gprb } 99 - { id: 1, class: gprb } 100 - { id: 2, class: gprb } 101body: | 102 bb.0: 103 liveins: $r0 104 105 ; CHECK-LABEL: name: test_trunc_and_anyext_s1_to_s32 106 ; CHECK: liveins: $r0 107 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 108 ; CHECK: $r0 = COPY [[COPY]] 109 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0 110 %0(s32) = COPY $r0 111 112 %1(s1) = G_TRUNC %0(s32) 113 114 %2(s32) = G_ANYEXT %1(s1) 115 116 $r0 = COPY %2(s32) 117 118 BX_RET 14, $noreg, implicit $r0 119... 120--- 121name: test_trunc_and_zext_s8_to_s32 122legalized: true 123regBankSelected: true 124selected: false 125tracksRegLiveness: true 126registers: 127 - { id: 0, class: gprb } 128 - { id: 1, class: gprb } 129 - { id: 2, class: gprb } 130body: | 131 bb.0: 132 liveins: $r0 133 134 ; CHECK-LABEL: name: test_trunc_and_zext_s8_to_s32 135 ; CHECK: liveins: $r0 136 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 137 ; CHECK: [[COPY1:%[0-9]+]]:rgpr = COPY [[COPY]] 138 ; CHECK: [[t2UXTB:%[0-9]+]]:rgpr = t2UXTB [[COPY1]], 0, 14 /* CC::al */, $noreg 139 ; CHECK: $r0 = COPY [[t2UXTB]] 140 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0 141 %0(s32) = COPY $r0 142 143 %1(s8) = G_TRUNC %0(s32) 144 145 %2(s32) = G_ZEXT %1(s8) 146 147 $r0 = COPY %2(s32) 148 149 BX_RET 14, $noreg, implicit $r0 150... 151--- 152name: test_trunc_and_sext_s8_to_s32 153legalized: true 154regBankSelected: true 155selected: false 156tracksRegLiveness: true 157registers: 158 - { id: 0, class: gprb } 159 - { id: 1, class: gprb } 160 - { id: 2, class: gprb } 161body: | 162 bb.0: 163 liveins: $r0 164 165 ; CHECK-LABEL: name: test_trunc_and_sext_s8_to_s32 166 ; CHECK: liveins: $r0 167 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 168 ; CHECK: [[COPY1:%[0-9]+]]:rgpr = COPY [[COPY]] 169 ; CHECK: [[t2SXTB:%[0-9]+]]:rgpr = t2SXTB [[COPY1]], 0, 14 /* CC::al */, $noreg 170 ; CHECK: $r0 = COPY [[t2SXTB]] 171 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0 172 %0(s32) = COPY $r0 173 174 %1(s8) = G_TRUNC %0(s32) 175 176 %2(s32) = G_SEXT %1(s8) 177 178 $r0 = COPY %2(s32) 179 180 BX_RET 14, $noreg, implicit $r0 181... 182--- 183name: test_trunc_and_anyext_s8_to_s32 184legalized: true 185regBankSelected: true 186selected: false 187tracksRegLiveness: true 188registers: 189 - { id: 0, class: gprb } 190 - { id: 1, class: gprb } 191 - { id: 2, class: gprb } 192body: | 193 bb.0: 194 liveins: $r0 195 196 ; CHECK-LABEL: name: test_trunc_and_anyext_s8_to_s32 197 ; CHECK: liveins: $r0 198 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 199 ; CHECK: $r0 = COPY [[COPY]] 200 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0 201 %0(s32) = COPY $r0 202 203 %1(s8) = G_TRUNC %0(s32) 204 205 %2(s32) = G_ANYEXT %1(s8) 206 207 $r0 = COPY %2(s32) 208 209 BX_RET 14, $noreg, implicit $r0 210... 211--- 212name: test_trunc_and_zext_s16_to_s32 213legalized: true 214regBankSelected: true 215selected: false 216tracksRegLiveness: true 217registers: 218 - { id: 0, class: gprb } 219 - { id: 1, class: gprb } 220 - { id: 2, class: gprb } 221body: | 222 bb.0: 223 liveins: $r0 224 225 ; CHECK-LABEL: name: test_trunc_and_zext_s16_to_s32 226 ; CHECK: liveins: $r0 227 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 228 ; CHECK: [[COPY1:%[0-9]+]]:rgpr = COPY [[COPY]] 229 ; CHECK: [[t2UXTH:%[0-9]+]]:rgpr = t2UXTH [[COPY1]], 0, 14 /* CC::al */, $noreg 230 ; CHECK: $r0 = COPY [[t2UXTH]] 231 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0 232 %0(s32) = COPY $r0 233 234 %1(s16) = G_TRUNC %0(s32) 235 236 %2(s32) = G_ZEXT %1(s16) 237 238 $r0 = COPY %2(s32) 239 240 BX_RET 14, $noreg, implicit $r0 241... 242--- 243name: test_trunc_and_sext_s16_to_s32 244legalized: true 245regBankSelected: true 246selected: false 247tracksRegLiveness: true 248registers: 249 - { id: 0, class: gprb } 250 - { id: 1, class: gprb } 251 - { id: 2, class: gprb } 252body: | 253 bb.0: 254 liveins: $r0 255 256 ; CHECK-LABEL: name: test_trunc_and_sext_s16_to_s32 257 ; CHECK: liveins: $r0 258 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 259 ; CHECK: [[COPY1:%[0-9]+]]:rgpr = COPY [[COPY]] 260 ; CHECK: [[t2SXTH:%[0-9]+]]:rgpr = t2SXTH [[COPY1]], 0, 14 /* CC::al */, $noreg 261 ; CHECK: $r0 = COPY [[t2SXTH]] 262 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0 263 %0(s32) = COPY $r0 264 265 %1(s16) = G_TRUNC %0(s32) 266 267 %2(s32) = G_SEXT %1(s16) 268 269 $r0 = COPY %2(s32) 270 271 BX_RET 14, $noreg, implicit $r0 272... 273--- 274name: test_trunc_and_anyext_s16_to_s32 275legalized: true 276regBankSelected: true 277selected: false 278tracksRegLiveness: true 279registers: 280 - { id: 0, class: gprb } 281 - { id: 1, class: gprb } 282 - { id: 2, class: gprb } 283body: | 284 bb.0: 285 liveins: $r0 286 287 ; CHECK-LABEL: name: test_trunc_and_anyext_s16_to_s32 288 ; CHECK: liveins: $r0 289 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 290 ; CHECK: $r0 = COPY [[COPY]] 291 ; CHECK: BX_RET 14 /* CC::al */, $noreg, implicit $r0 292 %0(s32) = COPY $r0 293 294 %1(s16) = G_TRUNC %0(s32) 295 296 %2(s32) = G_ANYEXT %1(s16) 297 298 $r0 = COPY %2(s32) 299 300 BX_RET 14, $noreg, implicit $r0 301... 302--- 303name: test_trunc_and_zext_s1_to_s16 304legalized: true 305regBankSelected: true 306selected: false 307tracksRegLiveness: true 308registers: 309 - { id: 0, class: gprb } 310 - { id: 1, class: gprb } 311 - { id: 2, class: gprb } 312 - { id: 3, class: gprb } 313body: | 314 bb.0: 315 liveins: $r0, $r1 316 317 ; CHECK-LABEL: name: test_trunc_and_zext_s1_to_s16 318 ; CHECK: liveins: $r0, $r1 319 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 320 ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1 321 ; CHECK: [[COPY2:%[0-9]+]]:rgpr = COPY [[COPY1]] 322 ; CHECK: [[t2ANDri:%[0-9]+]]:rgpr = t2ANDri [[COPY2]], 1, 14 /* CC::al */, $noreg, $noreg 323 ; CHECK: t2STRHi12 [[t2ANDri]], [[COPY]], 0, 14 /* CC::al */, $noreg :: (store (s16)) 324 ; CHECK: BX_RET 14 /* CC::al */, $noreg 325 %0(p0) = COPY $r0 326 327 %1(s32) = COPY $r1 328 329 %2(s1) = G_TRUNC %1(s32) 330 331 %3(s16) = G_ZEXT %2(s1) 332 333 G_STORE %3(s16), %0(p0) :: (store (s16)) 334 335 BX_RET 14, $noreg 336... 337--- 338name: test_trunc_and_sext_s1_to_s16 339legalized: true 340regBankSelected: true 341selected: false 342tracksRegLiveness: true 343registers: 344 - { id: 0, class: gprb } 345 - { id: 1, class: gprb } 346 - { id: 2, class: gprb } 347 - { id: 3, class: gprb } 348body: | 349 bb.0: 350 liveins: $r0, $r1 351 352 ; CHECK-LABEL: name: test_trunc_and_sext_s1_to_s16 353 ; CHECK: liveins: $r0, $r1 354 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 355 ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1 356 ; CHECK: [[COPY2:%[0-9]+]]:rgpr = COPY [[COPY1]] 357 ; CHECK: [[t2ANDri:%[0-9]+]]:rgpr = t2ANDri [[COPY2]], 1, 14 /* CC::al */, $noreg, $noreg 358 ; CHECK: [[t2RSBri:%[0-9]+]]:rgpr = t2RSBri [[t2ANDri]], 0, 14 /* CC::al */, $noreg, $noreg 359 ; CHECK: t2STRHi12 [[t2RSBri]], [[COPY]], 0, 14 /* CC::al */, $noreg :: (store (s16)) 360 ; CHECK: BX_RET 14 /* CC::al */, $noreg 361 %0(p0) = COPY $r0 362 363 %1(s32) = COPY $r1 364 365 %2(s1) = G_TRUNC %1(s32) 366 367 %3(s16) = G_SEXT %2(s1) 368 369 G_STORE %3(s16), %0(p0) :: (store (s16)) 370 371 BX_RET 14, $noreg 372... 373--- 374name: test_trunc_and_anyext_s1_to_s16 375legalized: true 376regBankSelected: true 377selected: false 378tracksRegLiveness: true 379registers: 380 - { id: 0, class: gprb } 381 - { id: 1, class: gprb } 382 - { id: 2, class: gprb } 383 - { id: 3, class: gprb } 384body: | 385 bb.0: 386 liveins: $r0, $r1 387 388 ; CHECK-LABEL: name: test_trunc_and_anyext_s1_to_s16 389 ; CHECK: liveins: $r0, $r1 390 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 391 ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1 392 ; CHECK: [[COPY2:%[0-9]+]]:rgpr = COPY [[COPY1]] 393 ; CHECK: t2STRHi12 [[COPY2]], [[COPY]], 0, 14 /* CC::al */, $noreg :: (store (s16)) 394 ; CHECK: BX_RET 14 /* CC::al */, $noreg 395 %0(p0) = COPY $r0 396 397 %1(s32) = COPY $r1 398 399 %2(s1) = G_TRUNC %1(s32) 400 401 %3(s16) = G_ANYEXT %2(s1) 402 403 G_STORE %3(s16), %0(p0) :: (store (s16)) 404 405 BX_RET 14, $noreg 406... 407--- 408name: test_trunc_and_zext_s8_to_s16 409legalized: true 410regBankSelected: true 411selected: false 412tracksRegLiveness: true 413registers: 414 - { id: 0, class: gprb } 415 - { id: 1, class: gprb } 416 - { id: 2, class: gprb } 417 - { id: 3, class: gprb } 418body: | 419 bb.0: 420 liveins: $r0, $r1 421 422 ; CHECK-LABEL: name: test_trunc_and_zext_s8_to_s16 423 ; CHECK: liveins: $r0, $r1 424 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 425 ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1 426 ; CHECK: [[COPY2:%[0-9]+]]:rgpr = COPY [[COPY1]] 427 ; CHECK: [[t2UXTB:%[0-9]+]]:rgpr = t2UXTB [[COPY2]], 0, 14 /* CC::al */, $noreg 428 ; CHECK: t2STRHi12 [[t2UXTB]], [[COPY]], 0, 14 /* CC::al */, $noreg :: (store (s16)) 429 ; CHECK: BX_RET 14 /* CC::al */, $noreg 430 %0(p0) = COPY $r0 431 432 %1(s32) = COPY $r1 433 434 %2(s8) = G_TRUNC %1(s32) 435 436 %3(s16) = G_ZEXT %2(s8) 437 438 G_STORE %3(s16), %0(p0) :: (store (s16)) 439 440 BX_RET 14, $noreg 441... 442--- 443name: test_trunc_and_sext_s8_to_s16 444legalized: true 445regBankSelected: true 446selected: false 447tracksRegLiveness: true 448registers: 449 - { id: 0, class: gprb } 450 - { id: 1, class: gprb } 451 - { id: 2, class: gprb } 452 - { id: 3, class: gprb } 453body: | 454 bb.0: 455 liveins: $r0, $r1 456 457 ; CHECK-LABEL: name: test_trunc_and_sext_s8_to_s16 458 ; CHECK: liveins: $r0, $r1 459 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 460 ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1 461 ; CHECK: [[COPY2:%[0-9]+]]:rgpr = COPY [[COPY1]] 462 ; CHECK: [[t2SXTB:%[0-9]+]]:rgpr = t2SXTB [[COPY2]], 0, 14 /* CC::al */, $noreg 463 ; CHECK: t2STRHi12 [[t2SXTB]], [[COPY]], 0, 14 /* CC::al */, $noreg :: (store (s16)) 464 ; CHECK: BX_RET 14 /* CC::al */, $noreg 465 %0(p0) = COPY $r0 466 467 %1(s32) = COPY $r1 468 469 %2(s8) = G_TRUNC %1(s32) 470 471 %3(s16) = G_SEXT %2(s8) 472 473 G_STORE %3(s16), %0(p0) :: (store (s16)) 474 475 BX_RET 14, $noreg 476... 477--- 478name: test_trunc_and_anyext_s8_to_s16 479legalized: true 480regBankSelected: true 481selected: false 482tracksRegLiveness: true 483registers: 484 - { id: 0, class: gprb } 485 - { id: 1, class: gprb } 486 - { id: 2, class: gprb } 487 - { id: 3, class: gprb } 488body: | 489 bb.0: 490 liveins: $r0, $r1 491 492 ; CHECK-LABEL: name: test_trunc_and_anyext_s8_to_s16 493 ; CHECK: liveins: $r0, $r1 494 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 495 ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1 496 ; CHECK: [[COPY2:%[0-9]+]]:rgpr = COPY [[COPY1]] 497 ; CHECK: t2STRHi12 [[COPY2]], [[COPY]], 0, 14 /* CC::al */, $noreg :: (store (s16)) 498 ; CHECK: BX_RET 14 /* CC::al */, $noreg 499 %0(p0) = COPY $r0 500 501 %1(s32) = COPY $r1 502 503 %2(s8) = G_TRUNC %1(s32) 504 505 %3(s16) = G_ANYEXT %2(s8) 506 507 G_STORE %3(s16), %0(p0) :: (store (s16)) 508 509 BX_RET 14, $noreg 510... 511--- 512name: test_trunc_and_zext_s1_to_s8 513legalized: true 514regBankSelected: true 515selected: false 516tracksRegLiveness: true 517registers: 518 - { id: 0, class: gprb } 519 - { id: 1, class: gprb } 520 - { id: 2, class: gprb } 521 - { id: 3, class: gprb } 522body: | 523 bb.0: 524 liveins: $r0, $r1 525 526 ; CHECK-LABEL: name: test_trunc_and_zext_s1_to_s8 527 ; CHECK: liveins: $r0, $r1 528 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 529 ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1 530 ; CHECK: [[COPY2:%[0-9]+]]:rgpr = COPY [[COPY1]] 531 ; CHECK: [[t2ANDri:%[0-9]+]]:rgpr = t2ANDri [[COPY2]], 1, 14 /* CC::al */, $noreg, $noreg 532 ; CHECK: t2STRBi12 [[t2ANDri]], [[COPY]], 0, 14 /* CC::al */, $noreg :: (store (s8)) 533 ; CHECK: BX_RET 14 /* CC::al */, $noreg 534 %0(p0) = COPY $r0 535 536 %1(s32) = COPY $r1 537 538 %2(s1) = G_TRUNC %1(s32) 539 540 %3(s8) = G_ZEXT %2(s1) 541 542 G_STORE %3(s8), %0(p0) :: (store (s8)) 543 544 BX_RET 14, $noreg 545... 546--- 547name: test_trunc_and_sext_s1_to_s8 548legalized: true 549regBankSelected: true 550selected: false 551tracksRegLiveness: true 552registers: 553 - { id: 0, class: gprb } 554 - { id: 1, class: gprb } 555 - { id: 2, class: gprb } 556 - { id: 3, class: gprb } 557body: | 558 bb.0: 559 liveins: $r0, $r1 560 561 ; CHECK-LABEL: name: test_trunc_and_sext_s1_to_s8 562 ; CHECK: liveins: $r0, $r1 563 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 564 ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1 565 ; CHECK: [[COPY2:%[0-9]+]]:rgpr = COPY [[COPY1]] 566 ; CHECK: [[t2ANDri:%[0-9]+]]:rgpr = t2ANDri [[COPY2]], 1, 14 /* CC::al */, $noreg, $noreg 567 ; CHECK: [[t2RSBri:%[0-9]+]]:rgpr = t2RSBri [[t2ANDri]], 0, 14 /* CC::al */, $noreg, $noreg 568 ; CHECK: t2STRBi12 [[t2RSBri]], [[COPY]], 0, 14 /* CC::al */, $noreg :: (store (s8)) 569 ; CHECK: BX_RET 14 /* CC::al */, $noreg 570 %0(p0) = COPY $r0 571 572 %1(s32) = COPY $r1 573 574 %2(s1) = G_TRUNC %1(s32) 575 576 %3(s8) = G_SEXT %2(s1) 577 578 G_STORE %3(s8), %0(p0) :: (store (s8)) 579 580 BX_RET 14, $noreg 581... 582--- 583name: test_trunc_and_anyext_s1_to_s8 584legalized: true 585regBankSelected: true 586selected: false 587tracksRegLiveness: true 588registers: 589 - { id: 0, class: gprb } 590 - { id: 1, class: gprb } 591 - { id: 2, class: gprb } 592 - { id: 3, class: gprb } 593body: | 594 bb.0: 595 liveins: $r0, $r1 596 597 ; CHECK-LABEL: name: test_trunc_and_anyext_s1_to_s8 598 ; CHECK: liveins: $r0, $r1 599 ; CHECK: [[COPY:%[0-9]+]]:gpr = COPY $r0 600 ; CHECK: [[COPY1:%[0-9]+]]:gpr = COPY $r1 601 ; CHECK: [[COPY2:%[0-9]+]]:rgpr = COPY [[COPY1]] 602 ; CHECK: t2STRBi12 [[COPY2]], [[COPY]], 0, 14 /* CC::al */, $noreg :: (store (s8)) 603 ; CHECK: BX_RET 14 /* CC::al */, $noreg 604 %0(p0) = COPY $r0 605 606 %1(s32) = COPY $r1 607 608 %2(s1) = G_TRUNC %1(s32) 609 610 %3(s8) = G_ANYEXT %2(s1) 611 612 G_STORE %3(s8), %0(p0) :: (store (s8)) 613 614 BX_RET 14, $noreg 615... 616