On Sat, 24 Oct 2020 21:38:55 GMT, CoreyAshford <github.com+51754783+coreyashf...@openjdk.org> wrote:
>> Yes, it assumes uniformly random data, but also recall that the unencoded >> data bytes get shifted by 2, 4, 6 bits into the encoded bytes, which I'm >> guessing would tend to make the data somewhat more uniform, even if the >> source data has low entropy. >> >> That said, I didn't actually benchmark it. I will do that to make sure >> there is a gain, and if there isn't I will remove the conditional branch. > >> I took a look at the VSX algo. I haven't looked much beyond it. I had a few >> questions I've inlined. It does look like a faithful VSX implementation of >> the linked algo. > > I neglected to thank you for reviewing this code! I realize there's quite a > time commitment required to review this properly, and because of that I was > having difficulty finding a second reviewer for the PPC64 portion. > > Just to set expectations, I will be on vacation next week, so further commits > won't be posted until the following week, but I will address all of your > great feedback. Thanks again! I just got done running a benchmark without the branch around the xxsel, and your hunch was right. There's about a 9% performance gain in the benchmark with that branch dropped. I also changed the previous instruction not to set the condition code, but I doubt that affected performance. Both regression tests for Base64 encoding/decoding still pass. The next set of commits will contain this change. ------------- PR: https://git.openjdk.java.net/jdk/pull/293