[all-commits] [llvm/llvm-project] f99672: [LoopVectorize] Fix strict reductions where VF = 1

kmclaughlin-arm via All-commits all-commits at lists.llvm.org
Mon Jun 28 03:28:22 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f99672568fda6a9bc1ee4f09d5d84066f4979889
      https://github.com/llvm/llvm-project/commit/f99672568fda6a9bc1ee4f09d5d84066f4979889
  Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
  Date:   2021-06-28 (Mon, 28 Jun 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/strict-fadd.ll

  Log Message:
  -----------
  [LoopVectorize] Fix strict reductions where VF = 1

Currently we will allow loops with a fixed width VF of 1 to vectorize
if the -enable-strict-reductions flag is set. However, the loop vectorizer
will not use ordered reductions if `VF.isScalar()` and the resulting
vectorized loop will be out of order.

This patch removes `VF.isVector()` when checking if ordered reductions
should be used. Also, instead of converting the FAdds to reductions if the
VF = 1, operands of the FAdds are changed such that the order is preserved.

Reviewed By: david-arm

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




More information about the All-commits mailing list