# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=aarch64-none-linux-gnu -run-pass none -o - %s | FileCheck %s

---
name: memoperands
body: |
  bb.0:
    liveins: $x0, $w0

    ; CHECK-LABEL: name: memoperands
    ; CHECK: [[COPY:%[0-9]+]]:_(p1) = COPY $x0
    ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $w0
    ; CHECK: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY1]](s32)
    ; CHECK: G_STORE [[TRUNC]](s8), [[COPY]](p1) :: (store (s8), addrspace 1)
    ; CHECK: G_STORE [[TRUNC]](s8), [[COPY]](p1) :: (store (s8) into unknown-address + 1, addrspace 1)
    ; CHECK: [[TRUNC1:%[0-9]+]]:_(s1) = G_TRUNC [[COPY1]](s32)
    ; CHECK: G_STORE [[TRUNC1]](s1), [[COPY]](p1) :: (store (s1) into unknown-address + 4, addrspace 1)
    ; CHECK: [[TRUNC2:%[0-9]+]]:_(s3) = G_TRUNC [[COPY1]](s32)
    ; CHECK: G_STORE [[TRUNC2]](s3), [[COPY]](p1) :: (store (s3) into unknown-address + 5, addrspace 1)
    ; CHECK: [[TRUNC3:%[0-9]+]]:_(s24) = G_TRUNC [[COPY1]](s32)
    ; CHECK: G_STORE [[TRUNC3]](s24), [[COPY]](p1) :: (store (s24) into unknown-address + 6, align 2, basealign 4, addrspace 1)
    %0:_(p1) = COPY $x0
    %1:_(s32) = COPY $w0
    %2:_(s8) = G_TRUNC %1
    G_STORE %2(s8), %0(p1) :: (store (s8), addrspace 1)
    G_STORE %2(s8), %0(p1) :: (store (s8) into unknown-address + 1, addrspace 1)

    %3:_(s1) = G_TRUNC %1
    G_STORE %3, %0 :: (store (s1) into unknown-address + 4, addrspace 1)

    %4:_(s3) = G_TRUNC %1
    G_STORE %4, %0 :: (store (s3) into unknown-address + 5, addrspace 1)

    %5:_(s24) = G_TRUNC %1
    G_STORE %5, %0 :: (store (s24) into unknown-address + 6, addrspace 1)

...
