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