diff --git a/src/share/vm/opto/superword.cpp b/src/share/vm/opto/superword.cpp index c21c1e3ab168b6f147effd2b01c88574e59a77f9..f53c6483750d7c6bab1a47f5db8b2dfd9350eb8c 100644 --- a/src/share/vm/opto/superword.cpp +++ b/src/share/vm/opto/superword.cpp @@ -1809,7 +1809,7 @@ void SuperWord::compute_vector_element_type() { 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