RFR: 8373724: Assertion failure in TestSignumVector.java with UseAPX [v5]
Sandhya Viswanathan
sviswanathan at openjdk.org
Mon Jan 5 21:43:30 UTC 2026
On Mon, 5 Jan 2026 17:50:10 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
>> Existing demotable instruction patterns for negI/L_rReg_ndd have 'src' as their second operand, this leads to an failure during register biasing. Changing the NDD demotion flags names to encode explicit operand position i.e. **Flag_ndd_demotable_opr1 and Flag_ndd_demotable_opr2** , splitting commutative flag into seperate new flags and fine tuning assertion checks based on new naming convention fixes the issue.
>>
>> Failing test test/hotspot/jtreg/compiler/vectorization/TestSignumVector.java passes with the patch.
>>
>> Kindly review and share your feedback.
>>
>> Best Regards,
>> Jatin
>> PS: Validation performed using Intel SDE 9.58.
>
> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
>
> Update copyright
src/hotspot/cpu/x86/x86.ad line 9947:
> 9945: match(Set dst (AddI src1 (LoadI src2)));
> 9946: effect(KILL cr);
> 9947: flag(PD::Flag_sets_overflow_flag, PD::Flag_sets_sign_flag, PD::Flag_sets_zero_flag, PD::Flag_sets_carry_flag, PD::Flag_sets_parity_flag, PD::Flag_ndd_demotable_opr1, PD::Flag_ndd_demotable_opr2);
Remove PD::Flag_ndd_demotable_opr2 as the second operand is a memory operand.
src/hotspot/cpu/x86/x86.ad line 10237:
> 10235: match(Set dst (AddL src1 (LoadL src2)));
> 10236: effect(KILL cr);
> 10237: flag(PD::Flag_sets_overflow_flag, PD::Flag_sets_sign_flag, PD::Flag_sets_zero_flag, PD::Flag_sets_carry_flag, PD::Flag_sets_parity_flag, PD::Flag_ndd_demotable_opr1, PD::Flag_ndd_demotable_opr2);
Remove PD::Flag_ndd_demotable_opr2 as the second operand is a memory operand.
src/hotspot/cpu/x86/x86.ad line 11585:
> 11583: match(Set dst (MulL src1 (LoadL src2)));
> 11584: effect(KILL cr);
> 11585: flag(PD::Flag_ndd_demotable_opr1, PD::Flag_ndd_demotable_opr2);
Remove PD::Flag_ndd_demotable_opr2 as the second operand is a memory operand.
src/hotspot/cpu/x86/x86.ad line 13038:
> 13036: match(Set dst (AndI src1 (LoadI src2)));
> 13037: effect(KILL cr);
> 13038: flag(PD::Flag_sets_sign_flag, PD::Flag_sets_zero_flag, PD::Flag_sets_parity_flag, PD::Flag_clears_overflow_flag, PD::Flag_clears_carry_flag, PD::Flag_ndd_demotable_opr1, PD::Flag_ndd_demotable_opr2);
Remove PD::Flag_ndd_demotable_opr2 as the second operand is a memory operand.
src/hotspot/cpu/x86/x86.ad line 13683:
> 13681: match(Set dst (AndL src1 (LoadL src2)));
> 13682: effect(KILL cr);
> 13683: flag(PD::Flag_sets_sign_flag, PD::Flag_sets_zero_flag, PD::Flag_sets_parity_flag, PD::Flag_clears_overflow_flag, PD::Flag_clears_carry_flag, PD::Flag_ndd_demotable_opr1, PD::Flag_ndd_demotable_opr2);
Remove PD::Flag_ndd_demotable_opr2 as the second operand is a memory operand.
src/hotspot/cpu/x86/x86.ad line 14000:
> 13998: match(Set dst (OrL src1 (LoadL src2)));
> 13999: effect(KILL cr);
> 14000: flag(PD::Flag_sets_sign_flag, PD::Flag_sets_zero_flag, PD::Flag_sets_parity_flag, PD::Flag_clears_overflow_flag, PD::Flag_clears_carry_flag, PD::Flag_ndd_demotable_opr1, PD::Flag_ndd_demotable_opr2);
Remove PD::Flag_ndd_demotable_opr2 as the second operand is a memory operand.
src/hotspot/cpu/x86/x86.ad line 14182:
> 14180: match(Set dst (XorL src1 (LoadL src2)));
> 14181: effect(KILL cr);
> 14182: flag(PD::Flag_sets_sign_flag, PD::Flag_sets_zero_flag, PD::Flag_sets_parity_flag, PD::Flag_clears_overflow_flag, PD::Flag_clears_carry_flag, PD::Flag_ndd_demotable_opr1, PD::Flag_ndd_demotable_opr2);
Remove PD::Flag_ndd_demotable_opr2 here as the second operand is a memory operand.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28999#discussion_r2662838200
PR Review Comment: https://git.openjdk.org/jdk/pull/28999#discussion_r2662836624
PR Review Comment: https://git.openjdk.org/jdk/pull/28999#discussion_r2662831056
PR Review Comment: https://git.openjdk.org/jdk/pull/28999#discussion_r2662827932
PR Review Comment: https://git.openjdk.org/jdk/pull/28999#discussion_r2662821662
PR Review Comment: https://git.openjdk.org/jdk/pull/28999#discussion_r2662367856
PR Review Comment: https://git.openjdk.org/jdk/pull/28999#discussion_r2662358281
More information about the hotspot-compiler-dev
mailing list