@@ -4,24 +4,6 @@ target triple = "nvptx64-nvidia-cuda"
44
55define i32 @lifetime_flat_pointer () {
66; CHECK-LABEL: define i32 @lifetime_flat_pointer() {
7- ; CHECK-NEXT: [[ALLOCA:%.*]] = alloca i32, align 4, addrspace(5)
8- ; CHECK-NEXT: call void @llvm.lifetime.start.p5(i64 4, ptr addrspace(5) [[ALLOCA]])
9- ; CHECK-NEXT: store i32 1, ptr addrspace(5) [[ALLOCA]], align 4
10- ; CHECK-NEXT: %ret = load i32, ptr addrspace(5) [[ALLOCA]], align 4
11- ; CHECK-NEXT: call void @llvm.lifetime.end.p5(i64 4, ptr addrspace(5) [[ALLOCA]])
12- ; CHECK-NEXT: ret i32 %ret
13- ;
14- %alloca = alloca i32 , align 4 , addrspace (5 )
15- %flat = addrspacecast ptr addrspace (5 ) %alloca to ptr
16- call void @llvm.lifetime.start.p0 (i64 4 , ptr %flat )
17- store i32 1 , ptr %flat , align 4
18- %ret = load i32 , ptr %flat , align 4
19- call void @llvm.lifetime.end.p0 (i64 4 , ptr %flat )
20- ret i32 %ret
21- }
22-
23- define i32 @lifetime_flat_pointer2 () {
24- ; CHECK-LABEL: define i32 @lifetime_flat_pointer2() {
257; CHECK-NEXT: [[ALLOCA:%.*]] = alloca i32, align 4
268; CHECK-NEXT: [[TMP1:%.*]] = addrspacecast ptr [[ALLOCA]] to ptr addrspace(5)
279; CHECK-NEXT: call void @llvm.lifetime.start.p5(i64 4, ptr addrspace(5) [[TMP1]])
@@ -31,10 +13,13 @@ define i32 @lifetime_flat_pointer2() {
3113; CHECK-NEXT: ret i32 %ret
3214;
3315 %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 )
16+ %1 = addrspacecast ptr %alloca to ptr addrspace (5 )
17+ %2 = addrspacecast ptr addrspace (5 ) %1 to ptr
18+ %3 = addrspacecast ptr addrspace (5 ) %1 to ptr
19+ call void @llvm.lifetime.start.p0 (i64 4 , ptr %2 )
20+ store i32 1 , ptr addrspace (5 ) %1 , align 4
21+ %ret = load i32 , ptr addrspace (5 ) %1 , align 4
22+ call void @llvm.lifetime.end.p0 (i64 4 , ptr %3 )
3823 ret i32 %ret
3924}
4025
0 commit comments