xref: /llvm-project/llvm/test/MC/AArch64/SME2p1/luti4-diagnostics.s (revision 3eacda4547c59c3daa2daf275321c8013eb485cd)
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p1 2>&1 < %s | FileCheck %s
2
3// --------------------------------------------------------------------------//
4// Invalid lane indices
5
6luti4 {z0.h, z8.h}, zt0, z0[4]
7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
8// CHECK-NEXT: luti4 {z0.h, z8.h}, zt0, z0[4]
9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
10
11luti4 {z0.h, z8.h}, zt0, z0[-1]
12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
13// CHECK-NEXT: luti4 {z0.h, z8.h}, zt0, z0[-1]
14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
15
16luti4 {z0.h, z8.h}, zt0, z0[4]
17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
18// CHECK-NEXT: luti4 {z0.h, z8.h}, zt0, z0[4]
19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
20
21luti4 {z0.h, z8.h}, zt0, z0[-1]
22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
23// CHECK-NEXT: luti4 {z0.h, z8.h}, zt0, z0[-1]
24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
25
26luti4 {z0.b, z8.b}, zt0, z0[4]
27// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
28// CHECK-NEXT: luti4 {z0.b, z8.b}, zt0, z0[4]
29// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
30
31luti4 {z0.b, z8.b}, zt0, z0[-1]
32// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 3].
33// CHECK-NEXT: luti4 {z0.b, z8.b}, zt0, z0[-1]
34// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
35
36luti4 {z19.h, z23.h, z27.h, z31.h}, zt0, z31[2]
37// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 1].
38// CHECK-NEXT: luti4 {z19.h, z23.h, z27.h, z31.h}, zt0, z31[2]
39// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
40
41luti4 {z19.h, z23.h, z27.h, z31.h}, zt0, z31[-1]
42// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 1].
43// CHECK-NEXT: luti4 {z19.h, z23.h, z27.h, z31.h}, zt0, z31[-1]
44// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
45
46luti4 {z19.h, z23.h, z27.h, z31.h}, zt0, z31[2]
47// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 1].
48// CHECK-NEXT: luti4 {z19.h, z23.h, z27.h, z31.h}, zt0, z31[2]
49// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
50
51luti4 {z19.h, z23.h, z27.h, z31.h}, zt0, z31[-1]
52// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 1].
53// CHECK-NEXT: luti4 {z19.h, z23.h, z27.h, z31.h}, zt0, z31[-1]
54// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
55
56// --------------------------------------------------------------------------//
57// Invalid vector lists
58
59luti4 {z1.s-z4.s}, zt0, z0[3]
60// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: Invalid vector list, expected list with 4 consecutive SVE vectors, where the first vector is a multiple of 4 and with matching element types
61// CHECK-NEXT: luti4 {z1.s-z4.s}, zt0, z0[3]
62// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
63
64