-
Bug
-
Resolution: Unresolved
-
P4
-
25
-
riscv
-
linux
Error logļ¼
```
Failed IR Rules (2) of Methods (2)
----------------------------------
1) Method "static java.lang.Object[] compiler.loopopts.superword.TestAlignVector.test13aIL(int[],long[])" - [Failed IR rules: 1]:
* @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={"avx2", "true", "rvv", "true"}, counts={"_#V#LOAD_VECTOR_I#_", "_@min(max_int, max_long)", "> 0", "_#V#LOAD_VECTOR_L#_", "_@min(max_int, max_long)", "> 0", "_#V#ADD_VI#_", "_@min(max_int, max_long)", "> 0", "_#V#ADD_VL#_", "_@min(max_int, max_long)", "> 0", "_#STORE_VECTOR#_", "> 0"}, applyIfPlatform={"64-bit", "true"}, failOn={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\\d+(\\s){2}(LoadVector.*)+(\\s){2}===.*vector[A-Za-z]<I,2>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
* Constraint 3: "(\\d+(\\s){2}(AddVI.*)+(\\s){2}===.*vector[A-Za-z]<I,2>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
2) Method "static java.lang.Object[] compiler.loopopts.superword.TestAlignVector.test13bIL(int[],long[])" - [Failed IR rules: 1]:
* @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={"avx2", "true", "rvv", "true"}, counts={"_#V#LOAD_VECTOR_I#_", "_@min(max_int, max_long)", "> 0", "_#V#LOAD_VECTOR_L#_", "_@min(max_int, max_long)", "> 0", "_#V#ADD_VI#_", "_@min(max_int, max_long)", "> 0", "_#V#ADD_VL#_", "_@min(max_int, max_long)", "> 0", "_#STORE_VECTOR#_", "> 0"}, applyIfPlatform={"64-bit", "true"}, failOn={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\\d+(\\s){2}(LoadVector.*)+(\\s){2}===.*vector[A-Za-z]<I,2>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
* Constraint 3: "(\\d+(\\s){2}(AddVI.*)+(\\s){2}===.*vector[A-Za-z]<I,2>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
>>> Check stdout for compilation output of the failed methods
```
The error occurs because the test13aIL and test13bIL cases require ensuring that vectors are larger than what unrolling produces; otherwise, the corresponding vector IR will not be generated.
We can use JTREG="JAVA_OPTIONS=-XX:+TraceSuperWordLoopUnrollAnalysis" during testing. We can see the tips in the error log:
```
76844 1333 b 4 compiler.loopopts.superword.TestAlignVector::test13aIL (42 bytes)
slp analysis fails: unroll limit greater than max vector
slp analysis: set max unroll to 4
```
Therefore, we need to limit MaxVectorSize to greater than or equal to 32 bytes.
- relates to
-
JDK-8352529 RISC-V: enable loopopts tests
-
- Resolved
-
- links to
-
Review(master) openjdk/jdk/26738