[AVX512] Add DQ subvector inserts
authorAdam Nemet <anemet@apple.com>
Wed, 15 Oct 2014 23:42:17 +0000 (23:42 +0000)
committerAdam Nemet <anemet@apple.com>
Wed, 15 Oct 2014 23:42:17 +0000 (23:42 +0000)
commitfb9d61a8d62e75a4a99b3fafd406699e08219775
treed345b39530d645675450c34017a065db7fad06c9
parentec7f30662e5a8aa3ae7e82bd55895f7899f7e8dd
[AVX512] Add DQ subvector inserts

In AVX512f we support 64x2 and 32x8 inserts via matching them to 32x4 and 64x4
respectively.  These are matched by "Alt" Pat<>'s (Alt stands for alternative
VTs).

Since DQ has native support for these intructions, I peeled off the non-"Alt"
part of the baseclass into vinsert_for_size_no_alt. The DQ instructions are
derived from this multiclass.  The "Alt" Pat<>'s are disabled with DQ.

Fixes <rdar://problem/18426089>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219874 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrAVX512.td
lib/Target/X86/X86InstrInfo.td
test/CodeGen/X86/avx512-insert-extract.ll
test/MC/X86/avx512-encodings.s