RFR: 8343689: AArch64: Optimize MulReduction implementation [v3]

Hao Sun haosun at openjdk.org
Wed Jul 2 06:45:46 UTC 2025


On Wed, 18 Jun 2025 12:12:16 GMT, Mikhail Ablakatov <mablakatov at openjdk.org> wrote:

>> src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp line 2002:
>> 
>>> 2000:   assert(vector_length_in_bytes == 8 || vector_length_in_bytes == 16, "unsupported");
>>> 2001:   assert_different_registers(vtmp1, vsrc);
>>> 2002:   assert_different_registers(vtmp1, vtmp2);
>> 
>> nit: would be neat to use 
>> Suggestion:
>> 
>>   assert_different_registers(vsrc, vtmp1, vtmp2);
>
> `vsrc` and `vtmp2` are allowed to match.

I see your point. 

IIUC, we should not modify `vsrc` as it's the source operand.

If we allow `vsrc` and `vtmp2` to match, then `vsrc` is modified then.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23181#discussion_r2179185158


More information about the hotspot-compiler-dev mailing list