Optimizing zlib for ARM

by Adenilson Cavalcanti <>

  • People ship old libpng versions
  • libpng, zlib developed around same time
  • NEON simd - mandatory in ARMv8
    • checksums easily optimized with simd instructions by checking sums of elements in blocks.
    • adler32, inffast, libpng w/ pallete improved
    • 10% - 10x faster
  • work being done to optimize zlib is easier than convincing everyone to upstream their work.
    • especially in projects like chromium, which have many copies of zlib
    • upstreaming optimizations to chromium caused armv6 project to try to use NEON, which broke it
    • security fixes in addition to optimizations exist in chromium's zlib
Last modified 6 years ago Last modified on Oct 13, 2017 1:06:47 PM