/*
 * 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.

!$omp taskloop simd collapse(a) order(concurrent)  safelen(sd) simdlen(4) nontemporal(non, temporal) lastprivate(conditional:i, last, private) linear(var(s,f,e):2) linear(s,f,e)  aligned(s,f,e) 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: !$omp taskloop simd collapse (a, 34) order (concurrent) safelen (sd) simdlen (4) nontemporal (non, temporal) lastprivate (conditional: i, last, private) linear (var(s,f,e):2) linear (s, f, e) aligned (s, f, e) 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) final (890) priority (4) untied mergeable nogroup allocate (user_defined_test: m, n[1:5])

!$omp end taskloop simd
PASS: !$omp end taskloop simd 
