[PATCH] D93006: [RISCV] Initial support for RVV intrinsic
PeiHsiangHung via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 10 17:58:25 PST 2020
NickHung added a comment.
In D93006#2447513 <https://reviews.llvm.org/D93006#2447513>, @craig.topper wrote:
> Are you proposing to do custom isel in RISCVISelDAGToDAG.cpp using lookupPseudoByIntrinsicAndLMUL and not using the RISCVGenDAGISel.inc table? Do you have an implementation of that yet?
Thanks for your feedback.
Yes, our internal implementation didn't select RVV intrinsic by the generated matching table in RISCVGenDAGISel.inc, because we don't write any matching rules in RISCVInstrInfoVPseudos.td.
We've referenced the code from EPI, check out https://repo.hca.bsc.es/gitlab/rferrer/llvm-epi/-/blob/EPI/llvm/lib/Target/RISCV/RISCVInstrInfoEPI.td
The number of lines in RISCVInstrInfoEPI.td is 4323, and most of the classes are duplicated in order to cope with the different formats of RVV.
It also contains many comments such as "//// FIXME: These patterns are wrong", so we guess the author must be struggling when writing the matching rules.
We propose to do custom selection in RISCVISelDAGToDAG.cpp with a programmable function and we've implemented all RVV 1.0 instructions in this way.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D93006/new/
https://reviews.llvm.org/D93006
More information about the llvm-commits
mailing list