45{
47 struct uint128 sig128;
48 union ui128_f128 uZ;
50 struct uint128_extra sig128Extra;
51
52 if ( ! sig64 ) {
53 exp -= 64;
54 sig64 = sig0;
55 sig0 = 0;
56 }
58 exp -= shiftDist;
59 if ( 0 <= shiftDist ) {
60 if ( shiftDist ) {
62 sig64 = sig128.v64;
63 sig0 = sig128.v0;
64 }
66 uZ.ui.v64 = packToF128UI64( sign, sig64 | sig0 ? exp : 0, sig64 );
67 uZ.ui.v0 = sig0;
68 return uZ.f;
69 }
70 sigExtra = 0;
71 } else {
72 sig128Extra =
74 sig64 = sig128Extra.v.v64;
75 sig0 = sig128Extra.v.v0;
76 sigExtra = sig128Extra.extra;
77 }
79
80}
#define softfloat_countLeadingZeros64
float128_t softfloat_roundPackToF128(bool sign, int_fast32_t exp, uint_fast64_t sig64, uint_fast64_t sig0, uint_fast64_t sigExtra)
struct uint128 softfloat_shortShiftLeft128(uint64_t a64, uint64_t a0, uint_fast8_t dist)