diff options
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/LoopUtils.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Utils/LoopUtils.cpp b/llvm/lib/Transforms/Utils/LoopUtils.cpp index 2d830f3..843364e 100644 --- a/llvm/lib/Transforms/Utils/LoopUtils.cpp +++ b/llvm/lib/Transforms/Utils/LoopUtils.cpp @@ -956,6 +956,21 @@ constexpr Intrinsic::ID llvm::getReductionIntrinsicID(RecurKind RK) { } } +Intrinsic::ID llvm::getMinMaxReductionIntrinsicID(Intrinsic::ID IID) { + switch (IID) { + default: + llvm_unreachable("Unexpected intrinsic id"); + case Intrinsic::umin: + return Intrinsic::vector_reduce_umin; + case Intrinsic::umax: + return Intrinsic::vector_reduce_umax; + case Intrinsic::smin: + return Intrinsic::vector_reduce_smin; + case Intrinsic::smax: + return Intrinsic::vector_reduce_smax; + } +} + // This is the inverse to getReductionForBinop unsigned llvm::getArithmeticReductionInstruction(Intrinsic::ID RdxID) { switch (RdxID) { |