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

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Wed Apr 25 05:45:09 UTC 2018


Thanks, pushed.

Best regards,
Vladimir Ivanov

On 4/24/18 11:24, Lupusoru, Razvan A wrote:
> 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