Changes

Summary

  1. [X86] Replace uses of getZeroVector for vXi1 vectors with (details)
  2. [X86] Add test cases for suboptimal insertion of a vXi1 vector into a (details)
  3. [X86] Add a special case to LowerCONCAT_VECTORSvXi1 to handle (details)
Commit 388b8dd94a470e589f5c01d27a38eb4c741db3b7 by craig.topper
[X86] Replace uses of getZeroVector for vXi1 vectors with
DAG.getConstant.
vXi1 vectors don't need special handling.
llvm-svn: 369222
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 6bd2e8eff817daa26d26a6f00f220b357857aa75 by craig.topper
[X86] Add test cases for suboptimal insertion of a vXi1 vector into a
larger vector with zeros in the lower elements and undef upper elements.
Currently we generate kshifts to clear both the upper and lower
elements, but we only need one kshift.
llvm-svn: 369223
The file was modifiedllvm/test/CodeGen/X86/avx512-skx-insert-subvec.ll
Commit 2ee46c7c4be1be5fa48af39232f62cf26d742efa by craig.topper
[X86] Add a special case to LowerCONCAT_VECTORSvXi1 to handle
concatenating zero vectors followed by one non-zero vector followed by
undef vectors.
For such a case we should only need a KSHIFTL, but we were previously
generating a KSHIFTL followed by a KSHIFTR because we mistakenly
believed we need to zero the undef elements.
llvm-svn: 369224
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/avx512-skx-insert-subvec.ll