|
19 | 19 | define void @load_i32_i32(ptr %addr) { ret void }
|
20 | 20 | define void @zextload_i8_i32(ptr %addr) { ret void }
|
21 | 21 | define void @zextload_i16_i32(ptr %addr) { ret void }
|
| 22 | + define void @sextload_i8_i32(ptr %addr) { ret void } |
| 23 | + define void @sextload_i16_i32(ptr %addr) { ret void } |
22 | 24 | define void @load_fi_i64() {
|
23 | 25 | %ptr0 = alloca i64
|
24 | 26 | ret void
|
@@ -400,6 +402,60 @@ body: |
|
400 | 402 | $x10 = COPY %5(s64)
|
401 | 403 | PseudoRET implicit $x10
|
402 | 404 |
|
| 405 | +... |
| 406 | +--- |
| 407 | +name: sextload_i8_i32 |
| 408 | +legalized: true |
| 409 | +regBankSelected: true |
| 410 | +tracksRegLiveness: true |
| 411 | +body: | |
| 412 | + bb.0: |
| 413 | + liveins: $x10, $x11 |
| 414 | + ; CHECK-LABEL: name: sextload_i8_i32 |
| 415 | + ; CHECK: liveins: $x10, $x11 |
| 416 | + ; CHECK-NEXT: {{ $}} |
| 417 | + ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10 |
| 418 | + ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11 |
| 419 | + ; CHECK-NEXT: [[LB:%[0-9]+]]:gpr = LB [[COPY]], 0 :: (load (s8)) |
| 420 | + ; CHECK-NEXT: [[ADDW:%[0-9]+]]:gpr = ADDW [[LB]], [[COPY1]] |
| 421 | + ; CHECK-NEXT: $x10 = COPY [[ADDW]] |
| 422 | + ; CHECK-NEXT: PseudoRET implicit $x10 |
| 423 | + %0:gprb(p0) = COPY $x10 |
| 424 | + %2:gprb(s64) = COPY $x11 |
| 425 | + %9:gprb(s32) = G_SEXTLOAD %0(p0) :: (load (s8)) |
| 426 | + %7:gprb(s32) = G_TRUNC %2(s64) |
| 427 | + %8:gprb(s32) = G_ADD %9, %7 |
| 428 | + %5:gprb(s64) = G_ANYEXT %8(s32) |
| 429 | + $x10 = COPY %5(s64) |
| 430 | + PseudoRET implicit $x10 |
| 431 | +
|
| 432 | +... |
| 433 | +--- |
| 434 | +name: sextload_i16_i32 |
| 435 | +legalized: true |
| 436 | +regBankSelected: true |
| 437 | +tracksRegLiveness: true |
| 438 | +body: | |
| 439 | + bb.0: |
| 440 | + liveins: $x10, $x11 |
| 441 | + ; CHECK-LABEL: name: sextload_i16_i32 |
| 442 | + ; CHECK: liveins: $x10, $x11 |
| 443 | + ; CHECK-NEXT: {{ $}} |
| 444 | + ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10 |
| 445 | + ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11 |
| 446 | + ; CHECK-NEXT: [[LH:%[0-9]+]]:gpr = LH [[COPY]], 0 :: (load (s16)) |
| 447 | + ; CHECK-NEXT: [[ADDW:%[0-9]+]]:gpr = ADDW [[LH]], [[COPY1]] |
| 448 | + ; CHECK-NEXT: $x10 = COPY [[ADDW]] |
| 449 | + ; CHECK-NEXT: PseudoRET implicit $x10 |
| 450 | + %0:gprb(p0) = COPY $x10 |
| 451 | + %2:gprb(s64) = COPY $x11 |
| 452 | + %9:gprb(s32) = G_SEXTLOAD %0(p0) :: (load (s16)) |
| 453 | + %7:gprb(s32) = G_TRUNC %2(s64) |
| 454 | + %8:gprb(s32) = G_ADD %9, %7 |
| 455 | + %5:gprb(s64) = G_ANYEXT %8(s32) |
| 456 | + $x10 = COPY %5(s64) |
| 457 | + PseudoRET implicit $x10 |
| 458 | +
|
403 | 459 | ...
|
404 | 460 | ---
|
405 | 461 | name: load_fi_i64
|
|
0 commit comments