Home | History | Annotate | Download | only in OpenMP

Lines Matching full:blocks

5 // RUN: %clang_cc1 -verify -fopenmp -x c++ -fblocks -DBLOCKS -triple x86_64-apple-darwin10 -emit-llvm %s -o - | FileCheck -check-prefix=BLOCKS %s
27 #elif defined(BLOCKS)
50 #elif defined(BLOCKS)
83 #elif defined(BLOCKS)
106 #elif defined(BLOCKS)
137 // BLOCKS: [[SS_TY:%.+]] = type { i{{[0-9]+}}, i8
299 #elif defined(BLOCKS)
300 // BLOCKS: [[G:@.+]] = global i{{[0-9]+}} 1212,
301 // BLOCKS-LABEL: @main
302 // BLOCKS: call
303 // BLOCKS: call void {{%.+}}(i8
305 // BLOCKS: define{{.*}} internal{{.*}} void {{.+}}(i8*
306 // BLOCKS: call void {{.+}} @__kmpc_fork_call({{.+}}, i32 1, {{.+}}* [[OMP_REGION:@.+]] to {{.+}})
310 // BLOCKS: define{{.*}} internal{{.*}} void [[OMP_REGION]](i32* noalias %{{.+}}, i32* noalias %{{.+}}, i32* dereferenceable(4) [[SIVAR:%.+]])
311 // BLOCKS: alloca i{{[0-9]+}},
312 // BLOCKS: alloca i{{[0-9]+}},
313 // BLOCKS: alloca i{{[0-9]+}},
314 // BLOCKS: alloca i{{[0-9]+}},
315 // BLOCKS: alloca i{{[0-9]+}},
316 // BLOCKS: [[G_PRIVATE_ADDR:%.+]] = alloca i{{[0-9]+}}, align 128
317 // BLOCKS: [[G1_PRIVATE_ADDR:%.+]] = alloca i{{[0-9]+}}, align 4
318 // BLOCKS: [[SIVAR_PRIVATE_ADDR:%.+]] = alloca i{{[0-9]+}},
319 // BLOCKS: store i{{[0-9]+}}* [[SIVAR]], i{{[0-9]+}}** [[SIVAR_ADDR:%.+]],
320 // BLOCKS: {{.+}} = load i{{[0-9]+}}*, i{{[0-9]+}}** [[SIVAR_ADDR]]
321 // BLOCKS: [[GTID_REF:%.+]] = load i{{[0-9]+}}*, i{{[0-9]+}}** %{{.+}}
322 // BLOCKS: [[GTID:%.+]] = load i{{[0-9]+}}, i{{[0-9]+}}* [[GTID_REF]]
323 // BLOCKS: call {{.+}} @__kmpc_for_static_init_4(%{{.+}}* @{{.+}}, i32 [[GTID]], i32 34, i32* [[IS_LAST_ADDR:%.+]], i32* %{{.+}}, i32* %{{.+}}, i32* %{{.+}}, i32 1, i32 1)
324 // BLOCKS: store i{{[0-9]+}} 1, i{{[0-9]+}}* [[G_PRIVATE_ADDR]],
325 // BLOCKS-NOT: [[G]]{{[[^:word:]]}}
326 // BLOCKS: i{{[0-9]+}}* [[G_PRIVATE_ADDR]]
327 // BLOCKS-NOT: [[G]]{{[[^:word:]]}}
328 // BLOCKS: call void {{%.+}}(i8
329 // BLOCKS: call void @__kmpc_for_static_fini(%{{.+}}* @{{.+}}, i32 [[GTID]])
334 // BLOCKS: [[IS_LAST_VAL:%.+]] = load i32, i32* [[IS_LAST_ADDR]],
335 // BLOCKS: [[IS_LAST_ITER:%.+]] = icmp ne i32 [[IS_LAST_VAL]], 0
336 // BLOCKS: br i1 [[IS_LAST_ITER:%.+]], label %[[LAST_THEN:.+]], label %[[LAST_DONE:.+]]
337 // BLOCKS: [[LAST_THEN]]
341 // BLOCKS: [[G_VAL:%.+]] = load i{{[0-9]+}}, i{{[0-9]+}}* [[G_PRIVATE_ADDR]],
342 // BLOCKS: store volatile i{{[0-9]+}} [[G_VAL]], i{{[0-9]+}}* [[G]],
343 // BLOCKS: [[SIVAR_VAL:%.+]] = load i{{[0-9]+}}, i{{[0-9]+}}* [[SIVAR_PRIVATE_ADDR]],
344 // BLOCKS: store i{{[0-9]+}} [[SIVAR_VAL]], i{{[0-9]+}}* %{{.+}},
345 // BLOCKS: br label %[[LAST_DONE]]
346 // BLOCKS: [[LAST_DONE]]
347 // BLOCKS: call void @__kmpc_barrier(%{{.+}}* @{{.+}}, i{{[0-9]+}} [[GTID]])
351 // BLOCKS: define {{.+}} void {{@.+}}(i8*
355 // BLOCKS-NOT: [[G]]{{[[^:word:]]}}
356 // BLOCKS: store i{{[0-9]+}} 2, i{{[0-9]+}}*
357 // BLOCKS-NOT: [[G]]{{[[^:word:]]}}
358 // BLOCKS-NOT: [[SIVAR]]{{[[^:word:]]}}
359 // BLOCKS: store i{{[0-9]+}} 4, i{{[0-9]+}}*
360 // BLOCKS-NOT: [[SIVAR]]{{[[^:word:]]}}
361 // BLOCKS: ret
366 // BLOCKS: define {{.+}} @{{.+}}([[SS_TY]]*
367 // BLOCKS: getelementptr inbounds [[SS_TY]], [[SS_TY]]* %{{.+}}, i32 0, i32 0
368 // BLOCKS: store i{{[0-9]+}} 0, i{{[0-9]+}}* %
369 // BLOCKS: getelementptr inbounds [[SS_TY]], [[SS_TY]]* %{{.+}}, i32 0, i32 1
370 // BLOCKS: store i8
371 // BLOCKS: getelementptr inbounds [[SS_TY]], [[SS_TY]]* %{{.+}}, i32 0, i32 2
372 // BLOCKS: call void (%{{.+}}*, i{{[0-9]+}}, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)*, ...) @__kmpc_fork_call(%{{.+}}* @{{.+}}, i{{[0-9]+}} 1, void (i{{[0-9]+}}*, i{{[0-9]+}}*, ...)* bitcast (void (i{{[0-9]+}}*, i{{[0-9]+}}*, [[SS_TY]]*)* [[SS_MICROTASK:@.+]] to void
373 // BLOCKS: call void @__kmpc_for_static_init_4(
374 // BLOCKS-NOT: getelementptr inbounds [[SS_TY]], [[SS_TY]]* %{{.+}}, i32 0, i32 0
375 // BLOCKS: call void
376 // BLOCKS: call void @__kmpc_for_static_fini(%
377 // BLOCKS: ret
379 // BLOCKS: define internal void [[SS_MICROTASK]](i{{[0-9]+}}* noalias [[GTID_ADDR:%.+]], i{{[0-9]+}}* noalias %{{.+}}, [[SS_TY]]* %{{.+}})
380 // BLOCKS: getelementptr {{.*}}[[SS_TY]], [[SS_TY]]* %{{.*}}, i32 0, i32 0
381 // BLOCKS-NOT: getelementptr {{.*}}[[SS_TY]], [[SS_TY]]* %{{.*}}, i32 0, i32 1
382 // BLOCKS: getelementptr {{.*}}[[SS_TY]], [[SS_TY]]* %{{.*}}, i32 0, i32 2
383 // BLOCKS: call void @__kmpc_for_static_init_4(
384 // BLOCKS-NOT: getelementptr {{.*}}[[SS_TY]], [[SS_TY]]*
385 // BLOCKS: call{{.*}} void
386 // BLOCKS: call void @__kmpc_for_static_fini(
387 // BLOCKS: br i1
388 // BLOCKS: [[B_REF:%.+]] = getelementptr {{.*}}[[SS_TY]], [[SS_TY]]* %{{.*}}, i32 0, i32 1
389 // BLOCKS: store i8 %{{.+}}, i8* [[B_REF]],
390 // BLOCKS: br label
391 // BLOCKS: ret void
393 // BLOCKS: define internal void @{{.+}}(i{{[0-9]+}}* noalias [[GTID_ADDR:%.+]], i{{[0-9]+}}* noalias %{{.+}}, [[SS_TY]]* %{{.+}}, i32* {{.+}}, i32* {{.+}}, i32* {{.+}})
394 // BLOCKS: alloca i{{[0-9]+}},
395 // BLOCKS: alloca i{{[0-9]+}},
396 // BLOCKS: alloca i{{[0-9]+}},
397 // BLOCKS: alloca i{{[0-9]+}},
398 // BLOCKS
399 // BLOCKS: [[A_PRIV:%.+]] = alloca i{{[0-9]+}},
400 // BLOCKS: [[B_PRIV:%.+]] = alloca i{{[0-9]+}},
401 // BLOCKS: [[C_PRIV:%.+]] = alloca i{{[0-9]+}},
402 // BLOCKS: store i{{[0-9]+}}* [[A_PRIV]], i{{[0-9]+}}** [[REFA:%.+]],
403 // BLOCKS: store i{{[0-9]+}}* [[C_PRIV]], i{{[0-9]+}}** [[REFC:%.+]],
404 // BLOCKS: call void @__kmpc_for_static_init_4(
405 // BLOCKS: [[A_PRIV:%.+]] = load i{{[0-9]+}}*, i{{[0-9]+}}** [[REFA]],
406 // BLOCKS-NEXT: [[A_VAL:%.+]] = load i{{[0-9]+}}, i{{[0-9]+}}* [[A_PRIV]],
407 // BLOCKS-NEXT: [[INC:%.+]] = add nsw i{{[0-9]+}} [[A_VAL]], 1
408 // BLOCKS-NEXT: store i{{[0-9]+}} [[INC]], i{{[0-9]+}}* [[A_PRIV]],
409 // BLOCKS-NEXT: [[B_VAL:%.+]] = load i{{[0-9]+}}, i{{[0-9]+}}* [[B_PRIV]],
410 // BLOCKS-NEXT: [[DEC:%.+]] = add nsw i{{[0-9]+}} [[B_VAL]], -1
411 // BLOCKS-NEXT: store i{{[0-9]+}} [[DEC]], i{{[0-9]+}}* [[B_PRIV]],
412 // BLOCKS-NEXT: [[C_PRIV:%.+]] = load i{{[0-9]+}}*, i{{[0-9]+}}** [[REFC]],
413 // BLOCKS-NEXT: [[C_VAL:%.+]] = load i{{[0-9]+}}, i{{[0-9]+}}* [[C_PRIV]],
414 // BLOCKS-NEXT: [[DIV:%.+]] = sdiv i{{[0-9]+}} [[C_VAL]], 1
415 // BLOCKS-NEXT: store i{{[0-9]+}} [[DIV]], i{{[0-9]+}}* [[C_PRIV]],
416 // BLOCKS: call void @__kmpc_for_static_fini(
417 // BLOCKS: br i1
418 // BLOCKS: br label
419 // BLOCKS: ret void