diff options
| author | Chandler Carruth <chandlerc@gmail.com> | 2014-09-28 23:23:55 +0000 |
|---|---|---|
| committer | Chandler Carruth <chandlerc@gmail.com> | 2014-09-28 23:23:55 +0000 |
| commit | abe742e8fb7238b902aa8a97f382f5d601c5064d (patch) | |
| tree | 41411894b3d048d3d2fe2cb30cb3c86fd99d1ab7 /lldb/source/Commands/CommandObjectMemory.cpp | |
| parent | f8a678d2fdc280b46c7be0422f84abafc345b842 (diff) | |
| download | llvm-abe742e8fb7238b902aa8a97f382f5d601c5064d.zip llvm-abe742e8fb7238b902aa8a97f382f5d601c5064d.tar.gz llvm-abe742e8fb7238b902aa8a97f382f5d601c5064d.tar.bz2 | |
[x86] Fix the new vector shuffle lowering's use of VSELECT for AVX2
lowerings.
This was hopelessly broken. First, the x86 backend wants '-1' to be the
element value representing true in a boolean vector, and second the
operand order for VSELECT is backwards from the actual x86 instructions.
To make matters worse, the backend is just using '-1' as the true value
to get the high bit to be set. It doesn't actually symbolically map the
'-1' to anything. But on x86 this isn't quite how it works: there *only*
the high bit is relevant. As a consequence weird non-'-1' values like
0x80 actually "work" once you flip the operands to be backwards.
Anyways, thanks to Hal for helping me sort out what these *should* be.
llvm-svn: 218582
Diffstat (limited to 'lldb/source/Commands/CommandObjectMemory.cpp')
0 files changed, 0 insertions, 0 deletions
