[all-commits] [llvm/llvm-project] 802e15: [SLP] Cluster ordering for loads

David Green via All-commits all-commits at lists.llvm.org
Sat May 7 06:38:23 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 802e15c576997f76bffb4c08b6f81d6c79c320e0
      https://github.com/llvm/llvm-project/commit/802e15c576997f76bffb4c08b6f81d6c79c320e0
  Author: David Green <david.green at arm.com>
  Date:   2022-05-07 (Sat, 07 May 2022)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/loadorder.ll
    M llvm/test/Transforms/SLPVectorizer/X86/split-load8_2-unord.ll

  Log Message:
  -----------
  [SLP] Cluster ordering for loads

Given a load without a better order, this patch partially sorts the
elements to form clusters of adjacent elements in memory. These clusters
can potentially be loaded in fewer loads, meaning less overall shuffling
(for example loading v4i8 clusters of a v16i8 as a single f32 loads, as
opposed to multiple independent bytes loads and inserts).

Differential Revision: https://reviews.llvm.org/D122145




More information about the All-commits mailing list