[all-commits] [llvm/llvm-project] ff53d5: [RISCV] Improve legalization of e8 m8 VL>256 shuff...

Philip Reames via All-commits all-commits at lists.llvm.org
Wed Jan 31 14:41:27 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ff53d5074256b8d88d9883dd593992a011fb0516
      https://github.com/llvm/llvm-project/commit/ff53d5074256b8d88d9883dd593992a011fb0516
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-01-31 (Wed, 31 Jan 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vector-i8-index-cornercase.ll

  Log Message:
  -----------
  [RISCV] Improve legalization of e8 m8 VL>256 shuffles (#79330)

If we can't produce a large enough index vector in i8, we may need to legalize
the shuffle (via scalarization - which in turn gets lowered into stack usage).
This change makes two related changes:
* Deferring legalization until we actually need to generate the vrgather
  instruction.  With the new recursive structure, this only happens when
  doing the fallback for one of the arms.
* Check the actual mask values for something outside of the representable
  range.

Both are covered by recently added tests.




More information about the All-commits mailing list