int32 float32_to_int32( float32 a )
int32 float32_to_int32( struct roundingData *roundData, float32 a )
int32 float32_to_int32( float32 a ){    flag aSign;    int16 aExp, shiftCount;    bits32 aSig;    bits64 zSig;    aSig = extractFloat32Frac( a );    aExp = extractFloat32Exp( a );    aSign = extractFloat32Sign( a );    if ( ( aExp == 0x7FF ) && aSig ) aSign = 0;    if ( aExp ) aSig |= 0x00800000;    shiftCount = 0xAF - aExp;    zSig = aSig;    zSig <<= 32;    if ( 0 < shiftCount ) shift64RightJamming( zSig, shiftCount, &zSig );    return roundAndPackInt32( aSign, zSig );}