@@ -431,6 +431,351 @@ attributes(device) real(8) function sinpi(x) bind(c,name='__nv_sinpi')
431
431
end function
432
432
end interface
433
433
434
+ interface __float2half_rn
435
+ attributes(device) real (2 ) function __float2half_rn(r) bind(c)
436
+ ! dir$ ignore_tkr (d) r
437
+ real , value :: r
438
+ end function
439
+ end interface
440
+
441
+ interface __half2float
442
+ attributes(device) real function __half2float(i) bind(c)
443
+ ! dir$ ignore_tkr (d) i
444
+ real (2 ), value :: i
445
+ end function
446
+ end interface
447
+
448
+ interface __double2int_rn
449
+ attributes(device) integer function __double2int_rn(r) bind(c)
450
+ ! dir$ ignore_tkr (d) r
451
+ double precision , value :: r
452
+ end function
453
+ end interface
454
+
455
+ interface __double2int_rz
456
+ attributes(device) integer function __double2int_rz(r) bind(c)
457
+ ! dir$ ignore_tkr (d) r
458
+ double precision , value :: r
459
+ end function
460
+ end interface
461
+
462
+ interface __double2int_ru
463
+ attributes(device) integer function __double2int_ru(r) bind(c)
464
+ ! dir$ ignore_tkr (d) r
465
+ double precision , value :: r
466
+ end function
467
+ end interface
468
+
469
+ interface __double2int_rd
470
+ attributes(device) integer function __double2int_rd(r) bind(c)
471
+ ! dir$ ignore_tkr (d) r
472
+ double precision , value :: r
473
+ end function
474
+ end interface
475
+
476
+ interface __double2uint_rn
477
+ attributes(device) integer function __double2uint_rn(r) bind(c)
478
+ ! dir$ ignore_tkr (d) r
479
+ double precision , value :: r
480
+ end function
481
+ end interface
482
+
483
+ interface __double2uint_rz
484
+ attributes(device) integer function __double2uint_rz(r) bind(c)
485
+ ! dir$ ignore_tkr (d) r
486
+ double precision , value :: r
487
+ end function
488
+ end interface
489
+
490
+ interface __double2uint_ru
491
+ attributes(device) integer function __double2uint_ru(r) bind(c)
492
+ ! dir$ ignore_tkr (d) r
493
+ double precision , value :: r
494
+ end function
495
+ end interface
496
+
497
+ interface __double2uint_rd
498
+ attributes(device) integer function __double2uint_rd(r) bind(c)
499
+ ! dir$ ignore_tkr (d) r
500
+ double precision , value :: r
501
+ end function
502
+ end interface
503
+
504
+ interface __double2float_rn
505
+ attributes(device) real function __double2float_rn(r) bind(c)
506
+ ! dir$ ignore_tkr (d) r
507
+ double precision , value :: r
508
+ end function
509
+ end interface
510
+
511
+ interface __double2float_rz
512
+ attributes(device) real function __double2float_rz(r) bind(c)
513
+ ! dir$ ignore_tkr (d) r
514
+ double precision , value :: r
515
+ end function
516
+ end interface
517
+
518
+ interface __double2float_ru
519
+ attributes(device) real function __double2float_ru(r) bind(c)
520
+ ! dir$ ignore_tkr (d) r
521
+ double precision , value :: r
522
+ end function
523
+ end interface
524
+
525
+ interface __double2float_rd
526
+ attributes(device) real function __double2float_rd(r) bind(c)
527
+ ! dir$ ignore_tkr (d) r
528
+ double precision , value :: r
529
+ end function
530
+ end interface
531
+
532
+ interface __double2loint
533
+ attributes(device) integer function __double2loint(r) bind(c)
534
+ ! dir$ ignore_tkr (d) r
535
+ double precision , value :: r
536
+ end function
537
+ end interface
538
+
539
+ interface __double2hiint
540
+ attributes(device) integer function __double2hiint(r) bind(c)
541
+ ! dir$ ignore_tkr (d) r
542
+ double precision , value :: r
543
+ end function
544
+ end interface
545
+
546
+ interface __hiloint2double
547
+ attributes(device) double precision function __hiloint2double(i, j) bind(c)
548
+ ! dir$ ignore_tkr (d) i, (d) j
549
+ integer , value :: i, j
550
+ end function
551
+ end interface
552
+
553
+ interface __int2double_rn
554
+ attributes(device) double precision function __int2double_rn(i) bind(c)
555
+ ! dir$ ignore_tkr (d) i
556
+ integer , value :: i
557
+ end function
558
+ end interface
559
+
560
+ interface __uint2double_rn
561
+ attributes(device) double precision function __uint2double_rn(i) bind(c)
562
+ ! dir$ ignore_tkr (d) i
563
+ integer , value :: i
564
+ end function
565
+ end interface
566
+
567
+ interface __double2ll_rn
568
+ attributes(device) integer (8 ) function __double2ll_rn(r) bind(c)
569
+ ! dir$ ignore_tkr (d) r
570
+ double precision , value :: r
571
+ end function
572
+ end interface
573
+
574
+ interface __double2ll_rz
575
+ attributes(device) integer (8 ) function __double2ll_rz(r) bind(c)
576
+ ! dir$ ignore_tkr (d) r
577
+ double precision , value :: r
578
+ end function
579
+ end interface
580
+
581
+ interface __double2ll_ru
582
+ attributes(device) integer (8 ) function __double2ll_ru(r) bind(c)
583
+ ! dir$ ignore_tkr (d) r
584
+ double precision , value :: r
585
+ end function
586
+ end interface
587
+
588
+ interface __double2ll_rd
589
+ attributes(device) integer (8 ) function __double2ll_rd(r) bind(c)
590
+ ! dir$ ignore_tkr (d) r
591
+ double precision , value :: r
592
+ end function
593
+ end interface
594
+
595
+ interface __double2ull_rn
596
+ attributes(device) integer (8 ) function __double2ull_rn(r) bind(c)
597
+ ! dir$ ignore_tkr (d) r
598
+ double precision , value :: r
599
+ end function
600
+ end interface
601
+
602
+ interface __double2ull_rz
603
+ attributes(device) integer (8 ) function __double2ull_rz(r) bind(c)
604
+ ! dir$ ignore_tkr (d) r
605
+ double precision , value :: r
606
+ end function
607
+ end interface
608
+
609
+ interface __double2ull_ru
610
+ attributes(device) integer (8 ) function __double2ull_ru(r) bind(c)
611
+ ! dir$ ignore_tkr (d) r
612
+ double precision , value :: r
613
+ end function
614
+ end interface
615
+
616
+ interface __double2ull_rd
617
+ attributes(device) integer (8 ) function __double2ull_rd(r) bind(c)
618
+ ! dir$ ignore_tkr (d) r
619
+ double precision , value :: r
620
+ end function
621
+ end interface
622
+
623
+ interface __ll2double_rn
624
+ attributes(device) double precision function __ll2double_rn(i) bind(c)
625
+ ! dir$ ignore_tkr (d) i
626
+ integer (8 ), value :: i
627
+ end function
628
+ end interface
629
+
630
+ interface __ll2double_rz
631
+ attributes(device) double precision function __ll2double_rz(i) bind(c)
632
+ ! dir$ ignore_tkr (d) i
633
+ integer (8 ), value :: i
634
+ end function
635
+ end interface
636
+
637
+ interface __ll2double_ru
638
+ attributes(device) double precision function __ll2double_ru(i) bind(c)
639
+ ! dir$ ignore_tkr (d) i
640
+ integer (8 ), value :: i
641
+ end function
642
+ end interface
643
+
644
+ interface __ll2double_rd
645
+ attributes(device) double precision function __ll2double_rd(i) bind(c)
646
+ ! dir$ ignore_tkr (d) i
647
+ integer (8 ), value :: i
648
+ end function
649
+ end interface
650
+
651
+ interface __ull2double_rn
652
+ attributes(device) double precision function __ull2double_rn(i) bind(c)
653
+ ! dir$ ignore_tkr (d) i
654
+ integer (8 ), value :: i
655
+ end function
656
+ end interface
657
+
658
+ interface __ull2double_rz
659
+ attributes(device) double precision function __ull2double_rz(i) bind(c)
660
+ ! dir$ ignore_tkr (d) i
661
+ integer (8 ), value :: i
662
+ end function
663
+ end interface
664
+
665
+ interface __ull2double_ru
666
+ attributes(device) double precision function __ull2double_ru(i) bind(c)
667
+ ! dir$ ignore_tkr (d) i
668
+ integer (8 ), value :: i
669
+ end function
670
+ end interface
671
+
672
+ interface __ull2double_rd
673
+ attributes(device) double precision function __ull2double_rd(i) bind(c)
674
+ ! dir$ ignore_tkr (d) i
675
+ integer (8 ), value :: i
676
+ end function
677
+ end interface
678
+
679
+ interface __mul24
680
+ attributes(device) integer function __mul24(i,j) bind(c)
681
+ ! dir$ ignore_tkr (d) i, (d) j
682
+ integer , value :: i,j
683
+ end function
684
+ end interface
685
+
686
+ interface __umul24
687
+ attributes(device) integer function __umul24(i,j) bind(c)
688
+ ! dir$ ignore_tkr (d) i, (d) j
689
+ integer , value :: i,j
690
+ end function
691
+ end interface
692
+
693
+ interface __dsqrt_ru
694
+ attributes(device) double precision function __dsqrt_ru(x) bind(c)
695
+ ! dir$ ignore_tkr (d) x
696
+ double precision , value :: x
697
+ end function
698
+ end interface
699
+
700
+ interface __dsqrt_rd
701
+ attributes(device) double precision function __dsqrt_rd(x) bind(c)
702
+ ! dir$ ignore_tkr (d) x
703
+ double precision , value :: x
704
+ end function
705
+ end interface
706
+
707
+ interface __ddiv_rn
708
+ attributes(device) double precision function __ddiv_rn(x,y) bind(c)
709
+ ! dir$ ignore_tkr (d) x, (d) y
710
+ double precision , value :: x, y
711
+ end function
712
+ end interface
713
+
714
+ interface __ddiv_rz
715
+ attributes(device) double precision function __ddiv_rz(x,y) bind(c)
716
+ ! dir$ ignore_tkr (d) x, (d) y
717
+ double precision , value :: x, y
718
+ end function
719
+ end interface
720
+
721
+ interface __ddiv_ru
722
+ attributes(device) double precision function __ddiv_ru(x,y) bind(c)
723
+ ! dir$ ignore_tkr (d) x, (d) y
724
+ double precision , value :: x, y
725
+ end function
726
+ end interface
727
+
728
+ interface __ddiv_rd
729
+ attributes(device) double precision function __ddiv_rd(x,y) bind(c)
730
+ ! dir$ ignore_tkr (d) x, (d) y
731
+ double precision , value :: x, y
732
+ end function
733
+ end interface
734
+
735
+ interface __clz
736
+ attributes(device) integer function __clz(i) bind(c)
737
+ ! dir$ ignore_tkr (d) i
738
+ integer , value :: i
739
+ end function
740
+ attributes(device) integer function __clzll(i) bind(c)
741
+ ! dir$ ignore_tkr (d) i
742
+ integer (8 ), value :: i
743
+ end function
744
+ end interface
745
+
746
+ interface __ffs
747
+ attributes(device) integer function __ffs(i) bind(c)
748
+ ! dir$ ignore_tkr (d) i
749
+ integer , value :: i
750
+ end function
751
+ attributes(device) integer function __ffsll(i) bind(c)
752
+ ! dir$ ignore_tkr (d) i
753
+ integer (8 ), value :: i
754
+ end function
755
+ end interface
756
+
757
+ interface __popc
758
+ attributes(device) integer function __popc(i) bind(c)
759
+ ! dir$ ignore_tkr (d) i
760
+ integer , value :: i
761
+ end function
762
+ attributes(device) integer function __popcll(i) bind(c)
763
+ ! dir$ ignore_tkr (d) i
764
+ integer (8 ), value :: i
765
+ end function
766
+ end interface
767
+
768
+ interface __brev
769
+ attributes(device) integer function __brev(i) bind(c)
770
+ ! dir$ ignore_tkr (d) i
771
+ integer , value :: i
772
+ end function
773
+ attributes(device) integer (8 ) function __brevll(i) bind(c)
774
+ ! dir$ ignore_tkr (d) i
775
+ integer (8 ), value :: i
776
+ end function
777
+ end interface
778
+
434
779
! Atomic Operations
435
780
436
781
interface atomicadd
0 commit comments