-
Type:
Bug
-
Resolution: Fixed
-
Priority:
P4
-
Affects Version/s: 26
-
Component/s: hotspot
-
b03
-
x86_64
The following test fails reliably on my Linux x86 machine with a fastdebug build. Maybe related to JDK-8367487? Spotted this when running hotspot:tier1 locally.
$ make -C ../build/mainline test TEST=compiler/loopopts/superword/TestReinterpretAndCast.java
...
One or more @IR rules failed:
Failed IR Rules (2) of Methods (2)
----------------------------------
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={}, 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={"avx", "true"}, 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!
2) Method "public static void compiler.loopopts.superword.TestReinterpretAndCast.test3(short[],long[])" - [Failed IR rules: 1]:
* @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#LOAD_VECTOR_S#_", "_@min(max_float, max_short, max_long)", "> 0", "_#V#VECTOR_CAST_HF2F#_", "_@min(max_float, max_short, max_long)", "> 0", "_#V#VECTOR_CAST_I2L#_", "_@min(max_float, max_short, max_long)", "> 0", "_#STORE_VECTOR#_", "> 0", "_#VECTOR_REINTERPRET#_", "> 0"}, applyIfPlatform={"64-bit", "true"}, failOn={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeature={"avx", "true"}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(LoadVector.*)+(\s){2}===.*vector[A-Za-z]<S,2>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
* Constraint 2: "(\d+(\s){2}(VectorCastHF2F.*)+(\s){2}===.*vector[A-Za-z]<F,2>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
* Constraint 3: "(\d+(\s){2}(VectorCastI2X.*)+(\s){2}===.*vector[A-Za-z]<J,2>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
* Constraint 4: "(\d+(\s){2}(StoreVector.*)+(\s){2}===.*)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
* Constraint 5: "(\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:887)
at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:839)
at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:431)
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:1516)
JavaTest Message: Test threw exception: compiler.lib.ir_framework.driver.irmatching.IRViolationException: There were one or multiple IR rule failures. Please check stderr for more information.
JavaTest Message: shutting down test
My machine:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 46 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 32
On-line CPU(s) list: 0-31
Vendor ID: GenuineIntel
Model name: Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHz
CPU family: 6
Model: 45
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 2
Stepping: 7
CPU(s) scaling MHz: 100%
CPU max MHz: 2400.0000
CPU min MHz: 1200.0000
BogoMIPS: 4788.49
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid
dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid xsaveopt dtherm arat pln pts vnmi md_clear flush_l1d
Virtualization features:
Virtualization: VT-x
Caches (sum of all):
L1d: 512 KiB (16 instances)
L1i: 512 KiB (16 instances)
L2: 4 MiB (16 instances)
L3: 40 MiB (2 instances)
NUMA:
NUMA node(s): 2
NUMA node0 CPU(s): 0-7,16-23
NUMA node1 CPU(s): 8-15,24-31
Vulnerabilities:
Gather data sampling: Not affected
Indirect target selection: Not affected
Itlb multihit: KVM: Mitigation: Split huge pages
L1tf: Mitigation; PTE Inversion; VMX conditional cache flushes, SMT vulnerable
Mds: Mitigation; Clear CPU buffers; SMT vulnerable
Meltdown: Mitigation; PTI
Mmio stale data: Unknown: No mitigations
Reg file data sampling: Not affected
Retbleed: Not affected
Spec rstack overflow: Not affected
Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Spectre v2: Mitigation; Retpolines; IBPB conditional; IBRS_FW; STIBP conditional; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected
Srbds: Not affected
Tsa: Not affected
Tsx async abort: Not affected
Vmscape: Mitigation; IBPB before exit to userspace
$ make -C ../build/mainline test TEST=compiler/loopopts/superword/TestReinterpretAndCast.java
...
One or more @IR rules failed:
Failed IR Rules (2) of Methods (2)
----------------------------------
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={}, 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={"avx", "true"}, 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!
2) Method "public static void compiler.loopopts.superword.TestReinterpretAndCast.test3(short[],long[])" - [Failed IR rules: 1]:
* @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#V#LOAD_VECTOR_S#_", "_@min(max_float, max_short, max_long)", "> 0", "_#V#VECTOR_CAST_HF2F#_", "_@min(max_float, max_short, max_long)", "> 0", "_#V#VECTOR_CAST_I2L#_", "_@min(max_float, max_short, max_long)", "> 0", "_#STORE_VECTOR#_", "> 0", "_#VECTOR_REINTERPRET#_", "> 0"}, applyIfPlatform={"64-bit", "true"}, failOn={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeature={"avx", "true"}, applyIfAnd={}, applyIfNot={})"
> Phase "PrintIdeal":
- counts: Graph contains wrong number of nodes:
* Constraint 1: "(\d+(\s){2}(LoadVector.*)+(\s){2}===.*vector[A-Za-z]<S,2>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
* Constraint 2: "(\d+(\s){2}(VectorCastHF2F.*)+(\s){2}===.*vector[A-Za-z]<F,2>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
* Constraint 3: "(\d+(\s){2}(VectorCastI2X.*)+(\s){2}===.*vector[A-Za-z]<J,2>)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
* Constraint 4: "(\d+(\s){2}(StoreVector.*)+(\s){2}===.*)"
- Failed comparison: [found] 0 > 0 [given]
- No nodes matched!
* Constraint 5: "(\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:887)
at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:839)
at compiler.lib.ir_framework.TestFramework.start(TestFramework.java:431)
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:1516)
JavaTest Message: Test threw exception: compiler.lib.ir_framework.driver.irmatching.IRViolationException: There were one or multiple IR rule failures. Please check stderr for more information.
JavaTest Message: shutting down test
My machine:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 46 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 32
On-line CPU(s) list: 0-31
Vendor ID: GenuineIntel
Model name: Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHz
CPU family: 6
Model: 45
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 2
Stepping: 7
CPU(s) scaling MHz: 100%
CPU max MHz: 2400.0000
CPU min MHz: 1200.0000
BogoMIPS: 4788.49
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid
dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid xsaveopt dtherm arat pln pts vnmi md_clear flush_l1d
Virtualization features:
Virtualization: VT-x
Caches (sum of all):
L1d: 512 KiB (16 instances)
L1i: 512 KiB (16 instances)
L2: 4 MiB (16 instances)
L3: 40 MiB (2 instances)
NUMA:
NUMA node(s): 2
NUMA node0 CPU(s): 0-7,16-23
NUMA node1 CPU(s): 8-15,24-31
Vulnerabilities:
Gather data sampling: Not affected
Indirect target selection: Not affected
Itlb multihit: KVM: Mitigation: Split huge pages
L1tf: Mitigation; PTE Inversion; VMX conditional cache flushes, SMT vulnerable
Mds: Mitigation; Clear CPU buffers; SMT vulnerable
Meltdown: Mitigation; PTI
Mmio stale data: Unknown: No mitigations
Reg file data sampling: Not affected
Retbleed: Not affected
Spec rstack overflow: Not affected
Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Spectre v2: Mitigation; Retpolines; IBPB conditional; IBRS_FW; STIBP conditional; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected
Srbds: Not affected
Tsa: Not affected
Tsx async abort: Not affected
Vmscape: Mitigation; IBPB before exit to userspace
- relates to
-
JDK-8366845 C2 SuperWord: wrong VectorCast after VectorReinterpret with swapped src/dst type
-
- Resolved
-
-
JDK-8367487 Test compiler/loopopts/superword/TestReinterpretAndCast.java fails on Linux aarch64 with Cavium CPU
-
- Resolved
-
- links to
-
Commit(master)
openjdk/jdk/b4462625
-
Review(master)
openjdk/jdk/28852