JDK-8372641 : [s390x] Test failure TestMergeStores.java
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 25
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: linux
  • CPU: s390x
  • Submitted: 2025-11-27
  • Updated: 2025-12-09
  • Resolved: 2025-12-09
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 27
27 masterFixed
Related Reports
Causes :  
Description
JDK-8347405 introduced a mergeStores optimisation which requires ReverseBytesS opcode and as it was not implemented for s390 the test case is failing.

log: 

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:887)
	at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:839)
	at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:431)
	at compiler.c2.TestMergeStores.main(TestMergeStores.java:126)
	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.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:335)
	at java.base/java.lang.Thread.run(Thread.java:1516)

   * @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#C#STORE_B_OF_CLASS#_", "byte\\[int:>=0] \\(java/lang/Cloneable,java/io/Serializable\\)", "1", "_#C#STORE_C_OF_CLASS#_", "byte\\[int:>=0] \\(java/lang/Cloneable,java/io/Serializable\\)", "0", "_#C#STORE_I_OF_CLASS#_", "byte\\[int:>=0] \\(java/lang/Cloneable,java/io/Serializable\\)", "0", "_#C#STORE_L_OF_CLASS#_", "byte\\[int:>=0] \\(java/lang/Cloneable,java/io/Serializable\\)", "1", "_#REVERSE_BYTES_L#_", "1"}, applyIfPlatformOr={}, failOn={}, applyIfPlatform={"big-endian", "true"}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={"UseUnalignedAccesses", "true"}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
     > Phase "PrintIdeal":
       - counts: Graph contains wrong number of nodes:
         * Constraint 1: "(\d+(\s){2}(StoreB.*)+(\s){2}===.*@(\w+: ?)+(\w/)*(\w$)*\bbyte\[int:>=0] \(java/lang/Cloneable,java/io/Serializable\)( \([^\)]+\))?:\w+.*)"
           - Failed comparison: [found] 8 = 1 [given]
             - Matched nodes (8):
               * 70  StoreB  === 53 7 68 28  |38  [[ 98 84 ]]  @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5;  Memory: @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5; !jvms: TestMergeStores::test500a @ bci:12 (line 1837)
               * 98  StoreB  === 83 70 96 75  |38  [[ 126 ]]  @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5;  Memory: @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5; !jvms: TestMergeStores::test500a @ bci:26 (line 1839)
               * 126  StoreB  === 83 98 124 103  |38  [[ 153 ]]  @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5;  Memory: @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5; !jvms: TestMergeStores::test500a @ bci:40 (line 1841)
               * 153  StoreB  === 83 126 151 130  |38  [[ 181 ]]  @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5;  Memory: @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5; !jvms: TestMergeStores::test500a @ bci:54 (line 1843)
               * 181  StoreB  === 83 153 179 158  |38  [[ 209 ]]  @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5;  Memory: @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5; !jvms: TestMergeStores::test500a @ bci:68 (line 1845)
               * 209  StoreB  === 83 181 207 186  |38  [[ 237 ]]  @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5;  Memory: @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5; !jvms: TestMergeStores::test500a @ bci:82 (line 1847)
               * 237  StoreB  === 83 209 235 214  |38  [[ 265 ]]  @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5;  Memory: @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5; !jvms: TestMergeStores::test500a @ bci:98 (line 1849)
               * 265  StoreB  === 83 237 263 242  |38  [[ 23 282 394 19 ]]  @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5;  Memory: @aryptr:byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):BotPTR:exact+any,iid=bot, idx=5; !jvms: TestMergeStores::test500a @ bci:114 (line 1851)
         * Constraint 4: "(\d+(\s){2}(StoreL.*)+(\s){2}===.*@(\w+: ?)+(\w/)*(\w$)*\bbyte\[int:>=0] \(java/lang/Cloneable,java/io/Serializable\)( \([^\)]+\))?:\w+.*)"
           - Failed comparison: [found] 0 = 1 [given]
           - No nodes matched!
         * Constraint 5: "(\d+(\s){2}(ReverseBytesL.*)+(\s){2}===.*)"
           - Failed comparison: [found] 0 = 1 [given]
           - No nodes matched!
Comments
Changeset: 35fe0b11 Branch: master Author: Harshit470250 <133243171+Harshit470250@users.noreply.github.com> Committer: Amit Kumar <amitkumar@openjdk.org> Date: 2025-12-09 04:59:53 +0000 URL: https://git.openjdk.org/jdk/commit/35fe0b11015bd3a88ee21c76b54f9d4969fdedf6
09-12-2025

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk/pull/28523 Date: 2025-11-27 07:09:01 +0000
27-11-2025