This patch is part of a larger initiative aimed at fixing floating-point max and min operations in MLIR: https://discourse.llvm.org/t/rfc-fix-floating-point-max-and-min-operations-in-mlir/72671.
Within LLVM, there are no masked reduction counterparts for vector reductions such as fmaximum and fminimum.
More information can be found here: https://github.com/llvm/llvm-project/issues/64940#issuecomment-1690694156.
To address this issue in MLIR, where we need to generate appropriate lowerings for these cases, we employ regular non-masked intrinsics.
However, we modify the input vector using the arith.select operation to effectively deactivate undesired elements using a "neutral mask value".
The neutral mask value is the smallest possible value for the fmaximum reduction and the largest possible value for the fminimum reduction.
Depends on D158618
nit: Finish comment with '.' per coding standards. Here and a couple of times below.