/*
 * 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 declare simd simdlen(4)
PASS: #pragma omp declare simd simdlen (4)

#pragma omp declare simd linear(a,b,c:2)
PASS: #pragma omp declare simd linear (a, b, c:2)

#pragma omp declare simd aligned(*a,&b,c:2)
PASS: #pragma omp declare simd aligned (*a, &b, c:2)

#pragma omp declare simd uniform(*a,&b)
PASS: #pragma omp declare simd uniform (*a, &b)

#pragma omp declare simd inbranch
PASS: #pragma omp declare simd inbranch

#pragma omp declare simd notinbranch
PASS: #pragma omp declare simd notinbranch

#pragma omp declare simd uniform(i) linear(k) notinbranch
PASS: #pragma omp declare simd uniform (i) linear (k) notinbranch


// invalid test without paired validation.
EXPECT: invalid

#pragma omp declare simd safelen

#pragma omp declare simd simdlen

#pragma omp declare simd linear

#pragma omp declare simd aligned

#pragma omp declare simd notinbranch(v)

#pragma omp declare simd inbranch(dfa:23)

#pragma omp declare simd (DFHK) inbranch(dfa:23)







