Akira Hatanaka | 053546c | 2011-05-25 02:20:00 +0000 | [diff] [blame^] | 1 | ; RUN: llc -march=mipsel -mcpu=4ke < %s | FileCheck %s |
| 2 | |
| 3 | define i32 @twoalloca(i32 %size) nounwind { |
| 4 | entry: |
| 5 | ; CHECK: subu $[[T0:[0-9]+]], $sp, $[[SZ:[0-9]+]] |
| 6 | ; CHECK: addu $sp, $zero, $[[T0]] |
| 7 | ; CHECK: addu $[[SP1:[0-9]+]], $zero, $sp |
| 8 | ; CHECK: subu $[[T1:[0-9]+]], $sp, $[[SZ]] |
| 9 | ; CHECK: addu $sp, $zero, $[[T1]] |
| 10 | ; CHECK: addu $[[SP2:[0-9]+]], $zero, $sp |
| 11 | ; CHECK: lw $25, %call16(foo)($gp) |
| 12 | ; CHECK: addiu $4, $[[SP1]], 24 |
| 13 | ; CHECK: jalr $25 |
| 14 | ; CHECK: lw $25, %call16(foo)($gp) |
| 15 | ; CHECK: addiu $4, $[[SP2]], 24 |
| 16 | ; CHECK: jalr $25 |
| 17 | %tmp1 = alloca i8, i32 %size, align 4 |
| 18 | %add.ptr = getelementptr inbounds i8* %tmp1, i32 5 |
| 19 | store i8 97, i8* %add.ptr, align 1 |
| 20 | %tmp4 = alloca i8, i32 %size, align 4 |
| 21 | call void @foo2(double 1.000000e+00, double 2.000000e+00, i32 3) nounwind |
| 22 | %call = call i32 @foo(i8* %tmp1) nounwind |
| 23 | %call7 = call i32 @foo(i8* %tmp4) nounwind |
| 24 | %add = add nsw i32 %call7, %call |
| 25 | ret i32 %add |
| 26 | } |
| 27 | |
| 28 | declare void @foo2(double, double, i32) |
| 29 | |
| 30 | declare i32 @foo(i8*) |
| 31 | |