blob: 1d203c7cdb95505790483012e081154dd45d7f6a [file] [edit]
; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 6
; RUN: llc -mtriple=aarch64-none-linux-gnu -mattr=+mops -stop-after=aarch64-isel -o - %s | FileCheck %s --check-prefix=CHECK-SD
; RUN: llc -mtriple=aarch64-none-linux-gnu -mattr=+mops -global-isel -stop-after=finalize-isel -o - %s | FileCheck %s --check-prefix=CHECK-GI
define void @test(ptr %out, ptr %in, i64 %a) {
; CHECK-SD-LABEL: name: test
; CHECK-SD: bb.0.entry:
; CHECK-SD-NEXT: liveins: $x0, $x1, $x2
; CHECK-SD-NEXT: {{ $}}
; CHECK-SD-NEXT: [[COPY:%[0-9]+]]:gpr64 = COPY $x2
; CHECK-SD-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY $x1
; CHECK-SD-NEXT: [[COPY2:%[0-9]+]]:gpr64common = COPY $x0
; CHECK-SD-NEXT: [[MOPSMemoryMovePseudo:%[0-9]+]]:gpr64common, [[MOPSMemoryMovePseudo1:%[0-9]+]]:gpr64common, [[MOPSMemoryMovePseudo2:%[0-9]+]]:gpr64 = MOPSMemoryMovePseudo [[COPY2]], [[COPY1]], [[COPY]], implicit-def dead $nzcv :: (store unknown-size into %ir.out, align 1), (load unknown-size from %ir.in, align 1)
; CHECK-SD-NEXT: RET_ReallyLR
;
; CHECK-GI-LABEL: name: test
; CHECK-GI: bb.1.entry:
; CHECK-GI-NEXT: liveins: $x0, $x1, $x2
; CHECK-GI-NEXT: {{ $}}
; CHECK-GI-NEXT: [[COPY:%[0-9]+]]:gpr64common = COPY $x0
; CHECK-GI-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY $x1
; CHECK-GI-NEXT: [[COPY2:%[0-9]+]]:gpr64 = COPY $x2
; CHECK-GI-NEXT: [[MOPSMemoryMovePseudo:%[0-9]+]]:gpr64common, [[MOPSMemoryMovePseudo1:%[0-9]+]]:gpr64common, [[MOPSMemoryMovePseudo2:%[0-9]+]]:gpr64 = MOPSMemoryMovePseudo [[COPY]], [[COPY1]], [[COPY2]], implicit-def dead $nzcv
; CHECK-GI-NEXT: RET_ReallyLR
entry:
call void @llvm.memmove.p0.p0.i64(ptr %out, ptr %in, i64 %a, i1 false)
ret void
}