[X86] Make getZeroVector return floating point vectors in their native type on SSE2...
authorCraig Topper <craig.topper@intel.com>
Sun, 8 Sep 2019 00:43:52 +0000 (00:43 +0000)
committerCraig Topper <craig.topper@intel.com>
Sun, 8 Sep 2019 00:43:52 +0000 (00:43 +0000)
commit37dd59298fd46e28ae2b2569465c5195d5708a0a
treebbcaaaeff89f42ad2c185432251944116dc9e576
parent5bd4a4806aafc31c67a55c7d8b2993c879dc5bc2
[X86] Make getZeroVector return floating point vectors in their native type on SSE2 and later.

isel used to require zero vectors to be canonicalized to a single
type to minimize the number of patterns needed to match. This is
 no longer required.

I plan to do this to integers too, but floating point was simpler
to start with. Integer has a complication where v32i16/v64i8 aren't
legal when the other 512-bit integer types are.

llvm-svn: 371325
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86InstrAVX512.td
llvm/lib/Target/X86/X86InstrSSE.td
llvm/test/CodeGen/X86/2012-04-26-sdglue.ll
llvm/test/CodeGen/X86/avx-basic.ll
llvm/test/CodeGen/X86/avx2-gather.ll
llvm/test/CodeGen/X86/nontemporal-3.ll
llvm/test/CodeGen/X86/packss.ll
llvm/test/CodeGen/X86/vec_ss_load_fold.ll