< prev index next >

src/hotspot/share/opto/vectornode.hpp

Print this page




1054 };
1055 
1056 //------------------------------PackDNode--------------------------------------
1057 // Pack double scalars into a vector
1058 class PackDNode : public PackNode {
1059  public:
1060   PackDNode(Node* in1, const TypeVect* vt) : PackNode(in1, vt) {}
1061   PackDNode(Node* in1, Node* in2, const TypeVect* vt) : PackNode(in1, in2, vt) {}
1062   virtual int Opcode() const;
1063 };
1064 
1065 //------------------------------Pack2DNode-------------------------------------
1066 // Pack 2 double scalars into a vector
1067 class Pack2DNode : public PackNode {
1068  public:
1069   Pack2DNode(Node* in1, Node* in2, const TypeVect* vt) : PackNode(in1, in2, vt) {}
1070   virtual int Opcode() const;
1071 };
1072 
1073 






1074 //========================Extract_Scalar_from_Vector===========================
1075 
1076 //------------------------------ExtractNode------------------------------------
1077 // Extract a scalar from a vector at position "pos"
1078 class ExtractNode : public Node {
1079  public:
1080   ExtractNode(Node* src, ConINode* pos) : Node(NULL, src, (Node*)pos) {
1081     assert(in(2)->get_int() >= 0, "positive constants");
1082   }
1083   virtual int Opcode() const;
1084   uint  pos() const { return in(2)->get_int(); }
1085 
1086   static Node* make(Node* v, uint position, BasicType bt);
1087   static int opcode(BasicType bt);
1088 };
1089 
1090 //------------------------------ExtractBNode-----------------------------------
1091 // Extract a byte from a vector at position "pos"
1092 class ExtractBNode : public ExtractNode {
1093  public:




1054 };
1055 
1056 //------------------------------PackDNode--------------------------------------
1057 // Pack double scalars into a vector
1058 class PackDNode : public PackNode {
1059  public:
1060   PackDNode(Node* in1, const TypeVect* vt) : PackNode(in1, vt) {}
1061   PackDNode(Node* in1, Node* in2, const TypeVect* vt) : PackNode(in1, in2, vt) {}
1062   virtual int Opcode() const;
1063 };
1064 
1065 //------------------------------Pack2DNode-------------------------------------
1066 // Pack 2 double scalars into a vector
1067 class Pack2DNode : public PackNode {
1068  public:
1069   Pack2DNode(Node* in1, Node* in2, const TypeVect* vt) : PackNode(in1, in2, vt) {}
1070   virtual int Opcode() const;
1071 };
1072 
1073 
1074 class VectorLoadConstNode : public VectorNode {
1075  public:
1076   VectorLoadConstNode(Node* in1, const TypeVect* vt) : VectorNode(in1, vt) {}
1077   virtual int Opcode() const;
1078 };
1079 
1080 //========================Extract_Scalar_from_Vector===========================
1081 
1082 //------------------------------ExtractNode------------------------------------
1083 // Extract a scalar from a vector at position "pos"
1084 class ExtractNode : public Node {
1085  public:
1086   ExtractNode(Node* src, ConINode* pos) : Node(NULL, src, (Node*)pos) {
1087     assert(in(2)->get_int() >= 0, "positive constants");
1088   }
1089   virtual int Opcode() const;
1090   uint  pos() const { return in(2)->get_int(); }
1091 
1092   static Node* make(Node* v, uint position, BasicType bt);
1093   static int opcode(BasicType bt);
1094 };
1095 
1096 //------------------------------ExtractBNode-----------------------------------
1097 // Extract a byte from a vector at position "pos"
1098 class ExtractBNode : public ExtractNode {
1099  public:


< prev index next >