-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
P4
-
Affects Version/s: 26
-
Component/s: hotspot
Reproduces on mainline. Issue is unexpected constant folding when special random values are chosen in the test.
I reproduced the issue by replacing the constant values with special values, see below in comments.
I could detect one failure with this seed on an aarch64 machine, but the seed does not seem to work via SDE:
-Djdk.test.lib.random.seed=-8149712388031710130
(Note: this only triggers a subset of the failures anyway, so precise investigation of all cases is still required to ensure we don't have any other failures in the future)
Important: Float16 support is required. You can simulate it with SDE, for example.
--------------------- ORIGINAL REPORT -----------------------
Failing in fibers branch of loom repo, linux-aarch64-debug only.
One or more @IR rules failed:
Failed IR Rules (1) of Methods (1)
----------------------------------
1) Method "public short TestFloat16ScalarOperations.testRandomFP16ConstantPatternSet1()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#ADD_HF#_", " >0 ", "_#SUB_HF#_", " >0 ", "_#MUL_HF#_", " >0 ", "_#DIV_HF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 4: "(\\d+(\\s){2}(DivHF.*)+(\\s){2}===.*)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
>>> Check stdout for compilation output of the failed methods
I reproduced the issue by replacing the constant values with special values, see below in comments.
I could detect one failure with this seed on an aarch64 machine, but the seed does not seem to work via SDE:
-Djdk.test.lib.random.seed=-8149712388031710130
(Note: this only triggers a subset of the failures anyway, so precise investigation of all cases is still required to ensure we don't have any other failures in the future)
Important: Float16 support is required. You can simulate it with SDE, for example.
--------------------- ORIGINAL REPORT -----------------------
Failing in fibers branch of loom repo, linux-aarch64-debug only.
One or more @IR rules failed:
Failed IR Rules (1) of Methods (1)
----------------------------------
1) Method "public short TestFloat16ScalarOperations.testRandomFP16ConstantPatternSet1()" - [Failed IR rules: 1]:
* @IR rule 2: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#ADD_HF#_", " >0 ", "_#SUB_HF#_", " >0 ", "_#MUL_HF#_", " >0 ", "_#DIV_HF#_", " >0 "}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={"fphp", "true", "asimdhp", "true"}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 4: "(\\d+(\\s){2}(DivHF.*)+(\\s){2}===.*)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
>>> Check stdout for compilation output of the failed methods
- relates to
-
JDK-8352635 Improve inferencing of Float16 operations with constant inputs
-
- Resolved
-