xref: /llvm-project/llvm/test/MC/AArch64/SVE2p1/pext-diagnostics.s (revision ecab1bc0dcdc04ec863f7aa3eaa5daad8232ba65)
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1 2>&1 < %s | FileCheck %s
2
3// --------------------------------------------------------------------------//
4// Invalid vector lists
5
6pext {p0.h, p2.h}, pn8[0]
7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
8// CHECK-NEXT: pext {p0.h, p2.h}, pn8[0]
9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
10
11pext {p15.h, p1.h}, pn8[0]
12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
13// CHECK-NEXT: pext {p15.h, p1.h}, pn8[0]
14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
15
16pext {p0.h, p1.b}, pn8[0]
17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: mismatched register size suffix
18// CHECK-NEXT: pext {p0.h, p1.b}, pn8[0]
19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
20
21pext {p0.h, p1.h, p2.h, p3.h}, pn8[0]
22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
23// CHECK-NEXT: pext {p0.h, p1.h, p2.h, p3.h}, pn8[0]
24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
25
26pext {p0.h}, pn8[0]
27// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
28// CHECK-NEXT: pext {p0.h}, pn8[0]
29// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
30
31// --------------------------------------------------------------------------//
32// Invalid predicate as counter register
33
34pext    p0.h, pn3[0]
35// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid restricted predicate-as-counter register expected pn8..pn15
36// CHECK-NEXT: pext    p0.h, pn3[0]
37// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
38
39// --------------------------------------------------------------------------//
40// Invalid lane index
41
42pext {p0.h, p1.h}, pn8[2]
43// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 1].
44// CHECK-NEXT: pext {p0.h, p1.h}, pn8[2]
45// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
46
47pext {p0.h, p1.h}, pn8[-1]
48// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 1].
49// CHECK-NEXT: pext {p0.h, p1.h}, pn8[-1]
50// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
51
52pext    p0.d, pn8[4]
53// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
54// CHECK-NEXT: pext    p0.d, pn8[4]
55// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
56
57pext    p0.b, pn8[-1]
58// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
59// CHECK-NEXT: pext    p0.b, pn8[-1]
60// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
61