• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve  2>&1 < %s| FileCheck %s
2
3// ------------------------------------------------------------------------- //
4// Invalid result register
5
6uqdecb wsp
7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand
8// CHECK-NEXT: uqdecb wsp
9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
10
11uqdecb sp
12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand
13// CHECK-NEXT: uqdecb sp
14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
15
16uqdecb z0.b
17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand
18// CHECK-NEXT: uqdecb z0.b
19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
20
21
22// ------------------------------------------------------------------------- //
23// Operands not matching up (unsigned dec only has one register operand)
24
25uqdecb x0, w0
26// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand
27// CHECK-NEXT: uqdecb x0, w0
28// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
29
30uqdecb w0, w0
31// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand
32// CHECK-NEXT: uqdecb w0, w0
33// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
34
35uqdecb x0, x0
36// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand
37// CHECK-NEXT: uqdecb x0, x0
38// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
39
40
41// ------------------------------------------------------------------------- //
42// Immediate not compatible with encode/decode function.
43
44uqdecb x0, all, mul #-1
45// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16]
46// CHECK-NEXT: uqdecb x0, all, mul #-1
47// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
48
49uqdecb x0, all, mul #0
50// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16]
51// CHECK-NEXT: uqdecb x0, all, mul #0
52// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
53
54uqdecb x0, all, mul #17
55// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: immediate must be an integer in range [1, 16]
56// CHECK-NEXT: uqdecb x0, all, mul #17
57// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
58
59
60// ------------------------------------------------------------------------- //
61// Invalid predicate patterns
62
63uqdecb x0, vl512
64// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand
65// CHECK-NEXT: uqdecb x0, vl512
66// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
67
68uqdecb x0, vl9
69// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand
70// CHECK-NEXT: uqdecb x0, vl9
71// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
72
73uqdecb x0, #-1
74// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate pattern
75// CHECK-NEXT: uqdecb x0, #-1
76// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
77
78uqdecb x0, #32
79// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate pattern
80// CHECK-NEXT: uqdecb x0, #32
81// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
82