RFR: 8308994: C2: Re-implement experimental post loop vectorization [v2]

Pengfei Li pli at openjdk.org
Mon Jul 3 09:15:20 UTC 2023


On Fri, 23 Jun 2023 14:44:43 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> Pengfei Li has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Address part of comments from Emanuel
>
> src/hotspot/share/opto/vmaskloop.cpp line 548:
> 
>> 546:   // Check supported memory access via SWPointer. It's not supported if
>> 547:   //  1) The constructed SWPointer is invalid
>> 548:   //  2) Address is growing down (index scale * loop stride < 0)
> 
> Is that a limitation that could be removed in the future?

Yes, at least on SVE2. For growing up memory accesses, we generate vector masks that indicate active lanes at lower parts of a vector. But it's opposite for growing down memory accesses where active lanes are at higher parts of a vector. Only SVE2 of AArch64 can generate vector masks in this way, current SVE(1) can not. I'm not sure whether x86 AVX-512 has the similar ability.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14581#discussion_r1250534252


More information about the hotspot-compiler-dev mailing list