llvm.org GIT mirror llvm / 618b0d5
Test byval with a 8 bit aligned struct git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43173 91177308-0d34-0410-b5e6-96231b3b80d8 Rafael Espindola 12 years ago
1 changed file(s) with 28 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
0 ; RUN: llvm-as < %s | llc -march=x86-64 | grep rep.movsl | count 2
1 ; RUN: llvm-as < %s | llc -march=x86 | grep rep.movsb | count 2
2
3 %struct.s = type { i8, i8, i8, i8, i8, i8 }
4
5
6 define void @g(i8 signext %a1, i8 signext %a2, i8 signext %a3,
7 i8 signext %a4, i8 signext %a5, i8 signext %a6) {
8 entry:
9 %a = alloca %struct.s
10 %tmp = getelementptr %struct.s* %a, i32 0, i32 0
11 store i8 %a1, i8* %tmp, align 8
12 %tmp2 = getelementptr %struct.s* %a, i32 0, i32 1
13 store i8 %a2, i8* %tmp2, align 8
14 %tmp4 = getelementptr %struct.s* %a, i32 0, i32 2
15 store i8 %a3, i8* %tmp4, align 8
16 %tmp6 = getelementptr %struct.s* %a, i32 0, i32 3
17 store i8 %a4, i8* %tmp6, align 8
18 %tmp8 = getelementptr %struct.s* %a, i32 0, i32 4
19 store i8 %a5, i8* %tmp8, align 8
20 %tmp10 = getelementptr %struct.s* %a, i32 0, i32 5
21 store i8 %a6, i8* %tmp10, align 8
22 call void @f( %struct.s* %a byval )
23 call void @f( %struct.s* %a byval )
24 ret void
25 }
26
27 declare void @f(%struct.s* byval)