|
15 | 15 | // CL20-SAME: ptr noundef [[X:%.*]]) #[[ATTR0:[0-9]+]] {
|
16 | 16 | // CL20-NEXT: [[ENTRY:.*:]]
|
17 | 17 | // CL20-NEXT: [[X_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)
|
18 |
| -// CL20-NEXT: [[X_ADDR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[X_ADDR]] to ptr |
19 |
| -// CL20-NEXT: store ptr [[X]], ptr [[X_ADDR_ASCAST]], align 8 |
20 |
| -// CL20-NEXT: [[TMP0:%.*]] = load ptr, ptr [[X_ADDR_ASCAST]], align 8 |
| 18 | +// CL20-NEXT: store ptr [[X]], ptr addrspace(5) [[X_ADDR]], align 8 |
| 19 | +// CL20-NEXT: [[TMP0:%.*]] = load ptr, ptr addrspace(5) [[X_ADDR]], align 8 |
21 | 20 | // CL20-NEXT: store i32 1, ptr [[TMP0]], align 4
|
22 | 21 | // CL20-NEXT: ret void
|
23 | 22 | //
|
@@ -55,22 +54,19 @@ void func1(int *x) {
|
55 | 54 | // CL20-NEXT: [[LP1:%.*]] = alloca ptr, align 8, addrspace(5)
|
56 | 55 | // CL20-NEXT: [[LP2:%.*]] = alloca ptr, align 8, addrspace(5)
|
57 | 56 | // CL20-NEXT: [[LVC:%.*]] = alloca i32, align 4, addrspace(5)
|
| 57 | +// CL20-NEXT: store i32 1, ptr addrspace(5) [[LV1]], align 4 |
| 58 | +// CL20-NEXT: store i32 2, ptr addrspace(5) [[LV2]], align 4 |
| 59 | +// CL20-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [100 x i32], ptr addrspace(5) [[LA]], i64 0, i64 0 |
| 60 | +// CL20-NEXT: store i32 3, ptr addrspace(5) [[ARRAYIDX]], align 4 |
58 | 61 | // CL20-NEXT: [[LV1_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[LV1]] to ptr
|
59 |
| -// CL20-NEXT: [[LV2_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[LV2]] to ptr |
60 |
| -// CL20-NEXT: [[LA_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[LA]] to ptr |
61 |
| -// CL20-NEXT: [[LP1_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[LP1]] to ptr |
62 |
| -// CL20-NEXT: [[LP2_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[LP2]] to ptr |
63 |
| -// CL20-NEXT: [[LVC_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[LVC]] to ptr |
64 |
| -// CL20-NEXT: store i32 1, ptr [[LV1_ASCAST]], align 4 |
65 |
| -// CL20-NEXT: store i32 2, ptr [[LV2_ASCAST]], align 4 |
66 |
| -// CL20-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [100 x i32], ptr [[LA_ASCAST]], i64 0, i64 0 |
67 |
| -// CL20-NEXT: store i32 3, ptr [[ARRAYIDX]], align 4 |
68 |
| -// CL20-NEXT: store ptr [[LV1_ASCAST]], ptr [[LP1_ASCAST]], align 8 |
69 |
| -// CL20-NEXT: [[ARRAYDECAY:%.*]] = getelementptr inbounds [100 x i32], ptr [[LA_ASCAST]], i64 0, i64 0 |
70 |
| -// CL20-NEXT: store ptr [[ARRAYDECAY]], ptr [[LP2_ASCAST]], align 8 |
71 |
| -// CL20-NEXT: call void @func1(ptr noundef [[LV1_ASCAST]]) #[[ATTR2:[0-9]+]] |
72 |
| -// CL20-NEXT: store i32 4, ptr [[LVC_ASCAST]], align 4 |
73 |
| -// CL20-NEXT: store i32 4, ptr [[LV1_ASCAST]], align 4 |
| 62 | +// CL20-NEXT: store ptr [[LV1_ASCAST]], ptr addrspace(5) [[LP1]], align 8 |
| 63 | +// CL20-NEXT: [[ARRAYDECAY:%.*]] = getelementptr inbounds [100 x i32], ptr addrspace(5) [[LA]], i64 0, i64 0 |
| 64 | +// CL20-NEXT: [[ARRAYDECAY_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[ARRAYDECAY]] to ptr |
| 65 | +// CL20-NEXT: store ptr [[ARRAYDECAY_ASCAST]], ptr addrspace(5) [[LP2]], align 8 |
| 66 | +// CL20-NEXT: [[LV1_ASCAST1:%.*]] = addrspacecast ptr addrspace(5) [[LV1]] to ptr |
| 67 | +// CL20-NEXT: call void @func1(ptr noundef [[LV1_ASCAST1]]) #[[ATTR2:[0-9]+]] |
| 68 | +// CL20-NEXT: store i32 4, ptr addrspace(5) [[LVC]], align 4 |
| 69 | +// CL20-NEXT: store i32 4, ptr addrspace(5) [[LV1]], align 4 |
74 | 70 | // CL20-NEXT: ret void
|
75 | 71 | //
|
76 | 72 | void func2(void) {
|
@@ -102,8 +98,7 @@ void func2(void) {
|
102 | 98 | // CL20-SAME: ) #[[ATTR0]] {
|
103 | 99 | // CL20-NEXT: [[ENTRY:.*:]]
|
104 | 100 | // CL20-NEXT: [[A:%.*]] = alloca [16 x [1 x float]], align 4, addrspace(5)
|
105 |
| -// CL20-NEXT: [[A_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[A]] to ptr |
106 |
| -// CL20-NEXT: call void @llvm.memset.p0.i64(ptr align 4 [[A_ASCAST]], i8 0, i64 64, i1 false) |
| 101 | +// CL20-NEXT: call void @llvm.memset.p5.i64(ptr addrspace(5) align 4 [[A]], i8 0, i64 64, i1 false) |
107 | 102 | // CL20-NEXT: ret void
|
108 | 103 | //
|
109 | 104 | void func3(void) {
|
|
0 commit comments