1 // RUN
: not llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sve2p1
2>&1 < %s | FileCheck
%s
3 // --------------------------------------------------------------------------//
6 sqrshrn z0.h
, {z0.s-z2.s
}, #16
7 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
8 // CHECK-NEXT
: sqrshrn z0.h
, {z0.s-z2.s
}, #16
9 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
11 sqrshrn z0.h
, {z1.s-z2.s
}, #16
12 // 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
13 // CHECK-NEXT
: sqrshrn z0.h
, {z1.s-z2.s
}, #16
14 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
16 // --------------------------------------------------------------------------//
17 // Invalid vector suffixes
19 sqrshrn z0.
b, {z0.s-z1.s
}, #16
20 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid element width
21 // CHECK-NEXT
: sqrshrn z0.
b, {z0.s-z1.s
}, #16
22 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
24 sqrshrn z0.h
, {z0.d-z1.d
}, #16
25 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
26 // CHECK-NEXT
: sqrshrn z0.h
, {z0.d-z1.d
}, #16
27 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
29 // --------------------------------------------------------------------------//
32 sqrshrn z0.h
, {z0.s-z1.s
}, #17
33 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[1, 16].
34 // CHECK-NEXT
: sqrshrn z0.h
, {z0.s-z1.s
}, #17
35 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
37 sqrshrn z0.h
, {z0.s-z1.s
}, #0
38 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: immediate must
be an integer in range
[1, 16].
39 // CHECK-NEXT
: sqrshrn z0.h
, {z0.s-z1.s
}, #0
40 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}: