brintos

brintos / llvm-project-archived public Read only

0
0
Text · 901 B · cdac323 Raw
41 lines · plain
1! RUN: %flang_fc1 -fdebug-unparse-with-symbols %s 2>&1 | FileCheck %s2! RUN: %flang_fc1 -fopenmp -fdebug-unparse-with-symbols %s 2>&1 | FileCheck %s3! CHECK-NOT: do *[1-9]4 5program P6implicit none7integer OMP_GET_NUM_THREADS, OMP_GET_THREAD_NUM8integer NUMTHRDS, TID9integer N, CSZ, CNUM, I10parameter (N=100)11parameter (CSZ=10) 12real A(N), B(N), C(N)13 14do 10 I = 1, N15   A(I) = I * 1.01610 continue17 18B = A19CNUM = CSZ20 21!$OMP PARALLEL SHARED(A,B,C,NUMTHRDS,CNUM) PRIVATE(I,TID)22TID = OMP_GET_THREAD_NUM()23if (TID .EQ. 0) then24   NUMTHRDS = OMP_GET_NUM_THREADS()25   print *, "Number of threads =", NUMTHRDS26end if27print *, "Thread", TID, " is starting..."28 29!$OMP DO SCHEDULE(DYNAMIC,CNUM)30do 20 I = 1, N31   C(I) = A(I) + B(I)32   write (*,100) TID, I, C(I)3320 continue34!$OMP END DO NOWAIT35 36print *, "Thread", TID, " done."37 38!$OMP END PARALLEL39100 format(" Thread", I2, ": C(", I3, ")=", F8.2)40end program P41