[PATCH] D151482: [LV] Add support for minimum/maximum intrinsics
Anna Thomas via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 19 08:27:36 PDT 2023
anna added a comment.
Herald added a subscriber: artagnon.
Thanks @dmgreen. Will add the test and update the missing intrinsics in the `getMinMaxReductionPredicate ` API.
================
Comment at: llvm/lib/Analysis/IVDescriptors.cpp:808
return isSelectCmpPattern(L, OrigPhi, I, Prev);
+ auto HasRequiredFMF = [&]() {
+ if (FuncFMF.noNaNs() && FuncFMF.noSignedZeros())
----------------
dmgreen wrote:
> I'm not sure that minnum would require nnan and nsz to convert to a vector.reduce.fmin intrinsic. That might come from it matching select/fcmp, and sounds like a separate issue though.
You might be right here. NaN is propagated with a different logic (compared to minimum) and signed zero is ignored. However, note that the recurKind used by select/fcmp and the fmin intrinsic is the same.
However, I've left the code as it was before for minnum/maxnum, so this can be addressed separately (along with tests added to make sure reduce.fmin lowers correctly without nnan flags?)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D151482/new/
https://reviews.llvm.org/D151482
More information about the llvm-commits
mailing list