From 1eeeea5f8ae80c7c342532ee122e06f890250df5 Mon Sep 17 00:00:00 2001 From: Valentin Clement Date: Thu, 14 Aug 2025 17:40:47 -0700 Subject: [PATCH] [flang][cuda] Add missing bind name for __int2double_rn --- flang/module/cudadevice.f90 | 2 +- flang/test/Lower/CUDA/cuda-libdevice.cuf | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/flang/module/cudadevice.f90 b/flang/module/cudadevice.f90 index ffc3a3b170ca6..5d6fd2e27d911 100644 --- a/flang/module/cudadevice.f90 +++ b/flang/module/cudadevice.f90 @@ -703,7 +703,7 @@ attributes(device) real(8) function sinpi(x) bind(c,name='__nv_sinpi') 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 f9c5dcc5fc4c3..2dcb4ac4b4f42 100644 --- a/flang/test/Lower/CUDA/cuda-libdevice.cuf +++ b/flang/test/Lower/CUDA/cuda-libdevice.cuf @@ -244,3 +244,12 @@ end subroutine ! CHECK: %{{.*}} = fir.call @__nv_float2uint_rn(%{{.*}}) proc_attrs fastmath : (f32) -> i32 ! CHECK: %{{.*}} = fir.call @__nv_float2uint_ru(%{{.*}}) proc_attrs fastmath : (f32) -> i32 ! CHECK: %{{.*}} = fir.call @__nv_float2uint_rz(%{{.*}}) proc_attrs fastmath : (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 fastmath : (i32) -> f64