1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt -hotcoldsplit -hotcoldsplit-threshold=0 -S < %s | FileCheck %s 3target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" 4target triple = "x86_64-apple-macosx10.14.0" 5 6define void @foo(i32) { 7; CHECK-LABEL: @foo( 8; CHECK-NEXT: [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0 9; CHECK-NEXT: tail call void @_Z10sideeffectv() 10; CHECK-NEXT: br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]] 11; CHECK: codeRepl: 12; CHECK-NEXT: call void @foo.cold.1() [[ATTR2:#.*]] 13; CHECK-NEXT: ret void 14; CHECK: exit: 15; CHECK-NEXT: ret void 16; 17 %2 = icmp eq i32 %0, 0 18 tail call void @_Z10sideeffectv() 19 br i1 %2, label %sink, label %exit 20 21sink: 22 tail call void @_Z10sideeffectv() 23 call void @llvm.trap() 24 unreachable 25 26exit: 27 ret void 28} 29 30define void @bar(i32) { 31; CHECK-LABEL: @bar( 32; CHECK-NEXT: [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0 33; CHECK-NEXT: tail call void @_Z10sideeffectv() 34; CHECK-NEXT: br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]] 35; CHECK: codeRepl: 36; CHECK-NEXT: call void @bar.cold.1() [[ATTR2]] 37; CHECK-NEXT: ret void 38; CHECK: exit: 39; CHECK-NEXT: ret void 40; 41 %2 = icmp eq i32 %0, 0 42 tail call void @_Z10sideeffectv() 43 br i1 %2, label %sink, label %exit 44 45sink: 46 tail call void @_Z10sideeffectv() 47 call void @llvm.trap() 48 unreachable 49 50exit: 51 ret void 52} 53 54declare void @llvm.trap() noreturn cold 55declare void @_Z10sideeffectv() 56