RFR: 8365200: RISC-V: compiler/loopopts/superword/TestGeneralizedReductions.java fails with Zvbb and vlen=128

Andrey Turbanov aturbanov at openjdk.org
Mon Aug 11 20:27:10 UTC 2025


On Mon, 11 Aug 2025 02:06:02 GMT, Dingli Zhang <dzhang at openjdk.org> wrote:

> Hi all,
> Please take a look and review this PR, thanks!
> 
> [JDK-8352529](https://bugs.openjdk.org/browse/JDK-8352529) enables this IR verification test for riscv. This test pass with zvbb when vlen=256, but fail when vlen=128.
> 
> The reason for the error is the same as [JDK-8357694](https://bugs.openjdk.org/browse/JDK-8357694). 2-element reductions for INT/LONG are not profitable, so the compiler won't generate the corresponding reductions IR.
> 
> This issue was not addressed together with [JDK-8357694](https://bugs.openjdk.org/browse/JDK-8357694) because the testMapReductionOnGlobalAccumulator case where the error is reported has a different applyif method from other cases: zvbb needs to be enabled.
> 
> ### Test (fastdebug)
> - [x] Run compiler/loopopts/superword/TestGeneralizedReductions.java on qemu-system w/ and w/o zvbb when vlen=256
> - [x] Run compiler/loopopts/superword/TestGeneralizedReductions.java on qemu-system w/ and w/o zvbb when vlen=128

test/hotspot/jtreg/compiler/loopopts/superword/TestGeneralizedReductions.java line 169:

> 167:     @IR(applyIfPlatform = {"riscv64", "true"},
> 168:         applyIfCPUFeatureOr = {"zvbb", "true"},
> 169:         applyIfAnd = {"SuperWordReductions", "true","UsePopCountInstruction", "true", "MaxVectorSize", ">=32"},

Suggestion:

        applyIfAnd = {"SuperWordReductions", "true", "UsePopCountInstruction", "true", "MaxVectorSize", ">=32"},

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26719#discussion_r2267945882


More information about the hotspot-compiler-dev mailing list