< prev index next >
src/share/vm/opto/matcher.cpp
Print this page
@@ -2115,10 +2115,12 @@
case Op_AryEq:
case Op_HasNegatives:
case Op_StrInflatedCopy:
case Op_StrCompressedCopy:
case Op_EncodeISOArray:
+ case Op_FmaD:
+ case Op_FmaF:
set_shared(n); // Force result into register (it will be anyways)
break;
case Op_ConP: { // Convert pointers above the centerline to NUL
TypeNode *tn = n->as_Type(); // Constants derive from type nodes
const TypePtr* tp = tn->type()->is_ptr();
@@ -2303,10 +2305,19 @@
Node* pair = new BinaryNode(n->in(3), n->in(4));
n->set_req(3, pair);
n->del_req(4);
break;
}
+ case Op_FmaD:
+ case Op_FmaF: {
+ // Restructure into a binary tree for Matching.
+ Node* pair = new BinaryNode(n->in(1), n->in(2));
+ n->set_req(2, pair);
+ n->set_req(1, n->in(3));
+ n->del_req(3);
+ break;
+ }
default:
break;
}
}
else {
< prev index next >