Over the past few weeks I've been documenting my understanding of how code is generated for the vector extension.
I thought it would be useful to solidify this knowledge somewhere, so I have written a document that is largely based off of the original RFC, but updated for the current state of lib/Target/RISCV.
Specifically, it gives a walkthrough of how code is generated for
- Scalable vectors
- Fixed-length vectors
- Vector predication instructions
It may be the case that this documentation is too implementation specific and will get outdated quickly, so let me know if there is a better place to share this knowledge.
And likewise, there may be parts that I'm misunderstanding, so please feel free to correct me!
"is also a power of two" repeats the previous sentence.