On Mon, 16 Sep 2024 07:45:51 GMT, Emanuel Peter <epe...@openjdk.org> wrote:

>> Jatin Bhateja has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Disabling VectorLoadShuffle bypassing optimization to comply with 
>> rearrange semantics at IR level.
>
> src/hotspot/share/opto/vectornode.cpp line 2122:
> 
>> 2120:   // index format by subsequent VectorLoadShuffle.
>> 2121:   int cast_vopc = VectorCastNode::opcode(0, index_elem_bt, true);
>> 2122:   Node* index_byte_vec = 
>> phase->transform(VectorCastNode::make(cast_vopc, index_vec, T_BYTE, 
>> num_elem));
> 
> This cast assumes that the indices cannot have more than 8 bits. This would 
> allow vector lengths of up to 256. This is fine for intel. But as far as I 
> know ARM has in principle longer vectors - up to 2048 bytes. Should we maybe 
> add some assert here to make sure we never badly truncate the index?

Shuffle overall is on our todo list, its a know limitation which we tried 
lifting once, yes you read it correctly, its a limitation for AARCH64 SVE once 
a 2048 bits vector systems are available, IIRC current max vector size on any 
available AARCH64 system is 256 bits, with Neoverse V2 they shrink the vector 
size back to 16 bytes.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20508#discussion_r1762504446

Reply via email to