RFR: JDK-8300808: Accelerate Base64 on x86 for AVX2 [v15]
Sandhya Viswanathan
sviswanathan at openjdk.org
Tue Feb 14 17:55:44 UTC 2023
On Tue, 14 Feb 2023 15:03:49 GMT, Scott Gibbons <sgibbons at openjdk.org> wrote:
>> src/hotspot/cpu/x86/stubGenerator_x86_64.cpp line 2658:
>>
>>> 2656: // Check for buffer too small (for algorithm)
>>> 2657: __ subl(length, 0x2c);
>>> 2658: __ jcc(Assembler::lessEqual, L_tailProc);
>>
>> This could be Assembler::less instead of Assembler::lessEqual.
>
> Why? There is no performance difference and the intent is clear. Is this just a "style" thing?
The thought is that when the length is equal to 44 bytes, we could do the vector loop once before tail processing. The rest of the logic seems to allow that. 44 bytes of base64 -> 33 bytes decoded. So a 32 byte write in vector loop would still be ok and we wont be writing beyond.
-------------
PR: https://git.openjdk.org/jdk/pull/12126
More information about the hotspot-compiler-dev
mailing list