Only check nans on non-integral types in simd_reduce_impl.

This commit is contained in:
Joona Havukainen
2025-07-07 18:24:30 -07:00
parent 9794ec6b8e
commit c7af3016eb

View File

@@ -186,7 +186,12 @@ struct Max {
DEFINE_SIMD_REDUCE()
template <typename T>
T simd_reduce_impl(T val) {
metal::enable_if_t<metal::is_integral_v<T>, T> simd_reduce_impl(T val) {
return simd_max(val);
}
template <typename T>
metal::enable_if_t<!metal::is_integral_v<T>, T> simd_reduce_impl(T val) {
if (simd_any(val != val)) {
return static_cast<T>(NAN);
}