mirror of
https://github.com/pgvector/pgvector.git
synced 2026-07-12 15:46:54 +08:00
Improved performance of HalfToFloat4
This commit is contained in:
@@ -130,7 +130,7 @@ HalfToFloat4(half num)
|
|||||||
/* Sign */
|
/* Sign */
|
||||||
result = (bin & 0x8000) << 16;
|
result = (bin & 0x8000) << 16;
|
||||||
|
|
||||||
if (exponent == 31)
|
if (unlikely(exponent == 31))
|
||||||
{
|
{
|
||||||
if (mantissa == 0)
|
if (mantissa == 0)
|
||||||
{
|
{
|
||||||
@@ -141,10 +141,9 @@ HalfToFloat4(half num)
|
|||||||
{
|
{
|
||||||
/* NaN */
|
/* NaN */
|
||||||
result |= 0x7FC00000;
|
result |= 0x7FC00000;
|
||||||
result |= mantissa << 13;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (exponent == 0)
|
else if (unlikely(exponent == 0))
|
||||||
{
|
{
|
||||||
/* Subnormal */
|
/* Subnormal */
|
||||||
if (mantissa != 0)
|
if (mantissa != 0)
|
||||||
@@ -164,16 +163,16 @@ HalfToFloat4(half num)
|
|||||||
}
|
}
|
||||||
|
|
||||||
result |= (exponent + 127) << 23;
|
result |= (exponent + 127) << 23;
|
||||||
result |= mantissa << 13;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Normal */
|
/* Normal */
|
||||||
result |= (exponent - 15 + 127) << 23;
|
result |= (exponent - 15 + 127) << 23;
|
||||||
result |= mantissa << 13;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
result |= mantissa << 13;
|
||||||
|
|
||||||
swapfloat.i = result;
|
swapfloat.i = result;
|
||||||
return swapfloat.f;
|
return swapfloat.f;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user