[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

Chris Lattner lattner at cs.uiuc.edu
Wed May 17 13:43:34 PDT 2006



Changes in directory llvm/lib/CodeGen/SelectionDAG:

SelectionDAGISel.cpp updated: 1.245 -> 1.246
---
Log message:

Correct a previous patch which broke CodeGen/PowerPC/vec_call.ll


---
Diffs of the changes:  (+5 -18)

 SelectionDAGISel.cpp |   23 +++++------------------
 1 files changed, 5 insertions(+), 18 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.245 llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.246
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.245	Wed May 17 13:16:39 2006
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp	Wed May 17 15:43:21 2006
@@ -2551,25 +2551,12 @@
         
         // Figure out if there is a Packed type corresponding to this Vector
         // type.  If so, convert to the packed type.
-        bool Supported = false;
         MVT::ValueType TVT = MVT::getVectorType(getValueType(EltTy), NumElems);
-        if (TVT != MVT::Other) {
-          // Handle copies from generic vectors to registers.
-          MVT::ValueType PTyElementVT, PTyLegalElementVT;
-          unsigned NE = getPackedTypeBreakdown(PTy, PTyElementVT,
-                                               PTyLegalElementVT);
-          // FIXME: handle NE > 1 cases.
-          if (NE == 1) {
-            // Insert a VBIT_CONVERT of the MVT::Vector type to the packed type.
-            Op = DAG.getNode(ISD::VBIT_CONVERT, MVT::Vector, Op,
-                             DAG.getConstant(NumElems, MVT::i32), 
-                             DAG.getValueType(getValueType(EltTy)));
-            Ops.push_back(Op);
-            Supported = true;
-          }
-        }
-
-        if (!Supported) {
+        if (TVT != MVT::Other && isTypeLegal(TVT)) {
+          // Insert a VBIT_CONVERT of the MVT::Vector type to the packed type.
+          Op = DAG.getNode(ISD::VBIT_CONVERT, TVT, Op);
+          Ops.push_back(Op);
+        } else {
           assert(0 && "Don't support illegal by-val vector call args yet!");
           abort();
         }






More information about the llvm-commits mailing list