Pasto
[oota-llvm.git] / test / CodeGen / ARM / ldm.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm &&
2 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "ldmia" | wc -l | grep 2 &&
3 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "ldmib" | wc -l | grep 1 &&
4 ; RUN: llvm-upgrade < %s | llvm-as | llc -mtriple=arm-apple-darwin | grep "ldmfd sp\!" | wc -l | grep 3
5
6 %X = external global [0 x int]
7
8 int %t1() {
9         %tmp = load int* getelementptr ([0 x int]* %X, int 0, int 0)
10         %tmp3 = load int* getelementptr ([0 x int]* %X, int 0, int 1)
11         %tmp4 = tail call int %f1( int %tmp, int %tmp3 )
12         ret int %tmp4
13 }
14
15 int %t2() {
16         %tmp = load int* getelementptr ([0 x int]* %X, int 0, int 2)
17         %tmp3 = load int* getelementptr ([0 x int]* %X, int 0, int 3)
18         %tmp5 = load int* getelementptr ([0 x int]* %X, int 0, int 4)
19         %tmp6 = tail call int %f2( int %tmp, int %tmp3, int %tmp5 )
20         ret int %tmp6
21 }
22
23 int %t3() {
24         %tmp = load int* getelementptr ([0 x int]* %X, int 0, int 1)
25         %tmp3 = load int* getelementptr ([0 x int]* %X, int 0, int 2)
26         %tmp5 = load int* getelementptr ([0 x int]* %X, int 0, int 3)
27         %tmp6 = tail call int %f2( int %tmp, int %tmp3, int %tmp5 )
28         ret int %tmp6
29 }
30
31 declare int %f1(int, int)
32 declare int %f2(int, int, int)