1 // RUN
: not llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sme
2>&1 < %s| FileCheck
%s
3 // ------------------------------------------------------------------------- //
6 // missing element type suffix
8 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid predicate register.
9 // CHECK-NEXT
: psel p0
, p0
, p0
[w12
]
10 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
12 // ------------------------------------------------------------------------- //
13 // Invalid index base register register
(w12-w15
)
15 psel p0
, p0
, p0.
b[w11
]
16 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: operand must
be a register in range
[w12
, w15
]
17 // CHECK-NEXT
: psel p0
, p0
, p0.
b[w11
]
18 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
20 psel p0
, p0
, p0.
b[w16
]
21 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: operand must
be a register in range
[w12
, w15
]
22 // CHECK-NEXT
: psel p0
, p0
, p0.
b[w16
]
23 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
25 // --------------------------------------------------------------------------//
28 psel p0
, p0
, p0.
b[w12
, 16]
29 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 15].
30 // CHECK-NEXT
: psel p0
, p0
, p0.
b[w12
, 16]
31 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
33 psel p0
, p0
, p0.h
[w12
, 8]
34 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 7].
35 // CHECK-NEXT
: psel p0
, p0
, p0.h
[w12
, 8]
36 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
38 psel p0
, p0
, p0.s
[w12
, 4]
39 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 3].
40 // CHECK-NEXT
: psel p0
, p0
, p0.s
[w12
, 4]
41 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
43 psel p0
, p0
, p0.d
[w12
, 2]
44 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[0, 1].
45 // CHECK-NEXT
: psel p0
, p0
, p0.d
[w12
, 2]
46 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}: