[AVX-512] Replace large number of explicit patterns that check for insert_subvector...
authorCraig Topper <craig.topper@intel.com>
Mon, 25 Sep 2017 18:43:13 +0000 (18:43 +0000)
committerCraig Topper <craig.topper@intel.com>
Mon, 25 Sep 2017 18:43:13 +0000 (18:43 +0000)
commitba3cc2e0dab050d1a39202cb19adbd2d6ab2bbcb
treeefd754b36dd5d8521863eac18d12ec650fadb0b7
parent8652b249e6ede3f495bf96820b6f34110aafa84d
[AVX-512] Replace large number of explicit patterns that check for insert_subvector with zero after masked compares with fewer patterns with predicate

This replaces the large number of patterns that handle every possible case of zeroing after a masked compare with a few simpler patterns that use a predicate to check for a masked compare producer.

This is similar to what we do for detecting free GR32->GR64 zero extends and free xmm->ymm/zmm zero extends.

This shrinks the isel table from ~590k to ~531k. This is a roughly 10% reduction in size.

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

llvm-svn: 314133
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
llvm/lib/Target/X86/X86InstrAVX512.td
llvm/lib/Target/X86/X86InstrVecCompiler.td