- Add new vector instructions in v0.10.
- load/store for mask value vle1.v vse1.v
- vsetivli for 0-31 immediate vector length.
- Rename vector instructions in v0.10.
- vfrsqrte7 -> vfrsqrt7
- vfrece7 -> vfrec7
- Reserve memory width encodings for EEW>128b.
Paths
| Differential D95781
[RISCV] Add new vector instructions in v0.10. ClosedPublic Authored by HsiangKai on Feb 1 2021, 5:33 AM.
Details Summary
Diff Detail
Unit TestsFailed Event TimelineHerald added subscribers: StephenFan, vkmr, NickHung and 25 others. · View Herald TranscriptFeb 1 2021, 5:33 AM Comment Actions Rebase. According to D95833, use ComplexPattern instead of SDNodeXForm for vl operand.
This revision is now accepted and ready to land.Feb 2 2021, 8:26 PM This revision was landed with ongoing or failed builds.Feb 2 2021, 9:29 PM Closed by commit rGc7189ba78578: [RISCV] Add new vector instructions in v0.10. (authored by HsiangKai). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 320978 llvm/include/llvm/IR/IntrinsicsRISCV.td
llvm/lib/Target/RISCV/RISCVCleanupVSETVLI.cpp
llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp
llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
llvm/lib/Target/RISCV/RISCVInstrFormatsV.td
llvm/lib/Target/RISCV/RISCVInstrInfoV.td
llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
llvm/test/CodeGen/RISCV/rvv/cleanup-vsetivli.mir
llvm/test/CodeGen/RISCV/rvv/rv32-vsetvli-intrinsics.ll
llvm/test/CodeGen/RISCV/rvv/rv64-vsetvli-intrinsics.ll
llvm/test/CodeGen/RISCV/rvv/vfrec7-rv32.ll
llvm/test/CodeGen/RISCV/rvv/vfrec7-rv64.ll
llvm/test/CodeGen/RISCV/rvv/vfrsqrt7-rv32.ll
llvm/test/CodeGen/RISCV/rvv/vfrsqrt7-rv64.ll
llvm/test/CodeGen/RISCV/rvv/vle1-rv32.ll
llvm/test/CodeGen/RISCV/rvv/vle1-rv64.ll
llvm/test/CodeGen/RISCV/rvv/vse1-rv32.ll
llvm/test/CodeGen/RISCV/rvv/vse1-rv64.ll
llvm/test/CodeGen/RISCV/vfrece7-rv32.ll
llvm/test/CodeGen/RISCV/vfrece7-rv64.ll
llvm/test/CodeGen/RISCV/vfrsqrte7-rv32.ll
llvm/test/CodeGen/RISCV/vfrsqrte7-rv64.ll
llvm/test/MC/RISCV/rvv/fothers.s
llvm/test/MC/RISCV/rvv/invalid.s
llvm/test/MC/RISCV/rvv/load.s
llvm/test/MC/RISCV/rvv/store.s
llvm/test/MC/RISCV/rvv/vsetvl.s
llvm/test/MC/RISCV/rvv/zvlsseg.s
|
Is this currently safe, or is it a FIXME to enable additional optimizations? It might be reassuring to have some tests which show vsetvli and vsetivli behave correctly together.