OSDN Git Service

[AVX-512] Add support for lowering shuffles to VALIGND/VALIGNQ
authorCraig Topper <craig.topper@gmail.com>
Sat, 12 Nov 2016 05:05:27 +0000 (05:05 +0000)
committerCraig Topper <craig.topper@gmail.com>
Sat, 12 Nov 2016 05:05:27 +0000 (05:05 +0000)
commitddd7d89218cc1698fe70c44ac20d5b19e63c9c48
tree37799b494443c7efcbf549e4de11b7b2510eada0
parent0a923ad4d6c1969bf7129a989c9f7b9349e5f229
[AVX-512] Add support for lowering shuffles to VALIGND/VALIGNQ

Summary: VALIGND and VALIGNQ are similar to PALIGNR but instead of working on a 128-bit lane they work on the entire vector register. This change leverages the shuffle rotate detection code used for PALIGNR to detect these cases.

Reviewers: delena, RKSimon

Subscribers: Farhana, llvm-commits

Differential Revision: https://reviews.llvm.org/D26297

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286709 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/vector-shuffle-256-v4.ll
test/CodeGen/X86/vector-shuffle-256-v8.ll
test/CodeGen/X86/vector-shuffle-512-v16.ll
test/CodeGen/X86/vector-shuffle-512-v8.ll