-
Notifications
You must be signed in to change notification settings - Fork 15.2k
[flang][cuda][NFC] Adding missing tests #125755
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@llvm/pr-subscribers-flang-fir-hlfir Author: Renaud Kauffmann (Renaud-K) ChangesI thought I had added tests together with #125276 Full diff: https://github.com/llvm/llvm-project/pull/125755.diff 1 Files Affected:
diff --git a/flang/test/Lower/CUDA/cuda-intrinsic.cuf b/flang/test/Lower/CUDA/cuda-intrinsic.cuf
index 9723afc532387f4..77682ad7139a782 100644
--- a/flang/test/Lower/CUDA/cuda-intrinsic.cuf
+++ b/flang/test/Lower/CUDA/cuda-intrinsic.cuf
@@ -1,17 +1,194 @@
! RUN: bbc -emit-hlfir -fcuda %s -o - | FileCheck %s
module mod1
- type int
- real :: inf, sup
- end type int
+ type retf
+ real :: inf, sup, near, zero
+ end type retf
+ type retd
+ real(8) :: inf, sup, near, zero
+ end type retd
contains
attributes(global) subroutine fadd(c, a, b)
- type (int) :: c, a, b
- c%inf = __fadd_rd(a%inf, b%inf)
- c%sup = __fadd_ru(a%sup, b%sup)
+ real(4) :: a, b
+ type (retf) :: c
+ c%near = __fadd_rn(a, b)
+ c%zero = __fadd_rz(a, b)
+ c%inf = __fadd_rd(a, b)
+ c%sup = __fadd_ru(a, b)
end subroutine
+ attributes(global) subroutine dadd(c, a, b)
+ real(8) :: a, b
+ type (retd) :: c
+ c%near = __dadd_rn(a, b)
+ c%zero = __dadd_rz(a, b)
+ c%inf = __dadd_rd(a, b)
+ c%sup = __dadd_ru(a, b)
+ end subroutine
+ attributes(global) subroutine fmul(c, a, b)
+ real(4) :: a, b
+ type (retf) :: c
+ c%near = __fmul_rn(a, b)
+ c%zero = __fmul_rz(a, b)
+ c%inf = __fmul_rd(a, b)
+ c%sup = __fmul_ru(a, b)
+ end subroutine
+ attributes(global) subroutine dmul(c, a, b)
+ real(8) :: a, b
+ type (retf) :: c
+ c%near = __dmul_rn(a, b)
+ c%zero = __dmul_rz(a, b)
+ c%inf = __dmul_rd(a, b)
+ c%sup = __dmul_ru(a, b)
+ end subroutine
+ attributes(global) subroutine fmaf(c, a, b)
+ real(4) :: a, b
+ type (retf) :: c
+ c%near = __fmaf_rn(a, b, b)
+ c%zero = __fmaf_rz(a, b, b)
+ c%inf = __fmaf_rd(a, b, b)
+ c%sup = __fmaf_ru(a, b, b)
+ end subroutine
+ attributes(global) subroutine fma(c, a, b)
+ real(8) :: a, b
+ type (retd) :: c
+ c%near = __fma_rn(a, b, b)
+ c%zero = __fma_rz(a, b, b)
+ c%inf = __fma_rd(a, b, b)
+ c%sup = __fma_ru(a, b, b)
+ end subroutine
+ attributes(global) subroutine frcp(c,a)
+ real(4) :: a
+ type (retf) :: c
+ c%near = __frcp_rn(a)
+ c%zero = __frcp_rz(a)
+ c%inf = __frcp_rd(a)
+ c%sup = __frcp_ru(a)
+ end subroutine
+ attributes(global) subroutine fsqrt(c,a)
+ real(4) :: a
+ type (retf) :: c
+ c%near = __fsqrt_rn(a)
+ c%zero = __fsqrt_rz(a)
+ c%inf = __fsqrt_rd(a)
+ c%sup = __fsqrt_ru(a)
+ end subroutine
+ attributes(global) subroutine fdiv(c, a, b)
+ real(4) :: a, b
+ type (retf) :: c
+ c%near = __fdiv_rn(a, b)
+ c%zero = __fdiv_rz(a, b)
+ c%inf = __fdiv_rd(a, b)
+ c%sup = __fdiv_ru(a, b)
+ end subroutine
+ attributes(global) subroutine testsincosf(c, a, b)
+ real(4) :: a, b, c
+ call sincos(a, b, c)
+ end subroutine
+ attributes(global) subroutine testsincosd(c, a, b)
+ real(8) :: a, b, c
+ call sincos(a, b, c)
+ end subroutine
+ attributes(global) subroutine testsincospif(c, a, b)
+ real(4) :: a, b, c
+ call sincospi(a, b, c)
+ end subroutine
+ attributes(global) subroutine testsincospid(c, a, b)
+ real(8) :: a, b, c
+ call sincospi(a, b, c)
+ end subroutine
+ attributes(global) subroutine testmulhi(c, a, b)
+ integer(4) :: a, b, c
+ c = __mulhi(a, b)
+ end subroutine
+ attributes(global) subroutine testumulhi(c, a, b)
+ integer(4) :: a, b, c
+ c = __umulhi(a, b)
+ end subroutine
+ attributes(global) subroutine testmul64hi(c, a, b)
+ integer(8) :: a, b, c
+ c = __mul64hi(a, b)
+ end subroutine
+ attributes(global) subroutine testumul64hi(c, a, b)
+ integer(8) :: a, b, c
+ c = __umul64hi(a, b)
+ end subroutine
+
end
! CHECK-LABEL: func.func @_QMmod1Pfadd
+! CHECK: fir.call @__nv_fadd_rn
+! CHECK: fir.call @__nv_fadd_rz
! CHECK: fir.call @__nv_fadd_rd
! CHECK: fir.call @__nv_fadd_ru
+
+! CHECK-LABEL: func.func @_QMmod1Pdadd
+! CHECK: fir.call @__nv_dadd_rn
+! CHECK: fir.call @__nv_dadd_rz
+! CHECK: fir.call @__nv_dadd_rd
+! CHECK: fir.call @__nv_dadd_ru
+
+! CHECK-LABEL: func.func @_QMmod1Pfmul
+! CHECK: fir.call @__nv_fmul_rn
+! CHECK: fir.call @__nv_fmul_rz
+! CHECK: fir.call @__nv_fmul_rd
+! CHECK: fir.call @__nv_fmul_ru
+
+! CHECK-LABEL: func.func @_QMmod1Pdmul
+! CHECK: fir.call @__nv_dmul_rn
+! CHECK: fir.call @__nv_dmul_rz
+! CHECK: fir.call @__nv_dmul_rd
+! CHECK: fir.call @__nv_dmul_ru
+
+! CHECK-LABEL: func.func @_QMmod1Pfmaf
+! CHECK: fir.call @__nv_fmaf_rn
+! CHECK: fir.call @__nv_fmaf_rz
+! CHECK: fir.call @__nv_fmaf_rd
+! CHECK: fir.call @__nv_fmaf_ru
+
+! CHECK-LABEL: func.func @_QMmod1Pfma
+! CHECK: fir.call @__nv_fma_rn
+! CHECK: fir.call @__nv_fma_rz
+! CHECK: fir.call @__nv_fma_rd
+! CHECK: fir.call @__nv_fma_ru
+
+! CHECK-LABEL: func.func @_QMmod1Pfrcp
+! CHECK: fir.call @__nv_frcp_rn
+! CHECK: fir.call @__nv_frcp_rz
+! CHECK: fir.call @__nv_frcp_rd
+! CHECK: fir.call @__nv_frcp_ru
+
+! CHECK-LABEL: func.func @_QMmod1Pfsqrt
+! CHECK: fir.call @__nv_fsqrt_rn
+! CHECK: fir.call @__nv_fsqrt_rz
+! CHECK: fir.call @__nv_fsqrt_rd
+! CHECK: fir.call @__nv_fsqrt_ru
+
+! CHECK-LABEL: func.func @_QMmod1Pfdiv
+! CHECK: fir.call @__nv_fdiv_rn
+! CHECK: fir.call @__nv_fdiv_rz
+! CHECK: fir.call @__nv_fdiv_rd
+! CHECK: fir.call @__nv_fdiv_ru
+
+! CHECK-LABEL: func.func @_QMmod1Ptestsincosf
+! CHECK: fir.call @__nv_sincosf
+
+! CHECK-LABEL: func.func @_QMmod1Ptestsincosd
+! CHECK: fir.call @__nv_sincos
+
+! CHECK-LABEL: func.func @_QMmod1Ptestsincospif
+! CHECK: fir.call @__nv_sincospif
+
+! CHECK-LABEL: func.func @_QMmod1Ptestsincospid
+! CHECK: fir.call @__nv_sincospi
+
+! CHECK-LABEL: func.func @_QMmod1Ptestmulhi
+! CHECK: fir.call @__nv_mulhi
+
+! CHECK-LABEL: func.func @_QMmod1Ptestumulhi
+! CHECK: fir.call @__nv_umulhi
+
+! CHECK-LABEL: func.func @_QMmod1Ptestmul64hi
+! CHECK: fir.call @__nv_mul64hi
+
+! CHECK-LABEL: func.func @_QMmod1Ptestumul64hi
+! CHECK: fir.call @__nv_umul64hi
|
clementval
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
I thought I had added tests together with llvm#125276 But there are still in my sandbox. These are the tests that were meant for this PR.
I thought I had added tests together with #125276
But there are still in my sandbox. These are the tests that were meant for this PR.