diff options
Diffstat (limited to 'llvm/test/Transforms/ArgumentPromotion/pr27568.ll')
| -rw-r--r-- | llvm/test/Transforms/ArgumentPromotion/pr27568.ll | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/llvm/test/Transforms/ArgumentPromotion/pr27568.ll b/llvm/test/Transforms/ArgumentPromotion/pr27568.ll index 711a71fed4f..1cecbb0ff89 100644 --- a/llvm/test/Transforms/ArgumentPromotion/pr27568.ll +++ b/llvm/test/Transforms/ArgumentPromotion/pr27568.ll @@ -1,18 +1,35 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --scrub-attributes ; RUN: opt -S -argpromotion < %s | FileCheck %s ; RUN: opt -S -passes=argpromotion < %s | FileCheck %s ; RUN: opt -S -debugify -o /dev/null < %s target triple = "x86_64-pc-windows-msvc" define internal void @callee(i8*) { +; CHECK-LABEL: define {{[^@]+}}@callee() +; CHECK-NEXT: entry: +; CHECK-NEXT: call void @thunk() +; CHECK-NEXT: ret void +; entry: call void @thunk() ret void } define void @test1() personality i32 (...)* @__CxxFrameHandler3 { +; CHECK-LABEL: define {{[^@]+}}@test1() personality i32 (...)* @__CxxFrameHandler3 +; CHECK-NEXT: entry: +; CHECK-NEXT: invoke void @thunk() +; CHECK-NEXT: to label [[OUT:%.*]] unwind label [[CPAD:%.*]] +; CHECK: out: +; CHECK-NEXT: ret void +; CHECK: cpad: +; CHECK-NEXT: [[PAD:%.*]] = cleanuppad within none [] +; CHECK-NEXT: call void @callee() [ "funclet"(token [[PAD]]) ] +; CHECK-NEXT: cleanupret from [[PAD]] unwind to caller +; entry: invoke void @thunk() - to label %out unwind label %cpad + to label %out unwind label %cpad out: ret void @@ -23,10 +40,6 @@ cpad: cleanupret from %pad unwind to caller } -; CHECK-LABEL: define void @test1( -; CHECK: %[[pad:.*]] = cleanuppad within none [] -; CHECK-NEXT: call void @callee() [ "funclet"(token %[[pad]]) ] -; CHECK-NEXT: cleanupret from %[[pad]] unwind to caller declare void @thunk() |

