RFR: 8268276: Base64 Decoding optimization for x86 using AVX-512 [v2]

Corey Ashford cashford at openjdk.java.net
Tue Jun 8 00:20:17 UTC 2021


On Tue, 8 Jun 2021 00:11:42 GMT, Scott Gibbons <github.com+6704669+asgibbons at openjdk.org> wrote:

>> src/java.base/share/classes/java/util/Base64.java line 813:
>> 
>>> 811:             while (sp < sl) {
>>> 812:                 if (shiftto == 18 && sp < sl - 4) {       // fast path
>>> 813:                     int dl = decodeBlock(src, sp, sl, dst, dp, isURL, isMIME);
>> 
>> This new param is passed all the way down to the intrinsic.  I think existing intrinsics can safely ignore this parameter if it doesn't help the implementation (for example PPC64-LE has 16-byte vector registers, so isn't quite as seriously impacted by MIME).  However, in the code for the PPC64-LE intrinsic, this new parameter isn't mentioned.  I think if you're going to add a new parameter, it should be mentioned in the existing intrinsics as being present, but unused.
>
> Are you suggesting that I change *all* intrinsic implementations (aarch64, ppc, etc.)?  I have no problem doing that - just checking if this is what's desired.

Yes. I didn't realize that there's a decodeBlock intrinsic for aarch64 already, but yeah it should only be a couple of lines of comments for each.

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

PR: https://git.openjdk.java.net/jdk/pull/4368


More information about the core-libs-dev mailing list