8001635: assert(in_bb(n)) failed: must be
Summary: Added missed check that Load node is in processed loop block.
Reviewed-by: twisti
--- a/hotspot/src/share/vm/opto/superword.cpp Thu Oct 25 17:32:03 2012 -0700
+++ b/hotspot/src/share/vm/opto/superword.cpp Fri Oct 26 11:48:04 2012 -0700
@@ -1809,7 +1809,7 @@
const Type* vt = vtn;
if (VectorNode::is_shift(in)) {
Node* load = in->in(1);
- if (load->is_Load() && (velt_type(load)->basic_type() == T_INT)) {
+ if (load->is_Load() && in_bb(load) && (velt_type(load)->basic_type() == T_INT)) {
vt = velt_type(load);
} else if (in->Opcode() != Op_LShiftI) {
// Widen type to Int to avoid creation of right shift vector