[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