/* Default C language implementation of a 16x32->32 multiply. This function may be replaced by a platform-specific version for speed. */
INLINE OI_INT32 default_mul_16s_32s_hi(OI_INT16 u, OI_INT32 v)
/* Default C language implementation of a 16x32->32 multiply. This function may be replaced by a platform-specific version for speed. */
INLINE OI_INT32 default_mul_16s_32s_hi(OI_INT16 u, OI_INT32 v)
{
    OI_UINT16 v0;
    OI_INT16 v1;
    OI_INT32 w, x;
    v0 = (OI_UINT16)(v & 0xffff);
    v1 = (OI_INT16)(v >> 16);
    w = v1 * u;
    x = u * v0;
    return w + (x >> 16);
}