< prev index next >

src/hotspot/share/opto/compile.cpp

Print this page

        

*** 2851,2860 **** --- 2851,2863 ---- const char* field_name = "vec"; if (from_kls->is_vectormask()) { field_name = "bits"; bt = T_BOOLEAN; + } else if (from_kls->is_vectorshuffle()) { + field_name = "reorder"; + bt = T_BYTE; } ciField* field = from_kls->get_field_by_name(ciSymbol::make(field_name), ciSymbol::make(TypeArrayKlass::external_name(bt)), false);
*** 2886,2895 **** --- 2889,2901 ---- vec_val_load = gvn.transform(vec_val_load); if (from_kls->is_vectormask() && masktype != T_BOOLEAN) { assert(vec_unbox->bottom_type()->is_vect()->element_basic_type() == masktype, "expect mask type consistency"); vec_val_load = gvn.transform(new VectorLoadMaskNode(vec_val_load, TypeVect::make(masktype, num_elem))); + } else if (from_kls->is_vectorshuffle()) { + assert(vec_unbox->bottom_type()->is_vect()->element_basic_type() == masktype, "expect shuffle type consistency"); + vec_val_load = gvn.transform(new VectorLoadShuffleNode(vec_val_load, TypeVect::make(masktype, num_elem))); } gvn.hash_delete(vec_unbox); vec_unbox->disconnect_inputs(NULL, C); C->gvn_replace_by(vec_unbox, vec_val_load);
< prev index next >