[AArch64][AsmParser] SME: Allow h/v suffix to be upper-case.
authorSander de Smalen <sander.desmalen@arm.com>
Thu, 24 Nov 2022 17:16:28 +0000 (17:16 +0000)
committerSander de Smalen <sander.desmalen@arm.com>
Mon, 28 Nov 2022 11:42:43 +0000 (11:42 +0000)
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/test/MC/AArch64/SME/ld1b.s

index 895748e..ca4717f 100644 (file)
@@ -3466,7 +3466,7 @@ AArch64AsmParser::tryParseMatrixRegister(OperandVector &Operands) {
   StringRef Tail = Name.drop_front(DotPosition);
   StringRef RowOrColumn = Head.take_back();
 
-  MatrixKind Kind = StringSwitch<MatrixKind>(RowOrColumn)
+  MatrixKind Kind = StringSwitch<MatrixKind>(RowOrColumn.lower())
                         .Case("h", MatrixKind::Row)
                         .Case("v", MatrixKind::Col)
                         .Default(MatrixKind::Tile);
index ed011a7..fc86ae3 100644 (file)
@@ -305,3 +305,18 @@ ld1b    za0v.b[w13, 7], p2/z, [x12, x11]
 // CHECK-ENCODING: [0x87,0xa9,0x0b,0xe0]
 // CHECK-ERROR: instruction requires: sme
 // CHECK-UNKNOWN: e00ba987 <unknown>
+
+// --------------------------------------------------------------------------//
+// Test parsing in all-caps
+
+LD1B    {ZA0H.B[W12, 0]}, P0/Z, [X0, X0]
+// CHECK-INST: ld1b    {za0h.b[w12, 0]}, p0/z, [x0, x0]
+// CHECK-ENCODING: [0x00,0x00,0x00,0xe0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: e0000000 <unknown>
+
+LD1B    {ZA0V.B[W12, 0]}, P0/Z, [X0, X0]
+// CHECK-INST: ld1b    {za0v.b[w12, 0]}, p0/z, [x0, x0]
+// CHECK-ENCODING: [0x00,0x80,0x00,0xe0]
+// CHECK-ERROR: instruction requires: sme
+// CHECK-UNKNOWN: e0008000 <unknown>