diff options
| author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-07-29 16:44:27 +0000 |
|---|---|---|
| committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-07-29 16:44:27 +0000 |
| commit | 0bd55a7608098ebacd4f8bd4a83a15bc1b3e7206 (patch) | |
| tree | 7556e05822bd5220fdbac8db5f28fa25d145f5bf /llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp | |
| parent | 6731dead227b7a8783a67c40ba05a04288cc364b (diff) | |
| download | bcm5719-llvm-0bd55a7608098ebacd4f8bd4a83a15bc1b3e7206.tar.gz bcm5719-llvm-0bd55a7608098ebacd4f8bd4a83a15bc1b3e7206.zip | |
[Hexagon] Custom lower VECTOR_SHUFFLE and EXTRACT_SUBVECTOR for HVX
If the mask of a vector shuffle has alternating odd or even numbers
starting with 1 or 0 respectively up to the largest possible index
for the given type in the given HVX mode (single of double) we can
generate vpacko or vpacke instruction respectively.
E.g.
%42 = shufflevector <32 x i16> %37, <32 x i16> %41,
<32 x i32> <i32 1, i32 3, ..., i32 63>
is %42.h = vpacko(%41.w, %37.w)
Patch by Pranav Bhandarkar.
llvm-svn: 277168
Diffstat (limited to 'llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp')
0 files changed, 0 insertions, 0 deletions

