blob: f8cff9e863e246b4b3101de918ba723d81658dfe [file] [log] [blame]
Vedant Kumar03aaa3e2018-12-07 20:23:52 +00001; RUN: opt -S -hotcoldsplit < %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; CHECK-LABEL: define {{.*}}@exit_block_with_same_incoming_vals
7; CHECK: call {{.*}}@exit_block_with_same_incoming_vals.cold.1(
8; CHECK-NOT: br i1 undef
9; CHECK: phi i32 [ 0, %entry ], [ %p.ce.reload, %codeRepl ]
10define void @exit_block_with_same_incoming_vals(i32 %cond) {
11entry:
12 %tobool = icmp eq i32 %cond, 0
13 br i1 %tobool, label %if.end, label %coldbb
14
15coldbb:
16 call void @sink()
17 call void @sideeffect()
18 call void @sideeffect()
19 br i1 undef, label %if.end, label %coldbb2
20
21coldbb2:
22 %p2 = phi i32 [0, %coldbb], [1, %coldbb2]
23 br i1 undef, label %if.end, label %coldbb2
24
25if.end:
26 %p = phi i32 [0, %entry], [1, %coldbb], [1, %coldbb2]
27 ret void
28}
29
30; CHECK-LABEL: define {{.*}}@exit_block_with_distinct_incoming_vals
31; CHECK: call {{.*}}@exit_block_with_distinct_incoming_vals.cold.1(
32; CHECK-NOT: br i1 undef
33; CHECK: phi i32 [ 0, %entry ], [ %p.ce.reload, %codeRepl ]
34define void @exit_block_with_distinct_incoming_vals(i32 %cond) {
35entry:
36 %tobool = icmp eq i32 %cond, 0
37 br i1 %tobool, label %if.end, label %coldbb
38
39coldbb:
40 call void @sink()
41 call void @sideeffect()
42 call void @sideeffect()
43 br i1 undef, label %if.end, label %coldbb2
44
45coldbb2:
46 %p2 = phi i32 [0, %coldbb], [1, %coldbb2]
47 br i1 undef, label %if.end, label %coldbb2
48
49if.end:
50 %p = phi i32 [0, %entry], [1, %coldbb], [2, %coldbb2]
51 ret void
52}
53
54declare void @sink() cold
55
56declare void @sideeffect()