X86: Fold EXTRACT_SUBVECTORs of a BUILD_VECTOR into a smaller BUILD_VECTOR.
authorBenjamin Kramer <benny.kra@googlemail.com>
Thu, 7 Mar 2013 18:48:40 +0000 (18:48 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Thu, 7 Mar 2013 18:48:40 +0000 (18:48 +0000)
commit02c2ecf9f166522cc1c58dd484668c1cbacc0c6e
tree0721321259962df552b6c98dce098a5cda4a7a9f
parent784ae47413e1adf3b64ed5546f88b39ab52a9281
X86: Fold EXTRACT_SUBVECTORs of a BUILD_VECTOR into a smaller BUILD_VECTOR.

That can usually be lowered efficiently and is common in sandybridge code.
It would be nice to do this in DAGCombiner but we can't insert arbitrary
BUILD_VECTORs this late.

Fixes PR15462.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176634 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/avx-shift.ll
test/CodeGen/X86/avx-vinsertf128.ll
test/CodeGen/X86/avx-vpermil.ll