1 // RUN
: not llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sve
2>&1 < %s| FileCheck
%s
4 // ------------------------------------------------------------------------- //
8 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: restricted predicate has range
[0, 7].
9 // CHECK-NEXT
: lasta w0
, p8
, z31.
b
10 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
13 // ------------------------------------------------------------------------- //
14 // Invalid element width
17 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid element width
18 // CHECK-NEXT
: lasta x0
, p7
, z31.
b
19 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
22 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid element width
23 // CHECK-NEXT
: lasta x0
, p7
, z31.h
24 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
27 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid element width
28 // CHECK-NEXT
: lasta x0
, p7
, z31.s
29 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
32 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid element width
33 // CHECK-NEXT
: lasta w0
, p7
, z31.d
34 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
37 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid element width
38 // CHECK-NEXT
: lasta b0
, p7
, z31.h
39 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
42 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid element width
43 // CHECK-NEXT
: lasta h0
, p7
, z31.s
44 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
47 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid element width
48 // CHECK-NEXT
: lasta s0
, p7
, z31.d
49 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
52 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid element width
53 // CHECK-NEXT
: lasta d0
, p7
, z31.
b
54 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
57 // --------------------------------------------------------------------------//
58 // Negative tests for instructions that are incompatible with movprfx
60 movprfx z31.d
, p7
/z
, z6.d
62 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction is unpredictable when following
a movprfx
, suggest replacing movprfx with mov
63 // CHECK-NEXT
: lasta x0
, p7
, z31.d
64 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
68 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction is unpredictable when following
a movprfx
, suggest replacing movprfx with mov
69 // CHECK-NEXT
: lasta x0
, p7
, z31.d
70 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
72 movprfx z31.d
, p7
/z
, z6.d
74 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction is unpredictable when following
a movprfx
, suggest replacing movprfx with mov
75 // CHECK-NEXT
: lasta d0
, p7
, z31.d
76 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
80 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction is unpredictable when following
a movprfx
, suggest replacing movprfx with mov
81 // CHECK-NEXT
: lasta d0
, p7
, z31.d
82 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}: