[all-commits] [llvm/llvm-project] f3a9db: [RISCV] Split build_vector into vreg sized pieces ...

Philip Reames via All-commits all-commits at lists.llvm.org
Tue Nov 28 07:40:12 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f3a9dbe7fcabb10d81a56d3757fb1b32fa37972e
      https://github.com/llvm/llvm-project/commit/f3a9dbe7fcabb10d81a56d3757fb1b32fa37972e
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2023-11-28 (Tue, 28 Nov 2023)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll

  Log Message:
  -----------
  [RISCV] Split build_vector into vreg sized pieces when exact VLEN is known (#73606)

If we have a high LMUL build_vector and a known exact VLEN, we can
decompose the build_vector into one build_vector per register in the
register group. Doing so requires exact knowledge of which elements
correspond to each register in the register group, and thus an exact
VLEN must be known.

Since we no longer have operations which are linear (or worse) in LMUL,
this also allows us to lower all build_vectors without resorting to
going through the stack.




More information about the All-commits mailing list