This patch adds a new shuffle kind useful for transposing a 2xn matrix. These transpose shuffle masks read corresponding even- or odd-numbered vector elements from two n-dimensional source vectors and write each result into consecutive elements of an n-dimensional destination vector. The transpose shuffle kind is meant to model the TRN1 and TRN2 AArch64 instructions. As such, this patch also considers transpose shuffles in the AArch64 implementation of getShuffleCost.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
- Build Status
Buildable 17341 Build 17341: arc lint + arc unit
Event Timeline
include/llvm/Analysis/TargetTransformInfo.h | ||
---|---|---|
642 | Not sure why indentation change is needed | |
lib/Analysis/TargetTransformInfo.cpp | ||
707 | would it be more accurate to say '..such that one vector contains _interleaved_ elements from all the even numbered rows ..." | |
737 | Test 4 and 5 could be perhaps combined into one loop? |
Comment Actions
LGTM. Probably wait a day before committing in case Renato/others have a comment/suggestion.
Not sure why indentation change is needed