[llvm] [CodeGen][MIR] Support parsing of scalable vectors in MIR (PR #70893)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 2 16:38:26 PDT 2023
================
@@ -1946,24 +1946,42 @@ bool MIParser::parseLowLevelType(StringRef::iterator Loc, LLT &Ty) {
// Now we're looking for a vector.
if (Token.isNot(MIToken::less))
- return error(Loc,
- "expected sN, pA, <M x sN>, or <M x pA> for GlobalISel type");
+ return error(Loc, "expected sN, pA, <M x sN>, <M x pA>, <vscale x M x sN>, "
+ "or <vscale x M x pA> for GlobalISel type");
lex();
+ bool HasVScale =
+ Token.is(MIToken::Identifier) && Token.stringValue() == "vscale";
+ if (HasVScale) {
+ lex();
+ if (Token.isNot(MIToken::Identifier) || Token.stringValue() != "x")
+ return error("expected <vscale x M x sN> or <vscale x M x pA>");
+ lex();
+ }
+
+ auto GetError = [this, &HasVScale, Loc]() {
+ if (HasVScale)
+ return error(
+ Loc, "expected <vscale x M x sN> or <vscale M x pA> for vector type");
+ else
----------------
arsenm wrote:
No return after else
https://github.com/llvm/llvm-project/pull/70893
More information about the llvm-commits
mailing list