[PATCH] D69987: [RISCV] Assemble/Disassemble v-ext instructions.
Roger Ferrer Ibanez via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 12 08:27:47 PST 2019
rogfer01 added a comment.
We have started tallying the instructions against the spec. So far we have found the following missing instructions:
- `vdot.vv` / `vdotu.vv` / `vfdot.vv`
================
Comment at: llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:1418
+ Encoding = (sew.logBase2() << 2) | lmul.logBase2();
+ Operands.push_back(RISCVOperand::createVType(sew.logBase2(), lmul.logBase2(),
+ S, Encoding, isRV64()));
----------------
Could this encoding logic be in `RISCVOperand::createVType` itself?
You would have to pass `sew` and `lmul` without doing `logBase2()` here and the call in line `1395` would set `lmul = 1`.
================
Comment at: llvm/lib/Target/RISCV/RISCVRegisterInfo.td:238
+// Vector registers
+let RegAltNameIndices = [ABIRegAltName] in {
+ def V0 : RISCVReg<0, "v0", ["v0"]>, DwarfRegNum<[64]>;
----------------
Would it help to simplify this as
```
// Define V0-V31
let RegAltNameIndices = [ABIRegAltName] in {
foreach Index = 0-31 in {
def V#Index : RISCVReg<Index, "v"#Index, ["v"#Index]>,
DwarfRegNum<[!add(#Index, 64)]>;
}
}
```
================
Comment at: llvm/lib/Target/RISCV/RISCVRegisterInfo.td:281
+// meaning caller-save regs are listed before callee-save.
+def VPR : RegisterClass<"RISCV", VLenVT.types,
+ 128, (add
----------------
What does the `P` in `VPR` stand for?
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D69987/new/
https://reviews.llvm.org/D69987
More information about the llvm-commits
mailing list