[llvm-commits] [llvm] r58443 - /llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

Mon P Wang wangmp at apple.com
Thu Oct 30 11:21:53 PDT 2008


Author: wangmp
Date: Thu Oct 30 13:21:52 2008
New Revision: 58443

URL: http://llvm.org/viewvc/llvm-project?rev=58443&view=rev
Log:
Add missing vsetcc expansion for widening

Modified:
    llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp?rev=58443&r1=58442&r2=58443&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Thu Oct 30 13:21:52 2008
@@ -7941,9 +7941,20 @@
       break;
     }  
     break;
+  }
+  case ISD::VSETCC: {
+    // Determine widen for the operand
+    SDValue Tmp1 = Node->getOperand(0);
+    MVT TmpVT = Tmp1.getValueType();
+    assert(TmpVT.isVector() && "can not widen non vector type");
+    MVT TmpEVT = TmpVT.getVectorElementType();
+    MVT TmpWidenVT =  MVT::getVectorVT(TmpEVT, NewNumElts);
+    Tmp1 = WidenVectorOp(Tmp1, TmpWidenVT);
+    SDValue Tmp2 = WidenVectorOp(Node->getOperand(1), TmpWidenVT);
+    Result = DAG.getNode(Node->getOpcode(), WidenVT, Tmp1, Tmp2, 
+                         Node->getOperand(2));
     break;
   }
-
   case ISD::ATOMIC_CMP_SWAP_8:
   case ISD::ATOMIC_CMP_SWAP_16:
   case ISD::ATOMIC_CMP_SWAP_32:





More information about the llvm-commits mailing list