xref: /aosp_15_r20/external/llvm/test/Transforms/ArgumentPromotion/pr27568.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1; RUN: opt -S -argpromotion < %s | FileCheck %s
2target triple = "x86_64-pc-windows-msvc"
3
4define internal void @callee(i8*) {
5entry:
6  call void @thunk()
7  ret void
8}
9
10define void @test1() personality i32 (...)* @__CxxFrameHandler3 {
11entry:
12  invoke void @thunk()
13          to label %out unwind label %cpad
14
15out:
16  ret void
17
18cpad:
19  %pad = cleanuppad within none []
20  call void @callee(i8* null) [ "funclet"(token %pad) ]
21  cleanupret from %pad unwind to caller
22}
23
24; CHECK-LABEL: define void @test1(
25; CHECK:      %[[pad:.*]] = cleanuppad within none []
26; CHECK-NEXT: call void @callee() [ "funclet"(token %[[pad]]) ]
27; CHECK-NEXT: cleanupret from %[[pad]] unwind to caller
28
29declare void @thunk()
30
31declare i32 @__CxxFrameHandler3(...)
32