[all-commits] [llvm/llvm-project] 004c67: [LV] Vectorize maxnum/minnum w/o fast-math flags. ...

Florian Hahn via All-commits all-commits at lists.llvm.org
Fri Jul 18 13:58:42 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 004c67ea257039e4e98abc26dd4ac6e8f3d7a171
      https://github.com/llvm/llvm-project/commit/004c67ea257039e4e98abc26dd4ac6e8f3d7a171
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2025-07-18 (Fri, 18 Jul 2025)

  Changed paths:
    M llvm/include/llvm/Analysis/IVDescriptors.h
    M llvm/lib/Analysis/IVDescriptors.cpp
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
    M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
    M llvm/test/Transforms/LoopVectorize/AArch64/fmax-without-fast-math-flags.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/fmin-without-fast-math-flags.ll
    M llvm/test/Transforms/LoopVectorize/fmax-without-fast-math-flags-interleave.ll
    M llvm/test/Transforms/LoopVectorize/fmax-without-fast-math-flags.ll
    M llvm/test/Transforms/LoopVectorize/fmin-without-fast-math-flags.ll
    M llvm/test/Transforms/LoopVectorize/minmax_reduction.ll

  Log Message:
  -----------
  [LV] Vectorize maxnum/minnum w/o fast-math flags. (#148239)

Update LV to vectorize maxnum/minnum reductions without fast-math flags,
by adding an extra check in the loop if any inputs to maxnum/minnum are
NaN, due to maxnum/minnum behavior w.r.t to signaling NaNs. Signed-zeros 
are already handled consistently by maxnum/minnum.

If any input is NaN,
 *exit the vector loop,
 *compute the reduction result up to the vector iteration that contained
   NaN inputs and
 * resume in the scalar loop


New recurrence kinds are added for reductions using maxnum/minnum
without fast-math flags.

PR: https://github.com/llvm/llvm-project/pull/148239



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list