[PATCH] D151482: [LV] Add support for minimum/maximum intrinsics

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 20 01:11:49 PDT 2023


dmgreen added a comment.

Thanks. I think this LGTM, with some Nits



================
Comment at: llvm/include/llvm/Analysis/IVDescriptors.h:51
+  FMinimum,   ///< FP min with llvm.minimum semantics
+  FMaximum,   ///< FP max with llvm.maximum semantics 
   FMulAdd,    ///< Fused multiply-add of floats (a * b + c).
----------------
Nit: Remove extra whitespace


================
Comment at: llvm/lib/Transforms/Utils/LoopUtils.cpp:936
+  case RecurKind::FMinimum:
+    return CmpInst::FCMP_OLT;
+  case RecurKind::FMaximum:
----------------
If this is unused, could it be removed? I think it goes via getMinMaxReductionIntrinsicOp?

I'm not sure if the expansion to cmp+select would be valid without nnan and nsz fmf flags, creating the intrinsic like you have it sounds much better.


================
Comment at: llvm/test/Transforms/LoopVectorize/minmax_reduction.ll:1
-; RUN: opt -S -passes=loop-vectorize,dce -force-vector-width=2 -force-vector-interleave=1  < %s | FileCheck %s
+  ; RUN: opt -S -passes=loop-vectorize,dce -force-vector-width=2 -force-vector-interleave=2  < %s | FileCheck %s
 
----------------
Nit: Whitespace


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