@@ -295,49 +295,49 @@ def : InstRW<[CortexA510WriteVLD2], (instregex "LD1Threev(16b|8h|4s|2d)$")>;
295295def : InstRW<[CortexA510WriteVLD2], (instregex "LD1Fourv(8b|4h|2s|1d)$")>;
296296def : InstRW<[CortexA510WriteVLD2], (instregex "LD1Fourv(16b|8h|4s|2d)$")>;
297297
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$")>;
308308
309309// 2-element structures
310310def : InstRW<[CortexA510WriteVLD2], (instregex "LD2i(8|16|32|64)$")>;
311311def : InstRW<[CortexA510WriteVLD2], (instregex "LD2Rv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
312312def : InstRW<[CortexA510WriteVLD2], (instregex "LD2Twov(8b|4h|2s)$")>;
313313def : InstRW<[CortexA510WriteVLD4], (instregex "LD2Twov(16b|8h|4s|2d)$")>;
314314
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)?$")>;
319319
320320// 3-element structures
321321def : InstRW<[CortexA510WriteVLD2], (instregex "LD3i(8|16|32|64)$")>;
322322def : InstRW<[CortexA510WriteVLD2], (instregex "LD3Rv(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
323323def : InstRW<[CortexA510WriteVLD3], (instregex "LD3Threev(8b|4h|2s|1d)$")>;
324324def : InstRW<[CortexA510WriteVLD6], (instregex "LD3Threev(16b|8h|4s|2d)$")>;
325325
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$")>;
330330
331331// 4-element structures
332332def : InstRW<[CortexA510WriteVLD2], (instregex "LD4i(8|16|32|64)$")>; // load single 4-el structure to one lane of 4 regs.
333333def : InstRW<[CortexA510WriteVLD2], (instregex "LD4Rv(8b|4h|2s|1d|16b|8h|4s|2d)$")>; // load single 4-el structure, replicate to all lanes of 4 regs.
334334def : InstRW<[CortexA510WriteVLD4], (instregex "LD4Fourv(8b|4h|2s|1d)$")>; // load multiple 4-el structures to 4 regs.
335335def : InstRW<[CortexA510WriteVLD8], (instregex "LD4Fourv(16b|8h|4s|2d)$")>;
336336
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$")>;
341341
342342//---
343343// Vector Stores
@@ -347,28 +347,28 @@ def : InstRW<[CortexA510WriteVST1], (instregex "ST1Onev(8b|4h|2s|1d|16b|8h|4s|2d
347347def : InstRW<[CortexA510WriteVST1], (instregex "ST1Twov(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
348348def : InstRW<[CortexA510WriteVST2], (instregex "ST1Threev(8b|4h|2s|1d|16b|8h|4s|2d)$")>;
349349def : 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$")>;
355355
356356def : InstRW<[CortexA510WriteVST2], (instregex "ST2i(8|16|32|64)$")>;
357357def : InstRW<[CortexA510WriteVST2], (instregex "ST2Twov(8b|4h|2s)$")>;
358358def : 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$")>;
362362
363363def : InstRW<[CortexA510WriteVST2], (instregex "ST3i(8|16|32|64)$")>;
364364def : 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$")>;
367367
368368def : InstRW<[CortexA510WriteVST2], (instregex "ST4i(8|16|32|64)$")>;
369369def : 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$")>;
372372
373373//---
374374// Floating Point Conversions, MAC, DIV, SQRT
0 commit comments