xref: /llvm-project/flang/test/Semantics/OpenMP/simd-aligned.f90 (revision 5287bb97f90e0d54e7fca280ead36ec6432f87b4)
13323a4bdSKiran Chandramohan! RUN: %python %S/../test_errors.py %s %flang -fopenmp
23323a4bdSKiran Chandramohan
33323a4bdSKiran Chandramohan! OpenMP Version 4.5
43323a4bdSKiran Chandramohan! 2.8.1 simd Construct
53323a4bdSKiran Chandramohan! Semantic error for correct test case
63323a4bdSKiran Chandramohan
73323a4bdSKiran Chandramohanprogram omp_simd
8*f36a2547SRaghu Maddhipatla  integer i, j, k, c, d(100)
93323a4bdSKiran Chandramohan  integer, allocatable :: a(:), b(:)
10*f36a2547SRaghu Maddhipatla  common /cmn/ c
113323a4bdSKiran Chandramohan
123323a4bdSKiran Chandramohan  allocate(a(10))
133323a4bdSKiran Chandramohan  allocate(b(10))
143323a4bdSKiran Chandramohan
153323a4bdSKiran Chandramohan  !ERROR: List item 'a' present at multiple ALIGNED clauses
163323a4bdSKiran Chandramohan  !$omp simd aligned(a, a)
173323a4bdSKiran Chandramohan  do i = 1, 10
183323a4bdSKiran Chandramohan    a(i) = i
193323a4bdSKiran Chandramohan  end do
203323a4bdSKiran Chandramohan  !$omp end simd
213323a4bdSKiran Chandramohan
223323a4bdSKiran Chandramohan  !ERROR: List item 'a' present at multiple ALIGNED clauses
233323a4bdSKiran Chandramohan  !ERROR: List item 'b' present at multiple ALIGNED clauses
243323a4bdSKiran Chandramohan  !$omp simd aligned(a,a) aligned(b) aligned(b)
253323a4bdSKiran Chandramohan  do i = 1, 10
263323a4bdSKiran Chandramohan    a(i) = i
273323a4bdSKiran Chandramohan    b(i) = i
283323a4bdSKiran Chandramohan  end do
293323a4bdSKiran Chandramohan  !$omp end simd
303323a4bdSKiran Chandramohan
313323a4bdSKiran Chandramohan  !ERROR: List item 'a' present at multiple ALIGNED clauses
323323a4bdSKiran Chandramohan  !$omp simd aligned(a) aligned(a)
333323a4bdSKiran Chandramohan  do i = 1, 10
343323a4bdSKiran Chandramohan    a(i) = i
353323a4bdSKiran Chandramohan  end do
363323a4bdSKiran Chandramohan  !$omp end simd
373323a4bdSKiran Chandramohan
383323a4bdSKiran Chandramohan  !$omp simd aligned(a) aligned(b)
393323a4bdSKiran Chandramohan  do i = 1, 10
403323a4bdSKiran Chandramohan    a(i) = i
413323a4bdSKiran Chandramohan    b(i) = i
423323a4bdSKiran Chandramohan  end do
433323a4bdSKiran Chandramohan  !$omp end simd
443323a4bdSKiran Chandramohan
453323a4bdSKiran Chandramohan  !ERROR: List item 'a' present at multiple ALIGNED clauses
463323a4bdSKiran Chandramohan  !$omp simd aligned(a) private(a) aligned(a)
473323a4bdSKiran Chandramohan  do i = 1, 10
483323a4bdSKiran Chandramohan    a(i) = i
493323a4bdSKiran Chandramohan    b(i) = i
503323a4bdSKiran Chandramohan  end do
513323a4bdSKiran Chandramohan  !$omp end simd
523323a4bdSKiran Chandramohan
533323a4bdSKiran Chandramohan  print *, a
543323a4bdSKiran Chandramohan
55*f36a2547SRaghu Maddhipatla  !ERROR: 'c' is a common block name and can not appear in an ALIGNED clause
56*f36a2547SRaghu Maddhipatla  !$omp simd aligned(c)
57*f36a2547SRaghu Maddhipatla  do i = 1, 10
58*f36a2547SRaghu Maddhipatla    c = 5
59*f36a2547SRaghu Maddhipatla  end do
60*f36a2547SRaghu Maddhipatla  !$omp end simd
61*f36a2547SRaghu Maddhipatla
62*f36a2547SRaghu Maddhipatla  !ERROR: 'd' in ALIGNED clause must be of type C_PTR, POINTER or ALLOCATABLE
63*f36a2547SRaghu Maddhipatla  !$omp simd aligned(d:100)
64*f36a2547SRaghu Maddhipatla  do i = 1, 100
65*f36a2547SRaghu Maddhipatla    d(i) = i
66*f36a2547SRaghu Maddhipatla  end do
67*f36a2547SRaghu Maddhipatla
683323a4bdSKiran Chandramohanend program omp_simd
69