1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve  2>&1 < %s| FileCheck %s
2
3fcmge   p0.b, p0/z, z0.b, z0.b
4// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid predicate register
5// CHECK-NEXT: fcmge   p0.b, p0/z, z0.b, z0.b
6// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
7
8fcmge   p0.s, p0/z, z0.s, #1.0
9// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected floating-point constant #0.0
10// CHECK-NEXT: fcmge   p0.s, p0/z, z0.s, #1.0
11// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
12
13
14// --------------------------------------------------------------------------//
15// Negative tests for instructions that are incompatible with movprfx
16
17movprfx z0.d, p0/z, z7.d
18fcmge   p0.d, p0/z, z0.d, #0.0
19// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
20// CHECK-NEXT: fcmge   p0.d, p0/z, z0.d, #0.0
21// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
22
23movprfx z0, z7
24fcmge   p0.d, p0/z, z0.d, #0.0
25// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
26// CHECK-NEXT: fcmge   p0.d, p0/z, z0.d, #0.0
27// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
28
29movprfx z0.d, p0/z, z7.d
30fcmge   p0.d, p0/z, z0.d, z1.d
31// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
32// CHECK-NEXT: fcmge   p0.d, p0/z, z0.d, z1.d
33// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
34
35movprfx z0, z7
36fcmge   p0.d, p0/z, z0.d, z1.d
37// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
38// CHECK-NEXT: fcmge   p0.d, p0/z, z0.d, z1.d
39// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:
40