1 // RUN
: not llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sve2p1
2>&1 < %s | FileCheck
%s
3 // --------------------------------------------------------------------------//
6 ldnt1b
{z0.b-z2.
b}, pn8
/z
, [x0
, x0
, lsl
#3]
7 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
8 // CHECK-NEXT
: ldnt1b
{z0.b-z2.
b}, pn8
/z
, [x0
, x0
, lsl
#3]
9 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
11 ldnt1b
{z1.b-z4.
b}, pn8
/z
, [x0
, x0
, lsl
#3]
12 // 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
13 // CHECK-NEXT
: ldnt1b
{z1.b-z4.
b}, pn8
/z
, [x0
, x0
, lsl
#3]
14 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
16 ldnt1b
{z7.b-z8.
b}, pn8
/z
, [x0
, x0
, lsl
#3]
17 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: Invalid vector list
, expected list with
2 consecutive SVE vectors
, where the first vector is
a multiple of
2 and with matching element types
18 // CHECK-NEXT
: ldnt1b
{z7.b-z8.
b}, pn8
/z
, [x0
, x0
, lsl
#3]
19 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
21 // --------------------------------------------------------------------------//
22 // Invalid predicate-as-counter register
24 ldnt1b
{z0.b-z1.
b}, pn7
/z
, [x0
, x0
, lsl
#3]
25 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid restricted predicate-as-counter register expected pn8.
.pn15
26 // CHECK-NEXT
: ldnt1b
{z0.b-z1.
b}, pn7
/z
, [x0
, x0
, lsl
#3]
27 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
29 ldnt1b
{z0.b-z1.
b}, pn8
/m
, [x13
, #-8, mul vl]
30 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expecting
'z' predication
31 // CHECK-NEXT
: ldnt1b
{z0.b-z1.
b}, pn8
/m
, [x13
, #-8, mul vl]
32 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
34 ldnt1b
{z0.b-z1.
b}, pn8.
b, [x13
, #-8, mul vl]
35 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid restricted predicate-as-counter register expected pn8.
.pn15
36 // CHECK-NEXT
: ldnt1b
{z0.b-z1.
b}, pn8.
b, [x13
, #-8, mul vl]
37 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
39 // --------------------------------------------------------------------------//
40 // Invalid immediate range
42 ldnt1b
{z0.b-z3.
b}, pn8
/z
, [x0
, #-9, mul vl]
43 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: index must
be a multiple of
4 in range
[-32, 28]
44 // CHECK-NEXT
: ldnt1b
{z0.b-z3.
b}, pn8
/z
, [x0
, #-9, mul vl]
45 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
47 ldnt1b
{z0.b-z3.
b}, pn8
/z
, [x0
, #-36, mul vl]
48 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: index must
be a multiple of
4 in range
[-32, 28]
49 // CHECK-NEXT
: ldnt1b
{z0.b-z3.
b}, pn8
/z
, [x0
, #-36, mul vl]
50 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
52 ldnt1b
{z0.b-z3.
b}, pn8
/z
, [x0
, #32, mul vl]
53 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: index must
be a multiple of
4 in range
[-32, 28]
54 // CHECK-NEXT
: ldnt1b
{z0.b-z3.
b}, pn8
/z
, [x0
, #32, mul vl]
55 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}: