-
Bug
-
Resolution: Unresolved
-
P4
-
24
-
ppc, s390x
-
generic
The test case `test2` of compiler/c2/TestCastX2NotProcessedIGVN.java fails on following platforms:
- ppc64le and ppc64
- s390x
The compilation succeeds but the expected `LoadVector` nodes are not found.
It should be analyzed if vectorization of the simple loop really fails and why it fails.
I expected that the optimization depends on `-XX:+UseSuperWord` but with `-XX:-UseSuperWord` the test does not fail on x86_64 either.
For the time being the test can be annotated with a positive list of platforms where the ir is as expected (i.e. on other platforms `test2` will be run and compiled but the ir is not checked).
OUTPUT of a test failure on ppc64le (lscpu: POWER10 (architected), altivec supported)
Failed IR Rules (1) of Methods (1)
----------------------------------
1) Method "public static int compiler.c2.TestCastX2NotProcessedIGVN.test2(int,int[])" - [Failed IR rules: 1]:
* @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#LOAD_VECTOR_I#_", "> 1"}, applyIfPlatform={}, applyIfPlatformOr={}, failOn={}, 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,4>)"
- Failed comparison: [found] 0 > 1 [given]
- No nodes matched!
>>> Check stdout for compilation output of the failed methods
#############################################################
- To only run the failed tests use -DTest, -DExclude,
and/or -DScenarios.
- To also get the standard output of the test VM run with
-DReportStdout=true or for even more fine-grained logging
use -DVerbose=true.
#############################################################
compiler.lib.ir_framework.driver.irmatching.IRViolationException: There were one or multiple IR rule failures. Please check stderr for more information.
at compiler.lib.ir_framework.driver.irmatching.IRMatcher.reportFailures(IRMatcher.java:61)
at compiler.lib.ir_framework.driver.irmatching.IRMatcher.match(IRMatcher.java:49)
at compiler.lib.ir_framework.TestFramework.runTestVM(TestFramework.java:765)
at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:729)
at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:349)
at compiler.lib.ir_framework.TestFramework.runWithFlags(TestFramework.java:246)
at compiler.c2.TestCastX2NotProcessedIGVN.main(TestCastX2NotProcessedIGVN.java:45)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:333)
at java.base/java.lang.Thread.run(Thread.java:1576)
JavaTest Message: Test threw exception: compiler.lib.ir_framework.driver.irmatching.IRViolationException
JavaTest Message: shutting down test
- ppc64le and ppc64
- s390x
The compilation succeeds but the expected `LoadVector` nodes are not found.
It should be analyzed if vectorization of the simple loop really fails and why it fails.
I expected that the optimization depends on `-XX:+UseSuperWord` but with `-XX:-UseSuperWord` the test does not fail on x86_64 either.
For the time being the test can be annotated with a positive list of platforms where the ir is as expected (i.e. on other platforms `test2` will be run and compiled but the ir is not checked).
OUTPUT of a test failure on ppc64le (lscpu: POWER10 (architected), altivec supported)
Failed IR Rules (1) of Methods (1)
----------------------------------
1) Method "public static int compiler.c2.TestCastX2NotProcessedIGVN.test2(int,int[])" - [Failed IR rules: 1]:
* @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#LOAD_VECTOR_I#_", "> 1"}, applyIfPlatform={}, applyIfPlatformOr={}, failOn={}, 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,4>)"
- Failed comparison: [found] 0 > 1 [given]
- No nodes matched!
>>> Check stdout for compilation output of the failed methods
#############################################################
- To only run the failed tests use -DTest, -DExclude,
and/or -DScenarios.
- To also get the standard output of the test VM run with
-DReportStdout=true or for even more fine-grained logging
use -DVerbose=true.
#############################################################
compiler.lib.ir_framework.driver.irmatching.IRViolationException: There were one or multiple IR rule failures. Please check stderr for more information.
at compiler.lib.ir_framework.driver.irmatching.IRMatcher.reportFailures(IRMatcher.java:61)
at compiler.lib.ir_framework.driver.irmatching.IRMatcher.match(IRMatcher.java:49)
at compiler.lib.ir_framework.TestFramework.runTestVM(TestFramework.java:765)
at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:729)
at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:349)
at compiler.lib.ir_framework.TestFramework.runWithFlags(TestFramework.java:246)
at compiler.c2.TestCastX2NotProcessedIGVN.main(TestCastX2NotProcessedIGVN.java:45)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:333)
at java.base/java.lang.Thread.run(Thread.java:1576)
JavaTest Message: Test threw exception: compiler.lib.ir_framework.driver.irmatching.IRViolationException
JavaTest Message: shutting down test
- relates to
-
JDK-8343068 C2: CastX2P Ideal transformation not always applied
- Resolved