[xcc] minor performance tweaks
[riscv-isa-sim.git] / softfloat_riscv / s_f32UIToCommonNaN.c
1
2 #include <stdint.h>
3 #include "platform.h"
4 #include "specialize.h"
5 #include "softfloat.h"
6
7 /*----------------------------------------------------------------------------
8 | Returns the result of converting the single-precision floating-point NaN
9 | `a' to the canonical NaN format. If `a' is a signaling NaN, the invalid
10 | exception is raised.
11 *----------------------------------------------------------------------------*/
12 struct commonNaN softfloat_f32UIToCommonNaN( uint_fast32_t uiA )
13 {
14 struct commonNaN z;
15
16 if ( softfloat_isSigNaNF32UI( uiA ) ) {
17 softfloat_raiseFlags( softfloat_flag_invalid );
18 }
19 z.sign = uiA>>31;
20 z.v64 = (uint_fast64_t) 0x7FFFF <<41;
21 z.v0 = 0;
22 return z;
23
24 }
25