RFR: 8287970: riscv: jdk/incubator/vector/*VectorTests failing
Feilong Jiang
fjiang at openjdk.java.net
Wed Jun 8 06:12:58 UTC 2022
The following 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:
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
[JDK-8284960](https://bugs.openjdk.org/browse/JDK-8284960) added a new vector operation VectorOperations.BIT_COUNT, which needs the support of PopCountV*.
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] 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
Additional Tests:
- [x] jdk/incubator/vector (release with UseRVV on QEMU)
- [ ] hotspot:tier1 (release with UseRVV on QEMU)
-------------
Commit messages:
- remove C2 instruction vpopcountI
Changes: https://git.openjdk.java.net/jdk/pull/9079/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=9079&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8287970
Stats: 12 lines in 1 file changed: 0 ins; 12 del; 0 mod
Patch: https://git.openjdk.java.net/jdk/pull/9079.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/9079/head:pull/9079
PR: https://git.openjdk.java.net/jdk/pull/9079
More information about the hotspot-compiler-dev
mailing list