1 // RUN
: not llvm-mc
-triple
=aarch64
-show-encoding
-mattr
=+sve2p1
,+b16b16
2>&1 < %s | FileCheck
%s
3 // --------------------------------------------------------------------------//
4 // Invalid predicate register
6 bfmul z23.h
, p8
/m
, z23.h
, z13.h
7 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid restricted predicate register
, expected p0.
.p7 (without element suffix)
8 // CHECK-NEXT
: bfmul z23.h
, p8
/m
, z23.h
, z13.h
9 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
11 bfmul z23.h
, p1
/z
, z23.h
, z13.h
12 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid operand for instruction
13 // CHECK-NEXT
: bfmul z23.h
, p1
/z
, z23.h
, z13.h
14 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
16 // --------------------------------------------------------------------------//
17 // Invalid vector suffix
19 bfmul z23.h
, p1
/m
, z23.s
, z13.s
20 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid element width
21 // CHECK-NEXT
: bfmul z23.h
, p1
/m
, z23.s
, z13.s
22 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
24 bfmul z23.s
, z23.h
, z13.h
25 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: invalid element width
26 // CHECK-NEXT
: bfmul z23.s
, z23.h
, z13.h
27 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}:
29 // --------------------------------------------------------------------------//
30 // Invalid use of movprfx
32 movprfx z23.h
, p1
/m
, z31.h
33 bfmul z23.h
, z23.h
, z13.h
34 // CHECK
: [[@LINE-
1]]:{{[0-9]+}}: error
: instruction is unpredictable when following
a movprfx
, suggest replacing movprfx with mov
35 // CHECK-NEXT
: bfmul z23.h
, z23.h
, z13.h
36 // CHECK-
NOT: [[@LINE-
1]]:{{[0-9]+}}: