[all-commits] [llvm/llvm-project] 119965: LoadStoreVectorizer: support different operand ord...
Volkan Keles via All-commits
all-commits at lists.llvm.org
Thu Jun 10 16:32:30 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 119965865cc730060e4cc95690ee7dab91c2c440
https://github.com/llvm/llvm-project/commit/119965865cc730060e4cc95690ee7dab91c2c440
Author: Slava Nikolaev <vnikolaev at apple.com>
Date: 2021-06-10 (Thu, 10 Jun 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
M llvm/test/Transforms/LoadStoreVectorizer/X86/vectorize-i8-nested-add.ll
Log Message:
-----------
LoadStoreVectorizer: support different operand orders in the add sequence match
First we refactor the code which does no wrapping add sequences
match: we need to allow different operand orders for
the key add instructions involved in the match.
Then we use the refactored code trying 4 variants of matching operands.
Originally the code relied on the fact that the matching operands
of the two last add instructions of memory index calculations
had the same LHS argument. But which operand is the same
in the two instructions is actually not essential, so now we allow
that to be any of LHS or RHS of each of the two instructions.
This increases the chances of vectorization to happen.
Reviewed By: volkan
Differential Revision: https://reviews.llvm.org/D103912
More information about the All-commits
mailing list