JDK-8305055 : IR check fails on some aarch64 platforms
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 21
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: aarch64
  • Submitted: 2023-03-28
  • Updated: 2024-01-11
  • Resolved: 2023-03-31
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 21
21 b17Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
IR check fails on some aarch64 platforms in the following testcases:
compiler/c2/irTests/TestVectorizeTypeConversion.java
compiler/vectorization/runner/ArrayTypeConvertTest.java

Command Line:
/home/ent-user/ci-scripts/jdk_build/build-fastdebug/images/jdk/bin/java -DReproduce=true -cp /home/ent-user/ci-scripts/jdk_build/jtwork_rerun/classes/compiler/c2/irTests/TestVectorizeTypeConversion.d:/home/ent-user/ci-scripts/jdk_build/jdk_src/test/hotspot/jtreg/compiler/c2/irTests:/home/ent-user/ci-scripts/jdk_build/jtwork_rerun/classes/test/lib:/home/ent-user/ci-scripts/jdk_build/jtwork_rerun/classes:/home/ent-user/jtreg/jtreg-git/build/images/jtreg/lib/javatest.jar:/home/ent-user/jtreg/jtreg-git/build/images/jtreg/lib/jtreg.jar:/home/ent-user/jtreg/jtreg-git/build/images/jtreg/lib/junit-platform-console-standalone-1.8.2.jar:/home/ent-user/jtreg/jtreg-git/build/images/jtreg/lib/testng-7.3.0.jar:/home/ent-user/jtreg/jtreg-git/build/images/jtreg/lib/guice-4.2.3.jar:/home/ent-user/jtreg/jtreg-git/build/images/jtreg/lib/jcommander-1.78.jar -Djava.library.path=/home/ent-user/ci-scripts/jdk_build/build-fastdebug/images/test/hotspot/jtreg/native -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -ea -esa -Xmx768m -server -Djdk.test.docker.image.name=ubuntu -Djdk.test.docker.image.version=22.04 -Djdk.incubator.vector.test.loop-iterations=500 -DweakAttempts=100000 -Dir.framework.server.port=44321 -XX:+IgnoreUnrecognizedVMOptions -XX:+SuperWordRTDepCheck -XX:+PrintCompilation -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation -XX:CompilerDirectivesFile=test-vm-compile-commands-pid-2905747.log -XX:CompilerDirectivesLimit=31 -XX:-OmitStackTraceInFastThrow -DShouldDoIRVerification=true -XX:-BackgroundCompilation -XX:CompileCommand=quiet compiler.lib.ir_framework.test.TestVM compiler.c2.irTests.TestVectorizeTypeConversion

One or more @IR rules failed:

Failed IR Rules (1) of Methods (1)
----------------------------------
1) Method "private static void compiler.c2.irTests.TestVectorizeTypeConversion.testConvI2D(double[],int[])" - [Failed IR rules: 1]:
   * @IR rule 1: "@compiler.lib.ir_framework.IR(applyIfCPUFeatureAnd={}, phase={DEFAULT}, applyIf={}, applyIfCPUFeatureOr={}, applyIfCPUFeature={}, counts={"_#LOAD_VECTOR#_", ">0", "_#VECTOR_CAST_I2X#_", ">0", "_#STORE_VECTOR#_", ">0"}, failOn={}, applyIfAnd={}, applyIfOr={}, applyIfNot={})"
     > Phase "PrintIdeal":
       - counts: Graph contains wrong number of nodes:
         * Constraint 1: "(\\d+(\\s){2}(LoadVector.*)+(\\s){2}===.*)"
           - Failed comparison: [found] 0 > 0 [given]
           - No nodes matched!
         * Constraint 2: "(\\d+(\\s){2}(VectorCastI2X.*)+(\\s){2}===.*)"
           - Failed comparison: [found] 0 > 0 [given]
           - No nodes matched!
         * Constraint 3: "(\\d+(\\s){2}(StoreVector.*)+(\\s){2}===.*)"
           - Failed comparison: [found] 0 > 0 [given]
           - No nodes matched!

Command Line:
/home/ent-user/ci-scripts/jdk_build/build-fastdebug/images/jdk/bin/java -DReproduce=true -cp /home/ent-user/ci-scripts/jdk_build/jtwork_rerun/classes/compiler/vectorization/runner/ArrayTypeConvertTest.d:/home/ent-user/ci-scripts/jdk_build/jdk_src/test/hotspot/jtreg/compiler/vectorization/runner:/home/ent-user/ci-scripts/jdk_build/jtwork_rerun/classes/test/lib:/home/ent-user/ci-scripts/jdk_build/jdk_src/test/lib:/home/ent-user/ci-scripts/jdk_build/jtwork_rerun/classes:/home/ent-user/ci-scripts/jdk_build/jdk_src/test/hotspot/jtreg:/home/ent-user/jtreg/jtreg-git/build/images/jtreg/lib/javatest.jar:/home/ent-user/jtreg/jtreg-git/build/images/jtreg/lib/jtreg.jar -Djava.library.path=/home/ent-user/ci-scripts/jdk_build/build-fastdebug/images/test/hotspot/jtreg/native -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -ea -esa -Xmx768m -server -Djdk.test.docker.image.name=ubuntu -Djdk.test.docker.image.version=22.04 -Djdk.incubator.vector.test.loop-iterations=500 -DweakAttempts=100000 -Dir.framework.server.port=42713 -XX:-OptimizeFill -XX:+PrintCompilation -XX:+UnlockDiagnosticVMOptions -XX:+LogCompilation -XX:CompilerDirectivesFile=test-vm-compile-commands-pid-2905842.log -XX:CompilerDirectivesLimit=161 -XX:-OmitStackTraceInFastThrow -DShouldDoIRVerification=true -XX:-BackgroundCompilation -XX:CompileCommand=quiet compiler.lib.ir_framework.test.TestVM compiler.vectorization.runner.ArrayTypeConvertTest

One or more @IR rules failed:

Failed IR Rules (3) of Methods (3)
----------------------------------
1) Method "public double[] compiler.vectorization.runner.ArrayTypeConvertTest.convertFloatToDouble()" - [Failed IR rules: 1]:
   * @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfCPUFeatureAnd={}, applyIfCPUFeatureOr={"asimd", "true", "avx", "true"}, applyIf={}, applyIfCPUFeature={}, counts={"_#VECTOR_CAST_F2X#_", ">0"}, failOn={}, applyIfAnd={}, applyIfOr={}, applyIfNot={})"
     > Phase "PrintIdeal":
       - counts: Graph contains wrong number of nodes:
         * Constraint 1: "(\\d+(\\s){2}(VectorCastF2X.*)+(\\s){2}===.*)"
           - Failed comparison: [found] 0 > 0 [given]
           - No nodes matched!

2) Method "public long[] compiler.vectorization.runner.ArrayTypeConvertTest.convertFloatToLong()" - [Failed IR rules: 1]:
   * @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfCPUFeatureAnd={}, applyIfCPUFeatureOr={"asimd", "true", "avx512dq", "true"}, applyIf={}, applyIfCPUFeature={}, counts={"_#VECTOR_CAST_F2X#_", ">0"}, failOn={}, applyIfAnd={}, applyIfOr={}, applyIfNot={})"
     > Phase "PrintIdeal":
       - counts: Graph contains wrong number of nodes:
         * Constraint 1: "(\\d+(\\s){2}(VectorCastF2X.*)+(\\s){2}===.*)"
           - Failed comparison: [found] 0 > 0 [given]
           - No nodes matched!

3) Method "public double[] compiler.vectorization.runner.ArrayTypeConvertTest.convertIntToDouble()" - [Failed IR rules: 1]:
   * @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfCPUFeatureAnd={}, applyIfCPUFeatureOr={"asimd", "true", "avx", "true"}, applyIf={}, applyIfCPUFeature={}, counts={"_#VECTOR_CAST_I2X#_", ">0"}, failOn={}, applyIfAnd={}, applyIfOr={}, applyIfNot={})"
     > Phase "PrintIdeal":
       - counts: Graph contains wrong number of nodes:
         * Constraint 1: "(\\d+(\\s){2}(VectorCastI2X.*)+(\\s){2}===.*)"
           - Failed comparison: [found] 0 > 0 [given]
           - No nodes matched!

Comments
Changeset: dea9db2d Author: Fei Gao <fgao@openjdk.org> Date: 2023-03-31 09:15:24 +0000 URL: https://git.openjdk.org/jdk/commit/dea9db2d0a28b379303ce867df6b125f5fdfcf16
31-03-2023

ILW = Test fails IR verification (test bug), single test on some AArch64 machines, no workaround = MLH = P4
30-03-2023

A pull request was submitted for review. URL: https://git.openjdk.org/jdk/pull/13236 Date: 2023-03-30 04:13:39 +0000
30-03-2023