JDK-8367487 : Test compiler/loopopts/superword/TestReinterpretAndCast.java fails on Linux aarch64 with Cavium CPU
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 26
  • Priority: P4
  • Status: New
  • Resolution: Unresolved
  • OS: linux
  • CPU: aarch64
  • Submitted: 2025-09-12
  • Updated: 2025-09-12
Related Reports
Relates :  
Description
The recently added test  compiler/loopopts/superword/TestReinterpretAndCast.java  fails on Linux aarch64 with a Cavium CPU  (0x43)  . Error output is :

One or more @IR rules failed:

Failed IR Rules (1) of Methods (1)
----------------------------------
1) Method "public static void compiler.loopopts.superword.TestReinterpretAndCast.test2(int[],short[])" - [Failed IR rules: 1]:
   * @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={"avx", "true", "asimd", "true"}, counts={"_#V#LOAD_VECTOR_I#_", "_@min(max_int, max_float, max_short)", "> 0", "_#V#VECTOR_CAST_F2HF#_", "_@min(max_int, max_float, max_short)", "> 0", "_#STORE_VECTOR#_", "> 0", "_#VECTOR_REINTERPRET#_", "> 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,4>)"
           - Failed comparison: [found] 0 > 0 [given]
           - No nodes matched!
         * Constraint 2: "(\\d+(\\s){2}(VectorCastF2HF.*)+(\\s){2}===.*vector[A-Za-z]<S,4>)"
           - 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!
         * Constraint 4: "(\\d+(\\s){2}(VectorReinterpret.*)+(\\s){2}===.*)"
           - Failed comparison: [found] 0 > 0 [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:882)
	at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:834)
	at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:426)
	at compiler.lib.ir_framework.TestFramework.runWithFlags(TestFramework.java:257)
	at compiler.loopopts.superword.TestReinterpretAndCast.main(TestReinterpretAndCast.java:48)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
	at java.base/java.lang.Thread.run(Thread.java:1474)