[all-commits] [llvm/llvm-project] aa754f: [IR] llvm::createMinMaxOp - create integer min/max...
Simon Pilgrim via All-commits
all-commits at lists.llvm.org
Thu Apr 13 08:41:15 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: aa754f7e0fddcc6c4d6737c71baf357825b09a3e
https://github.com/llvm/llvm-project/commit/aa754f7e0fddcc6c4d6737c71baf357825b09a3e
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2023-04-13 (Thu, 13 Apr 2023)
Changed paths:
M llvm/include/llvm/Transforms/Utils/LoopUtils.h
M llvm/lib/Transforms/Utils/LoopUtils.cpp
M llvm/test/CodeGen/Generic/expand-experimental-reductions.ll
M llvm/test/Transforms/LoopVectorize/AArch64/scalable-reductions.ll
M llvm/test/Transforms/LoopVectorize/RISCV/scalable-reductions.ll
M llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
M llvm/test/Transforms/PhaseOrdering/X86/vector-reductions-expanded.ll
Log Message:
-----------
[IR] llvm::createMinMaxOp - create integer min/max intrinsics instead of icmp/sel
Based off D148215, when expanding a min/max reduction we should be creating min/max intrinsics directly instead of relying on instcombine to fold them back together.
This patch handles integer min/max cases. Hopefully we can add floating point support soon (at least for fastmath/nnan cases) - but we're missing some of the plumbing to pass the correct FMF to the intrinsic at the moment.
Differential Revision: https://reviews.llvm.org/D148221
More information about the All-commits
mailing list