Skip to content

Commit 0f4d8cd

Browse files
committed
Split and rename test
1 parent 28c02e8 commit 0f4d8cd

File tree

2 files changed

+64
-43
lines changed

2 files changed

+64
-43
lines changed

clang/test/CodeGenCXX/amdgcn-automatic-variable.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -137,23 +137,23 @@ void func7() {
137137

138138
// CHECK-LABEL: @_Z34explicit_private_address_space_ptrv(
139139
// CHECK-NEXT: entry:
140-
// CHECK-NEXT: [[PLONG:%.*]] = alloca i64, align 8, addrspace(5)
141-
// CHECK-NEXT: [[PLONGP:%.*]] = alloca ptr, align 8, addrspace(5)
142-
// CHECK-NEXT: [[PLONGP_B:%.*]] = alloca ptr addrspace(5), align 4, addrspace(5)
143-
// CHECK-NEXT: [[PLONG_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[PLONG]] to ptr
144-
// CHECK-NEXT: [[PLONGP_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[PLONGP]] to ptr
145-
// CHECK-NEXT: [[PLONGP_B_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[PLONGP_B]] to ptr
146-
// CHECK-NEXT: store ptr [[PLONG_ASCAST]], ptr [[PLONGP_ASCAST]], align 8
147-
// CHECK-NEXT: [[PLONG_ASCAST_ASCAST:%.*]] = addrspacecast ptr [[PLONG_ASCAST]] to ptr addrspace(5)
148-
// CHECK-NEXT: store ptr addrspace(5) [[PLONG_ASCAST_ASCAST]], ptr [[PLONGP_B_ASCAST]], align 4
149-
// CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[PLONGP_ASCAST]], align 8
150-
// CHECK-NEXT: store i64 8, ptr [[TMP0]], align 8
140+
// CHECK-NEXT: [[VAR:%.*]] = alloca i64, align 8, addrspace(5)
141+
// CHECK-NEXT: [[ALLOCA_ADDR:%.*]] = alloca ptr, align 8, addrspace(5)
142+
// CHECK-NEXT: [[ALLOCA_ADDR_AS_PRIVATE:%.*]] = alloca ptr addrspace(5), align 4, addrspace(5)
143+
// CHECK-NEXT: [[VAR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[VAR]] to ptr
144+
// CHECK-NEXT: [[ALLOCA_ADDR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[ALLOCA_ADDR]] to ptr
145+
// CHECK-NEXT: [[ALLOCA_ADDR_AS_PRIVATE_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[ALLOCA_ADDR_AS_PRIVATE]] to ptr
146+
// CHECK-NEXT: store ptr [[VAR_ASCAST]], ptr [[ALLOCA_ADDR_ASCAST]], align 8
147+
// CHECK-NEXT: [[VAR_ASCAST_ASCAST:%.*]] = addrspacecast ptr [[VAR_ASCAST]] to ptr addrspace(5)
148+
// CHECK-NEXT: store ptr addrspace(5) [[VAR_ASCAST_ASCAST]], ptr [[ALLOCA_ADDR_AS_PRIVATE_ASCAST]], align 4
149+
// CHECK-NEXT: [[TMP0:%.*]] = load ptr addrspace(5), ptr [[ALLOCA_ADDR_AS_PRIVATE_ASCAST]], align 4
150+
// CHECK-NEXT: store i64 8, ptr addrspace(5) [[TMP0]], align 8
151151
// CHECK-NEXT: ret void
152152
//
153153
void explicit_private_address_space_ptr() {
154-
long plong;
155-
long *plongp = &plong;
154+
long var;
155+
long *alloca_addr = &var;
156156

157-
__private long *plongp_b = (__private long *)&plong;
158-
*plongp = 8;
157+
__private long *alloca_addr_as_private = (__private long *)&var;
158+
*alloca_addr_as_private = 8;
159159
}

clang/test/CodeGenOpenCL/amdgcn-automatic-variable.cl

Lines changed: 49 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -113,44 +113,65 @@ void func3(void) {
113113
// CL12-LABEL: define dso_local void @wrong_store_type_private_pointer_alloca(
114114
// CL12-SAME: ) #[[ATTR0]] {
115115
// CL12-NEXT: [[ENTRY:.*:]]
116-
// CL12-NEXT: [[PLONG:%.*]] = alloca i64, align 8, addrspace(5)
117-
// CL12-NEXT: [[PLONGP:%.*]] = alloca ptr addrspace(5), align 4, addrspace(5)
118-
// CL12-NEXT: [[GLONGP:%.*]] = alloca ptr addrspace(5), align 4, addrspace(5)
119-
// CL12-NEXT: store i64 5, ptr addrspace(5) [[PLONG]], align 8
120-
// CL12-NEXT: store ptr addrspace(5) [[PLONG]], ptr addrspace(5) [[PLONGP]], align 4
121-
// CL12-NEXT: [[TMP0:%.*]] = load ptr addrspace(5), ptr addrspace(5) [[PLONGP]], align 4
116+
// CL12-NEXT: [[VAR:%.*]] = alloca i64, align 8, addrspace(5)
117+
// CL12-NEXT: [[ALLOCA_ADDR:%.*]] = alloca ptr addrspace(5), align 4, addrspace(5)
118+
// CL12-NEXT: store i64 5, ptr addrspace(5) [[VAR]], align 8
119+
// CL12-NEXT: store ptr addrspace(5) [[VAR]], ptr addrspace(5) [[ALLOCA_ADDR]], align 4
120+
// CL12-NEXT: [[TMP0:%.*]] = load ptr addrspace(5), ptr addrspace(5) [[ALLOCA_ADDR]], align 4
122121
// CL12-NEXT: store i64 8, ptr addrspace(5) [[TMP0]], align 8
123-
// CL12-NEXT: store ptr addrspace(5) [[PLONG]], ptr addrspace(5) [[GLONGP]], align 4
124-
// CL12-NEXT: [[TMP1:%.*]] = load ptr addrspace(5), ptr addrspace(5) [[GLONGP]], align 4
125-
// CL12-NEXT: store i64 9, ptr addrspace(5) [[TMP1]], align 8
126122
// CL12-NEXT: ret void
127123
//
128124
// CL20-LABEL: define dso_local void @wrong_store_type_private_pointer_alloca(
129125
// CL20-SAME: ) #[[ATTR0]] {
130126
// CL20-NEXT: [[ENTRY:.*:]]
131-
// CL20-NEXT: [[PLONG:%.*]] = alloca i64, align 8, addrspace(5)
132-
// CL20-NEXT: [[PLONGP:%.*]] = alloca ptr addrspace(5), align 4, addrspace(5)
133-
// CL20-NEXT: [[GLONGP:%.*]] = alloca ptr, align 8, addrspace(5)
134-
// CL20-NEXT: [[PLONG_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[PLONG]] to ptr
135-
// CL20-NEXT: [[PLONGP_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[PLONGP]] to ptr
136-
// CL20-NEXT: [[GLONGP_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[GLONGP]] to ptr
137-
// CL20-NEXT: store i64 5, ptr [[PLONG_ASCAST]], align 8
138-
// CL20-NEXT: store ptr [[PLONG_ASCAST]], ptr [[PLONGP_ASCAST]], align 4
139-
// CL20-NEXT: [[TMP0:%.*]] = load ptr addrspace(5), ptr [[PLONGP_ASCAST]], align 4
127+
// CL20-NEXT: [[VAR:%.*]] = alloca i64, align 8, addrspace(5)
128+
// CL20-NEXT: [[ALLOCA_ADDR:%.*]] = alloca ptr addrspace(5), align 4, addrspace(5)
129+
// CL20-NEXT: [[VAR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[VAR]] to ptr
130+
// CL20-NEXT: [[ALLOCA_ADDR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[ALLOCA_ADDR]] to ptr
131+
// CL20-NEXT: store i64 5, ptr [[VAR_ASCAST]], align 8
132+
// CL20-NEXT: store ptr [[VAR_ASCAST]], ptr [[ALLOCA_ADDR_ASCAST]], align 4
133+
// CL20-NEXT: [[TMP0:%.*]] = load ptr addrspace(5), ptr [[ALLOCA_ADDR_ASCAST]], align 4
140134
// CL20-NEXT: store i64 8, ptr addrspace(5) [[TMP0]], align 8
141-
// CL20-NEXT: store ptr [[PLONG_ASCAST]], ptr [[GLONGP_ASCAST]], align 8
142-
// CL20-NEXT: [[TMP1:%.*]] = load ptr, ptr [[GLONGP_ASCAST]], align 8
143-
// CL20-NEXT: store i64 9, ptr [[TMP1]], align 8
144135
// CL20-NEXT: ret void
145136
//
146137
void wrong_store_type_private_pointer_alloca() {
147-
long plong = 5;
138+
long var = 5;
148139

149-
// This needs to write an addrspace(5) pointer to the temporary alloca
150-
__private long *plongp = &plong;
151-
*plongp = 8;
140+
// This needs to write an addrspace(5) pointer to the temporary alloca,
141+
// which should be allocated with the correct size.
142+
__private long *alloca_addr = &var;
143+
*alloca_addr = 8;
144+
}
145+
146+
// CL12-LABEL: define dso_local void @wrong_store_type_private_pointer_as_generic_alloca(
147+
// CL12-SAME: ) #[[ATTR0]] {
148+
// CL12-NEXT: [[ENTRY:.*:]]
149+
// CL12-NEXT: [[VAR:%.*]] = alloca i64, align 8, addrspace(5)
150+
// CL12-NEXT: [[ALLOCA_ADDR_AS_GENERIC:%.*]] = alloca ptr addrspace(5), align 4, addrspace(5)
151+
// CL12-NEXT: store i64 5, ptr addrspace(5) [[VAR]], align 8
152+
// CL12-NEXT: store ptr addrspace(5) [[VAR]], ptr addrspace(5) [[ALLOCA_ADDR_AS_GENERIC]], align 4
153+
// CL12-NEXT: [[TMP0:%.*]] = load ptr addrspace(5), ptr addrspace(5) [[ALLOCA_ADDR_AS_GENERIC]], align 4
154+
// CL12-NEXT: store i64 9, ptr addrspace(5) [[TMP0]], align 8
155+
// CL12-NEXT: ret void
156+
//
157+
// CL20-LABEL: define dso_local void @wrong_store_type_private_pointer_as_generic_alloca(
158+
// CL20-SAME: ) #[[ATTR0]] {
159+
// CL20-NEXT: [[ENTRY:.*:]]
160+
// CL20-NEXT: [[VAR:%.*]] = alloca i64, align 8, addrspace(5)
161+
// CL20-NEXT: [[ALLOCA_ADDR_AS_GENERIC:%.*]] = alloca ptr, align 8, addrspace(5)
162+
// CL20-NEXT: [[VAR_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[VAR]] to ptr
163+
// CL20-NEXT: [[ALLOCA_ADDR_AS_GENERIC_ASCAST:%.*]] = addrspacecast ptr addrspace(5) [[ALLOCA_ADDR_AS_GENERIC]] to ptr
164+
// CL20-NEXT: store i64 5, ptr [[VAR_ASCAST]], align 8
165+
// CL20-NEXT: store ptr [[VAR_ASCAST]], ptr [[ALLOCA_ADDR_AS_GENERIC_ASCAST]], align 8
166+
// CL20-NEXT: [[TMP0:%.*]] = load ptr, ptr [[ALLOCA_ADDR_AS_GENERIC_ASCAST]], align 8
167+
// CL20-NEXT: store i64 9, ptr [[TMP0]], align 8
168+
// CL20-NEXT: ret void
169+
//
170+
void wrong_store_type_private_pointer_as_generic_alloca() {
171+
long var = 5;
152172

153-
// This needs to write an addrspace(0) pointer to the temporary alloca in CL2.0
154-
long *glongp = &plong;
155-
*glongp = 9;
173+
// This needs to write an addrspace(0) pointer to the temporary alloca in
174+
// CL2.0, which should be allocated with the correct size.
175+
long *alloca_addr_as_generic = &var;
176+
*alloca_addr_as_generic = 9;
156177
}

0 commit comments

Comments
 (0)