Add vector registers and vector load/store instructions. Add
regression tests for vector load/store instructions too.
Details
- Reviewers
simoll k-ishizaka - Commits
- rG94c18d91d243: [VE] Add vector load/store instructions
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/VE/VEISelLowering.cpp | ||
---|---|---|
637–672 | I wonder why there are vector types that do not map directly to vector registers. |
Reply to an inline comment.
llvm/lib/Target/VE/VEISelLowering.cpp | ||
---|---|---|
637–672 | Which types are not mapped as you are asked? I think all vector types from v2f64 to v256f64 are mapped. |
llvm/lib/Target/VE/VEISelLowering.cpp | ||
---|---|---|
637–672 | Yes, they are mapped now, but why are there more vector types being added than necessary? For example, v16f64 is not a vector register type for VE. If it was not mapped, LLVM could still legalize/expand it into a legal v256f64 type. |
llvm/lib/Target/VE/VEISelLowering.cpp | ||
---|---|---|
637–672 | I've understood your point. The reason doing this is to support regular SIMD fixed-sized-vector optimization on VE in the future. I would like to support both existing SIMD optimization and vector predication optimization. This SIMD optimization for VE is partially implemented locally. On the other hand, there was a discussion like that we should support not only V64 (16384) register but also V16384, V8192, V4096, ..., V64 registers. Nobody except me wants it, so not implemented yet, though. |
I wonder why there are vector types that do not map directly to vector registers.