File tree Expand file tree Collapse file tree 1 file changed +26
-7
lines changed Expand file tree Collapse file tree 1 file changed +26
-7
lines changed Original file line number Diff line number Diff line change @@ -56,18 +56,37 @@ float16_t f8_to_f16( float8_t a )
56
56
*------------------------------------------------------------------------*/
57
57
uA .f = a ;
58
58
uiA = uA .ui ;
59
+
59
60
sign = signF8UI ( uiA );
60
61
exp = expF8UI ( uiA );
61
62
frac = fracF8UI ( uiA );
62
63
/*------------------------------------------------------------------------
63
64
*------------------------------------------------------------------------*/
64
- if ( isNaNF8UI (uiA ) ) {
65
- uiZ = defaultNaNF16UI ;
66
- goto uiZ ;
67
- }
68
- if ( isInfF8UI (uiA ) ) {
69
- uiZ = packToF16UI ( sign , 0x1F , 0 );
70
- goto uiZ ;
65
+ switch ( softfloat_fp8Mode ) {
66
+ case softfloat_fp8_e4m3 :
67
+ // No Infinity in E4M3 mode.
68
+ if ( isE4M3NaNF8UI ( uiA ) ) {
69
+ uiZ = defaultNaNF16UI ;
70
+ goto uiZ ;
71
+ }
72
+ case softfloat_fp8_e5m2 :
73
+ if ( isE5M2NaNF8UI ( uiA ) ) {
74
+ uiZ = defaultNaNF16UI ;
75
+ goto uiZ ;
76
+ }
77
+ if ( isE5M2InfF8UI ( uiA ) ) {
78
+ uiZ = packToF16UI ( sign , 0x1F , 0 );
79
+ goto uiZ ;
80
+ }
81
+ default :
82
+ if ( isNaNF8UI (uiA ) ) {
83
+ uiZ = defaultNaNF16UI ;
84
+ goto uiZ ;
85
+ }
86
+ if ( isInfF8UI (uiA ) ) {
87
+ uiZ = packToF16UI ( sign , 0x1F , 0 );
88
+ goto uiZ ;
89
+ }
71
90
}
72
91
/*------------------------------------------------------------------------
73
92
*------------------------------------------------------------------------*/
You can’t perform that action at this time.
0 commit comments