; RUN: opt -hotcoldsplit -hotcoldsplit-threshold=-1 -pass-remarks=hotcoldsplit -S < %s 2>&1 | FileCheck %s ; RUN: opt -passes=hotcoldsplit -hotcoldsplit-threshold=-1 -pass-remarks=hotcoldsplit -S < %s 2>&1 | FileCheck %s ; Make sure this compiles. This test used to fail with an invalid phi node: the ; two predecessors were outlined and the SSA representation was invalid. ; CHECK: remark: :0:0: fun split cold code into fun.cold.1 ; CHECK-LABEL: @fun ; CHECK: codeRepl: ; CHECK-NEXT: call void @fun.cold.1 ; CHECK: define {{.*}}@fun.cold.1{{.*}} [[cold_attr:#[0-9]+]] ; CHECK: attributes [[cold_attr]] = { {{.*}}noreturn define void @fun() { entry: br i1 undef, label %if.then, label %if.else if.then: ret void if.else: br label %if.then4 if.then4: br i1 undef, label %if.then5, label %if.end if.then5: br label %cleanup if.end: br label %cleanup cleanup: %cleanup.dest.slot.0 = phi i32 [ 1, %if.then5 ], [ 0, %if.end ] unreachable }