RFR: 8361582: AArch64: Some ConH values cannot be replicated with SVE [v4]

Andrew Haley aph at openjdk.org
Tue Aug 12 09:54:13 UTC 2025


On Mon, 11 Aug 2025 12:09:18 GMT, Andrew Haley <aph at openjdk.org> wrote:

>> Bhavana Kilambi has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Addressed review comments and modified some comments
>
> For `loadConH`, LLVM and GCC use
> 
>         mov     wscratch, #const
>         dup     v0.4h, wscratch
> 
> We should investigate that.
> 
> As far as I can see, LLVM and GCC do this for all vector immediates that don't need more than 2 movz/movk instructions.

> HI @theRealAph Thanks a lot for your comment. I feel it is a good idea to modify `loadConH` to move a constant instead of doing an `ldr` from the constant pool (it could probably get us some performance benefit as well). However, the scope of this ticket was to mainly fix the JTREG errors that >16B SVE machines were running into due to illegal immediates being passed to the `sve_dup` instruction. Would it be acceptable if I push this fix first and then create a follow up task to work on optimizing `loadConH`? I can create a new JBS ticket and assign it to myself and tag it here as well if that helps. Thank you!

Well, yes, but I'm proposing a simpler and better fix to the problem. Sure, if you want to do this in two steps go ahead.

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

PR Comment: https://git.openjdk.org/jdk/pull/26589#issuecomment-3178620202


More information about the hotspot-compiler-dev mailing list