RFR: 8350866: [x86] Add C1 intrinsics for CRC32-C [v4]

David Linus Briemann duke at openjdk.org
Tue Mar 11 10:56:18 UTC 2025


> Local benchmarks show good improvements for the crc32c intrinsification:
> 
> 
> without intrinsic (master):
> 
> 
> $JDK/java -DmsgSize=5120 -XX:TieredStopAtLevel=1 -Xcomp TestCRC32C 300000
>  offset = 0
> msgSize = 5120 bytes
>   iters = 300000
> -------------------------------------------------------
> CRCs: crc = 0cbca9c8, crcReference = 0cbca9c8
> CRC32C.update(byte[]) runtime = 1.186507782 seconds
> CRC32C.update(byte[]) throughput = 1294.5553525244388 MB/s
> CRCs: crc = 0cbca9c8, crcReference = 0cbca9c8
> -------------------------------------------------------
> CRCs: crc = 0cbca9c8, crcReference = 0cbca9c8
> CRC32C.update(ByteBuffer) runtime = 1.355515648 seconds
> CRC32C.update(ByteBuffer) throughput = 1133.1481139788364 MB/s
> CRCs: crc = 0cbca9c8, crcReference = 0cbca9c8
> -------------------------------------------------------
> 
> 
> with intrinsic:
> 
> 
> $JDK/java -DmsgSize=5120 -XX:TieredStopAtLevel=1 -Xcomp TestCRC32C 300000
>  offset = 0
> msgSize = 5120 bytes
>   iters = 300000
> -------------------------------------------------------
> CRCs: crc = 0cbca9c8, crcReference = 0cbca9c8
> CRC32C.update(byte[]) runtime = 0.065003188 seconds
> CRC32C.update(byte[]) throughput = 23629.610289267657 MB/s
> CRCs: crc = 0cbca9c8, crcReference = 0cbca9c8
> -------------------------------------------------------
> CRCs: crc = 0cbca9c8, crcReference = 0cbca9c8
> CRC32C.update(ByteBuffer) runtime = 0.072310133 seconds
> CRC32C.update(ByteBuffer) throughput = 21241.836189127185 MB/s
> CRCs: crc = 0cbca9c8, crcReference = 0cbca9c8
> -------------------------------------------------------

David Linus Briemann has updated the pull request incrementally with two additional commits since the last revision:

 - fix
 - address review comments

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/23826/files
  - new: https://git.openjdk.org/jdk/pull/23826/files/0b93d006..c3eb92d2

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=23826&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=23826&range=02-03

  Stats: 3 lines in 1 file changed: 0 ins; 1 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/23826.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23826/head:pull/23826

PR: https://git.openjdk.org/jdk/pull/23826


More information about the hotspot-compiler-dev mailing list