diff options
Diffstat (limited to 'llvm/test/MC/AArch64/SVE/lsr-diagnostics.s')
| -rw-r--r-- | llvm/test/MC/AArch64/SVE/lsr-diagnostics.s | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/llvm/test/MC/AArch64/SVE/lsr-diagnostics.s b/llvm/test/MC/AArch64/SVE/lsr-diagnostics.s index 3b353239a34..77ad88d6676 100644 --- a/llvm/test/MC/AArch64/SVE/lsr-diagnostics.s +++ b/llvm/test/MC/AArch64/SVE/lsr-diagnostics.s @@ -10,6 +10,16 @@ lsr z18.b, z27.b, #9 // CHECK-NEXT: lsr z18.b, z27.b, #9 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: +lsr z18.b, p0/m, z28.b, #0 +// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 8] +// CHECK-NEXT: lsr z18.b, p0/m, z28.b, #0 +// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: + +lsr z1.b, p0/m, z9.b, #9 +// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 8] +// CHECK-NEXT: lsr z1.b, p0/m, z9.b, #9 +// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: + lsr z26.h, z4.h, #0 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16] // CHECK-NEXT: lsr z26.h, z4.h, #0 @@ -20,6 +30,16 @@ lsr z25.h, z10.h, #17 // CHECK-NEXT: lsr z25.h, z10.h, #17 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: +lsr z21.h, p0/m, z2.h, #0 +// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16] +// CHECK-NEXT: lsr z21.h, p0/m, z2.h, #0 +// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: + +lsr z14.h, p0/m, z30.h, #17 +// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16] +// CHECK-NEXT: lsr z14.h, p0/m, z30.h, #17 +// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: + lsr z17.s, z0.s, #0 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 32] // CHECK-NEXT: lsr z17.s, z0.s, #0 @@ -30,6 +50,16 @@ lsr z0.s, z15.s, #33 // CHECK-NEXT: lsr z0.s, z15.s, #33 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: +lsr z6.s, p0/m, z12.s, #0 +// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 32] +// CHECK-NEXT: lsr z6.s, p0/m, z12.s, #0 +// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: + +lsr z23.s, p0/m, z19.s, #33 +// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 32] +// CHECK-NEXT: lsr z23.s, p0/m, z19.s, #33 +// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: + lsr z4.d, z13.d, #0 // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 64] // CHECK-NEXT: lsr z4.d, z13.d, #0 @@ -40,19 +70,53 @@ lsr z26.d, z26.d, #65 // CHECK-NEXT: lsr z26.d, z26.d, #65 // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: +lsr z3.d, p0/m, z24.d, #0 +// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 64] +// CHECK-NEXT: lsr z3.d, p0/m, z24.d, #0 +// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: + +lsr z25.d, p0/m, z16.d, #65 +// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 64] +// CHECK-NEXT: lsr z25.d, p0/m, z16.d, #65 +// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: + + +// --------------------------------------------------------------------------// // Source and Destination Registers must match + lsr z0.b, p0/m, z1.b, z2.b // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: operand must match destination register // CHECK-NEXT: lsr z0.b, p0/m, z1.b, z2.b // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: +lsr z0.b, p0/m, z1.b, #1 +// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: operand must match destination register +// CHECK-NEXT: lsr z0.b, p0/m, z1.b, #1 +// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: + + +// --------------------------------------------------------------------------// // Element sizes must match + +lsr z0.b, z0.d, z1.d +// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width +// CHECK-NEXT: lsr z0.b, z0.d, z1.d +// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: + +lsr z0.b, p0/m, z0.d, z1.d +// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width +// CHECK-NEXT: lsr z0.b, p0/m, z0.d, z1.d +// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: + lsr z0.b, p0/m, z0.b, z1.h // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width // CHECK-NEXT: lsr z0.b, p0/m, z0.b, z1.h // CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}: + +// --------------------------------------------------------------------------// // Predicate not in restricted predicate range + lsr z0.b, p8/m, z0.b, z1.b // CHECK: [[@LINE-1]]:{{[0-9]+}}: error: restricted predicate has range [0, 7]. // CHECK-NEXT: lsr z0.b, p8/m, z0.b, z1.b |

