[X86] CombineShuffleWithExtract - only require 1 source to be EXTRACT_SUBVECTOR
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 28 Jun 2019 12:24:49 +0000 (12:24 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 28 Jun 2019 12:24:49 +0000 (12:24 +0000)
commita54e1a0f01233290624939927c82fdcac91667ec
tree9d2362ccb773ee4f4056030696015d4e6770e209
parent9dbdfe6b7855304e4a4117f885da826def9a0719
[X86] CombineShuffleWithExtract - only require 1 source to be EXTRACT_SUBVECTOR

We were requiring that both shuffle operands were EXTRACT_SUBVECTORs, but we can relax this to only require one of them to be.

Also, we shouldn't bother attempting this if both operands are from the lowest subvector (or not EXTRACT_SUBVECTOR at all).

llvm-svn: 364644
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/shuffle-vs-trunc-512-widen.ll
llvm/test/CodeGen/X86/shuffle-vs-trunc-512.ll
llvm/test/CodeGen/X86/vector-shuffle-256-v32.ll