17c8bb409SDavid Greene; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2*40760060SBjorn Pettersson; RUN: opt -passes=hotcoldsplit -hotcoldsplit-threshold=0 -S < %s | FileCheck %s 37c8bb409SDavid Greenetarget datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" 47c8bb409SDavid Greenetarget triple = "x86_64-apple-macosx10.14.0" 57c8bb409SDavid Greene 6cd1bd6e5SJohannes Doerfert@G = external dso_local global i32, align 4 7cd1bd6e5SJohannes Doerfert 80628bea5SHans Wennborgdefine void @foo(i32) { 97c8bb409SDavid Greene; CHECK-LABEL: @foo( 107c8bb409SDavid Greene; CHECK-NEXT: [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0 117c8bb409SDavid Greene; CHECK-NEXT: tail call void @_Z10sideeffectv() 127c8bb409SDavid Greene; CHECK-NEXT: br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]] 137c8bb409SDavid Greene; CHECK: codeRepl: 14cd1bd6e5SJohannes Doerfert; CHECK-NEXT: call void @foo.cold.1() #[[ATTR2:[0-9]+]] 157c8bb409SDavid Greene; CHECK-NEXT: ret void 167c8bb409SDavid Greene; CHECK: exit: 177c8bb409SDavid Greene; CHECK-NEXT: ret void 187c8bb409SDavid Greene; 197c8bb409SDavid Greene %2 = icmp eq i32 %0, 0 207c8bb409SDavid Greene tail call void @_Z10sideeffectv() 217c8bb409SDavid Greene br i1 %2, label %sink, label %exit 227c8bb409SDavid Greene 237c8bb409SDavid Greenesink: 247c8bb409SDavid Greene tail call void @_Z10sideeffectv() 257c8bb409SDavid Greene call void @llvm.trap() 267c8bb409SDavid Greene unreachable 277c8bb409SDavid Greene 287c8bb409SDavid Greeneexit: 297c8bb409SDavid Greene ret void 307c8bb409SDavid Greene} 317c8bb409SDavid Greene 320628bea5SHans Wennborgdefine void @bar(i32) { 337c8bb409SDavid Greene; CHECK-LABEL: @bar( 347c8bb409SDavid Greene; CHECK-NEXT: [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0 357c8bb409SDavid Greene; CHECK-NEXT: tail call void @_Z10sideeffectv() 367c8bb409SDavid Greene; CHECK-NEXT: br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]] 377c8bb409SDavid Greene; CHECK: codeRepl: 38cd1bd6e5SJohannes Doerfert; CHECK-NEXT: call void @bar.cold.1() #[[ATTR2]] 397c8bb409SDavid Greene; CHECK-NEXT: ret void 407c8bb409SDavid Greene; CHECK: exit: 417c8bb409SDavid Greene; CHECK-NEXT: ret void 427c8bb409SDavid Greene; 437c8bb409SDavid Greene %2 = icmp eq i32 %0, 0 447c8bb409SDavid Greene tail call void @_Z10sideeffectv() 457c8bb409SDavid Greene br i1 %2, label %sink, label %exit 467c8bb409SDavid Greene 477c8bb409SDavid Greenesink: 487c8bb409SDavid Greene tail call void @_Z10sideeffectv() 497c8bb409SDavid Greene call void @llvm.trap() 507c8bb409SDavid Greene unreachable 517c8bb409SDavid Greene 527c8bb409SDavid Greeneexit: 537c8bb409SDavid Greene ret void 547c8bb409SDavid Greene} 557c8bb409SDavid Greene 567c8bb409SDavid Greenedeclare void @llvm.trap() noreturn cold 577c8bb409SDavid Greenedeclare void @_Z10sideeffectv() 58