@@ -468,6 +468,7 @@ macro_rules! implicit {
468
468
implicit ! ( c64, c32 => c64) ;
469
469
implicit ! ( c64, f64 => c64) ;
470
470
implicit ! ( c64, f32 => c64) ;
471
+ implicit ! ( c64, f16 => c64) ;
471
472
implicit ! ( c64, i64 => c64) ;
472
473
implicit ! ( c64, u64 => c64) ;
473
474
implicit ! ( c64, i32 => c64) ;
@@ -481,6 +482,7 @@ implicit!(c64, u8 => c64);
481
482
implicit ! ( c32, c64 => c64) ;
482
483
implicit ! ( c32, f64 => c64) ;
483
484
implicit ! ( c32, f32 => c32) ;
485
+ implicit ! ( c32, f16 => c32) ;
484
486
implicit ! ( c32, i64 => c32) ;
485
487
implicit ! ( c32, u64 => c32) ;
486
488
implicit ! ( c32, i32 => c32) ;
@@ -494,6 +496,7 @@ implicit!(c32, u8 => c32);
494
496
implicit ! ( f64 , c64 => c64) ;
495
497
implicit ! ( f64 , c32 => c64) ;
496
498
implicit ! ( f64 , f32 =>f64 ) ;
499
+ implicit ! ( f64 , f16 =>f64 ) ;
497
500
implicit ! ( f64 , i64 =>f64 ) ;
498
501
implicit ! ( f64 , u64 =>f64 ) ;
499
502
implicit ! ( f64 , i32 =>f64 ) ;
@@ -507,6 +510,7 @@ implicit!(f64, u8 => f64);
507
510
implicit ! ( f32 , c64 => c64) ;
508
511
implicit ! ( f32 , c32 => c32) ;
509
512
implicit ! ( f32 , f64 =>f64 ) ;
513
+ implicit ! ( f32 , f16 =>f32 ) ;
510
514
implicit ! ( f32 , i64 =>f32 ) ;
511
515
implicit ! ( f32 , u64 =>f32 ) ;
512
516
implicit ! ( f32 , i32 =>f32 ) ;
@@ -516,11 +520,26 @@ implicit!(f32, u16 => f32);
516
520
implicit ! ( f32 , bool =>f32 ) ;
517
521
implicit ! ( f32 , u8 =>f32 ) ;
518
522
523
+ //LHS is 16-bit floating point
524
+ implicit ! ( f16, c64 => c64) ;
525
+ implicit ! ( f16, c32 => c32) ;
526
+ implicit ! ( f16, f64 =>f64 ) ;
527
+ implicit ! ( f16, f32 =>f32 ) ;
528
+ implicit ! ( f16, i64 => f16) ;
529
+ implicit ! ( f16, u64 => f16) ;
530
+ implicit ! ( f16, i32 => f16) ;
531
+ implicit ! ( f16, u32 => f16) ;
532
+ implicit ! ( f16, i16 => f16) ;
533
+ implicit ! ( f16, u16 => f16) ;
534
+ implicit ! ( f16, bool => f16) ;
535
+ implicit ! ( f16, u8 => f16) ;
536
+
519
537
//LHS is 64-bit signed integer
520
538
implicit ! ( i64 , c64 => c64) ;
521
539
implicit ! ( i64 , c32 => c32) ;
522
540
implicit ! ( i64 , f64 =>f64 ) ;
523
541
implicit ! ( i64 , f32 =>f32 ) ;
542
+ implicit ! ( i64 , f16 => f16) ;
524
543
implicit ! ( i64 , u64 =>u64 ) ;
525
544
implicit ! ( i64 , i32 =>i64 ) ;
526
545
implicit ! ( i64 , u32 =>i64 ) ;
@@ -534,6 +553,7 @@ implicit!(u64, c64 => c64);
534
553
implicit ! ( u64 , c32 => c32) ;
535
554
implicit ! ( u64 , f64 =>f64 ) ;
536
555
implicit ! ( u64 , f32 =>f32 ) ;
556
+ implicit ! ( u64 , f16 => f16) ;
537
557
implicit ! ( u64 , i64 =>u64 ) ;
538
558
implicit ! ( u64 , i32 =>u64 ) ;
539
559
implicit ! ( u64 , u32 =>u64 ) ;
@@ -547,6 +567,7 @@ implicit!(i32, c64 => c64);
547
567
implicit ! ( i32 , c32 => c32) ;
548
568
implicit ! ( i32 , f64 =>f64 ) ;
549
569
implicit ! ( i32 , f32 =>f32 ) ;
570
+ implicit ! ( i32 , f16 => f16) ;
550
571
implicit ! ( i32 , i64 =>i64 ) ;
551
572
implicit ! ( i32 , u64 =>u64 ) ;
552
573
implicit ! ( i32 , u32 =>u32 ) ;
@@ -560,6 +581,7 @@ implicit!(u32, c64 => c64);
560
581
implicit ! ( u32 , c32 => c32) ;
561
582
implicit ! ( u32 , f64 =>f64 ) ;
562
583
implicit ! ( u32 , f32 =>f32 ) ;
584
+ implicit ! ( u32 , f16 => f16) ;
563
585
implicit ! ( u32 , i64 =>i64 ) ;
564
586
implicit ! ( u32 , u64 =>u64 ) ;
565
587
implicit ! ( u32 , i32 =>u32 ) ;
@@ -573,6 +595,7 @@ implicit!(i16, c64 => c64);
573
595
implicit ! ( i16 , c32 => c32) ;
574
596
implicit ! ( i16 , f64 =>f64 ) ;
575
597
implicit ! ( i16 , f32 =>f32 ) ;
598
+ implicit ! ( i16 , f16 => f16) ;
576
599
implicit ! ( i16 , i64 =>i64 ) ;
577
600
implicit ! ( i16 , u64 =>u64 ) ;
578
601
implicit ! ( i16 , i32 =>i32 ) ;
@@ -586,6 +609,7 @@ implicit!(u16, c64 => c64);
586
609
implicit ! ( u16 , c32 => c32) ;
587
610
implicit ! ( u16 , f64 =>f64 ) ;
588
611
implicit ! ( u16 , f32 =>f32 ) ;
612
+ implicit ! ( u16 , f16 => f16) ;
589
613
implicit ! ( u16 , i64 =>i64 ) ;
590
614
implicit ! ( u16 , u64 =>u64 ) ;
591
615
implicit ! ( u16 , i32 =>i32 ) ;
@@ -599,6 +623,7 @@ implicit!(u8, c64 => c64);
599
623
implicit ! ( u8 , c32 => c32) ;
600
624
implicit ! ( u8 , f64 =>f64 ) ;
601
625
implicit ! ( u8 , f32 =>f32 ) ;
626
+ implicit ! ( u8 , f16 => f16) ;
602
627
implicit ! ( u8 , i64 =>i64 ) ;
603
628
implicit ! ( u8 , u64 =>u64 ) ;
604
629
implicit ! ( u8 , i32 =>i32 ) ;
@@ -612,6 +637,7 @@ implicit!(bool, c64 => c64);
612
637
implicit ! ( bool , c32 => c32) ;
613
638
implicit ! ( bool , f64 =>f64 ) ;
614
639
implicit ! ( bool , f32 =>f32 ) ;
640
+ implicit ! ( bool , f16 => f16) ;
615
641
implicit ! ( bool , i64 =>i64 ) ;
616
642
implicit ! ( bool , u64 =>u64 ) ;
617
643
implicit ! ( bool , i32 =>i32 ) ;