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