brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 775649c Raw
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