--- old/src/share/vm/opto/superword.cpp 2016-01-25 10:54:51.085518987 +0100 +++ new/src/share/vm/opto/superword.cpp 2016-01-25 10:54:51.025518985 +0100 @@ -2388,6 +2388,11 @@ return true; } } else if (opc == Op_ConvI2L) { + if (n->in(1)->Opcode() == Op_CastII && + n->in(1)->as_CastII()->has_range_check()) { + // Skip range check dependent CastII nodes + n = n->in(1); + } if (scaled_iv_plus_offset(n->in(1))) { return true; }