llvm/llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-store-rv32.mir

# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=riscv32 -mattr=+v -run-pass=legalizer %s -o - | FileCheck %s

---
name:            vstore_nx1ptr
body:             |
  bb.1:
    liveins: $v8, $x10

    ; CHECK-LABEL: name: vstore_nx1ptr
    ; CHECK: liveins: $v8, $x10
    ; CHECK-NEXT: {{  $}}
    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 1 x p0>) = COPY $v8
    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 1 x p0>), [[COPY]](p0) :: (store (<vscale x 1 x p0>))
    ; CHECK-NEXT: PseudoRET
    %0:_(p0) = COPY $x10
    %1:_(<vscale x 1 x p0>) = COPY $v8
    G_STORE %1(<vscale x 1 x p0>), %0(p0) :: (store (<vscale x 1 x p0>), align 4)
    PseudoRET

...
---
name:            vstore_nx2ptr
body:             |
  bb.1:
    liveins: $x10, $v8

    ; CHECK-LABEL: name: vstore_nx2ptr
    ; CHECK: liveins: $x10, $v8
    ; CHECK-NEXT: {{  $}}
    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 2 x p0>) = COPY $v8
    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x p0>), [[COPY]](p0) :: (store (<vscale x 2 x p0>))
    ; CHECK-NEXT: PseudoRET
    %0:_(p0) = COPY $x10
    %1:_(<vscale x 2 x p0>) = COPY $v8
    G_STORE %1(<vscale x 2 x p0>), %0(p0) :: (store (<vscale x 2 x p0>), align 8)
    PseudoRET

...
---
name:            vstore_nx8ptr
body:             |
  bb.1:
    liveins: $x10, $v8m4

    ; CHECK-LABEL: name: vstore_nx8ptr
    ; CHECK: liveins: $x10, $v8m4
    ; CHECK-NEXT: {{  $}}
    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 8 x p0>) = COPY $v8m4
    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 8 x p0>), [[COPY]](p0) :: (store (<vscale x 8 x p0>))
    ; CHECK-NEXT: PseudoRET
    %0:_(p0) = COPY $x10
    %1:_(<vscale x 8 x p0>) = COPY $v8m4
    G_STORE %1(<vscale x 8 x p0>), %0(p0) :: (store (<vscale x 8 x p0>), align 32)
    PseudoRET

...
---
name:            vstore_nx16ptr
body:             |
  bb.1:
    liveins: $x10, $v8m8

    ; CHECK-LABEL: name: vstore_nx16ptr
    ; CHECK: liveins: $x10, $v8m8
    ; CHECK-NEXT: {{  $}}
    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 16 x p0>) = COPY $v8m8
    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 16 x p0>), [[COPY]](p0) :: (store (<vscale x 8 x p0>), align 64)
    ; CHECK-NEXT: PseudoRET
    %0:_(p0) = COPY $x10
    %1:_(<vscale x 16 x p0>) = COPY $v8m8
    G_STORE %1(<vscale x 16 x p0>), %0(p0) :: (store (<vscale x 8 x p0>), align 64)
    PseudoRET

...