1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve  2>&1 < %s| FileCheck %s
2
3// ------------------------------------------------------------------------- //
4// Tied operands must match
5
6splice  z0.b, p0, z1.b, z2.b
7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: operand must match destination register
8// CHECK-NEXT: splice  z0.b, p0, z1.b, z2.b
9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
10
11
12// ------------------------------------------------------------------------- //
13// Invalid element widths.
14
15splice  z0.b, p0, z0.b, z2.h
16// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width
17// CHECK-NEXT: splice  z0.b, p0, z0.b, z2.h
18// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
19
20
21// ------------------------------------------------------------------------- //
22// Invalid predicate
23
24splice  z0.b, p8, z0.b, z1.b
25// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: restricted predicate has range [0, 7].
26// CHECK-NEXT: splice  z0.b, p8, z0.b, z1.b
27// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
28
29
30// --------------------------------------------------------------------------//
31// Negative tests for instructions that are incompatible with movprfx
32
33movprfx z4.d, p7/z, z6.d
34splice  z4.d, p7, z4.d, z31.d
35// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a predicated movprfx, suggest using unpredicated movprfx
36// CHECK-NEXT: splice  z4.d, p7, z4.d, z31.d
37// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
38