diff options
author | Momchil Velikov <momchil.velikov@arm.com> | 2019-08-13 16:13:00 +0000 |
---|---|---|
committer | Momchil Velikov <momchil.velikov@arm.com> | 2019-08-13 16:13:00 +0000 |
commit | 114c37e72a5f01f49761b42b3ff45334ed863a81 (patch) | |
tree | d8f8203a2a9a53974e5a6212e710a5e2210644bf /llvm/test/MC/ARM | |
parent | f990e4a4c7bcc3c3dec6ee8ffac39cc0a27e521a (diff) | |
download | bcm5719-llvm-114c37e72a5f01f49761b42b3ff45334ed863a81.tar.gz bcm5719-llvm-114c37e72a5f01f49761b42b3ff45334ed863a81.zip |
[ARM] Fix detection of duplicates when parsing reg list operands
Differential Revision: https://reviews.llvm.org/D65957
llvm-svn: 368712
Diffstat (limited to 'llvm/test/MC/ARM')
-rw-r--r-- | llvm/test/MC/ARM/register-list-dup.s | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/llvm/test/MC/ARM/register-list-dup.s b/llvm/test/MC/ARM/register-list-dup.s new file mode 100644 index 00000000000..2e98fa0712c --- /dev/null +++ b/llvm/test/MC/ARM/register-list-dup.s @@ -0,0 +1,66 @@ +// RUN: not llvm-mc -triple=thumbv8.1m.main-none-eabi -show-encoding < %s 2>&1 | FileCheck -strict-whitespace %s + +clrm {r0, r0} +// CHECK: warning: duplicated register (r0) in register list +// CHECK-NEXT: {{^clrm {r0, r0}}} +// CHECK-NEXT: {{^ \^}} + +clrm {r0, r0, r1} +// CHECK: warning: duplicated register (r0) in register list +// CHECK-NEXT: {{^clrm {r0, r0, r1}}} +// CHECK-NEXT: {{^ \^}} + +clrm {r0, r1, r0} +// CHECK: warning: duplicated register (r0) in register list +// CHECK-NEXT: {{^clrm {r0, r1, r0}}} +// CHECK-NEXT: {{^ \^}} + +clrm {r0, r1, r1} +// CHECK: warning: duplicated register (r1) in register list +// CHECK-NEXT: {{^clrm {r0, r1, r1}}} +// CHECK-NEXT: {{^ \^}} + +clrm {r1, r0, r1} +// CHECK: warning: duplicated register (r1) in register list +// CHECK-NEXT: {{^clrm {r1, r0, r1}}} +// CHECK-NEXT: {{^ \^}} + +clrm {r1, r1, r0} +// CHECK: warning: duplicated register (r1) in register list +// CHECK-NEXT: {{^clrm {r1, r1, r0}}} +// CHECK-NEXT: {{^ \^}} + +clrm {r0-r3, r0} +// CHECK: warning: duplicated register (r0) in register list +// CHECK-NEXT: {{^clrm {r0-r3, r0}}} +// CHECK-NEXT: {{^ \^}} + +clrm {r2, r0-r3} +// CHECK: warning: duplicated register (r2) in register list +// CHECK-NEXT: {{^clrm {r2, r0-r3}}} +// CHECK-NEXT: {{^ \^}} + +vscclrm {s0, s0, s1, vpr} +// CHECK: error: non-contiguous register range +// CHECK: {{^vscclrm {s0, s0, s1, vpr}}} +// CHECK: {{^ \^}} + +vscclrm {s0-s3, vpr, s4} +// CHECK: error: register list not in ascending order +// CHECK-NEXT: {{^vscclrm {s0-s3, vpr, s4}}} +// CHECK-NEXT: {{^ \^}} + +vscclrm {s0-s3, vpr, vpr} +// CHECK: warning: duplicated register (vpr) in register list +// CHECK-NEXT: {{^vscclrm {s0-s3, vpr, vpr}}} +// CHECK-NEXT: {{^ \^}} + +vscclrm {q2, d4, vpr} +// CHECK: error: register list not in ascending order +// CHECK-NEXT: {{^vscclrm {q2, d4, vpr}}} +// CHECK-NEXT: {{^ \^}} + +vscclrm {q2, d5, vpr} +// CHECK: error: non-contiguous register range +// CHECK-NEXT: {{^vscclrm {q2, d5, vpr}}} +// CHECK-NEXT: {{^ \^}} |