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

Vamsi Parasa duke at openjdk.java.net
Fri Jan 7 00:45:15 UTC 2022


On Fri, 7 Jan 2022 00:36:49 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 incrementally with one additional commit since the last revision:
> 
>   Fix error with opc == Op_PopCountI

Fixed the 'opc == ' error. Thanks for identifying it! (gcc on Linux should have caught it)
Will try to replicate the VectorCastI2X and VectorCastL2X errors in compiler/codegen/TestLongDoubleVect.java, compiler/codegen/TestIntFloatVect.java...

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

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


More information about the hotspot-dev mailing list