X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=test%2FTransforms%2FInline%2Fbyval-tail-call.ll;h=154f3974b58dad9567f497677bd95f85f4212b59;hp=e80bae1696e59b401a499eb8d8fc0e3e2cef7a9b;hb=ec51f453381c4d03d67911730bfadd6eedf8d5e8;hpb=b56bf6b11292da6d2d7dffb09b3a89632cd4f6a3 diff --git a/test/Transforms/Inline/byval-tail-call.ll b/test/Transforms/Inline/byval-tail-call.ll index e80bae1696e..154f3974b58 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 @@ -30,8 +30,10 @@ define internal void @qux(i32* byval %x) { define void @frob(i32* %x) { ; CHECK-LABEL: define void @frob( -; CHECK: alloca i32 -; CHECK: {{^ *}}tail 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)