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 | d48fda46f5b65f87e92a2bb94a722417bd5cc758 (patch) | |
tree | be8cd6539f0af1f6344cc13fb2ba5caba3d8ca0c | |
parent | d3372b85e6008d85e30d13172ef0b1646b482b7e (diff) |
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131553 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/ARMISelLowering.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Target/ARM/ARMISelLowering.cpp b/lib/Target/ARM/ARMISelLowering.cpp index 67cb29362d..ef399b65fb 100644 --- a/lib/Target/ARM/ARMISelLowering.cpp +++ b/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)); } } } |