diff options
| author | Chandler Carruth <chandlerc@gmail.com> | 2014-10-01 23:14:28 +0000 |
|---|---|---|
| committer | Chandler Carruth <chandlerc@gmail.com> | 2014-10-01 23:14:28 +0000 |
| commit | 8a16802d46ed62444a24b7f367db992a783a142e (patch) | |
| tree | 4a68fe570c4dce1db7f479b0215073abe61c0ba8 /clang/lib/CodeGen/CodeGenFunction.cpp | |
| parent | 650cd8a38079ba1bd4e75ee5e4b623306f0e8407 (diff) | |
| download | llvm-8a16802d46ed62444a24b7f367db992a783a142e.zip llvm-8a16802d46ed62444a24b7f367db992a783a142e.tar.gz llvm-8a16802d46ed62444a24b7f367db992a783a142e.tar.bz2 | |
[x86] Improve and correct how the new vector shuffle lowering was
matching and lowering 64-bit insertions.
The first problem was that we weren't looking through bitcasts to
discover that we *could* lower as insertions. Once fixed, we in turn
weren't looking through bitcasts to discover that we could fold a load
into the lowering. Once fixed, we weren't forming a SCALAR_TO_VECTOR
node around the inserted element and instead were passing a scalar to
a DAG node that expected a vector. It turns out there are some patterns
that will "lower" this into the correct asm, but the rest of the X86
backend is very unhappy with such antics.
This should fix a few more edge case regressions I've spotted going
through the regression test suite to enable the new vector shuffle
lowering.
llvm-svn: 218839
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
0 files changed, 0 insertions, 0 deletions
