[all-commits] [llvm/llvm-project] ea7897: [WebAssembly] Enable interleaved memory accesses (...

Sam Parker via All-commits all-commits at lists.llvm.org
Mon Feb 17 01:10:15 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ea7897a617b897f87f148db48cda9fcc7c1c53dc
      https://github.com/llvm/llvm-project/commit/ea7897a617b897f87f148db48cda9fcc7c1c53dc
  Author: Sam Parker <sam.parker at arm.com>
  Date:   2025-02-17 (Mon, 17 Feb 2025)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
    A llvm/test/CodeGen/WebAssembly/interleave.ll

  Log Message:
  -----------
  [WebAssembly] Enable interleaved memory accesses (#125696)

Enable the vectorizer to access interleaved memory. This means that,
when it's decided to be profitable, the memory accesses can be
vectorized instead of the value being built up by a sequence of
load_lane instructions. This will often increase the vectorization
factor of the loop, leading to significantly better performance.

I run a reasonably large collection of benchmarks and most are not
affected by this change, with most performance changes <1%. But I see a
2.5% speedup for the total run time of TSVC, 1% speedup for SPEC2017
x265, 28% speedup for a ResNet workload and 95% for libyuv. This is
running V8 on an AArch64 box.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list