RFR: 8278868: Add x86 vectorization support for Long.bitCount() [v7]

Vladimir Kozlov kvn at openjdk.java.net
Thu Jan 6 20:20:23 UTC 2022


On Thu, 6 Jan 2022 19:57:01 GMT, Vamsi Parasa <duke at openjdk.java.net> wrote:

>> Vectorization support of Integer.bitCount() already exists but currently the same support is lacking for Long.bitCount(). Similar to the C2 PopCountVI node, we created a C2 PopCountVL node and used vpopcntq x86 instruction to enable vectorized Long.bitCount(). This patch shows 2.57x improvement in performance on a JMH micro benchmark due to x86 vectorization.
>
> Vamsi Parasa has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains seven additional commits since the last revision:
> 
>  - Merge branch 'master' of https://git.openjdk.java.net/jdk into vlong
>  - Update IR framework test to check for non-zero count of PopCountVL
>  - Update year in copyright notice. Add avx512dq check for vectorization test
>  - Update popcount long test to use IR framework
>  - Use generic vector node names
>  - Add JMH micro benchmark to measure performance
>  - 8278868:Add x86 vectorization support for Long.bitCount()

The update is good. I submitted testing.

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

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


More information about the hotspot-compiler-dev mailing list