LegalizeTypes support for scalarizing a vector store
[oota-llvm.git] / lib / CodeGen / SelectionDAG / LegalizeTypes.h
index 6f3ffba52ea74b52902c48f9d18e5404a46bc488..3ebc2110587eba41061357eff82083c4ee22f0cd 100644 (file)
@@ -182,18 +182,19 @@ private:
   // Operand Promotion.
   bool PromoteOperand(SDNode *N, unsigned OperandNo);
   SDOperand PromoteOperand_ANY_EXTEND(SDNode *N);
-  SDOperand PromoteOperand_ZERO_EXTEND(SDNode *N);
-  SDOperand PromoteOperand_SIGN_EXTEND(SDNode *N);
-  SDOperand PromoteOperand_TRUNCATE(SDNode *N);
+  SDOperand PromoteOperand_BR_CC(SDNode *N, unsigned OpNo);
+  SDOperand PromoteOperand_BRCOND(SDNode *N, unsigned OpNo);
   SDOperand PromoteOperand_FP_EXTEND(SDNode *N);
   SDOperand PromoteOperand_FP_ROUND(SDNode *N);
   SDOperand PromoteOperand_INT_TO_FP(SDNode *N);
+  SDOperand PromoteOperand_RET(SDNode *N, unsigned OpNo);
   SDOperand PromoteOperand_SELECT(SDNode *N, unsigned OpNo);
-  SDOperand PromoteOperand_BRCOND(SDNode *N, unsigned OpNo);
-  SDOperand PromoteOperand_BR_CC(SDNode *N, unsigned OpNo);
   SDOperand PromoteOperand_SETCC(SDNode *N, unsigned OpNo);
+  SDOperand PromoteOperand_SIGN_EXTEND(SDNode *N);
   SDOperand PromoteOperand_STORE(StoreSDNode *N, unsigned OpNo);
-  
+  SDOperand PromoteOperand_TRUNCATE(SDNode *N);
+  SDOperand PromoteOperand_ZERO_EXTEND(SDNode *N);
+
   void PromoteSetCCOperands(SDOperand &LHS,SDOperand &RHS, ISD::CondCode Code);
 
   //===--------------------------------------------------------------------===//
@@ -237,14 +238,15 @@ private:
 
   // Operand Expansion.
   bool ExpandOperand(SDNode *N, unsigned OperandNo);
-  SDOperand ExpandOperand_TRUNCATE(SDNode *N);
   SDOperand ExpandOperand_BIT_CONVERT(SDNode *N);
-  SDOperand ExpandOperand_UINT_TO_FP(SDOperand Source, MVT::ValueType DestTy);
-  SDOperand ExpandOperand_SINT_TO_FP(SDOperand Source, MVT::ValueType DestTy);
+  SDOperand ExpandOperand_BR_CC(SDNode *N);
   SDOperand ExpandOperand_EXTRACT_ELEMENT(SDNode *N);
   SDOperand ExpandOperand_SETCC(SDNode *N);
+  SDOperand ExpandOperand_SINT_TO_FP(SDOperand Source, MVT::ValueType DestTy);
   SDOperand ExpandOperand_STORE(StoreSDNode *N, unsigned OpNo);
-  
+  SDOperand ExpandOperand_TRUNCATE(SDNode *N);
+  SDOperand ExpandOperand_UINT_TO_FP(SDOperand Source, MVT::ValueType DestTy);
+
   void ExpandSetCCOperands(SDOperand &NewLHS, SDOperand &NewRHS,
                            ISD::CondCode &CCCode);
   
@@ -273,7 +275,8 @@ private:
   
   // Operand Vector Scalarization: <1 x ty> -> ty.
   bool ScalarizeOperand(SDNode *N, unsigned OpNo);
-  SDOperand ScalarizeOp_EXTRACT_VECTOR_ELT(SDNode *N, unsigned OpNo);
+  SDOperand ScalarizeOp_EXTRACT_VECTOR_ELT(SDNode *N);
+  SDOperand ScalarizeOp_STORE(StoreSDNode *N, unsigned OpNo);
 
   //===--------------------------------------------------------------------===//
   // Vector Splitting Support: LegalizeTypesSplit.cpp
@@ -301,9 +304,10 @@ private:
   
   // Operand Vector Scalarization: <128 x ty> -> 2 x <64 x ty>.
   bool SplitOperand(SDNode *N, unsigned OpNo);
-  
-  SDOperand SplitOp_STORE(StoreSDNode *N, unsigned OpNo);
+
+  SDOperand SplitOp_EXTRACT_SUBVECTOR(SDNode *N);
   SDOperand SplitOp_RET(SDNode *N, unsigned OpNo);
+  SDOperand SplitOp_STORE(StoreSDNode *N, unsigned OpNo);
 };
 
 } // end namespace llvm.