[X86] Change the behavior of canWidenShuffleElements used by lowerV2X128Shuffle to...
authorCraig Topper <craig.topper@intel.com>
Fri, 1 Nov 2019 18:28:32 +0000 (11:28 -0700)
committerCraig Topper <craig.topper@intel.com>
Fri, 1 Nov 2019 20:06:03 +0000 (13:06 -0700)
commiteeeb18cd075ddf7a44c8571f9e17e4b1fcbc8aa4
tree883be51979c37fdaa548ecd312e1f84402360b1c
parentdeaf121b657323fde17dd862a13b05e8b7ee6954
[X86] Change the behavior of canWidenShuffleElements used by lowerV2X128Shuffle to match the behavior in lowerVectorShuffle with regards to zeroable elements.

Previously we marked zeroable elements in a way that prevented
the widening check from recognizing that it could widen. Now
we only mark them zeroable if V2 is an all zeros vector. This
matches what we do for widening elements in lowerVectorShuffle.

Fixes PR43866.
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/pr43866.ll [new file with mode: 0644]