RFR: 8333248: VectorGatherMaskFoldingTest.java failed when maximum vector bits is 64 [v3]

Damon Fenacci dfenacci at openjdk.org
Thu Jun 13 09:00:13 UTC 2024


On Thu, 6 Jun 2024 03:47:52 GMT, Gui Cao <gcao at openjdk.org> wrote:

>> Hi, VectorGatherMaskFoldingTest.java Test fails when max vector bits is 64, when max vector bits is 64, LongVector.SPECIES_MAX.length() and DoubleVector.SPECIES_MAX.length() is 1. 
>> 
>> We can reproduce this problem in two ways:
>> 1. We can use riscv without rvv1.0 board to reproduce this problem
>> 2. Run VectorGatherMaskFoldingTest.java on aarch64 client mode without `-XX:+IncrementalInlineForceCleanup` Option,  the `-XX:+IncrementalInlineForceCleanup` is C2 Option, so we need to remove this Option from the VectorGatherMaskFoldingTest.main method. error message:
>> 
>> Base Test: @Test testDoubleVectorStoreLoadMaskedVector:
>> compiler.lib.ir_framework.shared.TestRunException: There was an error while invoking @Test method public static void compiler.vectorapi.VectorGatherMaskFoldingTest.testDoubleVectorStoreLoadMaskedVector(). Target: null. Arguments: <void>
>> 	at compiler.lib.ir_framework.test.BaseTest.invokeTestMethod(BaseTest.java:84)
>> 	at compiler.lib.ir_framework.test.BaseTest.invokeTest(BaseTest.java:71)
>> 	at compiler.lib.ir_framework.test.AbstractTest.run(AbstractTest.java:98)
>> 	at compiler.lib.ir_framework.test.TestVM.runTests(TestVM.java:861)
>> 	at compiler.lib.ir_framework.test.TestVM.start(TestVM.java:252)
>> 	at compiler.lib.ir_framework.test.TestVM.main(TestVM.java:165)
>> Caused by: java.lang.reflect.InvocationTargetException
>> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
>> 	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
>> 	at compiler.lib.ir_framework.test.BaseTest.invokeTestMethod(BaseTest.java:80)
>> 	... 5 more
>> Caused by: java.lang.RuntimeException: assertNotEquals: expected [1.0] to not equal [1.0]
>> 	at jdk.test.lib.Asserts.fail(Asserts.java:691)
>> 	at jdk.test.lib.Asserts.assertNotEquals(Asserts.java:451)
>> 	at jdk.test.lib.Asserts.assertNotEquals(Asserts.java:435)
>> 	at compiler.vectorapi.VectorGatherMaskFoldingTest.testDoubleVectorStoreLoadMaskedVector(VectorGatherMaskFoldingTest.java:1089)
>> 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>> 	... 7 more
>> 
>> 
>> For example, the following method will be failed:
>> 
>>     private static final VectorSpecies<Long> L_SPECIES = LongVector.SPECIES_MAX;
>>     private static final VectorSpecies<Double> D_SPECIES = DoubleVector.SPECIES_MAX;
>>     ...
>>     @Test
>>     @IR(counts = { IRNode.STORE_VECTOR_MASKED, ">= 1", IRNode.LOAD_VECTOR_MASKED, ">= 1" }, apply...
>
> Gui Cao has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix for some missed

In the description you mention
>Run VectorGatherMaskFoldingTest.java on aarch64 client mode without -XX:+IncrementalInlineForceCleanup Option, the -XX:+IncrementalInlineForceCleanup is C2 Option, so we need to remove this Option from the VectorGatherMaskFoldingTest.main method

I'm wondering why this happens: the test needs C2, so a C2 option should definitely be OK. Additionally what this option does is cleaning up more often when doing late inlining (it shouldn't be detrimental). Did you find out why you get an error? What kind of error is it?

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

PR Comment: https://git.openjdk.org/jdk/pull/19473#issuecomment-2165048762


More information about the hotspot-compiler-dev mailing list