[flang][cuda] Add missing bind name for __int2double_rn (#153720)
diff --git a/flang/module/cudadevice.f90 b/flang/module/cudadevice.f90 index 65c703d..d21ee98 100644 --- a/flang/module/cudadevice.f90 +++ b/flang/module/cudadevice.f90
@@ -738,7 +738,7 @@ end interface interface __int2double_rn - attributes(device) double precision function __int2double_rn(i) bind(c) + attributes(device) double precision function __int2double_rn(i) bind(c, name='__nv_int2double_rn') !dir$ ignore_tkr (d) i integer, value :: i end function
diff --git a/flang/test/Lower/CUDA/cuda-libdevice.cuf b/flang/test/Lower/CUDA/cuda-libdevice.cuf index 7bb2ab0..0e024f0 100644 --- a/flang/test/Lower/CUDA/cuda-libdevice.cuf +++ b/flang/test/Lower/CUDA/cuda-libdevice.cuf
@@ -245,6 +245,15 @@ ! CHECK: %{{.*}} = fir.call @__nv_float2uint_ru(%{{.*}}) proc_attrs<bind_c> fastmath<contract> : (f32) -> i32 ! CHECK: %{{.*}} = fir.call @__nv_float2uint_rz(%{{.*}}) proc_attrs<bind_c> fastmath<contract> : (f32) -> i32 +attributes(global) subroutine test_int2double_rn() + double precision :: res + integer :: r + res = __int2double_rn(r) +end subroutine + +! CHECK-LABEL: _QPtest_int2double_rn +! CHECK: %{{.*}} = fir.call @__nv_int2double_rn(%{{.*}}) proc_attrs<bind_c> fastmath<contract> : (i32) -> f64 + attributes(global) subroutine test_fdividef() real :: res real :: r