-
Enhancement
-
Resolution: Fixed
-
P3
-
24
-
b23
-
s390x
-
linux
Optimize the implementation of divideUnsigned() and remainderUnsigned() methods in java.lang.Integer and java.lang.Long classes by using s390x z_dlr, z_dlgr instructions. Cloned from JDK-8282221
Test is failing due to missing implementation: compiler/c2/TestDivModNodes.java
Log:
One or more @IR rules failed:
Failed IR Rules (2) of Methods (2)
----------------------------------
1) Method "private static void compiler.c2.TestDivModNodes.testUnsignedIntDivMod(int,int)" - [Failed IR rules: 1]:
* @IR rule 3: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#UDIV_I#_", "1", "_#UMOD_I#_", "1"}, applyIfPlatformOr={}, applyIfPlatform={}, failOn={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={"UseDivMod", "false"}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\\d+(\\s){2}(UDivI.*)+(\\s){2}===.*)"
- Failed comparison: [found] 0 = 1 [given]
- No nodes matched!
* Constraint 2: "(\\d+(\\s){2}(UModI.*)+(\\s){2}===.*)"
- Failed comparison: [found] 0 = 1 [given]
- No nodes matched!
2) Method "private static void compiler.c2.TestDivModNodes.testUnsignedLongDivMod(long,long)" - [Failed IR rules: 1]:
* @IR rule 3: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#UDIV_L#_", "1", "_#UMOD_L#_", "1"}, applyIfPlatformOr={}, applyIfPlatform={}, failOn={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={"UseDivMod", "false"}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\\d+(\\s){2}(UDivL.*)+(\\s){2}===.*)"
- Failed comparison: [found] 0 = 1 [given]
- No nodes matched!
* Constraint 2: "(\\d+(\\s){2}(UModL.*)+(\\s){2}===.*)"
- Failed comparison: [found] 0 = 1 [given]
- No nodes matched!
>>> Check stdout for compilation output of the failed methods
Test is failing due to missing implementation: compiler/c2/TestDivModNodes.java
Log:
One or more @IR rules failed:
Failed IR Rules (2) of Methods (2)
----------------------------------
1) Method "private static void compiler.c2.TestDivModNodes.testUnsignedIntDivMod(int,int)" - [Failed IR rules: 1]:
* @IR rule 3: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#UDIV_I#_", "1", "_#UMOD_I#_", "1"}, applyIfPlatformOr={}, applyIfPlatform={}, failOn={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={"UseDivMod", "false"}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\\d+(\\s){2}(UDivI.*)+(\\s){2}===.*)"
- Failed comparison: [found] 0 = 1 [given]
- No nodes matched!
* Constraint 2: "(\\d+(\\s){2}(UModI.*)+(\\s){2}===.*)"
- Failed comparison: [found] 0 = 1 [given]
- No nodes matched!
2) Method "private static void compiler.c2.TestDivModNodes.testUnsignedLongDivMod(long,long)" - [Failed IR rules: 1]:
* @IR rule 3: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#UDIV_L#_", "1", "_#UMOD_L#_", "1"}, applyIfPlatformOr={}, applyIfPlatform={}, failOn={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={"UseDivMod", "false"}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\\d+(\\s){2}(UDivL.*)+(\\s){2}===.*)"
- Failed comparison: [found] 0 = 1 [given]
- No nodes matched!
* Constraint 2: "(\\d+(\\s){2}(UModL.*)+(\\s){2}===.*)"
- Failed comparison: [found] 0 = 1 [given]
- No nodes matched!
>>> Check stdout for compilation output of the failed methods
- relates to
-
JDK-8282221 x86 intrinsics for divideUnsigned and remainderUnsigned methods in java.lang.Integer and java.lang.Long
-
- Resolved
-
-
JDK-8332442 C2: refactor Mod cases in Compile::final_graph_reshaping_main_switch()
-
- Resolved
-
- links to
-
Commit(master) openjdk/jdk/c1251780
-
Review(master) openjdk/jdk/21559