[SDAG] Don't widen VSETCC during type legalization for split operands
authorHal Finkel <hfinkel@anl.gov>
Mon, 23 Mar 2015 08:22:43 +0000 (08:22 +0000)
committerHal Finkel <hfinkel@anl.gov>
Mon, 23 Mar 2015 08:22:43 +0000 (08:22 +0000)
commit8f7c5a7f18d0482fdc99c1c02679830fac89bcc6
tree316f02fb457a4bec429b2004a6e3177821feea31
parent2873645c517e6729db946613db00c16dcf1225d2
[SDAG] Don't widen VSETCC during type legalization for split operands

Because the operands of a vector SETCC node can be of a different type from the
result (and often are), it can happen that even if we'd prefer to widen the
result type of the SETCC, the operands have been split instead. In this case,
the SETCC result also must be split. This mirrors what is done in
WidenVecRes_SELECT, and should be NFC elsewhere because if the operands are not
widened the following calls to GetWidenedVector will assert (which is what was
happening in the test case).

llvm-svn: 232935
llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
llvm/test/CodeGen/PowerPC/qpx-split-vsetcc.ll [new file with mode: 0644]