Improved performance of HalfToFloat4

This commit is contained in:
Andrew Kane
2024-04-07 13:01:58 -07:00
parent faa33c32d9
commit 33daf87fcb

View File

@@ -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