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 )
5656 *------------------------------------------------------------------------*/
5757 uA .f = a ;
5858 uiA = uA .ui ;
59+
5960 sign = signF8UI ( uiA );
6061 exp = expF8UI ( uiA );
6162 frac = fracF8UI ( uiA );
6263 /*------------------------------------------------------------------------
6364 *------------------------------------------------------------------------*/
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+ }
7190 }
7291 /*------------------------------------------------------------------------
7392 *------------------------------------------------------------------------*/
You can’t perform that action at this time.
0 commit comments