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

Jatin Bhateja jbhateja at openjdk.java.net
Fri Apr 8 20:41:49 UTC 2022


> 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

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

Changes: https://git.openjdk.java.net/panama-vector/pull/185/files
 Webrev: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=185&range=07
  Stats: 256 lines in 10 files changed: 161 ins; 12 del; 83 mod
  Patch: https://git.openjdk.java.net/panama-vector/pull/185.diff
  Fetch: git fetch https://git.openjdk.java.net/panama-vector pull/185/head:pull/185

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


More information about the panama-dev mailing list