@@ -295,49 +295,49 @@ def : InstRW<[CortexA510WriteVLD2], (instregex "LD1Threev(16b|8h|4s|2d)$")>;
295
295
def : InstRW<[CortexA510WriteVLD2], (instregex "LD1Fourv(8b|4h|2s|1d)$")>;
296
296
def : InstRW<[CortexA510WriteVLD2], (instregex "LD1Fourv(16b|8h|4s|2d)$")>;
297
297
298
- def : InstRW<[CortexA510WriteVLD1, WriteAdr ], (instregex "LD1i(8|16|32|64)_POST$")>;
299
- def : InstRW<[CortexA510WriteVLD1, WriteAdr ], (instregex "LD1Rv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
300
- def : InstRW<[CortexA510WriteVLD1, WriteAdr ], (instregex "LD1Onev(8b|4h|2s|1d)_POST$")>;
301
- def : InstRW<[CortexA510WriteVLD2, WriteAdr ], (instregex "LD1Onev(16b|8h|4s|2d)_POST$")>;
302
- def : InstRW<[CortexA510WriteVLD2, WriteAdr ], (instregex "LD1Twov(8b|4h|2s|1d)_POST$")>;
303
- def : InstRW<[CortexA510WriteVLD2, WriteAdr ], (instregex "LD1Twov(16b|8h|4s|2d)_POST$")>;
304
- def : InstRW<[CortexA510WriteVLD2, WriteAdr ], (instregex "LD1Threev(8b|4h|2s|1d)_POST$")>;
305
- def : InstRW<[CortexA510WriteVLD2, WriteAdr ], (instregex "LD1Threev(16b|8h|4s|2d)_POST$")>;
306
- def : InstRW<[CortexA510WriteVLD2, WriteAdr ], (instregex "LD1Fourv(8b|4h|2s|1d)_POST$")>;
307
- def : InstRW<[CortexA510WriteVLD2, WriteAdr ], (instregex "LD1Fourv(16b|8h|4s|2d)_POST$")>;
298
+ def : InstRW<[WriteAdr, CortexA510WriteVLD1 ], (instregex "LD1i(8|16|32|64)_POST$")>;
299
+ def : InstRW<[WriteAdr, CortexA510WriteVLD1 ], (instregex "LD1Rv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
300
+ def : InstRW<[WriteAdr, CortexA510WriteVLD1 ], (instregex "LD1Onev(8b|4h|2s|1d)_POST$")>;
301
+ def : InstRW<[WriteAdr, CortexA510WriteVLD2 ], (instregex "LD1Onev(16b|8h|4s|2d)_POST$")>;
302
+ def : InstRW<[WriteAdr, CortexA510WriteVLD2 ], (instregex "LD1Twov(8b|4h|2s|1d)_POST$")>;
303
+ def : InstRW<[WriteAdr, CortexA510WriteVLD2 ], (instregex "LD1Twov(16b|8h|4s|2d)_POST$")>;
304
+ def : InstRW<[WriteAdr, CortexA510WriteVLD2 ], (instregex "LD1Threev(8b|4h|2s|1d)_POST$")>;
305
+ def : InstRW<[WriteAdr, CortexA510WriteVLD2 ], (instregex "LD1Threev(16b|8h|4s|2d)_POST$")>;
306
+ def : InstRW<[WriteAdr, CortexA510WriteVLD2 ], (instregex "LD1Fourv(8b|4h|2s|1d)_POST$")>;
307
+ def : InstRW<[WriteAdr, CortexA510WriteVLD2 ], (instregex "LD1Fourv(16b|8h|4s|2d)_POST$")>;
308
308
309
309
// 2-element structures
310
310
def : InstRW<[CortexA510WriteVLD2], (instregex "LD2i(8|16|32|64)$")>;
311
311
def : InstRW<[CortexA510WriteVLD2], (instregex "LD2Rv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
312
312
def : InstRW<[CortexA510WriteVLD2], (instregex "LD2Twov(8b|4h|2s)$")>;
313
313
def : InstRW<[CortexA510WriteVLD4], (instregex "LD2Twov(16b|8h|4s|2d)$")>;
314
314
315
- def : InstRW<[CortexA510WriteVLD2, WriteAdr ], (instregex "LD2i(8|16|32|64)(_POST)?$")>;
316
- def : InstRW<[CortexA510WriteVLD2, WriteAdr ], (instregex "LD2Rv(8b|4h|2s|1d|16b|8h|4s|2d)(_POST)?$")>;
317
- def : InstRW<[CortexA510WriteVLD2, WriteAdr ], (instregex "LD2Twov(8b|4h|2s)(_POST)?$")>;
318
- def : InstRW<[CortexA510WriteVLD4, WriteAdr ], (instregex "LD2Twov(16b|8h|4s|2d)(_POST)?$")>;
315
+ def : InstRW<[WriteAdr, CortexA510WriteVLD2 ], (instregex "LD2i(8|16|32|64)(_POST)?$")>;
316
+ def : InstRW<[WriteAdr, CortexA510WriteVLD2 ], (instregex "LD2Rv(8b|4h|2s|1d|16b|8h|4s|2d)(_POST)?$")>;
317
+ def : InstRW<[WriteAdr, CortexA510WriteVLD2 ], (instregex "LD2Twov(8b|4h|2s)(_POST)?$")>;
318
+ def : InstRW<[WriteAdr, CortexA510WriteVLD4 ], (instregex "LD2Twov(16b|8h|4s|2d)(_POST)?$")>;
319
319
320
320
// 3-element structures
321
321
def : InstRW<[CortexA510WriteVLD2], (instregex "LD3i(8|16|32|64)$")>;
322
322
def : InstRW<[CortexA510WriteVLD2], (instregex "LD3Rv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
323
323
def : InstRW<[CortexA510WriteVLD3], (instregex "LD3Threev(8b|4h|2s|1d)$")>;
324
324
def : InstRW<[CortexA510WriteVLD6], (instregex "LD3Threev(16b|8h|4s|2d)$")>;
325
325
326
- def : InstRW<[CortexA510WriteVLD2, WriteAdr ], (instregex "LD3i(8|16|32|64)_POST$")>;
327
- def : InstRW<[CortexA510WriteVLD2, WriteAdr ], (instregex "LD3Rv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
328
- def : InstRW<[CortexA510WriteVLD3, WriteAdr ], (instregex "LD3Threev(8b|4h|2s|1d)_POST$")>;
329
- def : InstRW<[CortexA510WriteVLD6, WriteAdr ], (instregex "LD3Threev(16b|8h|4s|2d)_POST$")>;
326
+ def : InstRW<[WriteAdr, CortexA510WriteVLD2 ], (instregex "LD3i(8|16|32|64)_POST$")>;
327
+ def : InstRW<[WriteAdr, CortexA510WriteVLD2 ], (instregex "LD3Rv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
328
+ def : InstRW<[WriteAdr, CortexA510WriteVLD3 ], (instregex "LD3Threev(8b|4h|2s|1d)_POST$")>;
329
+ def : InstRW<[WriteAdr, CortexA510WriteVLD6 ], (instregex "LD3Threev(16b|8h|4s|2d)_POST$")>;
330
330
331
331
// 4-element structures
332
332
def : InstRW<[CortexA510WriteVLD2], (instregex "LD4i(8|16|32|64)$")>; // load single 4-el structure to one lane of 4 regs.
333
333
def : InstRW<[CortexA510WriteVLD2], (instregex "LD4Rv(8b|4h|2s|1d|16b|8h|4s|2d)$")>; // load single 4-el structure, replicate to all lanes of 4 regs.
334
334
def : InstRW<[CortexA510WriteVLD4], (instregex "LD4Fourv(8b|4h|2s|1d)$")>; // load multiple 4-el structures to 4 regs.
335
335
def : InstRW<[CortexA510WriteVLD8], (instregex "LD4Fourv(16b|8h|4s|2d)$")>;
336
336
337
- def : InstRW<[CortexA510WriteVLD2, WriteAdr ], (instregex "LD4i(8|16|32|64)_POST$")>;
338
- def : InstRW<[CortexA510WriteVLD2, WriteAdr ], (instregex "LD4Rv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
339
- def : InstRW<[CortexA510WriteVLD4, WriteAdr ], (instregex "LD4Fourv(8b|4h|2s|1d)_POST$")>;
340
- def : InstRW<[CortexA510WriteVLD8, WriteAdr ], (instregex "LD4Fourv(16b|8h|4s|2d)_POST$")>;
337
+ def : InstRW<[WriteAdr, CortexA510WriteVLD2 ], (instregex "LD4i(8|16|32|64)_POST$")>;
338
+ def : InstRW<[WriteAdr, CortexA510WriteVLD2 ], (instregex "LD4Rv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
339
+ def : InstRW<[WriteAdr, CortexA510WriteVLD4 ], (instregex "LD4Fourv(8b|4h|2s|1d)_POST$")>;
340
+ def : InstRW<[WriteAdr, CortexA510WriteVLD8 ], (instregex "LD4Fourv(16b|8h|4s|2d)_POST$")>;
341
341
342
342
//---
343
343
// Vector Stores
@@ -347,28 +347,28 @@ def : InstRW<[CortexA510WriteVST1], (instregex "ST1Onev(8b|4h|2s|1d|16b|8h|4s|2d
347
347
def : InstRW<[CortexA510WriteVST1], (instregex "ST1Twov(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
348
348
def : InstRW<[CortexA510WriteVST2], (instregex "ST1Threev(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
349
349
def : InstRW<[CortexA510WriteVST4], (instregex "ST1Fourv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
350
- def : InstRW<[CortexA510WriteVST1, WriteAdr ], (instregex "ST1i(8|16|32|64)_POST$")>;
351
- def : InstRW<[CortexA510WriteVST1, WriteAdr ], (instregex "ST1Onev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
352
- def : InstRW<[CortexA510WriteVST1, WriteAdr ], (instregex "ST1Twov(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
353
- def : InstRW<[CortexA510WriteVST2, WriteAdr ], (instregex "ST1Threev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
354
- def : InstRW<[CortexA510WriteVST4, WriteAdr ], (instregex "ST1Fourv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
350
+ def : InstRW<[WriteAdr, CortexA510WriteVST1 ], (instregex "ST1i(8|16|32|64)_POST$")>;
351
+ def : InstRW<[WriteAdr, CortexA510WriteVST1 ], (instregex "ST1Onev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
352
+ def : InstRW<[WriteAdr, CortexA510WriteVST1 ], (instregex "ST1Twov(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
353
+ def : InstRW<[WriteAdr, CortexA510WriteVST2 ], (instregex "ST1Threev(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
354
+ def : InstRW<[WriteAdr, CortexA510WriteVST4 ], (instregex "ST1Fourv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
355
355
356
356
def : InstRW<[CortexA510WriteVST2], (instregex "ST2i(8|16|32|64)$")>;
357
357
def : InstRW<[CortexA510WriteVST2], (instregex "ST2Twov(8b|4h|2s)$")>;
358
358
def : InstRW<[CortexA510WriteVST4], (instregex "ST2Twov(16b|8h|4s|2d)$")>;
359
- def : InstRW<[CortexA510WriteVST2, WriteAdr ], (instregex "ST2i(8|16|32|64)_POST$")>;
360
- def : InstRW<[CortexA510WriteVST2, WriteAdr ], (instregex "ST2Twov(8b|4h|2s)_POST$")>;
361
- def : InstRW<[CortexA510WriteVST4, WriteAdr ], (instregex "ST2Twov(16b|8h|4s|2d)_POST$")>;
359
+ def : InstRW<[WriteAdr, CortexA510WriteVST2 ], (instregex "ST2i(8|16|32|64)_POST$")>;
360
+ def : InstRW<[WriteAdr, CortexA510WriteVST2 ], (instregex "ST2Twov(8b|4h|2s)_POST$")>;
361
+ def : InstRW<[WriteAdr, CortexA510WriteVST4 ], (instregex "ST2Twov(16b|8h|4s|2d)_POST$")>;
362
362
363
363
def : InstRW<[CortexA510WriteVST2], (instregex "ST3i(8|16|32|64)$")>;
364
364
def : InstRW<[CortexA510WriteVST4], (instregex "ST3Threev(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
365
- def : InstRW<[CortexA510WriteVST2, WriteAdr ], (instregex "ST3i(8|16|32|64)_POST$")>;
366
- def : InstRW<[CortexA510WriteVST4, WriteAdr ], (instregex "ST3Threev(8b|4h|2s|1d|2d|16b|8h|4s|4d)_POST$")>;
365
+ def : InstRW<[WriteAdr, CortexA510WriteVST2 ], (instregex "ST3i(8|16|32|64)_POST$")>;
366
+ def : InstRW<[WriteAdr, CortexA510WriteVST4 ], (instregex "ST3Threev(8b|4h|2s|1d|2d|16b|8h|4s|4d)_POST$")>;
367
367
368
368
def : InstRW<[CortexA510WriteVST2], (instregex "ST4i(8|16|32|64)$")>;
369
369
def : InstRW<[CortexA510WriteVST4], (instregex "ST4Fourv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
370
- def : InstRW<[CortexA510WriteVST2, WriteAdr ], (instregex "ST4i(8|16|32|64)_POST$")>;
371
- def : InstRW<[CortexA510WriteVST4, WriteAdr ], (instregex "ST4Fourv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
370
+ def : InstRW<[WriteAdr, CortexA510WriteVST2 ], (instregex "ST4i(8|16|32|64)_POST$")>;
371
+ def : InstRW<[WriteAdr, CortexA510WriteVST4 ], (instregex "ST4Fourv(8b|4h|2s|1d|16b|8h|4s|2d)_POST$")>;
372
372
373
373
//---
374
374
// Floating Point Conversions, MAC, DIV, SQRT
0 commit comments