Slightly generalize the code that handles shuffles of consecutive loads
authorEli Friedman <eli.friedman@gmail.com>
Sun, 7 Jun 2009 06:52:44 +0000 (06:52 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Sun, 7 Jun 2009 06:52:44 +0000 (06:52 +0000)
commit7a5e55509b99d579d56d126a7b503ec6fe153a8f
treea75cc13d22340b807d3939f42886d26cf476aaf9
parentdcef849ab0f1f8deec2f9bad0a8f0371e88dc713
Slightly generalize the code that handles shuffles of consecutive loads
on x86 to handle more cases.  Fix a bug in said code that would cause it
to read past the end of an object.  Rewrite the code in
SelectionDAGLegalize::ExpandBUILD_VECTOR to be a bit more general.
Remove PerformBuildVectorCombine, which is no longer necessary with
these changes.  In addition to simplifying the code, with this change,
we can now catch a few more cases of consecutive loads.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73012 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/vec_loadsingles.ll [new file with mode: 0644]
test/CodeGen/X86/vec_set-5.ll
test/CodeGen/X86/vec_set-6.ll