diff options
| author | Duncan Sands <baldrick@free.fr> | 2008-02-27 13:03:44 +0000 |
|---|---|---|
| committer | Duncan Sands <baldrick@free.fr> | 2008-02-27 13:03:44 +0000 |
| commit | 2111bd2e37c6169bda18d58bf0b4d3cb56e5e9bf (patch) | |
| tree | 4382ba04a716f66f536c833f012bb1650e9b998c /clang/CodeGen/ModuleBuilder.cpp | |
| parent | 5d5bc484d0b7c86b2515748977d8cb5f45521b49 (diff) | |
| download | bcm5719-llvm-2111bd2e37c6169bda18d58bf0b4d3cb56e5e9bf.tar.gz bcm5719-llvm-2111bd2e37c6169bda18d58bf0b4d3cb56e5e9bf.zip | |
LegalizeTypes support for legalizing the mask
operand of a VECTOR_SHUFFLE. The mask is a
vector of constant integers. The code in
LegalizeDAG doesn't bother to legalize the
mask, since it's basically just storage for
a bunch of constants, however LegalizeTypes
is more picky. The problem is that there may
not exist any legal vector-of-integers type
with a legal element type, so it is impossible
to create a legal mask! Unless of course you
cheat by creating a BUILD_VECTOR where the
operands have a different type to the element
type of the vector being built... This is
pretty ugly but works - all relevant tests in
the testsuite pass, and produce the same
assembler with and without LegalizeTypes.
llvm-svn: 47670
Diffstat (limited to 'clang/CodeGen/ModuleBuilder.cpp')
0 files changed, 0 insertions, 0 deletions

