Initial support for calling functions with byval arguments on x86-64
[oota-llvm.git] / test / CodeGen / X86 / byval2.ll
1 ; RUN: llvm-as < %s | llc -march=x86-64 | grep rep.movsl | count 2
2
3 %struct.s = type { i64, i64, i64 }
4
5 define void @g(i64 %a, i64 %b, i64 %c) {
6 entry:
7         %d = alloca %struct.s, align 16
8         %tmp = getelementptr %struct.s* %d, i32 0, i32 0
9         store i64 %a, i64* %tmp, align 16
10         %tmp2 = getelementptr %struct.s* %d, i32 0, i32 1
11         store i64 %b, i64* %tmp2, align 16
12         %tmp4 = getelementptr %struct.s* %d, i32 0, i32 2
13         store i64 %c, i64* %tmp4, align 16
14         call void @f( %struct.s* %d byval)
15         call void @f( %struct.s* %d byval)
16         ret void
17 }
18
19 declare void @f(%struct.s* byval)