brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · 00bc85a Raw
85 lines · c
1// clang-format off2// RUN: %libomp-compile-and-run | FileCheck %s3// RUN: %libomp-compile-and-run | FileCheck --check-prefix=TASKS %s4// REQUIRES: ompt5 6// These compilers don't support the taskloop construct7// UNSUPPORTED: gcc-4, gcc-5, icc-168// GCC 6 has support for taskloops, but at least 6.3.0 is crashing on this test9// UNSUPPORTED: gcc-610// clang-format on11 12#include "callback.h"13#include <omp.h>14 15int main() {16  unsigned int i, x;17 18#pragma omp parallel num_threads(2)19  {20#pragma omp barrier21 22#pragma omp master23#pragma omp taskloop24    for (i = 0; i < 5; i += 3) {25      x++;26    }27  }28  // clang-format off29  // CHECK: 0: NULL_POINTER=[[NULL:.*$]]30 31  // CHECK: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_parallel_begin:32  // CHECK-SAME: parent_task_id={{[0-f]+}}33  // CHECK-SAME: parallel_id=[[PARALLEL_ID:[0-f]+]]34  // CHECK-SAME: requested_team_size=235  // CHECK: {{^}}[[MASTER_ID]]: ompt_event_implicit_task_begin:36  // CHECK-SAME: parallel_id=[[PARALLEL_ID]]37  // CHECK-SAME: task_id=[[IMPLICIT_TASK_ID1:[0-9]+]]38  // CHECK-SAME: team_size=2, thread_num=039  // CHECK: {{^}}[[MASTER_ID]]: ompt_event_taskgroup_begin:40  // CHECK-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[IMPLICIT_TASK_ID1]]41  // CHECK: {{^}}[[MASTER_ID]]: ompt_event_taskloop_begin:42  // CHECK-SAME: parallel_id=[[PARALLEL_ID]]43  // CHECK-SAME: task_id=[[IMPLICIT_TASK_ID1]]44  // CHECK-SAME: codeptr_ra=[[RETURN_ADDRESS:(0x)?[0-f]+]], count=245  // CHECK: {{^}}[[MASTER_ID]]: ompt_event_task_create:46  // CHECK-SAME: parent_task_id=[[IMPLICIT_TASK_ID1]]47  // CHECK-SAME: new_task_id=[[TASK_ID1:[0-9]+]]48  // CHECK-SAME: codeptr_ra=[[RETURN_ADDRESS]]49  // CHECK-SAME: task_type=ompt_task_explicit=450  // CHECK: {{^}}[[MASTER_ID]]: ompt_event_task_create:51  // CHECK-SAME: parent_task_id=[[IMPLICIT_TASK_ID1]]52  // CHECK-SAME: new_task_id=[[TASK_ID2:[0-9]+]]53  // CHECK-SAME: codeptr_ra=[[RETURN_ADDRESS]]54  // CHECK-SAME: task_type=ompt_task_explicit=455  // CHECK-NOT: {{^}}[[MASTER_ID]]: ompt_event_task_create:56  // CHECK: {{^}}[[MASTER_ID]]: ompt_event_taskloop_end:57  // CHECK-SAME: parallel_id=[[PARALLEL_ID]]58  // CHECK-SAME: task_id=[[IMPLICIT_TASK_ID1]]59  // CHECK-SAME: count=260  // CHECK-DAG: {{^}}[[MASTER_ID]]: ompt_event_wait_taskgroup_begin:61  // CHECK: {{^}}[[MASTER_ID]]: ompt_event_wait_taskgroup_end:62  // CHECK-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[IMPLICIT_TASK_ID1]]63  // CHECK: {{^}}[[MASTER_ID]]: ompt_event_taskgroup_end:64  // CHECK-SAME: parallel_id=[[PARALLEL_ID]], task_id=[[IMPLICIT_TASK_ID1]]65  // CHECK: {{^}}[[MASTER_ID]]: ompt_event_implicit_task_end: parallel_id=066  // CHECK-SAME: task_id=[[IMPLICIT_TASK_ID1]], team_size=2, thread_num=067  // CHECK: {{^}}[[MASTER_ID]]: ompt_event_parallel_end:68  // CHECK-SAME: parallel_id=[[PARALLEL_ID]]69 70  // TASKS: ompt_event_initial_task_begin:{{.*}} task_id={{[0-f]+}}71  // TASKS: {{^}}[[MASTER_ID:[0-9]+]]: ompt_event_taskloop_begin:72  // TASKS: ompt_event_task_create:{{.*}} new_task_id=[[TASK_ID1:[0-9]+]]73  // TASKS-SAME: task_type=ompt_task_explicit74  // TASKS-DAG: ompt_event_task_create:{{.*}} new_task_id=[[TASK_ID2:[0-9]+]]75  // Schedule events:76  // TASKS-DAG: {{^.*}}first_task_id={{[0-f]+}}, second_task_id=[[TASK_ID1]]77  // TASKS-DAG: {{^.*}}first_task_id=[[TASK_ID1]], second_task_id={{[0-f]+}}78  // TASKS-DAG: {{^.*}}first_task_id={{[0-f]+}}, second_task_id=[[TASK_ID2]]79  // TASKS-DAG: {{^.*}}first_task_id=[[TASK_ID2]], second_task_id={{[0-f]+}}80  // TASKS-NOT: ompt_event_task_schedule81  // clang-format on82 83  return 0;84}85