--- old/src/share/vm/opto/vectornode.hpp 2017-06-05 10:06:51.291041000 -0700 +++ new/src/share/vm/opto/vectornode.hpp 2017-06-05 10:06:50.337026300 -0700 @@ -62,6 +62,7 @@ static VectorNode* scalar2vector(Node* s, uint vlen, const Type* opd_t); static VectorNode* shift_count(Node* shift, Node* cnt, uint vlen, BasicType bt); static VectorNode* make(int opc, Node* n1, Node* n2, uint vlen, BasicType bt); + static VectorNode* make(int opc, Node* n1, Node* n2, Node* n3, uint vlen, BasicType bt); static int opcode(int opc, BasicType bt); static bool implemented(int opc, uint vlen, BasicType bt); @@ -260,6 +261,22 @@ virtual int Opcode() const; }; +//------------------------------FmaVDNode-------------------------------------- +// Vector multiply double +class FmaVDNode : public VectorNode { +public: + FmaVDNode(Node* in1, Node* in2, Node* in3, const TypeVect* vt) : VectorNode(in1, in2, in3, vt) {} + virtual int Opcode() const; +}; + +//------------------------------FmaVFNode-------------------------------------- +// Vector multiply float +class FmaVFNode : public VectorNode { +public: + FmaVFNode(Node* in1, Node* in2, Node* in3, const TypeVect* vt) : VectorNode(in1, in2, in3, vt) {} + virtual int Opcode() const; +}; + //------------------------------CMoveVDNode-------------------------------------- // Vector multiply double class CMoveVDNode : public VectorNode {