xref: /llvm-project/llvm/test/CodeGen/X86/mempcpy-32.ll (revision 2f448bf509432c1a19ec46ab8cbc7353c03c6280)
1;  RUN: llc < %s -mtriple=i686-unknown-linux -O2 | FileCheck %s
2
3; This tests the i686 lowering of mempcpy.
4; Also see mempcpy.ll
5
6@G = common global ptr null, align 8
7
8; CHECK-LABEL: RET_MEMPCPY:
9; CHECK: movl [[REG:%e[a-z0-9]+]], {{.*}}G
10; CHECK: calll {{.*}}memcpy
11; CHECK: movl [[REG]], %eax
12;
13define ptr @RET_MEMPCPY(ptr %DST, ptr %SRC, i32 %N) {
14  %add.ptr = getelementptr inbounds i8, ptr %DST, i32 %N
15  store ptr %add.ptr, ptr @G, align 8
16  %call = tail call ptr @mempcpy(ptr %DST, ptr %SRC, i32 %N)
17  ret ptr %call
18}
19
20declare ptr @mempcpy(ptr, ptr, i32)
21