RFR: 8373724: Assertion failure in TestSignumVector.java with UseAPX [v5]
Sandhya Viswanathan
sviswanathan at openjdk.org
Tue Jan 6 16:54:50 UTC 2026
On Tue, 6 Jan 2026 04:16:18 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
>> 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.
>
> We already have a check for [memory operands (mapping to multiple input edges](https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/x86.ad#L2664)) in place, ADLC generates DFA for both direct and flipped versions of the memory patterns. So Flag_ndd_demotable_opr2 will cover the flipped operand case.
Thanks for the clarification. May be we should then add PD::Flag_ndd_demotable_opr2 to the following as well to be consistent:
xorI_rReg_rReg_mem_ndd
orI_rReg_rReg_mem_ndd
mulI_rReg_rReg_mem_ndd
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28999#discussion_r2665582938
More information about the hotspot-compiler-dev
mailing list