The VE backend represents vector instructions with an explicit 'i32'
vector length operand. In the VE ISA, the vector length is always read
from the VL hardware register. The LVLGen pass inserts 'lvl'
instructions as necessary to set VL to the right value before each
vector instruction.
Details
Details
- Reviewers
kaz7 k-ishizaka - Commits
- rG1c00d096a608: [VE] LVLGen sets VL before vector insts
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Unit Tests
Event Timeline
llvm/lib/Target/VE/LVLGen.cpp | ||
---|---|---|
93 | Does this handle the case of a call in the middle of a group of vector instructions? Such a call might modify VL. But I don't think the call will show VL as a def for findRegisterDefOperandIdx. |
llvm/lib/Target/VE/LVLGen.cpp | ||
---|---|---|
93 | No, this doesn't handle such case and generates wrong instructions. Thank you for suggestions. I'll prepare updates. |
Comment Actions
Add comment about new patch.
llvm/lib/Target/VE/LVLGen.cpp | ||
---|---|---|
93 | @craig.topper, thank you for your suggestion. I fixed the problem in D92716. Please check it out when you have time. Thanks! |
Does this handle the case of a call in the middle of a group of vector instructions? Such a call might modify VL. But I don't think the call will show VL as a def for findRegisterDefOperandIdx.