brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · b9f43d1 Raw
77 lines · cpp
1// RUN: %clang_cc1 -verify -fopenmp -x c++ -triple x86_64-unknown-linux -emit-llvm %s -fexceptions -fcxx-exceptions -o - -fsanitize-address-use-after-scope | FileCheck %s2// RUN: %clang_cc1 -verify -fopenmp -x c++ -triple aarch64-unknown-linux -emit-llvm %s -fexceptions -fcxx-exceptions -o - -fsanitize-address-use-after-scope | FileCheck %s3// RUN: %clang_cc1 -verify -fopenmp -x c++ -triple ppc64le-unknown-linux -emit-llvm %s -fexceptions -fcxx-exceptions -o - -fsanitize-address-use-after-scope | FileCheck %s4// expected-no-diagnostics5 6#ifndef HEADER7#define HEADER8 9void bar();10 11void foo() {12#pragma omp metadirective when(implementation = {vendor(score(0)  \13                                                        : llvm)}, \14                               device = {kind(cpu)}               \15                               : parallel) default(target teams)16  bar();17#pragma omp metadirective when(device = {kind(gpu)}                                 \18                               : target teams) when(implementation = {vendor(llvm)} \19                                                    : parallel) default()20  bar();21#pragma omp metadirective default(target) when(implementation = {vendor(score(5)  \22                                                                        : llvm)}, \23                                               device = {kind(cpu, host)}         \24                                               : parallel)25  bar();26#pragma omp metadirective when(implementation = {extension(match_all)} \27                               : parallel) default(parallel for)28  for (int i = 0; i < 100; i++)29    ;30#pragma omp metadirective when(implementation = {extension(match_any)} \31                               : parallel) default(parallel for)32  for (int i = 0; i < 100; i++)33    ;34#pragma omp metadirective when(implementation = {extension(match_none)} \35                               : parallel) default(parallel for)36  for (int i = 0; i < 100; i++)37    ;38}39 40// CHECK-LABEL: void @_Z3foov()41// CHECK: @__kmpc_fork_call(ptr {{.+}}, i32 0, ptr [[OUTLINED_2:@.+]])42// CHECK: @__kmpc_fork_call(ptr {{.+}}, i32 0, ptr [[OUTLINED_3:@.+]])43// CHECK: @__kmpc_fork_call(ptr {{.+}}, i32 0, ptr [[OUTLINED_4:@.+]])44// CHECK: @__kmpc_fork_call(ptr {{.+}}, i32 0, ptr [[OUTLINED_5:@.+]])45// CHECK: @__kmpc_fork_call(ptr {{.+}}, i32 0, ptr [[OUTLINED_6:@.+]])46// CHECK: @__kmpc_fork_call(ptr {{.+}}, i32 0, ptr [[OUTLINED_7:@.+]])47// CHECK: ret void48 49// CHECK: define internal void [[OUTLINED_2]](50// CHECK: @_Z3barv51// CHECK: ret void52 53// CHECK: define internal void [[OUTLINED_3]](54// CHECK: @_Z3barv55// CHECK: ret void56 57// CHECK: define internal void [[OUTLINED_4]](58// CHECK: @_Z3barv59// CHECK: ret void60 61// CHECK: define internal void [[OUTLINED_5]](62// NO-CHECK: call void @__kmpc_for_static_init63// NO-CHECK: call void @__kmpc_for_static_fini64// CHECK: ret void65 66// CHECK: define internal void [[OUTLINED_6]](67// CHECK: call void @__kmpc_for_static_init68// CHECK: call void @__kmpc_for_static_fini69// CHECK: ret void70 71// CHECK: define internal void [[OUTLINED_7]](72// NO-CHECK: call void @__kmpc_for_static_init73// NO-CHECK: call void @__kmpc_for_static_fini74// CHECK: ret void75 76#endif77