@@ -77,6 +77,22 @@ attributes(device) subroutine threadfence_system()
7777
7878 ! Math API
7979
80+ interface __fadd_rn
81+ attributes(device) real function __fadd_rn(a,b) bind(c, name= ' __nv_fadd_rn' )
82+ ! dir$ ignore_tkr (d) a, (d) b
83+ real , value :: a, b
84+ end function
85+ end interface
86+ public :: __fadd_rn
87+
88+ interface __fadd_rz
89+ attributes(device) real function __fadd_rz(a,b) bind(c, name= ' __nv_fadd_rz' )
90+ ! dir$ ignore_tkr (d) a, (d) b
91+ real , value :: a, b
92+ end function
93+ end interface
94+ public :: __fadd_rz
95+
8096 interface
8197 attributes(device) function __fadd_rd (x , y ) bind(c, name= ' __nv_fadd_rd' )
8298 real , intent (in ), value :: x, y
@@ -93,6 +109,343 @@ attributes(device) subroutine threadfence_system()
93109 end interface
94110 public :: __fadd_ru
95111
112+ interface __fmul_rn
113+ attributes(device) real function __fmul_rn(a,b) bind(c, name= ' __nv_fmul_rn' )
114+ ! dir$ ignore_tkr (d) a, (d) b
115+ real , value :: a, b
116+ end function
117+ end interface
118+ public :: __fmul_rn
119+
120+ interface __fmul_rz
121+ attributes(device) real function __fmul_rz(a,b) bind(c, name= ' __nv_fmul_rz' )
122+ ! dir$ ignore_tkr (d) a, (d) b
123+ real , value :: a, b
124+ end function
125+ end interface
126+ public :: __fmul_rz
127+
128+ interface __fmul_ru
129+ attributes(device) real function __fmul_ru(a,b) bind(c, name= ' __nv_fmul_ru' )
130+ ! dir$ ignore_tkr (d) a, (d) b
131+ real , value :: a, b
132+ end function
133+ end interface
134+ public :: __fmul_ru
135+
136+ interface __fmul_rd
137+ attributes(device) real function __fmul_rd(a,b) bind(c, name= ' __nv_fmul_rd' )
138+ ! dir$ ignore_tkr (d) a, (d) b
139+ real , value :: a, b
140+ end function
141+ end interface
142+ public :: __fmul_rd
143+
144+ interface __fmaf_rn
145+ attributes(device) real function __fmaf_rn(a,b,c) bind(c, name= ' __nv_fmaf_rn' )
146+ ! dir$ ignore_tkr (d) a, (d) b, (d) c
147+ real , value :: a, b, c
148+ end function
149+ end interface
150+ public :: __fmaf_rn
151+
152+ interface __fmaf_rz
153+ attributes(device) real function __fmaf_rz(a,b,c) bind(c, name= ' __nv_fmaf_rz' )
154+ ! dir$ ignore_tkr (d) a, (d) b, (d) c
155+ real , value :: a, b, c
156+ end function
157+ end interface
158+ public :: __fmaf_rz
159+
160+ interface __fmaf_ru
161+ attributes(device) real function __fmaf_ru(a,b,c) bind(c, name= ' __nv_fmaf_ru' )
162+ ! dir$ ignore_tkr (d) a, (d) b, (d) c
163+ real , value :: a, b, c
164+ end function
165+ end interface
166+ public :: __fmaf_ru
167+
168+ interface __fmaf_rd
169+ attributes(device) real function __fmaf_rd(a,b,c) bind(c, name= ' __nv_fmaf_rd' )
170+ ! dir$ ignore_tkr (d) a, (d) b, (d) c
171+ real , value :: a, b, c
172+ end function
173+ end interface
174+ public :: __fmaf_rd
175+
176+ interface __frcp_rn
177+ attributes(device) real function __frcp_rn(a) bind(c, name= ' __nv_frcp_rn' )
178+ ! dir$ ignore_tkr (d) a
179+ real , value :: a
180+ end function
181+ end interface
182+ public :: __frcp_rn
183+
184+ interface __frcp_rz
185+ attributes(device) real function __frcp_rz(a) bind(c, name= ' __nv_frcp_rz' )
186+ ! dir$ ignore_tkr (d) a
187+ real , value :: a
188+ end function
189+ end interface
190+ public :: __frcp_rz
191+
192+ interface __frcp_ru
193+ attributes(device) real function __frcp_ru(a) bind(c, name= ' __nv_frcp_ru' )
194+ ! dir$ ignore_tkr (d) a
195+ real , value :: a
196+ end function
197+ end interface
198+ public :: __frcp_ru
199+
200+ interface __frcp_rd
201+ attributes(device) real function __frcp_rd(a) bind(c, name= ' __nv_frcp_rd' )
202+ ! dir$ ignore_tkr (d) a
203+ real , value :: a
204+ end function
205+ end interface
206+ public :: __frcp_rd
207+
208+ interface __fsqrt_rn
209+ attributes(device) real function __fsqrt_rn(a) bind(c, name= ' __nv_fsqrt_rn' )
210+ ! dir$ ignore_tkr (d) a
211+ real , value :: a
212+ end function
213+ end interface
214+ public :: __fsqrt_rn
215+
216+ interface __fsqrt_rz
217+ attributes(device) real function __fsqrt_rz(a) bind(c, name= ' __nv_fsqrt_rz' )
218+ ! dir$ ignore_tkr (d) a
219+ real , value :: a
220+ end function
221+ end interface
222+ public :: __fsqrt_rz
223+
224+ interface __fsqrt_ru
225+ attributes(device) real function __fsqrt_ru(a) bind(c, name= ' __nv_fsqrt_ru' )
226+ ! dir$ ignore_tkr (d) a
227+ real , value :: a
228+ end function
229+ end interface
230+ public :: __fsqrt_ru
231+
232+ interface __fsqrt_rd
233+ attributes(device) real function __fsqrt_rd(a) bind(c, name= ' __nv_fsqrt_rd' )
234+ ! dir$ ignore_tkr (d) a
235+ real , value :: a
236+ end function
237+ end interface
238+ public :: __fsqrt_rd
239+
240+ interface __fdiv_rn
241+ attributes(device) real function __fdiv_rn(a,b) bind(c, name= ' __nv_fdiv_rn' )
242+ ! dir$ ignore_tkr (d) a, (d) b
243+ real , value :: a, b
244+ end function
245+ end interface
246+ public :: __fdiv_rn
247+
248+ interface __fdiv_rz
249+ attributes(device) real function __fdiv_rz(a,b) bind(c, name= ' __nv_fdiv_rz' )
250+ ! dir$ ignore_tkr (d) a, (d) b
251+ real , value :: a, b
252+ end function
253+ end interface
254+ public :: __fdiv_rz
255+
256+ interface __fdiv_ru
257+ attributes(device) real function __fdiv_ru(a,b) bind(c, name= ' __nv_fdiv_ru' )
258+ ! dir$ ignore_tkr (d) a, (d) b
259+ real , value :: a, b
260+ end function
261+ end interface
262+ public :: __fdiv_ru
263+
264+ interface __fdiv_rd
265+ attributes(device) real function __fdiv_rd(a,b) bind(c, name= ' __nv_fdiv_rd' )
266+ ! dir$ ignore_tkr (d) a, (d) b
267+ real , value :: a, b
268+ end function
269+ end interface
270+ public :: __fdiv_rd
271+
272+ interface __dadd_rn
273+ attributes(device) real (8 ) function __dadd_rn(a,b) bind(c, name= ' __nv_dadd_rn' )
274+ ! dir$ ignore_tkr (d) a, (d) b
275+ real (8 ), value :: a, b
276+ end function
277+ end interface
278+ public :: __dadd_rn
279+
280+ interface __dadd_rz
281+ attributes(device) real (8 ) function __dadd_rz(a,b) bind(c, name= ' __nv_dadd_rz' )
282+ ! dir$ ignore_tkr (d) a, (d) b
283+ real (8 ), value :: a, b
284+ end function
285+ end interface
286+ public :: __dadd_rz
287+
288+ interface __dadd_ru
289+ attributes(device) real (8 ) function __dadd_ru(a,b) bind(c, name= ' __nv_dadd_ru' )
290+ ! dir$ ignore_tkr (d) a, (d) b
291+ real (8 ), value :: a, b
292+ end function
293+ end interface
294+ public :: __dadd_ru
295+
296+ interface __dadd_rd
297+ attributes(device) real (8 ) function __dadd_rd(a,b) bind(c, name= ' __nv_dadd_rd' )
298+ ! dir$ ignore_tkr (d) a, (d) b
299+ real (8 ), value :: a, b
300+ end function
301+ end interface
302+ public :: __dadd_rd
303+
304+ interface __dmul_rn
305+ attributes(device) real (8 ) function __dmul_rn(a,b) bind(c, name= ' __nv_dmul_rn' )
306+ ! dir$ ignore_tkr (d) a, (d) b
307+ real (8 ), value :: a, b
308+ end function
309+ end interface
310+ public :: __dmul_rn
311+
312+ interface __dmul_rz
313+ attributes(device) real (8 ) function __dmul_rz(a,b) bind(c, name= ' __nv_dmul_rz' )
314+ ! dir$ ignore_tkr (d) a, (d) b
315+ real (8 ), value :: a, b
316+ end function
317+ end interface
318+ public :: __dmul_rz
319+
320+ interface __dmul_ru
321+ attributes(device) real (8 ) function __dmul_ru(a,b) bind(c, name= ' __nv_dmul_ru' )
322+ ! dir$ ignore_tkr (d) a, (d) b
323+ real (8 ), value :: a, b
324+ end function
325+ end interface
326+ public :: __dmul_ru
327+
328+ interface __dmul_rd
329+ attributes(device) real (8 ) function __dmul_rd(a,b) bind(c, name= ' __nv_dmul_rd' )
330+ ! dir$ ignore_tkr (d) a, (d) b
331+ real (8 ), value :: a, b
332+ end function
333+ end interface
334+ public :: __dmul_rd
335+
336+ interface __fma_rn
337+ attributes(device) real (8 ) function __fma_rn(a,b,c) bind(c, name= ' __nv_fma_rn' )
338+ ! dir$ ignore_tkr (d) a, (d) b
339+ real (8 ), value :: a, b, c
340+ end function
341+ end interface
342+ public :: __fma_rn
343+
344+ interface __fma_rz
345+ attributes(device) real (8 ) function __fma_rz(a,b,c) bind(c, name= ' __nv_fma_rz' )
346+ ! dir$ ignore_tkr (d) a, (d) b
347+ real (8 ), value :: a, b, c
348+ end function
349+ end interface
350+ public :: __fma_rz
351+
352+ interface __fma_ru
353+ attributes(device) real (8 ) function __fma_ru(a,b,c) bind(c, name= ' __nv_fma_ru' )
354+ ! dir$ ignore_tkr (d) a, (d) b
355+ real (8 ), value :: a, b, c
356+ end function
357+ end interface
358+ public :: __fma_ru
359+
360+ interface __fma_rd
361+ attributes(device) real (8 ) function __fma_rd(a,b,c) bind(c, name= ' __nv_fma_rd' )
362+ ! dir$ ignore_tkr (d) a, (d) b
363+ real (8 ), value :: a, b, c
364+ end function
365+ end interface
366+ public :: __fma_rd
367+
368+ interface rsqrt
369+ attributes(device) real (4 ) function rsqrtf(x) bind(c,name= ' __nv_rsqrtf' )
370+ real (4 ), value :: x
371+ end function
372+ attributes(device) real (8 ) function rsqrt(x) bind(c,name= ' __nv_rsqrt' )
373+ real (8 ), value :: x
374+ end function
375+ end interface
376+ public :: rsqrt
377+
378+ interface signbit
379+ attributes(device) integer (4 ) function signbitf(x) bind(c,name= ' __nv_signbitf' )
380+ real (4 ), value :: x
381+ end function
382+ attributes(device) integer (4 ) function signbit(x) bind(c,name= ' __nv_signbitd' )
383+ real (8 ), value :: x
384+ end function
385+ end interface
386+ public :: signbit
387+
388+ interface sincos
389+ attributes(device) subroutine sincosf (x , y , z ) bind(c,name= ' __nv_sincosf' )
390+ real (4 ), value :: x
391+ real (4 ), device :: y
392+ real (4 ), device :: z
393+ end subroutine
394+ attributes(device) subroutine sincos (x , y , z ) bind(c,name= ' __nv_sincos' )
395+ real (8 ), value :: x
396+ real (8 ), device :: y
397+ real (8 ), device :: z
398+ end subroutine
399+ end interface
400+ public :: sincos
401+
402+ interface sincospi
403+ attributes(device) subroutine sincospif (x , y , z ) bind(c,name= ' __nv_sincospif' )
404+ real (4 ), value :: x
405+ real (4 ), device :: y
406+ real (4 ), device :: z
407+ end subroutine
408+ attributes(device) subroutine sincospi (x , y , z ) bind(c,name= ' __nv_sincospi' )
409+ real (8 ), value :: x
410+ real (8 ), device :: y
411+ real (8 ), device :: z
412+ end subroutine
413+ end interface
414+ public :: sincospi
415+
416+ interface mulhi
417+ attributes(device) integer function __mulhi(i,j) bind(c,name= ' __nv_mulhi' )
418+ ! dir$ ignore_tkr (d) i, (d) j
419+ integer , value :: i,j
420+ end function
421+ end interface
422+ public :: mulhi
423+
424+ interface umulhi
425+ attributes(device) integer function __umulhi(i,j) bind(c,name= ' __nv_umulhi' )
426+ ! dir$ ignore_tkr (d) i, (d) j
427+ integer , value :: i,j
428+ end function
429+ end interface
430+ public :: umulhi
431+
432+ interface mul64hi
433+ attributes(device) integer (8 ) function __mul64hi(i,j) bind(c,name= ' __nv_mul64hi' )
434+ ! dir$ ignore_tkr (d) i, (d) j
435+ integer (8 ), value :: i,j
436+ end function
437+ end interface
438+ public :: mul64hi
439+
440+ interface umul64hi
441+ attributes(device) integer (8 ) function __umul64hi(i,j) bind(c,name= ' __nv_umul64hi' )
442+ ! dir$ ignore_tkr (d) i, (d) j
443+ integer (8 ), value :: i,j
444+ end function
445+ end interface
446+ public :: umul64hi
447+
448+
96449 ! Atomic Operations
97450
98451 interface atomicadd
0 commit comments