JDK-8287970 : riscv: jdk/incubator/vector/*VectorTests failing
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 19
  • Priority: P3
  • Status: Open
  • Resolution: Unresolved
  • OS: linux
  • CPU: riscv
  • Submitted: 2022-06-08
  • Updated: 2022-06-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 19
19Unresolved
Related Reports
Relates :  
Description
JDK-8284960 added a new vector operation VectorOperations.BIT_COUNT, which needs the support of PopCountV*. The following tests failed when enabling UseRVV:

jdk/incubator/vector/Byte256VectorTests.java
jdk/incubator/vector/ByteMaxVectorTests.java
jdk/incubator/vector/Int256VectorTests.java
jdk/incubator/vector/IntMaxVectorTests.java
jdk/incubator/vector/Short256VectorTests.java
jdk/incubator/vector/ShortMaxVectorTests.java

Tests are failing with "assert(n_type->isa_vect() == __null || lrg._is_vector || ireg == Op_RegD || ireg == Op_RegL || ireg == Op_RegVectMask) failed: vector must be in vector registers" because C2 instruct "vpopcountI" stores the result into a general-purpose register (GPR) instead of a vector register.

Currently, riscv vector extension vpopc.m instruction counts the number of mask elements of the active elements of the vector source mask register that has the value 1 and writes the result to a scalar x register. [1] PopCountV* needs to write back the pop counting results to vector registers, there is no single instruction in rvv that can satisfy the requirement. So we decide to remove the vpopcountI instruct for now.

[1]: https://github.com/riscv/riscv-v-spec/releases/download/v1.0/riscv-v-spec-1.0.pdf
Comments
ILW = missing riscv support for vector operation; test failures when enaling UseRVV; disable UseRVV = MMM = P3
08-06-2022

A pull request was submitted for review. URL: https://git.openjdk.java.net/jdk/pull/9079 Date: 2022-06-08 06:06:08 +0000
08-06-2022