1 // RUN
: not llvm-mc
-triple
=aarch64-none-linux-gnu
-show-encoding
-mattr
=+sve
2>&1 < %s | FileCheck
%s
3 // ------------------------------------------------------------------------- //
4 // Invalid predicate operand
6 sel z0.
b, p0.
b, z0.
b, z0.
b
7 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid predicate register
8 // CHECK-NEXT
: sel z0.
b, p0.
b, z0.
b, z0.
b
9 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
11 sel z0.
b, p0.q
, z0.
b, z0.
b
12 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid predicate register
13 // CHECK-NEXT
: sel z0.
b, p0.q
, z0.
b, z0.
b
14 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
16 sel p0.
b, p0.
b, p0.
b, p0.
b
17 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid predicate register
18 // CHECK-NEXT
: sel p0.
b, p0.
b, p0.
b, p0.
b
19 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
21 sel p0.
b, p0.q
, p0.
b, p0.
b
22 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid predicate register
23 // CHECK-NEXT
: sel p0.
b, p0.q
, p0.
b, p0.
b
24 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
27 // --------------------------------------------------------------------------//
28 // Negative tests for instructions that are incompatible with movprfx
30 movprfx z28.
b, p7
/z
, z30.
b
31 sel z28.
b, p7
, z13.
b, z8.
b
32 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction is unpredictable when following
a movprfx
, suggest replacing movprfx with mov
33 // CHECK-NEXT
: sel z28.
b, p7
, z13.
b, z8.
b
34 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
37 sel z23.
b, p11
, z13.
b, z8.
b
38 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction is unpredictable when following
a movprfx
, suggest replacing movprfx with mov
39 // CHECK-NEXT
: sel z23.
b, p11
, z13.
b, z8.
b
40 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}: