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
Showing
- lib/CodeGen/SelectionDAG/LegalizeDAG.cpp 37 additions, 78 deletionslib/CodeGen/SelectionDAG/LegalizeDAG.cpp
- lib/Target/X86/X86ISelLowering.cpp 39 additions, 104 deletionslib/Target/X86/X86ISelLowering.cpp
- test/CodeGen/X86/vec_loadsingles.ll 12 additions, 0 deletionstest/CodeGen/X86/vec_loadsingles.ll
- test/CodeGen/X86/vec_set-5.ll 1 addition, 2 deletionstest/CodeGen/X86/vec_set-5.ll
- test/CodeGen/X86/vec_set-6.ll 1 addition, 1 deletiontest/CodeGen/X86/vec_set-6.ll
Loading
Please register or sign in to comment