This intrinsic is generally faster than the current implementation for Panama 
segment operations for all writes larger than about 8 bytes in size, increasing 
to more than 2* the performance on larger memory blocks on Graviton 2, between 
"panama" (C2 generated, what we use now) and "unsafe" (this intrinsic).


Benchmark                       (aligned)  (size)  Mode  Cnt     Score    Error 
 Units
MemorySegmentFillUnsafe.panama       true  262143  avgt   10  7295.638 ±  0.422 
 ns/op
MemorySegmentFillUnsafe.panama      false  262143  avgt   10  8345.300 ± 80.161 
 ns/op
MemorySegmentFillUnsafe.unsafe       true  262143  avgt   10  2930.594 ±  0.180 
 ns/op
MemorySegmentFillUnsafe.unsafe      false  262143  avgt   10  3136.828 ±  0.232 
 ns/op

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

Commit messages:
 - 8354674: AArch64: Intrinsify Unsafe::setMemory
 - New test
 - Cleanup
 - Fixes
 - next cut
 - First cut

Changes: https://git.openjdk.org/jdk/pull/25147/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=25147&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8354674
  Stats: 99 lines in 2 files changed: 96 ins; 0 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/25147.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25147/head:pull/25147

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

Reply via email to