/* Public domain. */typedefintSItype__attribute__((mode(SI)));typedefunsignedintUSItype__attribute__((mode(SI)));typedeffloatSFtype__attribute__((mode(SF)));SFtype__floatunsisf(USItypeu){SItypes=(SItype)u;if(s<0){/* As in expand_float, compute (u & 1) | (u >> 1) to ensure correct rounding if a nonzero bit is shifted out. */return(SFtype)2.0*(SFtype)(SItype)((u&1)|(u>>1));}elsereturn(SFtype)s;}