This test - `compiler/vectorization/TestFloat16VectorOperations.java` fails on both AArch64 and x86_64 machines on the master branch of mainline JDK when run with these stress flags - `-XX:+UnlockDiagnosticVMOptions -XX:-TieredCompilation -XX:+StressArrayCopyMacroNode -XX:+StressLCM -XX:+StressGCM -XX:+StressIGVN -XX:+StressCCP -XX:+StressMacroExpansion -XX:+StressMethodHandleLinkerInlining -XX:+StressCompiledExceptionHandlers -XX:VerifyConstraintCasts=1 -XX:+StressLoopPeeling`.
Some of the IR rules fail -
One or more @IR rules failed:
Failed IR Rules (11) of Methods (11)
------------------------------------
1) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorAddConstInputFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#ADD_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(AddVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
2) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorAddFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#ADD_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(AddVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
3) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorDivFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#DIV_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(DivVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
4) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorFmaFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#FMA_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(FmaVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
5) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorFmaFloat16MixedConstants()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#FMA_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(FmaVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
6) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorFmaFloat16ScalarMixedConstants()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#FMA_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(FmaVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
7) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorMaxFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#MAX_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(MaxVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
8) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorMinFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#MIN_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(MinVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
9) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorMulFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#MUL_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(MulVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
10) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorSqrtFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#SQRT_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(SqrtVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
11) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorSubFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#SUB_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(SubVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
Running this test multiple times with these stress flags leads to a different mix of failures (of IR rules) every time.
Some of the IR rules fail -
One or more @IR rules failed:
Failed IR Rules (11) of Methods (11)
------------------------------------
1) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorAddConstInputFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#ADD_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(AddVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
2) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorAddFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#ADD_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(AddVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
3) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorDivFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#DIV_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(DivVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
4) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorFmaFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#FMA_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(FmaVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
5) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorFmaFloat16MixedConstants()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#FMA_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(FmaVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
6) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorFmaFloat16ScalarMixedConstants()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#FMA_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(FmaVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
7) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorMaxFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#MAX_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(MaxVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
8) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorMinFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#MIN_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(MinVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
9) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorMulFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#MUL_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(MulVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
10) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorSqrtFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#SQRT_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(SqrtVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
11) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorSubFloat16()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#SUB_VHF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(SubVHF.*)+(\s){2}===.*vector[A-Za-z]<S,8>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
Running this test multiple times with these stress flags leads to a different mix of failures (of IR rules) every time.