[all-commits] [llvm/llvm-project] f24398: [SandboxVec][LoadStoreVec] Support mixed type vect...

Anshil Gandhi via All-commits all-commits at lists.llvm.org
Sun Sep 20 22:35:11 PDT 2026


  Branch: refs/heads/users/gandhi56/sandbox-vectorizer/load-store-vec/mixed-type-load-vec
  Home:   https://github.com/llvm/llvm-project
  Commit: f2439866869a21ae881175fa32e6c346d2fc95dc
      https://github.com/llvm/llvm-project/commit/f2439866869a21ae881175fa32e6c346d2fc95dc
  Author: Anshil Gandhi <gandhi21299 at gmail.com>
  Date:   2026-09-21 (Mon, 21 Sep 2026)

  Changed paths:
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.h
    M llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
    A llvm/test/Transforms/SandboxVectorizer/Passes/LoadStoreVec/load_store_vec_mixed_type_loads.ll

  Log Message:
  -----------
  [SandboxVec][LoadStoreVec] Support mixed type vectorization of loads

vectorizeLoads() bailed out unless every load in the chain had the same
element type. Vectorize mixed-type chains too: the chain is loaded with a
single vector load of its combined vector type, whose element type is an
integer when the types differ, and each lane is reinterpreted as the type of
the load it replaces. A load wider than one lane, e.g. a double in a
<N x i32>, spans several lanes and is unpacked with a shuffle.

Lanes are counted in bits rather than elements, since with mixed types a lane
no longer corresponds to one load. Chains whose loads do not cover a whole
number of lanes, or that involve non-integral pointers, are left alone.

Assisted by Claude Opus 5



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