LLVM has three min/max operations on floats (minnum, minimum, minimumnm), whose semantics have finally been clarified in #172012. However, only two of those have corresponding vector.reduce variants -- there is none that corresponds to minimumnm.
For Rust's (unstable) portable SIMD APIs, we'd like to have reduce_min/reduce_max operations, and they should be consistent with the usual scalar semantics for min/max, which for Rust means minimumnum (or more specifically, minimumnum nsz) -- that's exactly the missing intrinsic.
LLVM has three min/max operations on floats (
minnum,minimum,minimumnm), whose semantics have finally been clarified in #172012. However, only two of those have correspondingvector.reducevariants -- there is none that corresponds tominimumnm.For Rust's (unstable) portable SIMD APIs, we'd like to have
reduce_min/reduce_maxoperations, and they should be consistent with the usual scalar semantics for min/max, which for Rust meansminimumnum(or more specifically,minimumnum nsz) -- that's exactly the missing intrinsic.