diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCISelLowering.cpp | 10 | 
1 files changed, 6 insertions, 4 deletions
| diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp index 686f2fa0696..7a92b961ee0 100644 --- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp @@ -962,10 +962,12 @@ SDOperand PPCTargetLowering::LowerOperation(SDOperand Op, SelectionDAG &DAG) {      assert(CompareOpc>0 && "We only lower altivec predicate compares so far!");      // If this is a non-dot comparison, make the VCMP node. -    if (!isDot) -      return DAG.getNode(PPCISD::VCMP, Op.getOperand(2).getValueType(), -                         Op.getOperand(1), Op.getOperand(2), -                         DAG.getConstant(CompareOpc, MVT::i32)); +    if (!isDot) { +      SDOperand Tmp = DAG.getNode(PPCISD::VCMP, Op.getOperand(2).getValueType(), +                                  Op.getOperand(1), Op.getOperand(2), +                                  DAG.getConstant(CompareOpc, MVT::i32)); +      return DAG.getNode(ISD::BIT_CONVERT, Op.getValueType(), Tmp); +    }      // Create the PPCISD altivec 'dot' comparison node.      std::vector<SDOperand> Ops; | 

