Questions about the T-Head Vector extension (xtheadvector) in LLVM upstream

Thanks for starting this discussion. I think the key things I’d look at when evaluating a non-standard extension are:

  • Is there a user community for it
  • Is there a clear specification we can use to evaluate the implementation against
  • Is the proposed implementation of a high quality
  • Will the author support the code long term, participate in code reviews etc
  • How large / invasive is the implementation. i.e. what impact will it have on the rest of the RISC-V backend

The last one is the big question mark for me. We’ve often assumed that supporting the older vector spec could be quite a large burden, though @kito-cheng indicates it turned out not to be huge for GCC. Could you say a bit about how that works out in your LLVM implementation?