| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py |
| # RUN: llc -march=riscv64 -run-pass=regbankselect \ |
| # RUN: -disable-gisel-legality-check -simplify-mir -verify-machineinstrs %s \ |
| # RUN: -o - | FileCheck -check-prefix=RV64I %s |
| |
| --- |
| name: store_i8 |
| legalized: true |
| body: | |
| bb.0: |
| liveins: $x10, $x11 |
| |
| ; RV64I-LABEL: name: store_i8 |
| ; RV64I: liveins: $x10, $x11 |
| ; RV64I-NEXT: {{ $}} |
| ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10 |
| ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $x11 |
| ; RV64I-NEXT: [[TRUNC:%[0-9]+]]:gprb(s32) = G_TRUNC [[COPY]](s64) |
| ; RV64I-NEXT: G_STORE [[TRUNC]](s32), [[COPY1]](p0) :: (store (s8)) |
| ; RV64I-NEXT: PseudoRET |
| %2:_(s64) = COPY $x10 |
| %1:_(p0) = COPY $x11 |
| %3:_(s32) = G_TRUNC %2(s64) |
| G_STORE %3(s32), %1(p0) :: (store (s8)) |
| PseudoRET |
| |
| ... |
| --- |
| name: store_i16 |
| legalized: true |
| body: | |
| bb.0: |
| liveins: $x10, $x11 |
| |
| ; RV64I-LABEL: name: store_i16 |
| ; RV64I: liveins: $x10, $x11 |
| ; RV64I-NEXT: {{ $}} |
| ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10 |
| ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $x11 |
| ; RV64I-NEXT: [[TRUNC:%[0-9]+]]:gprb(s32) = G_TRUNC [[COPY]](s64) |
| ; RV64I-NEXT: G_STORE [[TRUNC]](s32), [[COPY1]](p0) :: (store (s16)) |
| ; RV64I-NEXT: PseudoRET |
| %2:_(s64) = COPY $x10 |
| %1:_(p0) = COPY $x11 |
| %3:_(s32) = G_TRUNC %2(s64) |
| G_STORE %3(s32), %1(p0) :: (store (s16)) |
| PseudoRET |
| |
| ... |
| --- |
| name: store_i32 |
| legalized: true |
| body: | |
| bb.0: |
| liveins: $x10, $x11 |
| |
| ; RV64I-LABEL: name: store_i32 |
| ; RV64I: liveins: $x10, $x11 |
| ; RV64I-NEXT: {{ $}} |
| ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10 |
| ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $x11 |
| ; RV64I-NEXT: [[TRUNC:%[0-9]+]]:gprb(s32) = G_TRUNC [[COPY]](s64) |
| ; RV64I-NEXT: G_STORE [[TRUNC]](s32), [[COPY1]](p0) :: (store (s32)) |
| ; RV64I-NEXT: PseudoRET |
| %2:_(s64) = COPY $x10 |
| %1:_(p0) = COPY $x11 |
| %3:_(s32) = G_TRUNC %2(s64) |
| G_STORE %3(s32), %1(p0) :: (store (s32)) |
| PseudoRET |
| |
| ... |
| --- |
| name: store_i64 |
| legalized: true |
| tracksRegLiveness: true |
| body: | |
| bb.0: |
| liveins: $x10, $x11 |
| |
| ; RV64I-LABEL: name: store_i64 |
| ; RV64I: liveins: $x10, $x11 |
| ; RV64I-NEXT: {{ $}} |
| ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10 |
| ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $x11 |
| ; RV64I-NEXT: G_STORE [[COPY]](s64), [[COPY1]](p0) :: (store (s64)) |
| ; RV64I-NEXT: PseudoRET |
| %0:_(s64) = COPY $x10 |
| %1:_(p0) = COPY $x11 |
| G_STORE %0(s64), %1(p0) :: (store (s64)) |
| PseudoRET |
| |
| ... |
| --- |
| name: store_ptr |
| legalized: true |
| tracksRegLiveness: true |
| body: | |
| bb.0: |
| liveins: $x10, $x11 |
| |
| ; RV64I-LABEL: name: store_ptr |
| ; RV64I: liveins: $x10, $x11 |
| ; RV64I-NEXT: {{ $}} |
| ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10 |
| ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $x11 |
| ; RV64I-NEXT: G_STORE [[COPY]](p0), [[COPY1]](p0) :: (store (p0)) |
| ; RV64I-NEXT: PseudoRET |
| %0:_(p0) = COPY $x10 |
| %1:_(p0) = COPY $x11 |
| G_STORE %0(p0), %1(p0) :: (store (p0)) |
| PseudoRET |
| |
| ... |