[llvm] 7f01737 - [AArch64][AsmParser] SME: Allow h/v suffix to be upper-case.

Sander de Smalen via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 28 03:43:29 PST 2022


Author: Sander de Smalen
Date: 2022-11-28T11:42:43Z
New Revision: 7f017376875815c5a5dece807dcb397e267a97aa

URL: https://github.com/llvm/llvm-project/commit/7f017376875815c5a5dece807dcb397e267a97aa
DIFF: https://github.com/llvm/llvm-project/commit/7f017376875815c5a5dece807dcb397e267a97aa.diff

LOG: [AArch64][AsmParser] SME: Allow h/v suffix to be upper-case.

Added: 
    

Modified: 
    llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    llvm/test/MC/AArch64/SME/ld1b.s

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
index 895748e9d83cc..ca4717f0c3cf0 100644
--- a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+++ b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
@@ -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);

diff  --git a/llvm/test/MC/AArch64/SME/ld1b.s b/llvm/test/MC/AArch64/SME/ld1b.s
index ed011a7d9090e..fc86ae3086dad 100644
--- a/llvm/test/MC/AArch64/SME/ld1b.s
+++ b/llvm/test/MC/AArch64/SME/ld1b.s
@@ -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>


        


More information about the llvm-commits mailing list