asm.hpp: Fix mul_saturate
This commit is contained in:
+1
-2
@@ -401,11 +401,10 @@ namespace utils
|
|||||||
return minuend < subtrahend ? T{0} : static_cast<T>(minuend - subtrahend);
|
return minuend < subtrahend ? T{0} : static_cast<T>(minuend - subtrahend);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <UnsignedInt T>
|
template <UnsignedInt T>
|
||||||
constexpr T mul_saturate(T factor1, T factor2)
|
constexpr T mul_saturate(T factor1, T factor2)
|
||||||
{
|
{
|
||||||
return T{umax} / factor1 < factor2 ? T{umax} : static_cast<T>(factor1 * factor2);
|
return factor1 > 0 && T{umax} / factor1 < factor2 ? T{umax} : static_cast<T>(factor1 * factor2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hack. Pointer cast util to workaround UB. Use with extreme care.
|
// Hack. Pointer cast util to workaround UB. Use with extreme care.
|
||||||
|
|||||||
Reference in New Issue
Block a user