Mercurial > hg > CbC > CbC_llvm
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 |