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

Mikhail Ablakatov mablakatov at openjdk.org
Wed Aug 13 09:49:19 UTC 2025


On Sat, 9 Aug 2025 07:29:26 GMT, Andrew Haley <aph at openjdk.org> wrote:

> Please try to organize things the same way as the Decode section of the ARM.

Do you refer to *C4: A64 Instruction Set Encoding*?

> Insert a new section called SVE Integer Misc - Unpredicated after SVE bitwise shift by immediate (predicated) and put this pattern there.

I assume you might have misinterpreted  **predicated** SVE bitwise shift for **unpredicated**. 

In the *C4: A64 Instruction Set Encoding*, *C4.1.41 SVE Integer Misc - Unpredicated* follows *C4.1.40 SVE Bitwise Shift - Unpredicated* which is not implemented by `src/hotspot/cpu/aarch64/assembler_aarch64.hpp` as far as I can tell. Suggested *SVE bitwise shift by immediate (predicated)* falls into *C4.1.34 SVE Bitwise Shift - Predicated*.  If this change is to follow the ordering in *C4: A64 Instruction Set Encoding*, the next proceeding implemented instruction class for `sve_movprfx` (from *C4.1.41*) should be [SVE stack frame adjustment](https://github.com/openjdk/jdk/pull/23181/files/4593a5d717024df01769625993c2b769d8dde311#diff-203c5bbfa5307b5cc529c80acf90e764260db018ed658b949421f91190c56982L3686) which falls into *C4.1.38 SVE Stack Allocation*. The next following implemented instruction class should be [SVE element count](https://github.com/openjdk/jdk/pull/23181/files/4593a5d717024df01769625993c2b769d8dde311#diff-203c5bbfa5307b5cc529c80acf90e764260db018ed658b949421f91190c5698
 2L4067) (inconveniently named something else in the source file) which falls into *C4.1.42 SVE Element Count*. The two instruction classes doesn't follow each other in the file, unfortunately, so it's one or the other. Currently it's the latter.

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

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


More information about the hotspot-compiler-dev mailing list