RFR: 8374349: [VectorAPI]: AArch64: Prefer merging mode SVE CPY instruction [v4]
Eric Fang
erfang at openjdk.org
Thu Feb 26 02:04:04 UTC 2026
On Wed, 25 Feb 2026 10:26:04 GMT, Andrew Haley <aph at openjdk.org> wrote:
>> src/hotspot/cpu/aarch64/assembler_aarch64.hpp line 3846:
>>
>>> 3844: // SVE copy floating-point immediate to vector elements (predicated)
>>> 3845: void sve_cpy(FloatRegister Zd, SIMD_RegVariant T, PRegister Pg, double d) {
>>> 3846: _sve_cpy(Zd, T, Pg, checked_cast<uint8_t>(pack(d)), /*isMerge*/true, /*isFloat*/true);
>>
>> I can't see any purpose in this renaming.
>
>> Hi [@theRealAph](https://github.com/theRealAph) , it's a private method,
>
> It isn't. The `public:` declaration is right there.
We have two public methods to copy an integer/floating-point immediate to vector elements:
```
void sve_cpy(FloatRegister Zd, SIMD_RegVariant T, PRegister Pg, int imm8, bool isMerge) {...}
void sve_cpy(FloatRegister Zd, SIMD_RegVariant T, PRegister Pg, double d) {...}
Both of them call the private method `_sve_cpy` (before the renaming, it's `sve_cpy`).
void _sve_cpy(FloatRegister Zd, SIMD_RegVariant T, PRegister Pg, int imm8, bool isMerge, bool isFloat) {
The parameters of the public versions and the private version are different.
Please correct me if I misunderstood your meaning, thanks~
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29359#discussion_r2856473328
More information about the hotspot-dev
mailing list