xref: /llvm-project/llvm/test/MC/AArch64/SVE2p1/pmov-diagnostics.s (revision b048b1b769aaf93abe22c01ac2ecad7d68762811)
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1 2>&1 < %s | FileCheck %s
2
3// --------------------------------------------------------------------------//
4// Invalid vector lane indices
5
6pmov p0.b, z0[1]
7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected lane specifier '[0]'
8// CHECK-NEXT: pmov p0.b, z0[1]
9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
10
11pmov p0.h, z0[2]
12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 1].
13// CHECK-NEXT: pmov p0.h, z0[2]
14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
15
16pmov p0.h, z0[-1]
17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 1].
18// CHECK-NEXT: pmov p0.h, z0[-1]
19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
20
21pmov p0.s, z0[4]
22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
23// CHECK-NEXT: pmov p0.s, z0[4]
24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
25
26pmov p0.s, z0[-1]
27// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
28// CHECK-NEXT: pmov p0.s, z0[-1]
29// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
30
31pmov p0.d, z0[8]
32// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7].
33// CHECK-NEXT: pmov p0.d, z0[8]
34// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
35
36pmov p0.d, z0[-1]
37// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 7].
38// CHECK-NEXT: pmov p0.d, z0[-1]
39// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
40
41
42
43pmov z0[2], p0.h
44// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register.
45// CHECK-NEXT: pmov z0[2], p0.h
46// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
47
48pmov z0[-1], p0.h
49// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
50// CHECK-NEXT: pmov z0[-1], p0.h
51// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
52
53pmov z0[4], p0.s
54// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register.
55// CHECK-NEXT: pmov z0[4], p0.s
56// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
57
58pmov z0[-1], p0.s
59// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
60// CHECK-NEXT: pmov z0[-1], p0.s
61// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
62
63pmov z0[8], p0.d
64// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
65// CHECK-NEXT: pmov z0[8], p0.d
66// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
67
68pmov z0[-1], p0.d
69// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
70// CHECK-NEXT: pmov z0[-1], p0.d
71// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
72
73