@@ -109,9 +109,7 @@ let iclasses =
109
109
110
110
(* ***** NEON INSTRUCTIONS *****)
111
111
(* ** ADD ***)
112
- " 01001110xx1xxxxx100001xxxxxxxxxx" ; (* 128 bits *)
113
- " 000011100x1xxxxx100001xxxxxxxxxx" ; (* 64 bits, size=0 or 1 *)
114
- " 00001110101xxxxx100001xxxxxxxxxx" ; (* 64 bits, size=2 *)
112
+ " 0x001110xx1xxxxx100001xxxxxxxxxx" ;
115
113
116
114
(* ** AND ***)
117
115
" 0x001110001xxxxx000111xxxxxxxxxx" ;
@@ -160,9 +158,7 @@ let iclasses =
160
158
" 0x101111xxxxxxxx0100x0xxxxxxxxxx" ;
161
159
162
160
(* ** MLS (vector) ***)
163
- " 0x101110001xxxxx100101xxxxxxxxxx" ; (* .b *)
164
- " 0x101110011xxxxx100101xxxxxxxxxx" ; (* .h *)
165
- " 0x101110101xxxxx100101xxxxxxxxxx" ; (* .s *)
161
+ " 0x101110xx1xxxxx100101xxxxxxxxxx" ;
166
162
167
163
(* ** MOVI ***)
168
164
" 0110111100000xxx111001xxxxxxxxxx" ; (* q=1, cmode=1110 *)
@@ -173,16 +169,13 @@ let iclasses =
173
169
" 0x001111xxxxxxxx1000x0xxxxxxxxxx" ;
174
170
175
171
(* ** MUL (vector) ***)
176
- " 0x001110001xxxxx100111xxxxxxxxxx" ; (* .b *)
177
- " 0x001110011xxxxx100111xxxxxxxxxx" ; (* .h *)
178
- " 0x001110101xxxxx100111xxxxxxxxxx" ; (* .s *)
172
+ " 0x001110xx1xxxxx100111xxxxxxxxxx" ;
179
173
180
174
(* ** ORR ***)
181
175
" 0x001110101xxxxx000111xxxxxxxxxx" ;
182
176
183
177
(* ** REV64 ***)
184
- " 010011100x100000000010xxxxxxxxxx" ; (* .h, .b *)
185
- " 0100111010100000000010xxxxxxxxxx" ; (* .s *)
178
+ " 01001110xx100000000010xxxxxxxxxx" ;
186
179
187
180
(* ** SHA256 Intrinsics ***)
188
181
(* ** SHA256H ***)
@@ -221,47 +214,33 @@ let iclasses =
221
214
" 0000111100001xxx100001xxxxxxxxxx" ; (* q=0, immh!=0 *)
222
215
223
216
(* ** SMLAL ***)
224
- " 000011100x1xxxxx100000xxxxxxxxxx" ; (* src: .b, .h *)
225
- " 00001110101xxxxx100000xxxxxxxxxx" ; (* src: .s *)
217
+ " 00001110xx1xxxxx100000xxxxxxxxxx" ;
226
218
227
219
(* ** SMLAL2 ***)
228
- " 010011100x1xxxxx100000xxxxxxxxxx" ; (* src: .b, .h *)
229
- " 01001110101xxxxx100000xxxxxxxxxx" ; (* src: .s *)
220
+ " 01001110xx1xxxxx100000xxxxxxxxxx" ;
230
221
231
222
(* ** SMLSL ***)
232
- " 000011100x1xxxxx101000xxxxxxxxxx" ; (* src: .b, .h *)
233
- " 00001110101xxxxx101000xxxxxxxxxx" ; (* src: .s *)
223
+ " 00001110xx1xxxxx101000xxxxxxxxxx" ;
234
224
235
225
(* ** SMLSL2 ***)
236
- " 010011100x1xxxxx101000xxxxxxxxxx" ; (* src: .b, .h *)
237
- " 01001110101xxxxx101000xxxxxxxxxx" ; (* src: .s *)
226
+ " 01001110xx1xxxxx101000xxxxxxxxxx" ;
238
227
239
228
(* ** SMULL ***)
240
- " 000011100x1xxxxx110000xxxxxxxxxx" ; (* size!=11 *)
241
- " 00001110101xxxxx110000xxxxxxxxxx" ; (* size!=11 *)
229
+ " 00001110xx1xxxxx110000xxxxxxxxxx" ;
242
230
243
231
(* ** SMULL2 ***)
244
- " 010011100x1xxxxx110000xxxxxxxxxx" ; (* size!=11 *)
245
- " 01001110101xxxxx110000xxxxxxxxxx" ; (* size!=11 *)
232
+ " 01001110xx1xxxxx110000xxxxxxxxxx" ;
246
233
247
- (* ** SQDMULH (by element; focus on defined sizes) ***)
248
- " 0x00111101xxxxxx1100x0xxxxxxxxxx" ;
249
- " 0x00111110xxxxxx1100x0xxxxxxxxxx" ;
234
+ (* ** SQDMULH ***)
250
235
" 0x001111xxxxxxxx1100x0xxxxxxxxxx" ;
251
236
252
- (* ** SQDMULH (vector; focus on defined sizes) ***)
253
- " 0x001110011xxxxx101101xxxxxxxxxx" ;
254
- " 0x001110101xxxxx101101xxxxxxxxxx" ;
237
+ (* ** SQDMULH (vector) ***)
255
238
" 0x001110xx1xxxxx101101xxxxxxxxxx" ;
256
239
257
- (* ** SQRDMULH (by element; focus on defined sizes) ***)
258
- " 0x00111101xxxxxx1101x0xxxxxxxxxx" ;
259
- " 0x00111110xxxxxx1101x0xxxxxxxxxx" ;
240
+ (* ** SQRDMULH (by element) ***)
260
241
" 0x001111xxxxxxxx1101x0xxxxxxxxxx" ;
261
242
262
- (* ** SQRDMULH (vector; focus on defined sizes) ***)
263
- " 0x101110011xxxxx101101xxxxxxxxxx" ;
264
- " 0x101110101xxxxx101101xxxxxxxxxx" ;
243
+ (* ** SQRDMULH (vector) ***)
265
244
" 0x101110xx1xxxxx101101xxxxxxxxxx" ;
266
245
267
246
(* ** SRSHR (make sure immh is nonzero) ***)
@@ -289,16 +268,13 @@ let iclasses =
289
268
" 0x10111100001xxx010001xxxxxxxxxx" ; (* immh!=0 *)
290
269
291
270
(* ** SUB ***)
292
- " 01101110xx1xxxxx100001xxxxxxxxxx" ; (* 128 bits *)
293
- " 001011100x1xxxxx100001xxxxxxxxxx" ; (* 64 bits, size=0 or 1 *)
294
- " 00101110101xxxxx100001xxxxxxxxxx" ; (* 64 bits, size=2 *)
271
+ " 0x101110xx1xxxxx100001xxxxxxxxxx" ;
295
272
296
273
(* ** TRN1 and TRN2 ***)
297
274
" 0x001110xx0xxxxx0x1010xxxxxxxxxx" ;
298
275
299
276
(* ** UADDLP ***)
300
- " 011011100x100000001010xxxxxxxxxx" ; (* src: .b, .h *)
301
- " 0110111010100000001010xxxxxxxxxx" ; (* src: .s *)
277
+ " 01101110xx100000001010xxxxxxxxxx" ;
302
278
303
279
(* ** UMOV (.d, .s) ***)
304
280
" 01001110000x1000001111xxxxxxxxxx" ;
@@ -308,28 +284,22 @@ let iclasses =
308
284
" 10011011101xxxxxxxxxxxxxxxxxxxxx" ;
309
285
310
286
(* ** UMLAL ***)
311
- " 001011100x1xxxxx100000xxxxxxxxxx" ; (* src: .b, .h *)
312
- " 00101110101xxxxx100000xxxxxxxxxx" ; (* src: .s *)
287
+ " 00101110xx1xxxxx100000xxxxxxxxxx" ;
313
288
314
289
(* ** UMLAL2 ***)
315
- " 011011100x1xxxxx100000xxxxxxxxxx" ; (* src: .b, .h *)
316
- " 01101110101xxxxx100000xxxxxxxxxx" ; (* src: .s *)
290
+ " 01101110xx1xxxxx100000xxxxxxxxxx" ;
317
291
318
292
(* ** UMLSL ***)
319
- " 001011100x1xxxxx101000xxxxxxxxxx" ; (* src: .b, .h *)
320
- " 00101110101xxxxx101000xxxxxxxxxx" ; (* src: .s *)
293
+ " 00101110xx1xxxxx101000xxxxxxxxxx" ;
321
294
322
295
(* ** UMLSL2 ***)
323
- " 011011100x1xxxxx101000xxxxxxxxxx" ; (* src: .b, .h *)
324
- " 01101110101xxxxx101000xxxxxxxxxx" ; (* src: .s *)
296
+ " 01101110xx1xxxxx101000xxxxxxxxxx" ;
325
297
326
298
(* ** UMULL ***)
327
- " 001011100x1xxxxx110000xxxxxxxxxx" ; (* size!=11 *)
328
- " 00101110101xxxxx110000xxxxxxxxxx" ; (* size!=11 *)
299
+ " 00101110xx1xxxxx110000xxxxxxxxxx" ;
329
300
330
301
(* ** UMULL2 ***)
331
- " 011011100x1xxxxx110000xxxxxxxxxx" ; (* size!=11 *)
332
- " 01101110101xxxxx110000xxxxxxxxxx" ; (* size!=11 *)
302
+ " 01101110xx1xxxxx110000xxxxxxxxxx" ;
333
303
334
304
(* ** USHR (make sure immh is nonzero) ***)
335
305
" 0x10111101xxxxxx000001xxxxxxxxxx" ;
@@ -350,21 +320,16 @@ let iclasses =
350
320
" 01001110xx0xxxxx000110xxxxxxxxxx" ;
351
321
352
322
(* ** UZP2 ***)
353
- " 01001110xx0xxxxx010110xxxxxxxxxx" ; (* q=1 *)
323
+ " 01001110xx0xxxxx010110xxxxxxxxxx" ;
354
324
355
325
(* ** XTN ***)
356
- " 000011100x100001001010xxxxxxxxxx" ; (* size!=11 *)
357
- " 0000111010100001001010xxxxxxxxxx" ; (* size!=11 *)
326
+ " 00001110xx100001001010xxxxxxxxxx" ;
358
327
359
328
(* ** ZIP1 ***)
360
- " 01001110xx0xxxxx001110xxxxxxxxxx" ; (* q=1 *)
361
- " 000011100x0xxxxx001110xxxxxxxxxx" ; (* q=0, size!=3 *)
362
- " 00001110100xxxxx001110xxxxxxxxxx" ; (* q=0, size!=3 *)
329
+ " 0x001110xx0xxxxx001110xxxxxxxxxx" ;
363
330
364
331
(* ** ZIP2 ***)
365
- " 01001110xx0xxxxx011110xxxxxxxxxx" ; (* q=1 *)
366
- " 000011100x0xxxxx011110xxxxxxxxxx" ; (* q=0, size!=3 *)
367
- " 00001110100xxxxx011110xxxxxxxxxx" ; (* q=0, size!=3 *)
332
+ " 0x001110xx0xxxxx011110xxxxxxxxxx" ;
368
333
369
334
(* ** EOR3 ***)
370
335
" 11001110000xxxxx0xxxxxxxxxxxxxxx" ;
0 commit comments