Loads of fixed length vectors with irregular element counts are
sometimes emitted as a scalar load + scalar_to_vector.
Previously the scalar_to_vector wasn't legal and so was scalarized
further. This patch handles it by lowering it to a vmv.s.x.
Details
Details
- Reviewers
craig.topper reames - Commits
- rGce397e500d35: [RISCV] Lower scalar_to_vector
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Unit Tests
Event Timeline
llvm/test/CodeGen/RISCV/rvv/fixed-vectors-load.ll | ||
---|---|---|
15 | What's the ideal emitted load here? A single wide element load i.e. vle64.v v8, (a0)? vsetivil zero, 5, e8, mf2, ta, ma vle8.v v8, (a0) |
llvm/lib/Target/RISCV/RISCVISelLowering.cpp | ||
---|---|---|
4116 | Why wouldn't the scalar already be XLenVT? |
llvm/lib/Target/RISCV/RISCVISelLowering.cpp | ||
---|---|---|
4116 | Whoops you're right, can't remember why I added this. Maybe it was when I was trying to get it working with i1s? Removed anyway |
Why wouldn't the scalar already be XLenVT?