Skip to content

Commit 70cb819

Browse files
committed
[flang][cuda] Add bind name for __ll2double_rX interfaces
1 parent 059e49c commit 70cb819

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

flang/module/cudadevice.f90

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

628-
interface __ll2double_rn
629-
attributes(device) double precision function __ll2double_rn(i) bind(c)
628+
interface __ll2double_rd
629+
attributes(device) double precision function __ll2double_rd(i) bind(c, name='__nv_ll2double_rd')
630630
!dir$ ignore_tkr (d) i
631631
integer(8), value :: i
632632
end function
633633
end interface
634634

635-
interface __ll2double_rz
636-
attributes(device) double precision function __ll2double_rz(i) bind(c)
635+
interface __ll2double_rn
636+
attributes(device) double precision function __ll2double_rn(i) bind(c, name='__nv_ll2double_rn')
637637
!dir$ ignore_tkr (d) i
638638
integer(8), value :: i
639639
end function
640640
end interface
641641

642642
interface __ll2double_ru
643-
attributes(device) double precision function __ll2double_ru(i) bind(c)
643+
attributes(device) double precision function __ll2double_ru(i) bind(c, name='__nv_ll2double_ru')
644644
!dir$ ignore_tkr (d) i
645645
integer(8), value :: i
646646
end function
647647
end interface
648648

649-
interface __ll2double_rd
650-
attributes(device) double precision function __ll2double_rd(i) bind(c)
649+
interface __ll2double_rz
650+
attributes(device) double precision function __ll2double_rz(i) bind(c, name='__nv_ll2double_rz')
651651
!dir$ ignore_tkr (d) i
652652
integer(8), value :: i
653653
end function

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ attributes(global) subroutine devsub()
7777
ai = __mul24(ai, ai)
7878
ai = __umul24(ai, ai)
7979
af = __powf(af, af)
80+
ad = __ll2double_rd(al)
81+
ad = __ll2double_rn(al)
82+
ad = __ll2double_ru(al)
83+
ad = __ll2double_rz(al)
8084
end
8185

8286
! CHECK-LABEL: func.func @_QPdevsub() attributes {cuf.proc_attr = #cuf.cuda_proc<global>}

0 commit comments

Comments
 (0)