[flang-commits] [flang] d3e2459 - [flang][cuda][NFC] Add tests for device functions in cuf kernels (#125882)

via flang-commits flang-commits at lists.llvm.org
Wed Feb 5 09:53:03 PST 2025


Author: Valentin Clement (バレンタイン クレメン)
Date: 2025-02-05T09:52:59-08:00
New Revision: d3e2459da8ea4638d52df9c7acdc0c42b47d4613

URL: https://github.com/llvm/llvm-project/commit/d3e2459da8ea4638d52df9c7acdc0c42b47d4613
DIFF: https://github.com/llvm/llvm-project/commit/d3e2459da8ea4638d52df9c7acdc0c42b47d4613.diff

LOG: [flang][cuda][NFC] Add tests for device functions in cuf kernels (#125882)

Added: 
    

Modified: 
    flang/test/Lower/CUDA/cuda-device-proc.cuf
    flang/test/Semantics/cuf09.cuf

Removed: 
    


################################################################################
diff  --git a/flang/test/Lower/CUDA/cuda-device-proc.cuf b/flang/test/Lower/CUDA/cuda-device-proc.cuf
index 7ef391c7d308ba..5805dd5010a842 100644
--- a/flang/test/Lower/CUDA/cuda-device-proc.cuf
+++ b/flang/test/Lower/CUDA/cuda-device-proc.cuf
@@ -87,3 +87,17 @@ end
 ! CHECK: func.func private @llvm.nvvm.barrier0.and(i32) -> i32
 ! CHECK: func.func private @llvm.nvvm.barrier0.popc(i32) -> i32
 ! CHECK: func.func private @llvm.nvvm.barrier0.or(i32) -> i32
+
+subroutine host1()
+  integer, device :: a(32)
+  integer :: i, j
+
+block; use cudadevice
+  !$cuf kernel do(1) <<<*,32>>>
+  do i = 1, 32
+    a(i) = a(i) * 2.0
+    call syncthreads()
+    a(i) = a(i) + a(j) - 34.0
+  end do
+end block
+end 

diff  --git a/flang/test/Semantics/cuf09.cuf b/flang/test/Semantics/cuf09.cuf
index fda8938b8ffc0d..7d32e0d70ba36c 100644
--- a/flang/test/Semantics/cuf09.cuf
+++ b/flang/test/Semantics/cuf09.cuf
@@ -192,3 +192,16 @@ program main
      enddo
   enddo
 end
+
+subroutine host1()
+  integer, device :: a(32)
+  integer :: i, j
+
+  !$cuf kernel do(1) <<<*,32>>>
+  do i = 1, 32
+    a(i) = a(i) * 2.0
+    !ERROR: 'syncthreads' may not be called in device code
+    call syncthreads() ! missing explicit use cudadevice
+    a(i) = a(i) + a(j) - 34.0
+  end do
+end 


        


More information about the flang-commits mailing list