[CodeGen] Fix result type for SMULO/UMULO legalization
authorEli Friedman <efriedma@codeaurora.org>
Tue, 6 Dec 2016 22:49:36 +0000 (22:49 +0000)
committerEli Friedman <efriedma@codeaurora.org>
Tue, 6 Dec 2016 22:49:36 +0000 (22:49 +0000)
commit0a76e3241f05a996a2a507a5c32476326d2b3355
treefba0c568c87092661013b23bb3dd9f7983105316
parentac066f354a9c5cd8f00765e81f3e0db56983c29e
[CodeGen] Fix result type for SMULO/UMULO legalization

On some platforms (like MSP430) the second element of the result
structure for SMULO/UMULO may have a shorter type than the one
returned by SetCC. We need to truncate it to the right type, or
else some incorrect code may be generated later on.

This fixes issue https://github.com/rust-lang/rust/issues/37829

Patch by Vadzim Dambrouski!

Differential Revision: https://reviews.llvm.org/D27154

llvm-svn: 288857
llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
llvm/test/CodeGen/MSP430/umulo-16.ll [new file with mode: 0644]