[all-commits] [llvm/llvm-project] ec146c: [LV] Add support for minimum/maximum intrinsics

annamthomas via All-commits all-commits at lists.llvm.org
Tue Jun 20 10:17:42 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ec146cb7c0b4a162ee73463e6c7bb306b99e013b
      https://github.com/llvm/llvm-project/commit/ec146cb7c0b4a162ee73463e6c7bb306b99e013b
  Author: Anna Thomas <anna at azul.com>
  Date:   2023-06-20 (Tue, 20 Jun 2023)

  Changed paths:
    M llvm/include/llvm/Analysis/IVDescriptors.h
    M llvm/lib/Analysis/IVDescriptors.cpp
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/test/Transforms/LoopVectorize/minmax_reduction.ll

  Log Message:
  -----------
  [LV] Add support for minimum/maximum intrinsics

{mini|maxi}mum intrinsics are different from {min|max}num intrinsics in
the propagation of NaN and signed zero. Also, the minnum/maxnum
intrinsics require the presence of nsz flags to be valid reductions in
vectorizer. In this regard, we introduce a new recurrence kind and also
add support for identifying reduction patterns using these intrinsics.

The reduction intrinsics and lowering was introduced here: 26bfbec5d2.

There are tests added which show how this interacts across chains of
min/max patterns.

Differential Revision: https://reviews.llvm.org/D151482




More information about the All-commits mailing list