CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
292 lines
5.7 KiB
Fortran
292 lines
5.7 KiB
Fortran
! RUN: %flang_fc1 -fdebug-unparse-no-sema -fopenmp %s | FileCheck %s
|
|
|
|
program main
|
|
implicit none
|
|
integer :: i, j = 10
|
|
integer :: k
|
|
!READ
|
|
!$omp atomic read
|
|
i = j
|
|
!$omp atomic seq_cst read
|
|
i = j
|
|
!$omp atomic read seq_cst
|
|
i = j
|
|
!$omp atomic release read
|
|
i = j
|
|
!$omp atomic read release
|
|
i = j
|
|
!$omp atomic acq_rel read
|
|
i = j
|
|
!$omp atomic read acq_rel
|
|
i = j
|
|
!$omp atomic acquire read
|
|
i = j
|
|
!$omp atomic read acquire
|
|
i = j
|
|
!$omp atomic relaxed read
|
|
i = j
|
|
!$omp atomic read relaxed
|
|
i = j
|
|
|
|
! WRITE
|
|
!$omp atomic write
|
|
i = j
|
|
!$omp atomic seq_cst write
|
|
i = j
|
|
!$omp atomic write seq_cst
|
|
i = j
|
|
!$omp atomic release write
|
|
i = j
|
|
!$omp atomic write release
|
|
i = j
|
|
!$omp atomic acq_rel write
|
|
i = j
|
|
!$omp atomic write acq_rel
|
|
i = j
|
|
!$omp atomic acquire write
|
|
i = j
|
|
!$omp atomic write acquire
|
|
i = j
|
|
!$omp atomic relaxed write
|
|
i = j
|
|
!$omp atomic write relaxed
|
|
i = j
|
|
|
|
!UPDATE
|
|
!$omp atomic update
|
|
i = j
|
|
!$omp atomic seq_cst update
|
|
i = j
|
|
!$omp atomic update seq_cst
|
|
i = j
|
|
!$omp atomic release update
|
|
i = j
|
|
!$omp atomic update release
|
|
i = j
|
|
!$omp atomic acq_rel update
|
|
i = j
|
|
!$omp atomic update acq_rel
|
|
i = j
|
|
!$omp atomic acquire update
|
|
i = j
|
|
!$omp atomic update acquire
|
|
i = j
|
|
!$omp atomic relaxed update
|
|
i = j
|
|
!$omp atomic update relaxed
|
|
i = j
|
|
|
|
!CAPTURE
|
|
!$omp atomic capture
|
|
i = j
|
|
i = j
|
|
!$omp end atomic
|
|
!$omp atomic seq_cst capture
|
|
i = j
|
|
i = j
|
|
!$omp end atomic
|
|
!$omp atomic capture seq_cst
|
|
i = j
|
|
i = j
|
|
!$omp end atomic
|
|
!$omp atomic release capture
|
|
i = j
|
|
i = j
|
|
!$omp end atomic
|
|
!$omp atomic capture release
|
|
i = j
|
|
i = j
|
|
!$omp end atomic
|
|
!$omp atomic acq_rel capture
|
|
i = j
|
|
i = j
|
|
!$omp end atomic
|
|
!$omp atomic capture acq_rel
|
|
i = j
|
|
i = j
|
|
!$omp end atomic
|
|
!$omp atomic acquire capture
|
|
i = j
|
|
i = j
|
|
!$omp end atomic
|
|
!$omp atomic capture acquire
|
|
i = j
|
|
i = j
|
|
!$omp end atomic
|
|
!$omp atomic relaxed capture
|
|
i = j
|
|
i = j
|
|
!$omp end atomic
|
|
!$omp atomic capture relaxed
|
|
i = j
|
|
i = j
|
|
!$omp end atomic
|
|
|
|
!COMPARE
|
|
!$omp atomic compare
|
|
if (k == i) k = j
|
|
!$omp atomic seq_cst compare
|
|
if (k == j) then
|
|
k = i
|
|
end if
|
|
!$omp atomic compare seq_cst
|
|
if (k .eq. j) then
|
|
k = i
|
|
end if
|
|
!$omp atomic release compare
|
|
if (i .eq. j) k = i
|
|
!$omp atomic compare release
|
|
if (i .eq. j) then
|
|
i = k
|
|
end if
|
|
!$omp atomic acq_rel compare
|
|
if (k .eq. j) then
|
|
j = i
|
|
end if
|
|
!$omp atomic compare acq_rel
|
|
if (i .eq. j) then
|
|
i = k
|
|
end if
|
|
!$omp atomic acquire compare
|
|
if (i .eq. j + 1) then
|
|
i = j
|
|
end if
|
|
|
|
!$omp atomic compare acquire
|
|
if (i .eq. j) then
|
|
i = k
|
|
end if
|
|
!$omp atomic relaxed compare
|
|
if (i .eq. j) then
|
|
i = k
|
|
end if
|
|
!$omp atomic compare relaxed
|
|
if (i .eq. k) then
|
|
i = j
|
|
end if
|
|
|
|
|
|
!$omp atomic compare fail(relaxed)
|
|
if (i .eq. k) then
|
|
i = j
|
|
end if
|
|
!$omp atomic fail(relaxed) compare
|
|
if (i .eq. k) then
|
|
i = j
|
|
end if
|
|
!$omp atomic fail(relaxed) compare acquire
|
|
if (i .eq. k) then
|
|
i = j
|
|
end if
|
|
|
|
!ATOMIC
|
|
!$omp atomic
|
|
i = j
|
|
!$omp atomic seq_cst
|
|
i = j
|
|
!$omp atomic release
|
|
i = j
|
|
!$omp atomic acq_rel
|
|
i = j
|
|
!$omp atomic acquire
|
|
i = j
|
|
!$omp atomic relaxed
|
|
i = j
|
|
|
|
end program main
|
|
!CHECK-LABEL: PROGRAM main
|
|
|
|
!READ
|
|
|
|
!CHECK: !$OMP ATOMIC READ
|
|
!CHECK: !$OMP ATOMIC SEQ_CST READ
|
|
!CHECK: !$OMP ATOMIC READ SEQ_CST
|
|
!CHECK: !$OMP ATOMIC RELEASE READ
|
|
!CHECK: !$OMP ATOMIC READ RELEASE
|
|
!CHECK: !$OMP ATOMIC ACQ_REL READ
|
|
!CHECK: !$OMP ATOMIC READ ACQ_REL
|
|
!CHECK: !$OMP ATOMIC ACQUIRE READ
|
|
!CHECK: !$OMP ATOMIC READ ACQUIRE
|
|
!CHECK: !$OMP ATOMIC RELAXED READ
|
|
!CHECK: !$OMP ATOMIC READ RELAXED
|
|
|
|
!WRITE
|
|
|
|
!CHECK: !$OMP ATOMIC WRITE
|
|
!CHECK: !$OMP ATOMIC SEQ_CST WRITE
|
|
!CHECK: !$OMP ATOMIC WRITE SEQ_CST
|
|
!CHECK: !$OMP ATOMIC RELEASE WRITE
|
|
!CHECK: !$OMP ATOMIC WRITE RELEASE
|
|
!CHECK: !$OMP ATOMIC ACQ_REL WRITE
|
|
!CHECK: !$OMP ATOMIC WRITE ACQ_REL
|
|
!CHECK: !$OMP ATOMIC ACQUIRE WRITE
|
|
!CHECK: !$OMP ATOMIC WRITE ACQUIRE
|
|
!CHECK: !$OMP ATOMIC RELAXED WRITE
|
|
!CHECK: !$OMP ATOMIC WRITE RELAXED
|
|
|
|
!UPDATE
|
|
|
|
!CHECK: !$OMP ATOMIC UPDATE
|
|
!CHECK: !$OMP ATOMIC SEQ_CST UPDATE
|
|
!CHECK: !$OMP ATOMIC UPDATE SEQ_CST
|
|
!CHECK: !$OMP ATOMIC RELEASE UPDATE
|
|
!CHECK: !$OMP ATOMIC UPDATE RELEASE
|
|
!CHECK: !$OMP ATOMIC ACQ_REL UPDATE
|
|
!CHECK: !$OMP ATOMIC UPDATE ACQ_REL
|
|
!CHECK: !$OMP ATOMIC ACQUIRE UPDATE
|
|
!CHECK: !$OMP ATOMIC UPDATE ACQUIRE
|
|
!CHECK: !$OMP ATOMIC RELAXED UPDATE
|
|
!CHECK: !$OMP ATOMIC UPDATE RELAXED
|
|
|
|
!CAPTURE
|
|
|
|
!CHECK: !$OMP ATOMIC CAPTURE
|
|
!CHECK: !$OMP END ATOMIC
|
|
!CHECK: !$OMP ATOMIC SEQ_CST CAPTURE
|
|
!CHECK: !$OMP END ATOMIC
|
|
!CHECK: !$OMP ATOMIC CAPTURE SEQ_CST
|
|
!CHECK: !$OMP END ATOMIC
|
|
!CHECK: !$OMP ATOMIC RELEASE CAPTURE
|
|
!CHECK: !$OMP END ATOMIC
|
|
!CHECK: !$OMP ATOMIC CAPTURE RELEASE
|
|
!CHECK: !$OMP END ATOMIC
|
|
!CHECK: !$OMP ATOMIC ACQ_REL CAPTURE
|
|
!CHECK: !$OMP END ATOMIC
|
|
!CHECK: !$OMP ATOMIC CAPTURE ACQ_REL
|
|
!CHECK: !$OMP END ATOMIC
|
|
!CHECK: !$OMP ATOMIC ACQUIRE CAPTURE
|
|
!CHECK: !$OMP END ATOMIC
|
|
!CHECK: !$OMP ATOMIC CAPTURE ACQUIRE
|
|
!CHECK: !$OMP END ATOMIC
|
|
!CHECK: !$OMP ATOMIC RELAXED CAPTURE
|
|
!CHECK: !$OMP END ATOMIC
|
|
!CHECK: !$OMP ATOMIC CAPTURE RELAXED
|
|
!CHECK: !$OMP END ATOMIC
|
|
|
|
!COMPARE
|
|
|
|
!CHECK: !$OMP ATOMIC COMPARE
|
|
!CHECK: !$OMP ATOMIC SEQ_CST COMPARE
|
|
!CHECK: !$OMP ATOMIC COMPARE SEQ_CST
|
|
!CHECK: !$OMP ATOMIC RELEASE COMPARE
|
|
!CHECK: !$OMP ATOMIC COMPARE RELEASE
|
|
!CHECK: !$OMP ATOMIC ACQ_REL COMPARE
|
|
!CHECK: !$OMP ATOMIC COMPARE ACQ_REL
|
|
!CHECK: !$OMP ATOMIC ACQUIRE COMPARE
|
|
!CHECK: !$OMP ATOMIC COMPARE ACQUIRE
|
|
!CHECK: !$OMP ATOMIC RELAXED COMPARE
|
|
!CHECK: !$OMP ATOMIC COMPARE RELAXED
|
|
!CHECK: !$OMP ATOMIC COMPARE FAIL(RELAXED)
|
|
!CHECK: !$OMP ATOMIC FAIL(RELAXED) COMPARE
|
|
!CHECK: !$OMP ATOMIC FAIL(RELAXED) COMPARE ACQUIRE
|
|
|
|
!ATOMIC
|
|
!CHECK: !$OMP ATOMIC
|
|
!CHECK: !$OMP ATOMIC SEQ_CST
|
|
!CHECK: !$OMP ATOMIC RELEASE
|
|
!CHECK: !$OMP ATOMIC ACQ_REL
|
|
!CHECK: !$OMP ATOMIC ACQUIRE
|
|
!CHECK: !$OMP ATOMIC RELAXED
|
|
|
|
|