@@ -468,6 +468,7 @@ macro_rules! implicit {
468468implicit ! ( c64, c32 => c64) ;
469469implicit ! ( c64, f64 => c64) ;
470470implicit ! ( c64, f32 => c64) ;
471+ implicit ! ( c64, f16 => c64) ;
471472implicit ! ( c64, i64 => c64) ;
472473implicit ! ( c64, u64 => c64) ;
473474implicit ! ( c64, i32 => c64) ;
@@ -481,6 +482,7 @@ implicit!(c64, u8 => c64);
481482implicit ! ( c32, c64 => c64) ;
482483implicit ! ( c32, f64 => c64) ;
483484implicit ! ( c32, f32 => c32) ;
485+ implicit ! ( c32, f16 => c32) ;
484486implicit ! ( c32, i64 => c32) ;
485487implicit ! ( c32, u64 => c32) ;
486488implicit ! ( c32, i32 => c32) ;
@@ -494,6 +496,7 @@ implicit!(c32, u8 => c32);
494496implicit ! ( f64 , c64 => c64) ;
495497implicit ! ( f64 , c32 => c64) ;
496498implicit ! ( f64 , f32 => f64 ) ;
499+ implicit ! ( f64 , f16 => f64 ) ;
497500implicit ! ( f64 , i64 => f64 ) ;
498501implicit ! ( f64 , u64 => f64 ) ;
499502implicit ! ( f64 , i32 => f64 ) ;
@@ -507,6 +510,7 @@ implicit!(f64, u8 => f64);
507510implicit ! ( f32 , c64 => c64) ;
508511implicit ! ( f32 , c32 => c32) ;
509512implicit ! ( f32 , f64 => f64 ) ;
513+ implicit ! ( f32 , f16 => f32 ) ;
510514implicit ! ( f32 , i64 => f32 ) ;
511515implicit ! ( f32 , u64 => f32 ) ;
512516implicit ! ( f32 , i32 => f32 ) ;
@@ -516,11 +520,26 @@ implicit!(f32, u16 => f32);
516520implicit ! ( f32 , bool => f32 ) ;
517521implicit ! ( f32 , u8 => f32 ) ;
518522
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+
519537//LHS is 64-bit signed integer
520538implicit ! ( i64 , c64 => c64) ;
521539implicit ! ( i64 , c32 => c32) ;
522540implicit ! ( i64 , f64 => f64 ) ;
523541implicit ! ( i64 , f32 => f32 ) ;
542+ implicit ! ( i64 , f16 => f16) ;
524543implicit ! ( i64 , u64 => u64 ) ;
525544implicit ! ( i64 , i32 => i64 ) ;
526545implicit ! ( i64 , u32 => i64 ) ;
@@ -534,6 +553,7 @@ implicit!(u64, c64 => c64);
534553implicit ! ( u64 , c32 => c32) ;
535554implicit ! ( u64 , f64 => f64 ) ;
536555implicit ! ( u64 , f32 => f32 ) ;
556+ implicit ! ( u64 , f16 => f16) ;
537557implicit ! ( u64 , i64 => u64 ) ;
538558implicit ! ( u64 , i32 => u64 ) ;
539559implicit ! ( u64 , u32 => u64 ) ;
@@ -547,6 +567,7 @@ implicit!(i32, c64 => c64);
547567implicit ! ( i32 , c32 => c32) ;
548568implicit ! ( i32 , f64 => f64 ) ;
549569implicit ! ( i32 , f32 => f32 ) ;
570+ implicit ! ( i32 , f16 => f16) ;
550571implicit ! ( i32 , i64 => i64 ) ;
551572implicit ! ( i32 , u64 => u64 ) ;
552573implicit ! ( i32 , u32 => u32 ) ;
@@ -560,6 +581,7 @@ implicit!(u32, c64 => c64);
560581implicit ! ( u32 , c32 => c32) ;
561582implicit ! ( u32 , f64 => f64 ) ;
562583implicit ! ( u32 , f32 => f32 ) ;
584+ implicit ! ( u32 , f16 => f16) ;
563585implicit ! ( u32 , i64 => i64 ) ;
564586implicit ! ( u32 , u64 => u64 ) ;
565587implicit ! ( u32 , i32 => u32 ) ;
@@ -573,6 +595,7 @@ implicit!(i16, c64 => c64);
573595implicit ! ( i16 , c32 => c32) ;
574596implicit ! ( i16 , f64 => f64 ) ;
575597implicit ! ( i16 , f32 => f32 ) ;
598+ implicit ! ( i16 , f16 => f16) ;
576599implicit ! ( i16 , i64 => i64 ) ;
577600implicit ! ( i16 , u64 => u64 ) ;
578601implicit ! ( i16 , i32 => i32 ) ;
@@ -586,6 +609,7 @@ implicit!(u16, c64 => c64);
586609implicit ! ( u16 , c32 => c32) ;
587610implicit ! ( u16 , f64 => f64 ) ;
588611implicit ! ( u16 , f32 => f32 ) ;
612+ implicit ! ( u16 , f16 => f16) ;
589613implicit ! ( u16 , i64 => i64 ) ;
590614implicit ! ( u16 , u64 => u64 ) ;
591615implicit ! ( u16 , i32 => i32 ) ;
@@ -599,6 +623,7 @@ implicit!(u8, c64 => c64);
599623implicit ! ( u8 , c32 => c32) ;
600624implicit ! ( u8 , f64 => f64 ) ;
601625implicit ! ( u8 , f32 => f32 ) ;
626+ implicit ! ( u8 , f16 => f16) ;
602627implicit ! ( u8 , i64 => i64 ) ;
603628implicit ! ( u8 , u64 => u64 ) ;
604629implicit ! ( u8 , i32 => i32 ) ;
@@ -612,6 +637,7 @@ implicit!(bool, c64 => c64);
612637implicit ! ( bool , c32 => c32) ;
613638implicit ! ( bool , f64 => f64 ) ;
614639implicit ! ( bool , f32 => f32 ) ;
640+ implicit ! ( bool , f16 => f16) ;
615641implicit ! ( bool , i64 => i64 ) ;
616642implicit ! ( bool , u64 => u64 ) ;
617643implicit ! ( bool , i32 => i32 ) ;
0 commit comments