--- old/src/share/vm/opto/matcher.cpp 2017-07-03 08:28:50.000000000 -0700 +++ new/src/share/vm/opto/matcher.cpp 2017-07-03 08:28:49.000000000 -0700 @@ -1679,14 +1679,14 @@ } const Type* mach_at = mach->adr_type(); // DecodeN node consumed by an address may have different type - // then its input. Don't compare types for such case. + // than its input. Don't compare types for such case. if (m->adr_type() != mach_at && (m->in(MemNode::Address)->is_DecodeNarrowPtr() || - m->in(MemNode::Address)->is_AddP() && - m->in(MemNode::Address)->in(AddPNode::Address)->is_DecodeNarrowPtr() || - m->in(MemNode::Address)->is_AddP() && - m->in(MemNode::Address)->in(AddPNode::Address)->is_AddP() && - m->in(MemNode::Address)->in(AddPNode::Address)->in(AddPNode::Address)->is_DecodeNarrowPtr())) { + (m->in(MemNode::Address)->is_AddP() && + m->in(MemNode::Address)->in(AddPNode::Address)->is_DecodeNarrowPtr()) || + (m->in(MemNode::Address)->is_AddP() && + m->in(MemNode::Address)->in(AddPNode::Address)->is_AddP() && + m->in(MemNode::Address)->in(AddPNode::Address)->in(AddPNode::Address)->is_DecodeNarrowPtr()))) { mach_at = m->adr_type(); } if (m->adr_type() != mach_at) {