Skip to content

Commit b6df17f

Browse files
authored
[flang][cuda] Add bind name for __double2uint_XX interfaces (#153285)
Also reorder the interfaces so they appear in alphabetical order
1 parent 63cc2e3 commit b6df17f

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

flang/module/cudadevice.f90

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -478,29 +478,29 @@ attributes(device) real(8) function sinpi(x) bind(c,name='__nv_sinpi')
478478
end function
479479
end interface
480480

481-
interface __double2uint_rn
482-
attributes(device) integer function __double2uint_rn(r) bind(c)
481+
interface __double2uint_rd
482+
attributes(device) integer function __double2uint_rd(r) bind(c, name='__nv_double2uint_rd')
483483
!dir$ ignore_tkr (d) r
484484
double precision, value :: r
485485
end function
486486
end interface
487487

488-
interface __double2uint_rz
489-
attributes(device) integer function __double2uint_rz(r) bind(c)
488+
interface __double2uint_rn
489+
attributes(device) integer function __double2uint_rn(r) bind(c, name='__nv_double2uint_rn')
490490
!dir$ ignore_tkr (d) r
491491
double precision, value :: r
492492
end function
493493
end interface
494494

495495
interface __double2uint_ru
496-
attributes(device) integer function __double2uint_ru(r) bind(c)
496+
attributes(device) integer function __double2uint_ru(r) bind(c, name='__nv_double2uint_ru')
497497
!dir$ ignore_tkr (d) r
498498
double precision, value :: r
499499
end function
500500
end interface
501501

502-
interface __double2uint_rd
503-
attributes(device) integer function __double2uint_rd(r) bind(c)
502+
interface __double2uint_rz
503+
attributes(device) integer function __double2uint_rz(r) bind(c, name='__nv_double2uint_rz')
504504
!dir$ ignore_tkr (d) r
505505
double precision, value :: r
506506
end function

flang/test/Lower/CUDA/cuda-device-proc.cuf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@ attributes(global) subroutine devsub()
7474
ai = __double2int_rn(ad)
7575
ai = __double2int_ru(ad)
7676
ai = __double2int_rz(ad)
77+
ai = __double2uint_rd(ad)
78+
ai = __double2uint_rn(ad)
79+
ai = __double2uint_ru(ad)
80+
ai = __double2uint_rz(ad)
7781
ai = __mul24(ai, ai)
7882
ai = __umul24(ai, ai)
7983
af = __powf(af, af)
@@ -140,6 +144,10 @@ end
140144
! CHECK: %{{.*}} = fir.call @__nv_double2int_rn(%{{.*}}) proc_attrs<bind_c> fastmath<contract> : (f64) -> i32
141145
! CHECK: %{{.*}} = fir.call @__nv_double2int_ru(%{{.*}}) proc_attrs<bind_c> fastmath<contract> : (f64) -> i32
142146
! CHECK: %{{.*}} = fir.call @__nv_double2int_rz(%{{.*}}) proc_attrs<bind_c> fastmath<contract> : (f64) -> i32
147+
! CHECK: %{{.*}} = fir.call @__nv_double2uint_rd(%{{.*}}) proc_attrs<bind_c> fastmath<contract> : (f64) -> i32
148+
! CHECK: %{{.*}} = fir.call @__nv_double2uint_rn(%{{.*}}) proc_attrs<bind_c> fastmath<contract> : (f64) -> i32
149+
! CHECK: %{{.*}} = fir.call @__nv_double2uint_ru(%{{.*}}) proc_attrs<bind_c> fastmath<contract> : (f64) -> i32
150+
! CHECK: %{{.*}} = fir.call @__nv_double2uint_rz(%{{.*}}) proc_attrs<bind_c> fastmath<contract> : (f64) -> i32
143151
! CHECK: %{{.*}} = fir.call @__nv_mul24(%{{.*}}, %{{.*}}) proc_attrs<bind_c> fastmath<contract> : (i32, i32) -> i32
144152
! CHECK: %{{.*}} = fir.call @__nv_umul24(%{{.*}}, %{{.*}}) proc_attrs<bind_c> fastmath<contract> : (i32, i32) -> i32
145153
! CHECK: %{{.*}} = fir.call @__nv_powf(%{{.*}}, %{{.*}}) proc_attrs<bind_c> fastmath<contract> : (f32, f32) -> f32

0 commit comments

Comments
 (0)