1
1
// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p2,+sme-b16b16 < %s \
2
2
// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
3
+ // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme-mop4,+sme-b16b16 < %s \
4
+ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
3
5
// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
4
6
// RUN: | FileCheck %s --check-prefix=CHECK-ERROR
5
7
// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2p2,+sme-b16b16 < %s \
19
21
bfmop4a za0.h, z0.h, z16.h // 10000001-00100000-00000000-00001000
20
22
// CHECK-INST: bfmop4a za0.h, z0.h, z16.h
21
23
// CHECK-ENCODING: [0x08,0x00,0x20,0x81]
22
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
24
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
23
25
// CHECK-UNKNOWN: 81200008 <unknown>
24
26
25
27
bfmop4a za1.h, z12.h, z24.h // 10000001-00101000-00000001-10001001
26
28
// CHECK-INST: bfmop4a za1.h, z12.h, z24.h
27
29
// CHECK-ENCODING: [0x89,0x01,0x28,0x81]
28
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
30
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
29
31
// CHECK-UNKNOWN: 81280189 <unknown>
30
32
31
33
bfmop4a za1.h, z14.h, z30.h // 10000001-00101110-00000001-11001001
32
34
// CHECK-INST: bfmop4a za1.h, z14.h, z30.h
33
35
// CHECK-ENCODING: [0xc9,0x01,0x2e,0x81]
34
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
36
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
35
37
// CHECK-UNKNOWN: 812e01c9 <unknown>
36
38
37
39
// Single and multiple vectors
38
40
39
41
bfmop4a za0.h, z0.h, {z16.h-z17.h} // 10000001-00110000-00000000-00001000
40
42
// CHECK-INST: bfmop4a za0.h, z0.h, { z16.h, z17.h }
41
43
// CHECK-ENCODING: [0x08,0x00,0x30,0x81]
42
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
44
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
43
45
// CHECK-UNKNOWN: 81300008 <unknown>
44
46
45
47
bfmop4a za1.h, z12.h, {z24.h-z25.h} // 10000001-00111000-00000001-10001001
46
48
// CHECK-INST: bfmop4a za1.h, z12.h, { z24.h, z25.h }
47
49
// CHECK-ENCODING: [0x89,0x01,0x38,0x81]
48
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
50
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
49
51
// CHECK-UNKNOWN: 81380189 <unknown>
50
52
51
53
bfmop4a za1.h, z14.h, {z30.h-z31.h} // 10000001-00111110-00000001-11001001
52
54
// CHECK-INST: bfmop4a za1.h, z14.h, { z30.h, z31.h }
53
55
// CHECK-ENCODING: [0xc9,0x01,0x3e,0x81]
54
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
56
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
55
57
// CHECK-UNKNOWN: 813e01c9 <unknown>
56
58
57
59
// Multiple and single vectors
58
60
59
61
bfmop4a za0.h, {z0.h-z1.h}, z16.h // 10000001-00100000-00000010-00001000
60
62
// CHECK-INST: bfmop4a za0.h, { z0.h, z1.h }, z16.h
61
63
// CHECK-ENCODING: [0x08,0x02,0x20,0x81]
62
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
64
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
63
65
// CHECK-UNKNOWN: 81200208 <unknown>
64
66
65
67
bfmop4a za1.h, {z12.h-z13.h}, z24.h // 10000001-00101000-00000011-10001001
66
68
// CHECK-INST: bfmop4a za1.h, { z12.h, z13.h }, z24.h
67
69
// CHECK-ENCODING: [0x89,0x03,0x28,0x81]
68
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
70
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
69
71
// CHECK-UNKNOWN: 81280389 <unknown>
70
72
71
73
bfmop4a za1.h, {z14.h-z15.h}, z30.h // 10000001-00101110-00000011-11001001
72
74
// CHECK-INST: bfmop4a za1.h, { z14.h, z15.h }, z30.h
73
75
// CHECK-ENCODING: [0xc9,0x03,0x2e,0x81]
74
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
76
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
75
77
// CHECK-UNKNOWN: 812e03c9 <unknown>
76
78
77
79
// Multiple vectors
78
80
79
81
bfmop4a za0.h, {z0.h-z1.h}, {z16.h-z17.h} // 10000001-00110000-00000010-00001000
80
82
// CHECK-INST: bfmop4a za0.h, { z0.h, z1.h }, { z16.h, z17.h }
81
83
// CHECK-ENCODING: [0x08,0x02,0x30,0x81]
82
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
84
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
83
85
// CHECK-UNKNOWN: 81300208 <unknown>
84
86
85
87
bfmop4a za1.h, {z12.h-z13.h}, {z24.h-z25.h} // 10000001-00111000-00000011-10001001
86
88
// CHECK-INST: bfmop4a za1.h, { z12.h, z13.h }, { z24.h, z25.h }
87
89
// CHECK-ENCODING: [0x89,0x03,0x38,0x81]
88
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
90
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
89
91
// CHECK-UNKNOWN: 81380389 <unknown>
90
92
91
93
bfmop4a za1.h, {z14.h-z15.h}, {z30.h-z31.h} // 10000001-00111110-00000011-11001001
92
94
// CHECK-INST: bfmop4a za1.h, { z14.h, z15.h }, { z30.h, z31.h }
93
95
// CHECK-ENCODING: [0xc9,0x03,0x3e,0x81]
94
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
96
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
95
97
// CHECK-UNKNOWN: 813e03c9 <unknown>
96
98
97
99
@@ -102,77 +104,77 @@ bfmop4a za1.h, {z14.h-z15.h}, {z30.h-z31.h} // 10000001-00111110-00000011-11001
102
104
bfmop4s za0.h, z0.h, z16.h // 10000001-00100000-00000000-00011000
103
105
// CHECK-INST: bfmop4s za0.h, z0.h, z16.h
104
106
// CHECK-ENCODING: [0x18,0x00,0x20,0x81]
105
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
107
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
106
108
// CHECK-UNKNOWN: 81200018 <unknown>
107
109
108
110
bfmop4s za1.h, z12.h, z24.h // 10000001-00101000-00000001-10011001
109
111
// CHECK-INST: bfmop4s za1.h, z12.h, z24.h
110
112
// CHECK-ENCODING: [0x99,0x01,0x28,0x81]
111
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
113
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
112
114
// CHECK-UNKNOWN: 81280199 <unknown>
113
115
114
116
bfmop4s za1.h, z14.h, z30.h // 10000001-00101110-00000001-11011001
115
117
// CHECK-INST: bfmop4s za1.h, z14.h, z30.h
116
118
// CHECK-ENCODING: [0xd9,0x01,0x2e,0x81]
117
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
119
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
118
120
// CHECK-UNKNOWN: 812e01d9 <unknown>
119
121
120
122
// Single and multiple vectors
121
123
122
124
bfmop4s za0.h, z0.h, {z16.h-z17.h} // 10000001-00110000-00000000-00011000
123
125
// CHECK-INST: bfmop4s za0.h, z0.h, { z16.h, z17.h }
124
126
// CHECK-ENCODING: [0x18,0x00,0x30,0x81]
125
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
127
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
126
128
// CHECK-UNKNOWN: 81300018 <unknown>
127
129
128
130
bfmop4s za1.h, z12.h, {z24.h-z25.h} // 10000001-00111000-00000001-10011001
129
131
// CHECK-INST: bfmop4s za1.h, z12.h, { z24.h, z25.h }
130
132
// CHECK-ENCODING: [0x99,0x01,0x38,0x81]
131
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
133
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
132
134
// CHECK-UNKNOWN: 81380199 <unknown>
133
135
134
136
bfmop4s za1.h, z14.h, {z30.h-z31.h} // 10000001-00111110-00000001-11011001
135
137
// CHECK-INST: bfmop4s za1.h, z14.h, { z30.h, z31.h }
136
138
// CHECK-ENCODING: [0xd9,0x01,0x3e,0x81]
137
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
139
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
138
140
// CHECK-UNKNOWN: 813e01d9 <unknown>
139
141
140
142
// Multiple and single vectors
141
143
142
144
bfmop4s za0.h, {z0.h-z1.h}, z16.h // 10000001-00100000-00000010-00011000
143
145
// CHECK-INST: bfmop4s za0.h, { z0.h, z1.h }, z16.h
144
146
// CHECK-ENCODING: [0x18,0x02,0x20,0x81]
145
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
147
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
146
148
// CHECK-UNKNOWN: 81200218 <unknown>
147
149
148
150
bfmop4s za1.h, {z12.h-z13.h}, z24.h // 10000001-00101000-00000011-10011001
149
151
// CHECK-INST: bfmop4s za1.h, { z12.h, z13.h }, z24.h
150
152
// CHECK-ENCODING: [0x99,0x03,0x28,0x81]
151
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
153
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
152
154
// CHECK-UNKNOWN: 81280399 <unknown>
153
155
154
156
bfmop4s za1.h, {z14.h-z15.h}, z30.h // 10000001-00101110-00000011-11011001
155
157
// CHECK-INST: bfmop4s za1.h, { z14.h, z15.h }, z30.h
156
158
// CHECK-ENCODING: [0xd9,0x03,0x2e,0x81]
157
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
159
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
158
160
// CHECK-UNKNOWN: 812e03d9 <unknown>
159
161
160
162
// Multiple vectors
161
163
162
164
bfmop4s za0.h, {z0.h-z1.h}, {z16.h-z17.h} // 10000001-00110000-00000010-00011000
163
165
// CHECK-INST: bfmop4s za0.h, { z0.h, z1.h }, { z16.h, z17.h }
164
166
// CHECK-ENCODING: [0x18,0x02,0x30,0x81]
165
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
167
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
166
168
// CHECK-UNKNOWN: 81300218 <unknown>
167
169
168
170
bfmop4s za1.h, {z12.h-z13.h}, {z24.h-z25.h} // 10000001-00111000-00000011-10011001
169
171
// CHECK-INST: bfmop4s za1.h, { z12.h, z13.h }, { z24.h, z25.h }
170
172
// CHECK-ENCODING: [0x99,0x03,0x38,0x81]
171
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
173
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
172
174
// CHECK-UNKNOWN: 81380399 <unknown>
173
175
174
176
bfmop4s za1.h, {z14.h-z15.h}, {z30.h-z31.h} // 10000001-00111110-00000011-11011001
175
177
// CHECK-INST: bfmop4s za1.h, { z14.h, z15.h }, { z30.h, z31.h }
176
178
// CHECK-ENCODING: [0xd9,0x03,0x3e,0x81]
177
- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
179
+ // CHECK-ERROR: instruction requires: sme2p2 or sme-mop4 sme-b16b16
178
180
// CHECK-UNKNOWN: 813e03d9 <unknown>
0 commit comments