[vectorIntrinsics] RFR: 8283709: Add x86 back-end implementation for bit BIT_COUNT operation [v8]

Sandhya Viswanathan sviswanathan at openjdk.java.net
Fri Apr 8 23:51:09 UTC 2022


On Fri, 8 Apr 2022 20:41:49 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> Summary of changes:
>> 
>> - Patch re-uses existing C2 IR nodes and re-organizes LUT based JIT code sequence of VectorOperations.BIT_COUNT operation 
>>   for sub-word type (BYTE, SHORT) vectors over X86 targets supporting AVA2 and AVX512 features.
>> - Efficient single instruction POPCOUNT instruction is emitted for applicable targets. 
>> 
>> Kindly review and share you feedback.
>> 
>> Best Regards,
>> Jatin
>
> Jatin Bhateja has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 10 commits:
> 
>  - 8283709: Review comments resolved.
>  - Merge branch 'vectorIntrinsics' of http://github.com/openjdk/panama-vector into JDK-8283709
>  - 8283709: Integer.bitCount((int)(byte_val) & 0xFF) is folded as LoadUB, this is auto-vectorized as load from Boolean vector. Adding missing types in macroassembler to cover these cases.
>  - 8283709: Removed redundant downcasting operation needed only for auto-vectorized generated IR.
>  - 8283709: Removing redundant flags operands.
>  - 8283709: Adding predicated vector popcount patterns for applicable targets.
>  - 8283709: Adding new CPU feature AVX512_BITALG to JVMCI feature set.
>  - 8283709: Adding type specific check in PopCountVI cost model.
>  - 8283709: Updating PopCountVI instruction size cost model.
>  - 8283709: Add x86 back-end implementation for bit BIT_COUNT operation

Other than couple of comments above, rest of the patch looks good to me.

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

PR: https://git.openjdk.java.net/panama-vector/pull/185


More information about the panama-dev mailing list