diff --git a/flang/module/cudadevice.f90 b/flang/module/cudadevice.f90 index 1bccff1b5a892..1df9fe7c5727b 100644 --- a/flang/module/cudadevice.f90 +++ b/flang/module/cudadevice.f90 @@ -478,29 +478,29 @@ attributes(device) real(8) function sinpi(x) bind(c,name='__nv_sinpi') end function end interface - interface __double2uint_rn - attributes(device) integer function __double2uint_rn(r) bind(c) + interface __double2uint_rd + attributes(device) integer function __double2uint_rd(r) bind(c, name='__nv_double2uint_rd') !dir$ ignore_tkr (d) r double precision, value :: r end function end interface - interface __double2uint_rz - attributes(device) integer function __double2uint_rz(r) bind(c) + interface __double2uint_rn + attributes(device) integer function __double2uint_rn(r) bind(c, name='__nv_double2uint_rn') !dir$ ignore_tkr (d) r double precision, value :: r end function end interface interface __double2uint_ru - attributes(device) integer function __double2uint_ru(r) bind(c) + attributes(device) integer function __double2uint_ru(r) bind(c, name='__nv_double2uint_ru') !dir$ ignore_tkr (d) r double precision, value :: r end function end interface - interface __double2uint_rd - attributes(device) integer function __double2uint_rd(r) bind(c) + interface __double2uint_rz + attributes(device) integer function __double2uint_rz(r) bind(c, name='__nv_double2uint_rz') !dir$ ignore_tkr (d) r double precision, value :: r end function diff --git a/flang/test/Lower/CUDA/cuda-device-proc.cuf b/flang/test/Lower/CUDA/cuda-device-proc.cuf index 676e455b06e2f..f9ec0c773fe80 100644 --- a/flang/test/Lower/CUDA/cuda-device-proc.cuf +++ b/flang/test/Lower/CUDA/cuda-device-proc.cuf @@ -74,6 +74,10 @@ attributes(global) subroutine devsub() ai = __double2int_rn(ad) ai = __double2int_ru(ad) ai = __double2int_rz(ad) + ai = __double2uint_rd(ad) + ai = __double2uint_rn(ad) + ai = __double2uint_ru(ad) + ai = __double2uint_rz(ad) ai = __mul24(ai, ai) ai = __umul24(ai, ai) af = __powf(af, af) @@ -140,6 +144,10 @@ end ! CHECK: %{{.*}} = fir.call @__nv_double2int_rn(%{{.*}}) proc_attrs fastmath : (f64) -> i32 ! CHECK: %{{.*}} = fir.call @__nv_double2int_ru(%{{.*}}) proc_attrs fastmath : (f64) -> i32 ! CHECK: %{{.*}} = fir.call @__nv_double2int_rz(%{{.*}}) proc_attrs fastmath : (f64) -> i32 +! CHECK: %{{.*}} = fir.call @__nv_double2uint_rd(%{{.*}}) proc_attrs fastmath : (f64) -> i32 +! CHECK: %{{.*}} = fir.call @__nv_double2uint_rn(%{{.*}}) proc_attrs fastmath : (f64) -> i32 +! CHECK: %{{.*}} = fir.call @__nv_double2uint_ru(%{{.*}}) proc_attrs fastmath : (f64) -> i32 +! CHECK: %{{.*}} = fir.call @__nv_double2uint_rz(%{{.*}}) proc_attrs fastmath : (f64) -> i32 ! CHECK: %{{.*}} = fir.call @__nv_mul24(%{{.*}}, %{{.*}}) proc_attrs fastmath : (i32, i32) -> i32 ! CHECK: %{{.*}} = fir.call @__nv_umul24(%{{.*}}, %{{.*}}) proc_attrs fastmath : (i32, i32) -> i32 ! CHECK: %{{.*}} = fir.call @__nv_powf(%{{.*}}, %{{.*}}) proc_attrs fastmath : (f32, f32) -> f32