On Tue, 12 Aug 2025 05:55:14 GMT, Jatin Bhateja <jbhat...@openjdk.org> wrote:

>> src/hotspot/share/opto/vectorIntrinsics.cpp line 1714:
>> 
>>> 1712:   }
>>> 1713: 
>>> 1714:   Node* origin_node = gvn().intcon(origin->get_con() * 
>>> type2aelembytes(elem_bt));
>> 
>> Q1: Is it possible that just passing `origin->get_con()` to 
>> `VectorSliceNode` in case there are architectures that need it directly? Or, 
>> maybe we'd better add comment telling that the origin passed to 
>> `VectorSliceNode` is adjust to bytes.
>> 
>> Q2: If `origin` is not a constant, and there is an architecture that support 
>> the index as a variable, will the code crash here? Can we just limit the 
>> `origin` to a constant for this intrinsifaction in this PR? We can consider 
>> to extend it to variable in case any architecture has such requirement. WDYT?
>
>> Q1: Is it possible that just passing `origin->get_con()` to 
>> `VectorSliceNode` in case there are architectures that need it directly? Or, 
>> maybe we'd better add comment telling that the origin passed to 
>> `VectorSliceNode` is adjust to bytes.
>> 
> 
> Added comments.
> 
>> Q2: If `origin` is not a constant, and there is an architecture that support 
>> the index as a variable, will the code crash here? Can we just limit the 
>> `origin` to a constant for this intrinsifaction in this PR? We can consider 
>> to extend it to variable in case any architecture has such a requirement. 
>> WDYT?
> 
> Currently, inline expander only supports constant origin. I have added a 
> check to fail intrinsification and inline fallback using the hybrid call 
> generator.

Thanks for your updating! So maybe the matcher function 
`supports_vector_slice_with_non_constant_index()` could also be removed totally?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/24104#discussion_r2268675021

Reply via email to