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

Xiaohong Gong xgong at openjdk.org
Wed Jul 2 01:48:50 UTC 2025


On Tue, 1 Jul 2025 16:10:58 GMT, Mikhail Ablakatov <mablakatov at openjdk.org> wrote:

>> src/hotspot/cpu/aarch64/aarch64_vector.ad line 3536:
>> 
>>> 3534: 
>>> 3535: instruct reduce_mulF_gt128b(vRegF dst, vRegF fsrc, vReg vsrc, vReg tmp) %{
>>> 3536:   predicate(Matcher::vector_length_in_bytes(n->in(2)) > 16 && n->as_Reduction()->requires_strict_order());
>> 
>> Are there the cases that can match with this rule?
>
> Well, we don't match it right now for auto-vectorization as it doesn't worth it performance-wise. This might change for future implementations of SVE(2). I'd still prefer to keep it so the set of instructions is complete.

Removing is fine to me, as actually we do not have the case to test the correctness. Or maybe you could just do some  changes locally (e.g. removing the `requires_strict_order` predication and the un-strict-order rule), and test it with VectorAPI cases?

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

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


More information about the hotspot-compiler-dev mailing list