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

Sandhya Viswanathan sviswanathan at openjdk.java.net
Fri Feb 19 02:33:40 UTC 2021


On Fri, 19 Feb 2021 01:56:19 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

>> Sandhya Viswanathan has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   corrected assert
>
> 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.

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

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


More information about the hotspot-compiler-dev mailing list