| ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | \ |
| ; RUN: grep ldmia | count 2 |
| ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | \ |
| ; RUN: grep ldmib | count 1 |
| ; RUN: llvm-upgrade < %s | llvm-as | llc -mtriple=arm-apple-darwin | \ |
| ; RUN: grep {ldmfd sp\!} | count 3 |
| |
| %X = external global [0 x int] |
| |
| int %t1() { |
| %tmp = load int* getelementptr ([0 x int]* %X, int 0, int 0) |
| %tmp3 = load int* getelementptr ([0 x int]* %X, int 0, int 1) |
| %tmp4 = tail call int %f1( int %tmp, int %tmp3 ) |
| ret int %tmp4 |
| } |
| |
| int %t2() { |
| %tmp = load int* getelementptr ([0 x int]* %X, int 0, int 2) |
| %tmp3 = load int* getelementptr ([0 x int]* %X, int 0, int 3) |
| %tmp5 = load int* getelementptr ([0 x int]* %X, int 0, int 4) |
| %tmp6 = tail call int %f2( int %tmp, int %tmp3, int %tmp5 ) |
| ret int %tmp6 |
| } |
| |
| int %t3() { |
| %tmp = load int* getelementptr ([0 x int]* %X, int 0, int 1) |
| %tmp3 = load int* getelementptr ([0 x int]* %X, int 0, int 2) |
| %tmp5 = load int* getelementptr ([0 x int]* %X, int 0, int 3) |
| %tmp6 = tail call int %f2( int %tmp, int %tmp3, int %tmp5 ) |
| ret int %tmp6 |
| } |
| |
| declare int %f1(int, int) |
| declare int %f2(int, int, int) |