[all-commits] [llvm/llvm-project] 0eeab8: [RISCV] Add -riscv-v-fixed-length-vector-elen-max ...

Craig Topper via All-commits all-commits at lists.llvm.org
Fri Aug 27 10:19:31 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0eeab8b2825ca9582b211fb5fbe782f702b30db7
      https://github.com/llvm/llvm-project/commit/0eeab8b2825ca9582b211fb5fbe782f702b30db7
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-08-27 (Fri, 27 Aug 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVSubtarget.cpp
    M llvm/lib/Target/RISCV/RISCVSubtarget.h
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-elen.ll

  Log Message:
  -----------
  [RISCV] Add -riscv-v-fixed-length-vector-elen-max to limit the ELEN used for fixed length vectorization.

This adds an ELEN limit for fixed length vectors. This will scalarize
any elements larger than this. It will also disable some fractional
LMULs. For example, if ELEN=32 then mf8 becomes illegal, i32/f32
vectors can't use any fractional LMULs, i16/f16 can only use mf2,
and i8 can use mf2 and mf4.

We may also need something for the scalable vectors, but that has
interactions with the intrinsics and we can't scalarize a scalable
vector.

Longer term this should come from one of the Zve* features




More information about the All-commits mailing list