xref: /llvm-project/llvm/test/Transforms/HotColdSplit/swifterror.ll (revision 8ee638fd175245eff88d77e1607e478db237dd41)
1; RUN: opt -passes=hotcoldsplit -hotcoldsplit-threshold=0 -S < %s | FileCheck %s
2
3target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
4target triple = "x86_64-apple-macosx10.14.0"
5
6%swift_error = type {i64, i8}
7
8declare void @sink() cold
9
10; CHECK-LABEL: define {{.*}}@in_arg(
11; CHECK: call void @in_arg.cold.1(ptr swifterror
12define void @in_arg(ptr swifterror %error_ptr_ref, i1 %arg) {
13  br i1 %arg, label %cold, label %exit
14
15cold:
16  store ptr undef, ptr %error_ptr_ref
17  call void @sink()
18  br label %exit
19
20exit:
21  ret void
22}
23
24; CHECK-LABEL: define {{.*}}@in_alloca(
25; CHECK: call void @in_alloca.cold.1(ptr swifterror
26define void @in_alloca(i1 %arg) {
27  %err = alloca swifterror ptr
28  br i1 %arg, label %cold, label %exit
29
30cold:
31  store ptr undef, ptr %err
32  call void @sink()
33  br label %exit
34
35exit:
36  ret void
37}
38
39; CHECK-LABEL: define {{.*}}@in_arg.cold.1({{.*}} swifterror
40; CHECK: call {{.*}}@sink
41
42; CHECK-LABEL: define {{.*}}@in_alloca.cold.1({{.*}} swifterror
43; CHECK: call {{.*}}@sink
44