diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/PowerPC/2010-02-12-saveCR.ll | 6 | ||||
-rw-r--r-- | test/CodeGen/PowerPC/frame-size.ll | 32 |
2 files changed, 35 insertions, 3 deletions
diff --git a/test/CodeGen/PowerPC/2010-02-12-saveCR.ll b/test/CodeGen/PowerPC/2010-02-12-saveCR.ll index 433fe5cc2a..0da6e4351b 100644 --- a/test/CodeGen/PowerPC/2010-02-12-saveCR.ll +++ b/test/CodeGen/PowerPC/2010-02-12-saveCR.ll @@ -9,12 +9,12 @@ entry: ;CHECK: mfcr r0 ;CHECK: lis r2, 1 ;CHECK: rlwinm r0, r0, 8, 0, 31 -;CHECK: ori r2, r2, 34524 +;CHECK: ori r2, r2, 34540 ;CHECK: stwx r0, r1, r2 ; Make sure that the register scavenger returns the same temporary register. ;CHECK: lis r2, 1 ;CHECK: mfcr r0 -;CHECK: ori r2, r2, 34520 +;CHECK: ori r2, r2, 34536 ;CHECK: rlwinm r0, r0, 12, 0, 31 ;CHECK: stwx r0, r1, r2 %x = alloca [100000 x i8] ; <[100000 x i8]*> [#uses=1] @@ -26,7 +26,7 @@ entry: return: ; preds = %entry ;CHECK: lis r2, 1 -;CHECK: ori r2, r2, 34524 +;CHECK: ori r2, r2, 34540 ;CHECK: lwzx r0, r1, r2 ;CHECK: rlwinm r0, r0, 24, 0, 31 ;CHECK: mtcrf 32, r0 diff --git a/test/CodeGen/PowerPC/frame-size.ll b/test/CodeGen/PowerPC/frame-size.ll new file mode 100644 index 0000000000..0e569a4602 --- /dev/null +++ b/test/CodeGen/PowerPC/frame-size.ll @@ -0,0 +1,32 @@ +; RUN: llc < %s -mtriple=powerpc64-unknown-linux-gnu -mcpu=a2 | FileCheck %s +target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128-n32" + +define i64 @foo() nounwind { +entry: + %x = alloca [32568 x i8] + %"alloca point" = bitcast i32 0 to i32 + %x1 = bitcast [32568 x i8]* %x to i8* + +; Check that the RS spill slot has been allocated (because the estimate +; will fail the small-frame-size check and the function has spills). +; CHECK: @foo +; CHECK: stdu 1, -32768(1) + + %s1 = call i64 @bar(i8* %x1) nounwind + %s2 = call i64 @bar(i8* %x1) nounwind + %s3 = call i64 @bar(i8* %x1) nounwind + %s4 = call i64 @bar(i8* %x1) nounwind + %s5 = call i64 @bar(i8* %x1) nounwind + %s6 = call i64 @bar(i8* %x1) nounwind + %s7 = call i64 @bar(i8* %x1) nounwind + %s8 = call i64 @bar(i8* %x1) nounwind + %r = call i64 @can(i64 %s1, i64 %s2, i64 %s3, i64 %s4, i64 %s5, i64 %s6, i64 %s7, i64 %s8) nounwind + br label %return + +return: + ret i64 %r +} + +declare i64 @bar(i8*) +declare i64 @can(i64, i64, i64, i64, i64, i64, i64, i64) + |