xref: /aosp_15_r20/external/llvm/test/CodeGen/Generic/donothing.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdeclare i32 @__gxx_personality_v0(...)
4*9880d681SAndroid Build Coastguard Workerdeclare void @__cxa_call_unexpected(i8*)
5*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.donothing() readnone
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker; CHECK: f1
8*9880d681SAndroid Build Coastguard Workerdefine void @f1() nounwind uwtable ssp personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
9*9880d681SAndroid Build Coastguard Workerentry:
10*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: donothing
11*9880d681SAndroid Build Coastguard Worker  invoke void @llvm.donothing()
12*9880d681SAndroid Build Coastguard Worker  to label %invoke.cont unwind label %lpad
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workerinvoke.cont:
15*9880d681SAndroid Build Coastguard Worker  ret void
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Workerlpad:
18*9880d681SAndroid Build Coastguard Worker  %0 = landingpad { i8*, i32 }
19*9880d681SAndroid Build Coastguard Worker          filter [0 x i8*] zeroinitializer
20*9880d681SAndroid Build Coastguard Worker  %1 = extractvalue { i8*, i32 } %0, 0
21*9880d681SAndroid Build Coastguard Worker  tail call void @__cxa_call_unexpected(i8* %1) noreturn nounwind
22*9880d681SAndroid Build Coastguard Worker  unreachable
23*9880d681SAndroid Build Coastguard Worker}
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Worker; CHECK: f2
26*9880d681SAndroid Build Coastguard Workerdefine void @f2() nounwind {
27*9880d681SAndroid Build Coastguard Workerentry:
28*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: donothing
29*9880d681SAndroid Build Coastguard Worker  call void @llvm.donothing()
30*9880d681SAndroid Build Coastguard Worker  ret void
31*9880d681SAndroid Build Coastguard Worker}
32