RFR: 8365844: RISC-V: TestBadFormat.java fails when running without RVV
Dingli Zhang
dzhang at openjdk.org
Thu Aug 21 01:58:55 UTC 2025
On Wed, 20 Aug 2025 13:03:05 GMT, Emanuel Peter <epeter at openjdk.org> wrote:
>> Hi,
>> Can you help to review this patch? Thanks!
>>
>> We noticed that testlibrary_tests/ir_framework/tests/TestBadFormat.java fails when running tier4 tests on p550.
>> The reason for the error is that the Vector test related to badVectorNodeSize requires RVV on riscv, otherwise the expected passing case will fail and cannot match FailCount.
>>
>> ### Test (fastdebug)
>> - [x] Run testlibrary_tests/ir_framework/tests/TestBadFormat.java on k1/k230/sg2042
>
> test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestBadFormat.java line 43:
>
>> 41: * @test
>> 42: * @requires vm.debug == true & vm.compiler2.enabled & vm.flagless
>> 43: * @requires (os.arch != "riscv64" | (os.arch == "riscv64" & vm.cpu.features ~= ".*rvv.*"))
>
> Generally, it would be prefereable to adjust the IR rules. But I'm not sure if that is preferrable here. So I think that this is the right solution.
>
> @chhagedorn This test may fail on other platforms as well that don't have all the required optimizations, such as vectors and others. Should we accept this solution?
@eme64 Thanks for the review!
I have another method to change the IR matching rules for riscv64 so that other tests can be run without RVV:
diff --git a/test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestBadFormat.java b/test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestBadFormat.java
index ac8867f3985..2bf14bdfa5a 100644
--- a/test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestBadFormat.java
+++ b/test/hotspot/jtreg/testlibrary_tests/ir_framework/tests/TestBadFormat.java
@@ -1124,9 +1124,21 @@ public void wrongCountString() {}
@Test
@FailCount(8)
- @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0"})
- @IR(counts = {IRNode.LOAD_VECTOR_I, IRNode.VECTOR_SIZE_MAX, "> 0"}) // valid
- @IR(counts = {IRNode.LOAD_VECTOR_I, IRNode.VECTOR_SIZE_ANY, "> 0"}) // valid
+ @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0"},
+ applyIfPlatform = {"riscv64", "false"})
+ @IR(counts = {IRNode.LOAD_VECTOR_I, "> 0"},
+ applyIfPlatform = {"riscv64", "true"},
+ applyIfCPUFeature = {"rvv", "true"})
+ @IR(counts = {IRNode.LOAD_VECTOR_I, IRNode.VECTOR_SIZE_MAX, "> 0"},
+ applyIfPlatform = {"riscv64", "false"}) // valid
+ @IR(counts = {IRNode.LOAD_VECTOR_I, IRNode.VECTOR_SIZE_MAX, "> 0"},
+ applyIfPlatform = {"riscv64", "true"},
+ applyIfCPUFeature = {"rvv", "true"})
+ @IR(counts = {IRNode.LOAD_VECTOR_I, IRNode.VECTOR_SIZE_ANY, "> 0"},
+ applyIfPlatform = {"riscv64", "false"}) // valid
+ @IR(counts = {IRNode.LOAD_VECTOR_I, IRNode.VECTOR_SIZE_ANY, "> 0"},
+ applyIfPlatform = {"riscv64", "true"},
+ applyIfCPUFeature = {"rvv", "true"})
@IR(counts = {IRNode.LOAD_VECTOR_I, IRNode.VECTOR_SIZE + "", "> 0"})
@IR(counts = {IRNode.LOAD_VECTOR_I, IRNode.VECTOR_SIZE + "xxx", "> 0"})
@IR(counts = {IRNode.LOAD_VECTOR_I, IRNode.VECTOR_SIZE + "min()", "> 0"})
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26855#discussion_r2288398891
More information about the hotspot-compiler-dev
mailing list