-
Notifications
You must be signed in to change notification settings - Fork 12k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[SLP] Vectorize non-power-of-2 ops with padding.
This patch introduces a new VectorizeWithPadding node type for root and leave nodes to allow vectorizing loads/stores with non-power-of-2 number of elements. VectorizeWithPadding load nodes will pad the result to the next power of 2 with poison elements. Non-leaf nodes will operate on normal power-of-2 vectors. For those non-leaf nodes, we still track the number of padding elements needed to go to the next power-of-2, to be used in various places, like cost computation. VectorizeWithPadding store nodes strip away the padding elements and store the non-power-of-2 number of data elements. Note that re-ordering and shuffling is not implemented for nodes requiring padding yet to keep the initial implementation simpler. The initial implementation also only tries to vectorize with padding if original number of elements + 1 is a power-of-2, i.e. if only a single padding element is needed. The feature is guarded by a new flag, off by defaul for now.
- Loading branch information
Showing
7 changed files
with
807 additions
and
348 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.