diff options
author | Evan Cheng <evan.cheng@apple.com> | 2011-05-18 18:47:27 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2011-05-18 18:47:27 +0000 |
commit | 80632c91b024c0377d40075063d3018e2812aefa (patch) | |
tree | 34221e4c954dd437d33208386ee0db24ef0aaa1d /llvm/lib | |
parent | 2c2ea226b797fb52cd60f887c8c5d4c43e784ba5 (diff) | |
download | bcm5719-llvm-80632c91b024c0377d40075063d3018e2812aefa.tar.gz bcm5719-llvm-80632c91b024c0377d40075063d3018e2812aefa.zip |
Fix an ARMTargetLowering::LowerSELECT bug: legalized result must have same type as input. Sorry test cases only trigger when dag combine is disabled. rdar://9449178
llvm-svn: 131553
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index 67cb29362d8..ef399b65fbf 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -2697,7 +2697,9 @@ SDValue ARMTargetLowering::LowerSELECT(SDValue Op, SelectionDAG &DAG) const { SDValue ARMcc = Cond.getOperand(2); SDValue CCR = Cond.getOperand(3); SDValue Cmp = duplicateCmp(Cond.getOperand(4), DAG); - return DAG.getNode(ARMISD::CMOV, dl, VT, True, False, ARMcc, CCR, Cmp); + return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), + DAG.getNode(ARMISD::CMOV, dl, VT, True, False, + ARMcc, CCR, Cmp)); } } } |