--- old/src/share/vm/opto/vectornode.cpp 2015-04-06 14:42:03.284028000 -0700 +++ new/src/share/vm/opto/vectornode.cpp 2015-04-06 14:42:03.097009300 -0700 @@ -77,6 +77,9 @@ case T_INT: return Op_MulVI; } ShouldNotReachHere(); + case Op_MulL: + assert(bt == T_LONG, "must be"); + return Op_MulVL; case Op_MulF: assert(bt == T_FLOAT, "must be"); return Op_MulVF; @@ -267,6 +270,7 @@ case Op_MulVS: return new MulVSNode(n1, n2, vt); case Op_MulVI: return new MulVINode(n1, n2, vt); + case Op_MulVL: return new MulVLNode(n1, n2, vt); case Op_MulVF: return new MulVFNode(n1, n2, vt); case Op_MulVD: return new MulVDNode(n1, n2, vt); @@ -463,6 +467,10 @@ assert(bt == T_INT, "must be"); vopc = Op_MulReductionVI; break; + case Op_MulL: + assert(bt == T_LONG, "must be"); + vopc = Op_MulReductionVL; + break; case Op_MulF: assert(bt == T_FLOAT, "must be"); vopc = Op_MulReductionVF; @@ -492,6 +500,7 @@ case Op_AddReductionVF: return new AddReductionVFNode(ctrl, n1, n2); case Op_AddReductionVD: return new AddReductionVDNode(ctrl, n1, n2); case Op_MulReductionVI: return new MulReductionVINode(ctrl, n1, n2); + case Op_MulReductionVL: return new MulReductionVLNode(ctrl, n1, n2); case Op_MulReductionVF: return new MulReductionVFNode(ctrl, n1, n2); case Op_MulReductionVD: return new MulReductionVDNode(ctrl, n1, n2); }