aboutsummaryrefslogtreecommitdiff
path: root/src/armnnUtils/FloatingPointConverter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnnUtils/FloatingPointConverter.cpp')
-rw-r--r--src/armnnUtils/FloatingPointConverter.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/armnnUtils/FloatingPointConverter.cpp b/src/armnnUtils/FloatingPointConverter.cpp
index 7a684f1eb0..024b74eea4 100644
--- a/src/armnnUtils/FloatingPointConverter.cpp
+++ b/src/armnnUtils/FloatingPointConverter.cpp
@@ -25,6 +25,11 @@ void FloatingPointConverter::ConvertFloat32To16(const float* srcFloat32Buffer,
for (size_t i = 0; i < numElements; i++)
{
pHalf[i] = armnn::Half(srcFloat32Buffer[i]);
+ if (isinf(pHalf[i]))
+ {
+ // If the value of converted Fp16 is infinity, round to the closest finite Fp16 value.
+ pHalf[i] = copysign(std::numeric_limits<armnn::Half>::max(), pHalf[i]);
+ }
}
}