diff options
Diffstat (limited to 'test/Transforms/Inline/byval-tail-call.ll')
-rw-r--r-- | test/Transforms/Inline/byval-tail-call.ll | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/test/Transforms/Inline/byval-tail-call.ll b/test/Transforms/Inline/byval-tail-call.ll index 3a8906a..154f397 100644 --- a/test/Transforms/Inline/byval-tail-call.ll +++ b/test/Transforms/Inline/byval-tail-call.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -tailcallelim -inline -instcombine -dse -S | FileCheck %s +; RUN: opt < %s -basicaa -tailcallelim -inline -instcombine -dse -S | FileCheck %s ; PR7272 ; Calls that capture byval parameters cannot be marked as tail calls. Other @@ -27,10 +27,13 @@ define internal void @qux(i32* byval %x) { tail call void @ext(i32* null) ret void } + define void @frob(i32* %x) { ; CHECK-LABEL: define void @frob( -; CHECK: alloca i32 -; CHECK: {{^ *}}call void @ext( +; CHECK: %[[POS:.*]] = alloca i32 +; CHECK: %[[VAL:.*]] = load i32* %x +; CHECK: store i32 %[[VAL]], i32* %[[POS]] +; CHECK: {{^ *}}call void @ext(i32* %[[POS]] ; CHECK: tail call void @ext(i32* null) ; CHECK: ret void tail call void @qux(i32* byval %x) |