[AVX512] Fix insertelement i1 lowering.
authorIgor Breger <igor.breger@intel.com>
Sun, 14 Aug 2016 05:25:07 +0000 (05:25 +0000)
committerIgor Breger <igor.breger@intel.com>
Sun, 14 Aug 2016 05:25:07 +0000 (05:25 +0000)
commit8672408db0bac0c46031be7931a35b2bf269721a
treecb9bd0d493d0f95de72ca5e85d1c68c47f638e40
parent98541b09f482af0233e29f01ca5019f74ec054e7
[AVX512] Fix insertelement i1 lowering.
1. Use shuffle to insert element i1 into vector. The previous implementation was incorrect ( dest_bit OR src_bit , it doesn't clear the bit if src_bit=0 )
2. Improve shuffle i1 vector, use CVT2MASK if supported instead TRUNCATE.

Differential Revision: http://reviews.llvm.org/D23347

llvm-svn: 278623
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86InstrAVX512.td
llvm/test/CodeGen/X86/avx512-ext.ll
llvm/test/CodeGen/X86/avx512-insert-extract.ll
llvm/test/CodeGen/X86/avx512-mask-op.ll
llvm/test/CodeGen/X86/avx512-skx-insert-subvec.ll
llvm/test/CodeGen/X86/vector-shuffle-v1.ll