This patch replaces the VZEXT_MOVL removal from combineShuffle with a more general version based in SimplifyDemandedVectorEltsForTargetNode.
By making use a call to computeKnownBits we can always remove the VZEXT_MOVL if the upper elements of the source operand are known to be zero.
This requires us to add the conversion ops to computeKnownBitsForTargetNode as well.
I was hoping to do this even more generally by handling it in the target shuffle combines below but this is yet another occasion where I need to finish D66004 first.
Should this be in computeKnownBitsForTargetNode instead since we're not doing the simplification?