/*
 * Copyright (c) 2018-2025, High Performance Computing Architecture and System
 * research laboratory at University of North Carolina at Charlotte (HPCAS@UNCC)
 * and Lawrence Livermore National Security, LLC.
 *
 * SPDX-License-Identifier: (BSD-3-Clause)
 */

//For testing purpose, there are several extra empty lines.
//The final version should only contain necessary information.
//This is not a C/C++ code, so there's no required writing style.
//Only two kinds of special lines will be recognized.
//One is starting with "omp", which is the input.
//The other one is starting with "PASS: ", which is the result for validation.

#pragma omp taskloop if(taskloop:3456) shared(x,y,z) private (x, n[1:5]) firstprivate (foo(x), y) lastprivate(rt,e,tre) reduction (default, + : a, foo(x)) in_reduction (abc : x, y, z) default(shared) grainsize(8) num_tasks(45) collapse(34) final(890) priority(4) untied mergeable nogroup allocate (user_defined_test : m, n[1:5])
PASS: #pragma omp taskloop if (taskloop: 3456) shared (x, y, z) private (x, n[1:5]) firstprivate (foo(x), y) lastprivate (rt, e, tre) reduction (default, + : a, foo(x)) in_reduction (abc : x, y, z) default (shared) grainsize (8) num_tasks (45) collapse (34) final (890) priority (4) untied mergeable nogroup allocate (user_defined_test: m, n[1:5])
