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