--- old/src/share/vm/opto/node.cpp 2016-11-23 13:57:06.147141486 +0100 +++ new/src/share/vm/opto/node.cpp 2016-11-23 13:57:06.079141489 +0100 @@ -1117,8 +1117,8 @@ if (this->is_Store()) { // Condition for back-to-back stores folding. return n->Opcode() == op && n->in(MemNode::Memory) == this; - } else if (this->is_Load()) { - // Condition for removing an unused LoadNode from the MemBarAcquire precedence input + } else if (this->is_Load() || this->is_DecodeN()) { + // Condition for removing an unused LoadNode or DecodeNNode from the MemBarAcquire precedence input return n->Opcode() == Op_MemBarAcquire; } else if (op == Op_AddL) { // Condition for convL2I(addL(x,y)) ==> addI(convL2I(x),convL2I(y))