[PATCH] D147617: [AArch64][SME] Fix LDR and STR asm parser
Caroline via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 6 04:05:43 PDT 2023
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
CarolineConcatto marked an inline comment as done.
Closed by commit rGffa0a2ecd4c0: [AArch64][SME] Fix LDR and STR asm parser (authored by CarolineConcatto).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D147617/new/
https://reviews.llvm.org/D147617
Files:
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/test/MC/AArch64/SME/ldr-diagnostics.s
llvm/test/MC/AArch64/SME/str-diagnostics.s
Index: llvm/test/MC/AArch64/SME/str-diagnostics.s
===================================================================
--- llvm/test/MC/AArch64/SME/str-diagnostics.s
+++ llvm/test/MC/AArch64/SME/str-diagnostics.s
@@ -51,3 +51,10 @@
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: str za[w12, #0], [x0, #0]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+// ------------------------------------------------------------------------- //
+// Mismatch between offset and immediate
+str za[w14, 6], [x10, #5, mul vl]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: unpredictable instruction, immediate and offset mismatch.
+// CHECK-NEXT: str za[w14, 6], [x10, #5, mul vl]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
Index: llvm/test/MC/AArch64/SME/ldr-diagnostics.s
===================================================================
--- llvm/test/MC/AArch64/SME/ldr-diagnostics.s
+++ llvm/test/MC/AArch64/SME/ldr-diagnostics.s
@@ -51,3 +51,10 @@
// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
// CHECK-NEXT: ldr za[w12, #0], [x0, #0]
// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
+
+// ------------------------------------------------------------------------- //
+// Mismatch between offset and immediate
+ldr za[w14, 6], [x10, #5, mul vl]
+// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: unpredictable instruction, immediate and offset mismatch.
+// CHECK-NEXT: ldr za[w14, 6], [x10, #5, mul vl]
+// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
Index: llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
===================================================================
--- llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+++ llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
@@ -5304,6 +5304,14 @@
"is also a destination");
[[fallthrough]];
}
+ case AArch64::LDR_ZA:
+ case AArch64::STR_ZA: {
+ if (Inst.getOperand(2).isImm() && Inst.getOperand(4).isImm() &&
+ Inst.getOperand(2).getImm() != Inst.getOperand(4).getImm())
+ return Error(Loc[1],
+ "unpredictable instruction, immediate and offset mismatch.");
+ break;
+ }
case AArch64::LDPDi:
case AArch64::LDPQi:
case AArch64::LDPSi:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D147617.511361.patch
Type: text/x-patch
Size: 2227 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230406/731c0e79/attachment.bin>
More information about the llvm-commits
mailing list