77 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --include-generated-funcs2; RUN: opt -passes=hotcoldsplit -hotcoldsplit-threshold=0 -S < %s | FileCheck %s3target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"4target triple = "x86_64-apple-macosx10.14.0"5 6@G = external dso_local global i32, align 47 8define void @foo(i32) {9 %2 = icmp eq i32 %0, 010 tail call void @_Z10sideeffectv()11 br i1 %2, label %sink, label %exit12 13sink:14 tail call void @_Z10sideeffectv()15 call void @llvm.trap()16 unreachable17 18exit:19 ret void20}21 22define void @bar(i32) {23 %2 = icmp eq i32 %0, 024 tail call void @_Z10sideeffectv()25 br i1 %2, label %sink, label %exit26 27sink:28 tail call void @_Z10sideeffectv()29 call void @llvm.trap()30 unreachable31 32exit:33 ret void34}35 36declare void @llvm.trap() noreturn cold memory(inaccessiblemem: write)37declare void @_Z10sideeffectv()38; CHECK-LABEL: @foo(39; CHECK-NEXT: [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 040; CHECK-NEXT: tail call void @_Z10sideeffectv()41; CHECK-NEXT: br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]42; CHECK: codeRepl:43; CHECK-NEXT: call void @foo.cold.1() #[[ATTR2:[0-9]+]]44; CHECK-NEXT: unreachable45; CHECK: exit:46; CHECK-NEXT: ret void47;48;49; CHECK-LABEL: @bar(50; CHECK-NEXT: [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 051; CHECK-NEXT: tail call void @_Z10sideeffectv()52; CHECK-NEXT: br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]53; CHECK: codeRepl:54; CHECK-NEXT: call void @bar.cold.1() #[[ATTR2]]55; CHECK-NEXT: unreachable56; CHECK: exit:57; CHECK-NEXT: ret void58;59;60; CHECK-LABEL: @foo.cold.1(61; CHECK-NEXT: newFuncRoot:62; CHECK-NEXT: br label [[SINK:%.*]]63; CHECK: sink:64; CHECK-NEXT: tail call void @_Z10sideeffectv()65; CHECK-NEXT: call void @llvm.trap()66; CHECK-NEXT: unreachable67;68;69; CHECK-LABEL: @bar.cold.1(70; CHECK-NEXT: newFuncRoot:71; CHECK-NEXT: br label [[SINK:%.*]]72; CHECK: sink:73; CHECK-NEXT: tail call void @_Z10sideeffectv()74; CHECK-NEXT: call void @llvm.trap()75; CHECK-NEXT: unreachable76;77