1+ // RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p2 2 >&1 < %s| FileCheck %s
2+
3+ // --------------------------------------------------------------------------//
4+ // Invalid element width
5+
6+ bfcvtnt z0.s, p0/z, z1.s
7+ // CHECK: [[@LINE-1 ]]:{{[0-9 ]+}}: error: invalid element width
8+ // CHECK-NEXT: bfcvtnt z0.s, p0/z, z1.s
9+ // CHECK-NOT : [[@LINE-1 ]]:{{[0-9 ]+}}:
10+
11+ bfcvtnt z0.d, p0/z, z1.d
12+ // CHECK: [[@LINE-1 ]]:{{[0-9 ]+}}: error: invalid element width
13+ // CHECK-NEXT: bfcvtnt z0.d, p0/z, z1.d
14+ // CHECK-NOT : [[@LINE-1 ]]:{{[0-9 ]+}}:
15+
16+ bfcvtnt z0.h, p0/z, z1.h
17+ // CHECK: [[@LINE-1 ]]:{{[0-9 ]+}}: error: invalid element width
18+ // CHECK-NEXT: bfcvtnt z0.h, p0/z, z1.h
19+ // CHECK-NOT : [[@LINE-1 ]]:{{[0-9 ]+}}:
20+
21+ bfcvtnt z0.h, p0/z, z1.d
22+ // CHECK: [[@LINE-1 ]]:{{[0-9 ]+}}: error: invalid element width
23+ // CHECK-NEXT: bfcvtnt z0.h, p0/z, z1.d
24+ // CHECK-NOT : [[@LINE-1 ]]:{{[0-9 ]+}}:
25+
26+ bfcvtnt z0.h, p0/z, z1.q
27+ // CHECK: [[@LINE-1 ]]:{{[0-9 ]+}}: error: invalid element width
28+ // CHECK-NEXT: bfcvtnt z0.h, p0/z, z1.q
29+ // CHECK-NOT : [[@LINE-1 ]]:{{[0-9 ]+}}
30+
31+ // --------------------------------------------------------------------------//
32+ // Predicate not in restricted predicate range
33+
34+ bfcvtnt z0.h, p8/z, z1.s
35+ // CHECK: [[@LINE-1 ]]:{{[0-9 ]+}}: error: invalid restricted predicate register, expected p0..p7 (without element suffix)
36+ // CHECK-NEXT: bfcvtnt z0.h, p8/z, z1.s
37+ // CHECK-NOT : [[@LINE-1 ]]:{{[0-9 ]+}}:
38+
39+ // --------------------------------------------------------------------------//
40+ // Negative tests for instructions that are incompatible with movprfx
41+
42+ movprfx z0.h, p0/m, z7.h
43+ bfcvtnt z0.h, p0/z, z1.s
44+ // CHECK: [[@LINE-1 ]]:{{[0-9 ]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
45+ // CHECK-NEXT: bfcvtnt z0.h, p0/z, z1.s
46+ // CHECK-NOT : [[@LINE-1 ]]:{{[0-9 ]+}}:
47+
48+ movprfx z0, z7
49+ bfcvtnt z0.h, p0/z, z1.s
50+ // CHECK: [[@LINE-1 ]]:{{[0-9 ]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov
51+ // CHECK-NEXT: bfcvtnt z0.h, p0/z, z1.s
52+ // CHECK-NOT : [[@LINE-1 ]]:{{[0-9 ]+}}:
0 commit comments