1 // RUN
: not llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sve2p1
2>&1 < %s | FileCheck
%s
3 // --------------------------------------------------------------------------//
6 ldnt1w
{z0.s-z2.s
}, pn8
/z
, [x0
, x0
, lsl
#3]
7 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
8 // CHECK-NEXT
: ldnt1w
{z0.s-z2.s
}, pn8
/z
, [x0
, x0
, lsl
#3]
9 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
11 ldnt1w
{z1.s-z4.s
}, 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
: ldnt1w
{z1.s-z4.s
}, pn8
/z
, [x0
, x0
, lsl
#3]
14 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
16 ldnt1w
{z7.s-z8.s
}, 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
: ldnt1w
{z7.s-z8.s
}, pn8
/z
, [x0
, x0
, lsl
#3]
19 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
21 // --------------------------------------------------------------------------//
22 // Invalid predicate-as-counter register
24 ldnt1w
{z0.s-z1.s
}, 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
: ldnt1w
{z0.s-z1.s
}, pn7
/z
, [x0
, x0
, lsl
#3]
27 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
29 ldnt1w
{z0.s-z1.s
}, pn8
/m
, [x13
, #-8, mul vl]
30 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: expecting
'z' predication
31 // CHECK-NEXT
: ldnt1w
{z0.s-z1.s
}, pn8
/m
, [x13
, #-8, mul vl]
32 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
34 ldnt1w
{z0.s-z1.s
}, pn8.s
, [x13
, #-8, mul vl]
35 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid restricted predicate-as-counter register expected pn8.
.pn15
36 // CHECK-NEXT
: ldnt1w
{z0.s-z1.s
}, pn8.s
, [x13
, #-8, mul vl]
37 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
39 // --------------------------------------------------------------------------//
40 // Invalid immediate range
42 ldnt1w
{z0.s-z3.s
}, 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
: ldnt1w
{z0.s-z3.s
}, pn8
/z
, [x0
, #-9, mul vl]
45 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
47 ldnt1w
{z0.s-z3.s
}, 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
: ldnt1w
{z0.s-z3.s
}, pn8
/z
, [x0
, #-36, mul vl]
50 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
52 ldnt1w
{z0.s-z3.s
}, 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
: ldnt1w
{z0.s-z3.s
}, pn8
/z
, [x0
, #32, mul vl]
55 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}: