RFR: 8312570: [TESTBUG] Jtreg compiler/loopopts/superword/TestDependencyOffsets.java fails on 512-bit SVE

Pengfei Li pli at openjdk.org
Mon Aug 28 09:01:14 UTC 2023


On Tue, 15 Aug 2023 12:55:35 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>>> We had this running on Aarch64 machines with asimd but without sve. Why do you think that this even passed with my 32 byte assumption (256 bit)? You say it should only have 128 bit.
>> 
>> Assuming NEON has larger vector size (256 bit, which is wrong) won't result in any failure on NEON-only machines. But it results in running less IR checks on 256-bit SVE. Let's take below IR condition change as an example.
>> 
>> -        applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8", "MaxVectorSize", "<= 16"},
>> +        applyIfAnd = {"AlignVector", "false", "MaxVectorSize", ">= 8"},
>> 
>> Before this patch, the existence of vector IRs won't be checked on 256-bit SVE as we have `MaxVectorSize <= 16`. After this patch, it will be checked. The main reason of failures on 512-bit SVE is the lack of `sve == false` check so the IR tests will run on machines with vector length > 256 bits.
>> 
>>> What is the max_pre for? Is it necessary?
>> 
>> It just adds a prefix to make the comment more precise, as SVE uses scalable vectors and the vector length ranges from 128 bits to 2048 bits.
>
> @pfustc you will have to merge the changes from [JDK-8310308](https://bugs.openjdk.org/browse/JDK-8310308).

Thanks @eme64 @vnkozlov for review. Patch is currently merged with master. The python generator file is also updated and attached to the JBS page.

> Ah. Just one more idea: Since you now have even longer vector widths with 2048 bits: Should we not add some cases with even larger dependency offsets? We should go further than -196, 196. We could consider adding 255, 256, 511, 512, 1024, 1536 (positive and negative). Of course the question is if that increases the runtime too much, what do you think?

This is a good suggestion but I don't think it's necessary now and in the near future. Although Arm architecture document says SVE vector length can be at most 2048 bits, so far, the largest SVE vector length of real AArch64 CPUs in the world is 512 bits. AFAIK, there will not be real CPUs with 1024-bit SVE in the short term. So I prefer keeping current offset values for now.

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

PR Comment: https://git.openjdk.org/jdk/pull/15010#issuecomment-1695308307


More information about the hotspot-compiler-dev mailing list