RFR: 8261542: X86 slice and unslice intrinsics for 256-bit byte/short vectors [v3]

Vladimir Kozlov kvn at openjdk.java.net
Fri Feb 19 05:52:41 UTC 2021


On Fri, 19 Feb 2021 02:30:58 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:

>> src/hotspot/cpu/x86/x86.ad line 1695:
>> 
>>> 1693:       if(vlen == 2) {
>>> 1694:         return false; // Implementation limitation due to how shuffle is loaded
>>> 1695:       } else if (size_in_bits == 256 && UseAVX < 2) {
>> 
>> Should this be >= 256?
>
> The general >= 256 part is taken care of early on in match_rule_supported_vector as below:
>   if (!vector_size_supported(bt, vlen)) {
>     return false;
>   }
> The only additional check that is being done here is for float and double  256 bit vectors that are supported on AVX=1 and will pass the vector_size_supported check.
> This is because the VectorLoadShuffle cannot be performed for 256 bit vectors on AVX1 platform as it needs "integer" 256 bit instructions which are only available on AVX2.

Okay.

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

PR: https://git.openjdk.java.net/jdk/pull/2520


More information about the hotspot-compiler-dev mailing list