On Mon, 24 Aug 2026 06:16:58 GMT, Eric Fang <[email protected]> wrote:
>> Thanks @sviswa7 and @iwanowww for review and approvals.
>
> Hi @jatin-bhateja,
>
> `compiler/vectorapi/TestFloat16VectorFMAAccumSpill.java` fails
> deterministically in our downstream CI on a Sapphire Rapids host
> (avx512_fp16, linux-x64 fastdebug, master @ 241381ba70496).
>
> [2026-08-18T02:43:54.226Z] Failed IR Rules (1) of Methods (1)
> [2026-08-18T02:43:54.226Z] ----------------------------------
> [2026-08-18T02:43:54.226Z] 1) Method
> "compiler.vectorapi.TestFloat16VectorFMAAccumSpill::fmaAccum" - [Failed IR
> rules: 1]:
> [2026-08-18T02:43:54.226Z] * @IR rule 2:
> "@compiler.lib.ir_framework.IR(phase={FINAL_CODE}, applyIfCPUFeatureAnd={},
> applyIfPlatformAnd={}, applyIf={}, applyIfCPUFeatureOr={},
> applyIfCPUFeature={"avx512_fp16", "true"}, counts={},
> failOn={"_#C#MEM_TO_REG_SPILL_COPY_TYPE#_", "vector[xyz]"}, applyIfAnd={},
> applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={})"
> [2026-08-18T02:43:54.226Z] > Phase "Final Code":
> [2026-08-18T02:43:54.226Z] - failOn: Graph contains forbidden nodes:
> [2026-08-18T02:43:54.227Z] * Constraint 1:
> "(\d+(\s){2}(MemToRegSpillCopy.*)+(\s){2}===.*vector[xyz].*)"
> [2026-08-18T02:43:54.227Z] - Matched forbidden nodes (8):
> [2026-08-18T02:43:54.227Z] * 6394 MemToRegSpillCopy === _ 1139
> [[ 1138 ]] vectorz<S,32> !jvms: Float16Vector::lanewiseTemplate @ bci:70
> (line 1112) Float16Vector512::lanewise @ bci:4 (line 318)
> Float16Vector512::lanewise @ bci:4 (line 42)
> TestFloat16VectorFMAAccumSpill::fmaAccum @ bci:582 (line 131)
> [2026-08-18T02:43:54.227Z] * 6510 MemToRegSpillCopy === _ 1130
> [[ 1129 ]] vectorz<S,32> !jvms: Float16Vector::lanewiseTemplate @ bci:70
> (line 1112) Float16Vector512::lanewise @ bci:4 (line 318)
> Float16Vector512::lanewise @ bci:4 (line 42)
> TestFloat16VectorFMAAccumSpill::fmaAccum @ bci:582 (line 131)
> [2026-08-18T02:43:54.227Z] * 6630 MemToRegSpillCopy === _ 1121
> [[ 1120 ]] vectorz<S,32> !jvms: Float16Vector::lanewiseTemplate @ bci:70
> (line 1112) Float16Vector512::lanewise @ bci:4 (line 318)
> Float16Vector512::lanewise @ bci:4 (line 42)
> TestFloat16VectorFMAAccumSpill::fmaAccum @ bci:582 (line 131)
> [2026-08-18T02:43:54.227Z] * 6754 MemToRegSpillCopy === _ 1112
> [[ 1111 ]] vectorz<S,32> !jvms: Float16Vector::lanewiseTemplate @ bci:70
> (line 1112) Float16Vector512::lanewise @ bci:4 (line 318)
> Float16Vector512::lanewise @ bci:4 (line 42)
> TestFloat16VectorFMAAccumSpill::fmaAccum @ bci:582 (line 131)
> [2026-08-18T02:43:54.228Z] * 6882 MemToRegSpillCopy === _ 1103
> [[ 1102 ]] vectorz...
Hi @erifan , Test delicately checks for non existence of spills
(MachSpillCopyNode) IR, with -ea -esa additional assertions gets enabled which
can increase the register pressure leading to extra spills, I think you can
file a JBS for this.
I confirm that test passes in default mode, but fails with -ea -esa (may be we
need to ProblemList it with -ea -esa).
-------------
PR Comment: https://git.openjdk.org/jdk/pull/31724#issuecomment-5391836649