File tree Expand file tree Collapse file tree 2 files changed +19
-1
lines changed
llvm/test/Transforms/InferAddressSpaces Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -20,4 +20,4 @@ define i32 @lifetime_flat_pointer() {
2020}
2121
2222declare void @llvm.lifetime.start.p0 (i64 immarg, ptr nocapture )
23- declare void @llvm.lifetime.end.p0 (i64 immarg, ptr nocapture )
23+ declare void @llvm.lifetime.end.p0 (i64 immarg, ptr nocapture )
Original file line number Diff line number Diff line change @@ -20,5 +20,23 @@ define i32 @lifetime_flat_pointer() {
2020 ret i32 %ret
2121}
2222
23+ define i32 @lifetime_flat_pointer2 () {
24+ ; CHECK-LABEL: define i32 @lifetime_flat_pointer2() {
25+ ; CHECK-NEXT: [[ALLOCA:%.*]] = alloca i32, align 4
26+ ; CHECK-NEXT: [[TMP1:%.*]] = addrspacecast ptr [[ALLOCA]] to ptr addrspace(5)
27+ ; CHECK-NEXT: call void @llvm.lifetime.start.p5(i64 4, ptr addrspace(5) [[TMP1]])
28+ ; CHECK-NEXT: store i32 1, ptr addrspace(5) [[TMP1]], align 4
29+ ; CHECK-NEXT: %ret = load i32, ptr addrspace(5) [[TMP1]], align 4
30+ ; CHECK-NEXT: call void @llvm.lifetime.end.p5(i64 4, ptr addrspace(5) [[TMP1]])
31+ ; CHECK-NEXT: ret i32 %ret
32+ ;
33+ %alloca = alloca i32 , align 4
34+ call void @llvm.lifetime.start.p5 (i64 4 , ptr %alloca )
35+ store i32 1 , ptr %alloca , align 4
36+ %ret = load i32 , ptr %alloca , align 4
37+ call void @llvm.lifetime.end.p5 (i64 4 , ptr %alloca )
38+ ret i32 %ret
39+ }
40+
2341declare void @llvm.lifetime.start.p0 (i64 immarg, ptr nocapture )
2442declare void @llvm.lifetime.end.p0 (i64 immarg, ptr nocapture )
You can’t perform that action at this time.
0 commit comments