xref: /llvm-project/llvm/test/CodeGen/X86/small-byval-memcpy.ll (revision 2f448bf509432c1a19ec46ab8cbc7353c03c6280)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=core2 | FileCheck %s --check-prefix=CORE2
3; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=nehalem | FileCheck %s --check-prefix=NEHALEM
4; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=bdver2 | FileCheck %s --check-prefix=BDVER2
5; RUN: llc < %s -mtriple=x86_64-apple-darwin -mcpu=btver2 | FileCheck %s --check-prefix=BTVER2
6
7declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture readonly, i64, i1)
8
9define void @copy16bytes(ptr nocapture %a, ptr nocapture readonly %b) {
10; CORE2-LABEL: copy16bytes:
11; CORE2:       ## %bb.0:
12; CORE2-NEXT:    movq (%rsi), %rax
13; CORE2-NEXT:    movq 8(%rsi), %rcx
14; CORE2-NEXT:    movq %rcx, 8(%rdi)
15; CORE2-NEXT:    movq %rax, (%rdi)
16; CORE2-NEXT:    retq
17;
18; NEHALEM-LABEL: copy16bytes:
19; NEHALEM:       ## %bb.0:
20; NEHALEM-NEXT:    movups (%rsi), %xmm0
21; NEHALEM-NEXT:    movups %xmm0, (%rdi)
22; NEHALEM-NEXT:    retq
23;
24; BDVER2-LABEL: copy16bytes:
25; BDVER2:       ## %bb.0:
26; BDVER2-NEXT:    vmovups (%rsi), %xmm0
27; BDVER2-NEXT:    vmovups %xmm0, (%rdi)
28; BDVER2-NEXT:    retq
29;
30; BTVER2-LABEL: copy16bytes:
31; BTVER2:       ## %bb.0:
32; BTVER2-NEXT:    vmovups (%rsi), %xmm0
33; BTVER2-NEXT:    vmovups %xmm0, (%rdi)
34; BTVER2-NEXT:    retq
35  call void @llvm.memcpy.p0.p0.i64(ptr %a, ptr %b, i64 16, i1 false)
36  ret void
37
38  ; CHECK-LABEL: copy16bytes
39
40
41}
42