[flang-commits] [flang] 98752ef - [flang][cuda] Add interface for sinpi, cospi and sincospi (#126123)

via flang-commits flang-commits at lists.llvm.org
Thu Feb 6 13:12:44 PST 2025


Author: Valentin Clement (バレンタイン クレメン)
Date: 2025-02-06T13:12:41-08:00
New Revision: 98752ef893eba2bfda99ba99cc07026f00c8273f

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

LOG: [flang][cuda] Add interface for sinpi, cospi and sincospi (#126123)

Add interface for `sinpi`, `cospi` and `sincospi` and also expose
`sincosf`

Added: 
    

Modified: 
    flang/module/cudadevice.f90

Removed: 
    


################################################################################
diff  --git a/flang/module/cudadevice.f90 b/flang/module/cudadevice.f90
index 1fe99b30b1db08..47526bccd98fe6 100644
--- a/flang/module/cudadevice.f90
+++ b/flang/module/cudadevice.f90
@@ -384,34 +384,82 @@ attributes(device) integer(4) function signbit(x) bind(c,name='__nv_signbitd')
     end function
   end interface
   public :: signbit
-  
-  interface sincos
+
+  interface
     attributes(device) subroutine sincosf(x, y, z) bind(c,name='__nv_sincosf')
       real(4), value :: x
       real(4), device :: y
       real(4), device :: z
     end subroutine
+  end interface
+  public :: sincosf
+  interface
     attributes(device) subroutine sincos(x, y, z) bind(c,name='__nv_sincos')
       real(8), value :: x
       real(8), device :: y
       real(8), device :: z
     end subroutine
   end interface
+  interface sincos
+    procedure :: sincosf
+    procedure :: sincos
+  end interface
   public :: sincos
-  
-  interface sincospi
+
+  interface
     attributes(device) subroutine sincospif(x, y, z) bind(c,name='__nv_sincospif')
       real(4), value :: x
       real(4), device :: y
       real(4), device :: z
     end subroutine
+  end interface
+  public :: sincospif
+  interface
     attributes(device) subroutine sincospi(x, y, z) bind(c,name='__nv_sincospi')
       real(8), value :: x
       real(8), device :: y
       real(8), device :: z
     end subroutine
   end interface
+  interface sincospi
+    procedure :: sincospif
+    procedure :: sincospi
+  end interface
   public :: sincospi
+
+  interface
+    attributes(device) real(4) function cospif(x) bind(c,name='__nv_cospif')
+      real(4), value :: x
+    end function
+  end interface
+  public :: cospif
+  interface
+    attributes(device) real(8) function cospi(x) bind(c,name='__nv_cospi')
+      real(8), value :: x
+    end function
+  end interface
+  interface cospi
+    procedure :: cospif
+    procedure :: cospi
+  end interface
+  public :: cospi
+
+  interface  
+    attributes(device) real(4) function sinpif(x) bind(c,name='__nv_sinpif')
+      real(4), value :: x
+    end function
+  end interface
+  public :: sinpif
+  interface
+    attributes(device) real(8) function sinpi(x) bind(c,name='__nv_sinpi')
+      real(8), value :: x
+    end function
+  end interface
+  interface sinpi
+    procedure :: sinpif
+    procedure :: sinpi
+  end interface
+  public :: sinpi
   
   interface mulhi
    attributes(device) integer function __mulhi(i,j) bind(c,name='__nv_mulhi')


        


More information about the flang-commits mailing list