xref: /llvm-project/llvm/test/MC/AArch64/SVE2p1/whilelt-diagnostics.s (revision ecab1bc0dcdc04ec863f7aa3eaa5daad8232ba65)
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1 2>&1 < %s | FileCheck %s
2
3// --------------------------------------------------------------------------//
4// Invalid Pattern
5
6whilelt pn8.b, x0, x0, vlx1
7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand
8// CHECK-NEXT: whilelt pn8.b, x0, x0, vlx1
9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
10
11whilelt pn8.b, x0, x0
12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: too few operands for instruction
13// CHECK-NEXT: whilelt pn8.b, x0, x0
14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
15
16// --------------------------------------------------------------------------//
17// Invalid use of predicate without suffix
18
19whilelt pn8, x0, x0, vlx2
20// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid predicate register, expected PN in range pn8..pn15 with element suffix.
21// CHECK-NEXT: whilelt pn8, x0, x0, vlx2
22// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
23
24// --------------------------------------------------------------------------//
25// Out of range Predicate register
26
27whilelt pn7.b, x0, x0, vlx2
28// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid predicate register, expected PN in range pn8..pn15 with element suffix.
29// CHECK-NEXT: whilelt pn7.b, x0, x0, vlx2
30// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
31
32whilelt { p0.b, p2.b }, x13, x8
33// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
34// CHECK-NEXT: whilelt { p0.b, p2.b }, x13, x8
35// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
36
37whilelt { p15.b, p0.b }, x13, x8
38// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 2 consecutive predicate registers, where the first vector is a multiple of 2 and with correct element type
39// CHECK-NEXT: whilelt { p15.b, p0.b }, x13, x8
40// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
41