RFR: 8304258: x86: Improve the code generation of VectorRearrange with int and float [v2]

Jatin Bhateja jbhateja at openjdk.org
Fri Mar 24 04:18:30 UTC 2023


On Thu, 23 Mar 2023 18:29:58 GMT, Quan Anh Mai <qamai at openjdk.org> wrote:

>> src/hotspot/cpu/x86/x86.ad line 8645:
>> 
>>> 8643:     int vlen_enc = vector_length_encoding(this);
>>> 8644:     if (vlen_enc == Assembler::AVX_128bit) {
>>> 8645:       __ vpermilps($dst$$XMMRegister, $src$$XMMRegister, $shuffle$$XMMRegister, vlen_enc);
>> 
>> Since you are emitting different instruction to save on domain switch over penalty for > 128 bit vectors, same can be done for 128 bit vectors also, you may use vpshufd for integers.
>
> I think `vpshufd` does not support variable indices so we can only use `vpermilps` here

Correct. Thanks

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13042#discussion_r1147100978


More information about the hotspot-compiler-dev mailing list