Make sure to return the result in the right type.

llvm-svn: 27469
diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
index 686f2fa..7a92b96 100644
--- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
@@ -962,10 +962,12 @@
     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;