Home | History | Annotate | Download | only in OpenMP

Lines Matching refs:BLOCKS

5 // RUN: %clang_cc1 -verify -fopenmp -x c++ -fblocks -DBLOCKS -triple i386-pc-linux-gnu -emit-llvm %s -o - | FileCheck -check-prefix=BLOCKS -check-prefix=BLOCKS-32 %s
11 // RUN: %clang_cc1 -verify -fopenmp -x c++ -fblocks -DBLOCKS -triple x86_64-pc-linux-gnu -emit-llvm %s -o - | FileCheck -check-prefix=BLOCKS -check-prefix=BLOCKS-64 %s
41 #elif defined(BLOCKS)
68 #elif defined(BLOCKS)
94 // BLOCKS: [[SS_TY:%.+]] = type { i{{[0-9]+}}, i8
208 #elif defined(BLOCKS)
209 // BLOCKS: [[G:@.+]] = global i{{[0-9]+}} 1212,
210 // BLOCKS-LABEL: @main
211 // BLOCKS: call
212 // BLOCKS: call {{.*}}void {{%.+}}(i8
214 // BLOCKS: define{{.*}} internal{{.*}} void {{.+}}(i8*
215 // BLOCKS: call {{.*}}void {{.+}} @__kmpc_fork_call({{.+}}, i32 2, {{.+}}* [[OMP_REGION:@.+]] to {{.+}}, i32* [[G]], {{.+}})
218 // BLOCKS: define{{.*}} internal{{.*}} void [[OMP_REGION]](i32* noalias %{{.+}}, i32* noalias %{{.+}}, i32* dereferenceable(4) %{{.+}}, [[iz:i64|i32]] {{.*}}%{{.+}})
219 // BLOCKS: [[SIVAR_PRIVATE_ADDR:%.+]] = alloca i{{[0-9]+}},
220 // BLOCKS: [[G_PRIVATE_ADDR:%.+]] = alloca i{{[0-9]+}}, align 128
221 // BLOCKS: [[G_REF:%.+]] = load i{{[0-9]+}}*, i{{[0-9]+}}** [[G_REF_ADDR:%.+]]
222 // BLOCKS-64: [[SIVAR_PRIVATE_CONV:%.+]] = bitcast i64* [[SIVAR_PRIVATE_ADDR]] to i32*
223 // BLOCKS: [[G_VAL:%.+]] = load volatile i{{[0-9]+}}, i{{[0-9]+}}* [[G_REF]], align 128
224 // BLOCKS: store i{{[0-9]+}} [[G_VAL]], i{{[0-9]+}}* [[G_PRIVATE_ADDR]], align 128
225 // BLOCKS-NOT: call {{.*}}void @__kmpc_barrier(
228 // BLOCKS: store i{{[0-9]+}} 1, i{{[0-9]+}}* [[G_PRIVATE_ADDR]],
229 // BLOCKS-64: store i{{[0-9]+}} 2, i{{[0-9]+}}* [[SIVAR_PRIVATE_CONV]],
230 // BLOCKS-32: store i{{[0-9]+}} 2, i{{[0-9]+}}* [[SIVAR_PRIVATE_ADDR]],
231 // BLOCKS-NOT: [[G]]{{[[^:word:]]}}
232 // BLOCKS: i{{[0-9]+}}* [[G_PRIVATE_ADDR]]
233 // BLOCKS-NOT: [[G]]{{[[^:word:]]}}
234 // BLOCKS-NOT: [[SIVAR]]{{[[^:word:]]}}
235 // BLOCKS-64: i{{[0-9]+}}* [[SIVAR_PRIVATE_CONV]]
236 // BLOCKS-32: i{{[0-9]+}}* [[SIVAR_PRIVATE_ADDR]]
237 // BLOCKS-NOT: [[SIVAR]]{{[[^:word:]]}}
238 // BLOCKS: call {{.*}}void {{%.+}}(i8
240 // BLOCKS: define {{.+}} void {{@.+}}(i8*
243 // BLOCKS-NOT: [[G]]{{[[^:word:]]}}
244 // BLOCKS: store i{{[0-9]+}} 2, i{{[0-9]+}}*
245 // BLOCKS-NOT: [[G]]{{[[^:word:]]}}
246 // BLOCKS-NOT: [[SIVAR]]{{[[^:word:]]}}
247 // BLOCKS: store i{{[0-9]+}} 4, i{{[0-9]+}}*
248 // BLOCKS-NOT: [[SIVAR]]{{[[^:word:]]}}
249 // BLOCKS: ret
254 // BLOCKS: define {{.+}} @{{.+}}([[SS_TY]]*
255 // BLOCKS: getelementptr inbounds [[SS_TY]], [[SS_TY]]* %{{.+}}, i32 0, i32 0
256 // BLOCKS: store i{{[0-9]+}} 0, i{{[0-9]+}}* %
257 // BLOCKS: getelementptr inbounds [[SS_TY]], [[SS_TY]]* %{{.+}}, i32 0, i32 1
258 // BLOCKS: store i8
259 // BLOCKS: getelementptr inbounds [[SS_TY]], [[SS_TY]]* %{{.+}}, i32 0, i32 2
260 // BLOCKS: getelementptr inbounds [[SS_TY]], [[SS_TY]]* %{{.+}}, i32 0, i32 0
261 // BLOCKS: getelementptr inbounds [[SS_TY]], [[SS_TY]]* %{{.+}}, i32 0, i32 1
262 // BLOCKS: getelementptr inbounds [[SS_TY]], [[SS_TY]]* %{{.+}}, i32 0, i32 2
263 // BLOCKS: call void (%{{.+}}*, i{{[0-9]+}}, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)*, ...) @__kmpc_fork_call(%{{.+}}* @{{.+}}, i{{[0-9]+}} 5, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)* bitcast (void (i{{[0-9]+}}*, i{{[0-9]+}}*, [[SS_TY]]*, [[iz]], [[iz]], [[iz]], [4 x i{{[0-9]+}}]*)* [[SS_MICROTASK:@.+]] to void
264 // BLOCKS: ret
266 // BLOCKS: define internal void [[SS_MICROTASK]](i{{[0-9]+}}* noalias [[GTID_ADDR:%.+]], i{{[0-9]+}}* noalias %{{.+}}, [[SS_TY]]* %{{.+}}, [[iz]] {{.+}}, [[iz]] {{.+}}, [[iz]] {{.+}}, [4 x i{{[0-9]+}}]* {{.+}})
267 // BLOCKS-NOT: getelementptr {{.*}}[[SS_TY]], [[SS_TY]]* %
268 // BLOCKS: call{{.*}} void
269 // BLOCKS: ret void
271 // BLOCKS: define internal void @{{.+}}(i{{[0-9]+}}* noalias [[GTID_ADDR:%.+]], i{{[0-9]+}}* noalias %{{.+}}, [[SS_TY]]* %{{.+}}, [[iz]] {{.+}}, [[iz]] {{.+}}, [[iz]] {{.+}})
272 // BLOCKS: [[A_PRIV:%.+]] = alloca i{{[0-9]+}},
273 // BLOCKS: [[B_PRIV:%.+]] = alloca i{{[0-9]+}},
274 // BLOCKS: [[C_PRIV:%.+]] = alloca i{{[0-9]+}},
275 // BLOCKS-64: [[A_CONV:%.+]] = bitcast i64* [[A_PRIV]] to i32*
276 // BLOCKS-64: store i32* [[A_CONV]], i32** [[REFA:%.+]],
277 // BLOCKS-32: store i32* [[A_PRIV]], i32** [[REFA:%.+]],
278 // BLOCKS-64: [[B_CONV:%.+]] = bitcast i64* [[B_PRIV]] to i32*
279 // BLOCKS-64: [[C_CONV:%.+]] = bitcast i64* [[C_PRIV]] to i32*
280 // BLOCKS-64: store i32* [[C_CONV]], i32** [[REFC:%.+]],
281 // BLOCKS-32: store i32* [[C_PRIV]], i32** [[REFC:%.+]],
282 // BLOCKS-NEXT: [[A_PRIV:%.+]] = load i{{[0-9]+}}*, i{{[0-9]+}}** [[REFA]],
283 // BLOCKS-NEXT: [[A_VAL:%.+]] = load i{{[0-9]+}}, i{{[0-9]+}}* [[A_PRIV]],
284 // BLOCKS-NEXT: [[INC:%.+]] = add nsw i{{[0-9]+}} [[A_VAL]], 1
285 // BLOCKS-NEXT: store i{{[0-9]+}} [[INC]], i{{[0-9]+}}* [[A_PRIV]],
286 // BLOCKS-64-NEXT: [[B_VAL:%.+]] = load i{{[0-9]+}}, i{{[0-9]+}}* [[B_CONV]],
287 // BLOCKS-32-NEXT: [[B_VAL:%.+]] = load i{{[0-9]+}}, i{{[0-9]+}}* [[B_PRIV]],
288 // BLOCKS-NEXT: [[DEC:%.+]] = add nsw i{{[0-9]+}} [[B_VAL]], -1
289 // BLOCKS-64-NEXT: store i{{[0-9]+}} [[DEC]], i{{[0-9]+}}* [[B_CONV]],
290 // BLOCKS-32-NEXT: store i{{[0-9]+}} [[DEC]], i{{[0-9]+}}* [[B_PRIV]],
291 // BLOCKS-NEXT: [[C_PRIV:%.+]] = load i{{[0-9]+}}*, i{{[0-9]+}}** [[REFC]],
292 // BLOCKS-NEXT: [[C_VAL:%.+]] = load i{{[0-9]+}}, i{{[0-9]+}}* [[C_PRIV]],
293 // BLOCKS-NEXT: [[DIV:%.+]] = sdiv i{{[0-9]+}} [[C_VAL]], 1
294 // BLOCKS-NEXT: store i{{[0-9]+}} [[DIV]], i{{[0-9]+}}* [[C_PRIV]],
295 // BLOCKS-NEXT: ret void