comparison llvm/test/Transforms/CodeGenPrepare/X86/tailcall-assume-xbb.ll @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 0572611fdcc8
children 1f2b6ac9f198
comparison
equal deleted inserted replaced
173:0572611fdcc8 207:2e18cbf3894f
11 ; CHECK: %ret2 = tail call i8* @bar() 11 ; CHECK: %ret2 = tail call i8* @bar()
12 ; CHECK-NEXT: ret i8* %ret2 12 ; CHECK-NEXT: ret i8* %ret2
13 13
14 define i8* @foo(i64 %size, i64 %v1, i64 %v2) { 14 define i8* @foo(i64 %size, i64 %v1, i64 %v2) {
15 entry: 15 entry:
16 %a = alloca i8
17 call void @llvm.lifetime.start.p0i8(i64 -1, i8* %a) nounwind
16 %cmp1 = icmp ult i64 %size, 1025 18 %cmp1 = icmp ult i64 %size, 1025
17 br i1 %cmp1, label %if.end, label %case1 19 br i1 %cmp1, label %if.end, label %case1
18 20
19 case1: 21 case1:
20 %ret1 = tail call i8* @qux() 22 %ret1 = tail call i8* @qux()
38 tail call void @llvm.assume(i1 %cmp3) 40 tail call void @llvm.assume(i1 %cmp3)
39 br label %exit2 41 br label %exit2
40 42
41 exit2: 43 exit2:
42 %retval2 = phi i8* [ %ret1, %case1 ], [ %retval1, %exit1 ] 44 %retval2 = phi i8* [ %ret1, %case1 ], [ %retval1, %exit1 ]
45 call void @llvm.lifetime.end.p0i8(i64 -1, i8* %a) nounwind
43 ret i8* %retval2 46 ret i8* %retval2
44 } 47 }
45 48
46 declare void @llvm.assume(i1) 49 declare void @llvm.assume(i1)
47 declare i8* @qux() 50 declare i8* @qux()
48 declare i8* @bar() 51 declare i8* @bar()
52 declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) nounwind
53 declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) nounwind