- Update the VTYPE encoding. Make LMUL encoding in a continuous field.
- Add new instructions in V1.0.
- Update instruction constraints.
- Update test cases accordingly.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Can this be split up? Seems like some of this could be done in independent changes. Like changing LMUL layout. Changing loads. Changing madc.
llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp | ||
---|---|---|
2310 | Why is this being dropped? This was a bug fix I just earlier this week. I don't think vmerge can ever V0 as a destination and the parser previously crashed on it. |
llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp | ||
---|---|---|
2310 | I could not find the description that the destination of vmerge could not be V0 as I scanned the V specification. So, I remove it. Maybe I misread the specification. We should confirm it first. |
llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp | ||
---|---|---|
2310 | It should be covered by this "The destination vector register group for a masked vector instruction cannot overlap the source mask register (v0), unless the destination vector register is being written with a mask value (e.g., comparisons) or the scalar result of a reduction. Otherwise, an illegal instruction exception is raised. |
llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp | ||
---|---|---|
2310 | Got it. Thanks. I will revert it. |
Why is this being dropped? This was a bug fix I just earlier this week. I don't think vmerge can ever V0 as a destination and the parser previously crashed on it.