| ! RUN: %python %S/test_errors.py %s %flang -fopenmp |
| ! REQUIRES: shell |
| ! Check OpenMP clause validity for NONTEMPORAL clause |
| |
| program omp_simd |
| integer i |
| integer, allocatable :: a(:) |
| |
| allocate(a(10)) |
| |
| !$omp simd nontemporal(a) |
| do i = 1, 10 |
| a(i) = i |
| end do |
| !$omp end simd |
| |
| !$omp parallel do simd nontemporal(a) |
| do i = 1, 10 |
| a(i) = i |
| end do |
| !$omp end parallel do simd |
| |
| !$omp parallel do simd nontemporal(a) |
| do i = 1, 10 |
| a(i) = i |
| end do |
| !$omp end parallel do simd |
| |
| !ERROR: NONTEMPORAL clause is not allowed on the DO SIMD directive |
| !$omp do simd nontemporal(a) |
| do i = 1, 10 |
| a(i) = i |
| end do |
| !$omp end do simd |
| |
| !$omp taskloop simd nontemporal(a) |
| do i = 1, 10 |
| a(i) = i |
| end do |
| !$omp end taskloop simd |
| |
| !$omp teams |
| !$omp distribute parallel do simd nontemporal(a) |
| do i = 1, 10 |
| a(i) = i |
| end do |
| !$omp end distribute parallel do simd |
| !$omp end teams |
| |
| !$omp teams |
| !$omp distribute simd nontemporal(a) |
| do i = 1, 10 |
| a(i) = i |
| end do |
| !$omp end distribute simd |
| !$omp end teams |
| |
| !$omp target parallel do simd nontemporal(a) |
| do i = 1, 10 |
| a(i) = i |
| end do |
| !$omp end target parallel do simd |
| |
| !$omp target simd nontemporal(a) |
| do i = 1, 10 |
| a(i) = i |
| end do |
| !$omp end target simd |
| |
| !$omp teams distribute simd nontemporal(a) |
| do i = 1, 10 |
| a(i) = i |
| end do |
| !$omp end teams distribute simd |
| |
| !$omp teams distribute parallel do simd nontemporal(a) |
| do i = 1, 10 |
| a(i) = i |
| end do |
| !$omp end teams distribute parallel do simd |
| |
| !$omp target teams distribute parallel do simd nontemporal(a) |
| do i = 1, 10 |
| a(i) = i |
| end do |
| !$omp end target teams distribute parallel do simd |
| |
| !$omp target teams distribute simd nontemporal(a) |
| do i = 1, 10 |
| a(i) = i |
| end do |
| !$omp end target teams distribute simd |
| |
| |
| end program omp_simd |