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