[vector] RFR: C2: VectorIntrinsics::reinterpret() computes wrong resulting box type for vector masks

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Tue Apr 24 01:01:35 UTC 2018


LibraryCallKit::inline_vector_reinterpret() uses wrong element type to 
compute box type for resulting vector mask.

Best regards,
Vladimir Ivanov

diff --git a/src/hotspot/share/opto/library_call.cpp 
b/src/hotspot/share/opto/library_call.cpp
--- a/src/hotspot/share/opto/library_call.cpp
+++ b/src/hotspot/share/opto/library_call.cpp
@@ -7791,7 +7791,7 @@
    if (Type::cmp(src_type, dst_type) != 0) {
      op = _gvn.transform(new VectorReinterpretNode(op, src_type, 
dst_type));
    }
-  ciKlass* vbox_klass_to = 
get_exact_klass_for_vector_box(vbox_klass_from, elem_bt_to,
+  ciKlass* vbox_klass_to = 
get_exact_klass_for_vector_box(vbox_klass_from, elem_type_to->basic_type(),
                                                            num_elem_to, 
is_mask ? VECAPI_MASK : VECAPI_VECTOR);
    const TypeInstPtr* vbox_type_to = 
TypeInstPtr::make_exact(TypePtr::NotNull, vbox_klass_to);
    Node* vbox = box_vector(op, vbox_type_to, elem_bt_to, num_elem_to);


More information about the panama-dev mailing list