95 lines · plain
1! RUN: %python %S/../test_errors.py %s %flang -fopenmp -fopenmp-version=502! Check OpenMP clause validity for NONTEMPORAL clause3 4program omp_simd5 integer i6 integer, allocatable :: a(:)7 8 allocate(a(10))9 10 !$omp simd nontemporal(a)11 do i = 1, 1012 a(i) = i13 end do14 !$omp end simd15 16 !$omp parallel do simd nontemporal(a)17 do i = 1, 1018 a(i) = i19 end do20 !$omp end parallel do simd21 22 !$omp parallel do simd nontemporal(a)23 do i = 1, 1024 a(i) = i25 end do26 !$omp end parallel do simd27 28 !ERROR: NONTEMPORAL clause is not allowed on the DO SIMD directive29 !$omp do simd nontemporal(a)30 do i = 1, 1031 a(i) = i32 end do33 !$omp end do simd34 35 !$omp taskloop simd nontemporal(a)36 do i = 1, 1037 a(i) = i38 end do39 !$omp end taskloop simd40 41 !$omp teams42 !$omp distribute parallel do simd nontemporal(a)43 do i = 1, 1044 a(i) = i45 end do46 !$omp end distribute parallel do simd47 !$omp end teams48 49 !$omp teams50 !$omp distribute simd nontemporal(a)51 do i = 1, 1052 a(i) = i53 end do54 !$omp end distribute simd55 !$omp end teams56 57 !$omp target parallel do simd nontemporal(a)58 do i = 1, 1059 a(i) = i60 end do61 !$omp end target parallel do simd62 63 !$omp target simd nontemporal(a)64 do i = 1, 1065 a(i) = i66 end do67 !$omp end target simd68 69 !$omp teams distribute simd nontemporal(a)70 do i = 1, 1071 a(i) = i72 end do73 !$omp end teams distribute simd74 75 !$omp teams distribute parallel do simd nontemporal(a)76 do i = 1, 1077 a(i) = i78 end do79 !$omp end teams distribute parallel do simd80 81 !$omp target teams distribute parallel do simd nontemporal(a)82 do i = 1, 1083 a(i) = i84 end do85 !$omp end target teams distribute parallel do simd86 87 !$omp target teams distribute simd nontemporal(a)88 do i = 1, 1089 a(i) = i90 end do91 !$omp end target teams distribute simd92 93 94end program omp_simd95