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

Lupusoru, Razvan A razvan.a.lupusoru at intel.com
Tue Apr 24 18:24:50 UTC 2018


Good catch. Looks good to me.

--Razvan

-----Original Message-----
From: panama-dev [mailto:panama-dev-bounces at openjdk.java.net] On Behalf Of Vladimir Ivanov
Sent: Monday, April 23, 2018 6:02 PM
To: panama-dev at openjdk.java.net
Subject: [vector] RFR: C2: VectorIntrinsics::reinterpret() computes wrong resulting box type for vector masks

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