[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