# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 6 # RUN: llc -mtriple=riscv32 -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=RISCV32 # RUN: llc -mtriple=riscv64 -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=RISCV64 --- name: test_memcpy_inline alignment: 4 liveins: - { reg: '$x10', virtual-reg: '' } - { reg: '$x11', virtual-reg: '' } body: | bb.0.entry: liveins: $x10, $x11 ; RISCV32-LABEL: name: test_memcpy_inline ; RISCV32: liveins: $x10, $x11 ; RISCV32-NEXT: {{ $}} ; RISCV32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10 ; RISCV32-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11 ; RISCV32-NEXT: [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[COPY1]](p0) :: (load (s8), align 4) ; RISCV32-NEXT: G_STORE [[LOAD]](s16), [[COPY]](p0) :: (store (s8), align 4) ; RISCV32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1 ; RISCV32-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C]](s32) ; RISCV32-NEXT: [[LOAD1:%[0-9]+]]:_(s16) = G_LOAD [[PTR_ADD]](p0) :: (load (s8) from unknown-address + 1) ; RISCV32-NEXT: [[PTR_ADD1:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C]](s32) ; RISCV32-NEXT: G_STORE [[LOAD1]](s16), [[PTR_ADD1]](p0) :: (store (s8) into unknown-address + 1) ; RISCV32-NEXT: PseudoRET ; ; RISCV64-LABEL: name: test_memcpy_inline ; RISCV64: liveins: $x10, $x11 ; RISCV64-NEXT: {{ $}} ; RISCV64-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10 ; RISCV64-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11 ; RISCV64-NEXT: [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[COPY1]](p0) :: (load (s8), align 4) ; RISCV64-NEXT: G_STORE [[LOAD]](s16), [[COPY]](p0) :: (store (s8), align 4) ; RISCV64-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1 ; RISCV64-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C]](s64) ; RISCV64-NEXT: [[LOAD1:%[0-9]+]]:_(s16) = G_LOAD [[PTR_ADD]](p0) :: (load (s8) from unknown-address + 1) ; RISCV64-NEXT: [[PTR_ADD1:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C]](s64) ; RISCV64-NEXT: G_STORE [[LOAD1]](s16), [[PTR_ADD1]](p0) :: (store (s8) into unknown-address + 1) ; RISCV64-NEXT: PseudoRET %0:_(p0) = COPY $x10 %1:_(p0) = COPY $x11 %2:_(s64) = G_CONSTANT i64 2 %3:_(s32) = G_TRUNC %2(s64) G_MEMCPY_INLINE %0(p0), %1(p0), %3(s32) :: (store (s8), align 4), (load (s8), align 4) PseudoRET ...