1- // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p2 ,+sme-b16b16 < %s \
1+ // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme-mop4 ,+sme-b16b16 < %s \
22// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
33// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
44// RUN: | FileCheck %s --check-prefix=CHECK-ERROR
5- // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2p2 ,+sme-b16b16 < %s \
6- // RUN: | llvm-objdump -d --mattr=+sme2p2 ,+sme-b16b16 - | FileCheck %s --check-prefix=CHECK-INST
7- // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2p2 ,+sme-b16b16 < %s \
8- // RUN: | llvm-objdump -d --mattr=-sme2p2 - | FileCheck %s --check-prefix=CHECK-UNKNOWN
5+ // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme-mop4 ,+sme-b16b16 < %s \
6+ // RUN: | llvm-objdump -d --mattr=+sme-mop4 ,+sme-b16b16 - | FileCheck %s --check-prefix=CHECK-INST
7+ // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme-mop4 ,+sme-b16b16 < %s \
8+ // RUN: | llvm-objdump -d --mattr=-sme-mop4 - | FileCheck %s --check-prefix=CHECK-UNKNOWN
99// Disassemble encoding and check the re-encoding (-show-encoding) matches.
10- // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2p2 ,+sme-b16b16 < %s \
10+ // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme-mop4 ,+sme-b16b16 < %s \
1111// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \
12- // RUN: | llvm-mc -triple=aarch64 -mattr=+sme2p2 ,+sme-b16b16 -disassemble -show-encoding \
12+ // RUN: | llvm-mc -triple=aarch64 -mattr=+sme-mop4 ,+sme-b16b16 -disassemble -show-encoding \
1313// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
1414
1515// BFMOP4A
1919bfmop4a za0.h, z0.h, z16.h // 10000001-00100000-00000000-00001000
2020// CHECK-INST: bfmop4a za0.h, z0.h, z16.h
2121// CHECK-ENCODING: [0x08,0x00,0x20,0x81]
22- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
22+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
2323// CHECK-UNKNOWN: 81200008 <unknown>
2424
2525bfmop4a za1.h, z12.h, z24.h // 10000001-00101000-00000001-10001001
2626// CHECK-INST: bfmop4a za1.h, z12.h, z24.h
2727// CHECK-ENCODING: [0x89,0x01,0x28,0x81]
28- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
28+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
2929// CHECK-UNKNOWN: 81280189 <unknown>
3030
3131bfmop4a za1.h, z14.h, z30.h // 10000001-00101110-00000001-11001001
3232// CHECK-INST: bfmop4a za1.h, z14.h, z30.h
3333// CHECK-ENCODING: [0xc9,0x01,0x2e,0x81]
34- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
34+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
3535// CHECK-UNKNOWN: 812e01c9 <unknown>
3636
3737// Single and multiple vectors
3838
3939bfmop4a za0.h, z0.h, {z16.h-z17.h} // 10000001-00110000-00000000-00001000
4040// CHECK-INST: bfmop4a za0.h, z0.h, { z16.h, z17.h }
4141// CHECK-ENCODING: [0x08,0x00,0x30,0x81]
42- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
42+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
4343// CHECK-UNKNOWN: 81300008 <unknown>
4444
4545bfmop4a za1.h, z12.h, {z24.h-z25.h} // 10000001-00111000-00000001-10001001
4646// CHECK-INST: bfmop4a za1.h, z12.h, { z24.h, z25.h }
4747// CHECK-ENCODING: [0x89,0x01,0x38,0x81]
48- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
48+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
4949// CHECK-UNKNOWN: 81380189 <unknown>
5050
5151bfmop4a za1.h, z14.h, {z30.h-z31.h} // 10000001-00111110-00000001-11001001
5252// CHECK-INST: bfmop4a za1.h, z14.h, { z30.h, z31.h }
5353// CHECK-ENCODING: [0xc9,0x01,0x3e,0x81]
54- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
54+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
5555// CHECK-UNKNOWN: 813e01c9 <unknown>
5656
5757// Multiple and single vectors
5858
5959bfmop4a za0.h, {z0.h-z1.h}, z16.h // 10000001-00100000-00000010-00001000
6060// CHECK-INST: bfmop4a za0.h, { z0.h, z1.h }, z16.h
6161// CHECK-ENCODING: [0x08,0x02,0x20,0x81]
62- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
62+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
6363// CHECK-UNKNOWN: 81200208 <unknown>
6464
6565bfmop4a za1.h, {z12.h-z13.h}, z24.h // 10000001-00101000-00000011-10001001
6666// CHECK-INST: bfmop4a za1.h, { z12.h, z13.h }, z24.h
6767// CHECK-ENCODING: [0x89,0x03,0x28,0x81]
68- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
68+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
6969// CHECK-UNKNOWN: 81280389 <unknown>
7070
7171bfmop4a za1.h, {z14.h-z15.h}, z30.h // 10000001-00101110-00000011-11001001
7272// CHECK-INST: bfmop4a za1.h, { z14.h, z15.h }, z30.h
7373// CHECK-ENCODING: [0xc9,0x03,0x2e,0x81]
74- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
74+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
7575// CHECK-UNKNOWN: 812e03c9 <unknown>
7676
7777// Multiple vectors
7878
7979bfmop4a za0.h, {z0.h-z1.h}, {z16.h-z17.h} // 10000001-00110000-00000010-00001000
8080// CHECK-INST: bfmop4a za0.h, { z0.h, z1.h }, { z16.h, z17.h }
8181// CHECK-ENCODING: [0x08,0x02,0x30,0x81]
82- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
82+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
8383// CHECK-UNKNOWN: 81300208 <unknown>
8484
8585bfmop4a za1.h, {z12.h-z13.h}, {z24.h-z25.h} // 10000001-00111000-00000011-10001001
8686// CHECK-INST: bfmop4a za1.h, { z12.h, z13.h }, { z24.h, z25.h }
8787// CHECK-ENCODING: [0x89,0x03,0x38,0x81]
88- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
88+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
8989// CHECK-UNKNOWN: 81380389 <unknown>
9090
9191bfmop4a za1.h, {z14.h-z15.h}, {z30.h-z31.h} // 10000001-00111110-00000011-11001001
9292// CHECK-INST: bfmop4a za1.h, { z14.h, z15.h }, { z30.h, z31.h }
9393// CHECK-ENCODING: [0xc9,0x03,0x3e,0x81]
94- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
94+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
9595// CHECK-UNKNOWN: 813e03c9 <unknown>
9696
9797
@@ -102,77 +102,77 @@ bfmop4a za1.h, {z14.h-z15.h}, {z30.h-z31.h} // 10000001-00111110-00000011-11001
102102bfmop4s za0.h, z0.h, z16.h // 10000001-00100000-00000000-00011000
103103// CHECK-INST: bfmop4s za0.h, z0.h, z16.h
104104// CHECK-ENCODING: [0x18,0x00,0x20,0x81]
105- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
105+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
106106// CHECK-UNKNOWN: 81200018 <unknown>
107107
108108bfmop4s za1.h, z12.h, z24.h // 10000001-00101000-00000001-10011001
109109// CHECK-INST: bfmop4s za1.h, z12.h, z24.h
110110// CHECK-ENCODING: [0x99,0x01,0x28,0x81]
111- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
111+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
112112// CHECK-UNKNOWN: 81280199 <unknown>
113113
114114bfmop4s za1.h, z14.h, z30.h // 10000001-00101110-00000001-11011001
115115// CHECK-INST: bfmop4s za1.h, z14.h, z30.h
116116// CHECK-ENCODING: [0xd9,0x01,0x2e,0x81]
117- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
117+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
118118// CHECK-UNKNOWN: 812e01d9 <unknown>
119119
120120// Single and multiple vectors
121121
122122bfmop4s za0.h, z0.h, {z16.h-z17.h} // 10000001-00110000-00000000-00011000
123123// CHECK-INST: bfmop4s za0.h, z0.h, { z16.h, z17.h }
124124// CHECK-ENCODING: [0x18,0x00,0x30,0x81]
125- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
125+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
126126// CHECK-UNKNOWN: 81300018 <unknown>
127127
128128bfmop4s za1.h, z12.h, {z24.h-z25.h} // 10000001-00111000-00000001-10011001
129129// CHECK-INST: bfmop4s za1.h, z12.h, { z24.h, z25.h }
130130// CHECK-ENCODING: [0x99,0x01,0x38,0x81]
131- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
131+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
132132// CHECK-UNKNOWN: 81380199 <unknown>
133133
134134bfmop4s za1.h, z14.h, {z30.h-z31.h} // 10000001-00111110-00000001-11011001
135135// CHECK-INST: bfmop4s za1.h, z14.h, { z30.h, z31.h }
136136// CHECK-ENCODING: [0xd9,0x01,0x3e,0x81]
137- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
137+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
138138// CHECK-UNKNOWN: 813e01d9 <unknown>
139139
140140// Multiple and single vectors
141141
142142bfmop4s za0.h, {z0.h-z1.h}, z16.h // 10000001-00100000-00000010-00011000
143143// CHECK-INST: bfmop4s za0.h, { z0.h, z1.h }, z16.h
144144// CHECK-ENCODING: [0x18,0x02,0x20,0x81]
145- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
145+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
146146// CHECK-UNKNOWN: 81200218 <unknown>
147147
148148bfmop4s za1.h, {z12.h-z13.h}, z24.h // 10000001-00101000-00000011-10011001
149149// CHECK-INST: bfmop4s za1.h, { z12.h, z13.h }, z24.h
150150// CHECK-ENCODING: [0x99,0x03,0x28,0x81]
151- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
151+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
152152// CHECK-UNKNOWN: 81280399 <unknown>
153153
154154bfmop4s za1.h, {z14.h-z15.h}, z30.h // 10000001-00101110-00000011-11011001
155155// CHECK-INST: bfmop4s za1.h, { z14.h, z15.h }, z30.h
156156// CHECK-ENCODING: [0xd9,0x03,0x2e,0x81]
157- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
157+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
158158// CHECK-UNKNOWN: 812e03d9 <unknown>
159159
160160// Multiple vectors
161161
162162bfmop4s za0.h, {z0.h-z1.h}, {z16.h-z17.h} // 10000001-00110000-00000010-00011000
163163// CHECK-INST: bfmop4s za0.h, { z0.h, z1.h }, { z16.h, z17.h }
164164// CHECK-ENCODING: [0x18,0x02,0x30,0x81]
165- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
165+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
166166// CHECK-UNKNOWN: 81300218 <unknown>
167167
168168bfmop4s za1.h, {z12.h-z13.h}, {z24.h-z25.h} // 10000001-00111000-00000011-10011001
169169// CHECK-INST: bfmop4s za1.h, { z12.h, z13.h }, { z24.h, z25.h }
170170// CHECK-ENCODING: [0x99,0x03,0x38,0x81]
171- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
171+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
172172// CHECK-UNKNOWN: 81380399 <unknown>
173173
174174bfmop4s za1.h, {z14.h-z15.h}, {z30.h-z31.h} // 10000001-00111110-00000011-11011001
175175// CHECK-INST: bfmop4s za1.h, { z14.h, z15.h }, { z30.h, z31.h }
176176// CHECK-ENCODING: [0xd9,0x03,0x3e,0x81]
177- // CHECK-ERROR: instruction requires: sme2p2 sme-b16b16
177+ // CHECK-ERROR: instruction requires: sme-b16b16 sme-mop4
178178// CHECK-UNKNOWN: 813e03d9 <unknown>
0 commit comments