1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve  2>&1 < %s| FileCheck %s
2
3
4// --------------------------------------------------------------------------//
5// Invalid predicate suffix
6fcpy z0.h, p0/z, #0.0
7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
8// CHECK-NEXT: fcpy z0.h, p0/z, #0.0
9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
10
11fcpy z0.s, p0/z, #0.0
12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
13// CHECK-NEXT: fcpy z0.s, p0/z, #0.0
14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
15
16fcpy z0.d, p0/z, #0.0
17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction
18// CHECK-NEXT: fcpy z0.d, p0/z, #0.0
19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
20
21
22// --------------------------------------------------------------------------//
23// Invalid immediates
24
25fcpy z0.h, p0/m, #-0.05859375    // r = -4, n = 15
26// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
27// CHECK-NEXT: fcpy z0.h, p0/m, #-0.05859375    // r = -4, n = 15
28// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
29
30fcpy z0.s, p0/m, #-0.05859375    // r = -4, n = 15
31// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
32// CHECK-NEXT: fcpy z0.s, p0/m, #-0.05859375    // r = -4, n = 15
33// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
34
35fcpy z0.d, p0/m, #-0.05859375    // r = -4, n = 15
36// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
37// CHECK-NEXT: fcpy z0.d, p0/m, #-0.05859375    // r = -4, n = 15
38// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
39
40fcpy z0.h, p0/m, #-64.00000000    // r = 5, n = 32
41// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
42// CHECK-NEXT: fcpy z0.h, p0/m, #-64.00000000    // r = 5, n = 32
43// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
44
45fcpy z0.s, p0/m, #-64.00000000    // r = 5, n = 32
46// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
47// CHECK-NEXT: fcpy z0.s, p0/m, #-64.00000000    // r = 5, n = 32
48// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
49
50fcpy z0.d, p0/m, #-64.00000000    // r = 5, n = 32
51// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
52// CHECK-NEXT: fcpy z0.d, p0/m, #-64.00000000    // r = 5, n = 32
53// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
54
55fcpy z0.h, p0/m, #0.05859375    // r = -4, n = 15
56// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
57// CHECK-NEXT: fcpy z0.h, p0/m, #0.05859375    // r = -4, n = 15
58// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
59
60fcpy z0.s, p0/m, #0.05859375    // r = -4, n = 15
61// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
62// CHECK-NEXT: fcpy z0.s, p0/m, #0.05859375    // r = -4, n = 15
63// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
64
65fcpy z0.d, p0/m, #0.05859375    // r = -4, n = 15
66// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
67// CHECK-NEXT: fcpy z0.d, p0/m, #0.05859375    // r = -4, n = 15
68// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
69
70fcpy z0.h, p0/m, #64.00000000    // r = 5, n = 32
71// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
72// CHECK-NEXT: fcpy z0.h, p0/m, #64.00000000    // r = 5, n = 32
73// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
74
75fcpy z0.s, p0/m, #64.00000000    // r = 5, n = 32
76// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
77// CHECK-NEXT: fcpy z0.s, p0/m, #64.00000000    // r = 5, n = 32
78// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
79
80fcpy z0.d, p0/m, #64.00000000    // r = 5, n = 32
81// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected compatible register or floating-point constant
82// CHECK-NEXT: fcpy z0.d, p0/m, #64.00000000    // r = 5, n = 32
83// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
84