On Wed, 12 Aug 2026 04:18:35 GMT, Jatin Bhateja <[email protected]> wrote:

>> @jatin-bhateja  A lot has changed in past couple of weeks on mainline. It 
>> would be good to do a merge with mainline and the GHA run successfully.
>
> 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<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]              * 7014  MemToRegSpillCopy  === _ 1094  
[[ 1093 ]] 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]              * 7147  MemToRegSpillCopy  === _ 1085  
[[ 1084 ]] 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.229Z]              * 7280  MemToRegSpillCopy  === _ 1076  
[[ 1075 ]] 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.229Z] 
[2026-08-18T02:43:54.229Z] >>> Check stdout for compilation output of the 
failed methods


The trigger is assertions. The test passes with
`make test 
TEST=test/hotspot/jtreg/compiler/vectorapi/TestFloat16VectorFMAAccumSpill.java` 
because hotspot targets set `hotspot_JTREG_ASSERT := false` in 
make/RunTests.gmk, i.e. no `-ea -esa`. It fails when jtreg is invoked with `-ea 
-esa`, which is what our CI does.

I’m not sure whether this is a bug or whether it’s worth fixing. Could you take 
a look?

-------------

PR Comment: https://git.openjdk.org/jdk/pull/31724#issuecomment-5391431370

Reply via email to