@@ -742,7 +742,7 @@ def : SchedAlias<WriteLDIdx, N2Write_4cyc_1I_1L>;
742
742
// Load pair, signed immed offset, signed words
743
743
def : InstRW<[N2Write_5cyc_1M0, WriteLDHi], (instrs LDPSWi)>;
744
744
// Load pair, immed post-index or immed pre-index, signed words
745
- def : InstRW<[N2Write_5cyc_1M0, WriteLDHi, WriteAdr ],
745
+ def : InstRW<[WriteAdr, N2Write_5cyc_1M0, WriteLDHi ],
746
746
(instregex "^LDPSW(post|pre)$")>;
747
747
748
748
// Store instructions
@@ -860,7 +860,7 @@ def : InstRW<[N2Write_6cyc_1L], (instregex "^LDR[SDQ]l$",
860
860
// Load vector reg, immed post-index
861
861
def : InstRW<[N2Write_6cyc_1I_1L, WriteI], (instregex "^LDR[BHSDQ]post$")>;
862
862
// Load vector reg, immed pre-index
863
- def : InstRW<[N2Write_6cyc_1I_1L, WriteAdr ], (instregex "^LDR[BHSDQ]pre$")>;
863
+ def : InstRW<[WriteAdr, N2Write_6cyc_1I_1L ], (instregex "^LDR[BHSDQ]pre$")>;
864
864
865
865
// Load vector reg, unsigned immed
866
866
def : InstRW<[N2Write_6cyc_1L], (instregex "^LDR[BHSDQ]ui$")>;
@@ -883,12 +883,12 @@ def : InstRW<[N2Write_6cyc_2L, WriteLDHi], (instrs LDPQi, LDNPQi)>;
883
883
884
884
// Load vector pair, immed post-index, S/D-form
885
885
// Load vector pair, immed pre-index, S/D-form
886
- def : InstRW<[N2Write_6cyc_1I_1L, WriteLDHi, WriteAdr ],
886
+ def : InstRW<[WriteAdr, N2Write_6cyc_1I_1L, WriteLDHi ],
887
887
(instregex "^LDP[SD](pre|post)$")>;
888
888
889
889
// Load vector pair, immed post-index, Q-form
890
890
// Load vector pair, immed pre-index, Q-form
891
- def : InstRW<[N2Write_6cyc_2I_2L, WriteLDHi, WriteAdr ], (instrs LDPQpost,
891
+ def : InstRW<[WriteAdr, N2Write_6cyc_2I_2L, WriteLDHi ], (instrs LDPQpost,
892
892
LDPQpre)>;
893
893
894
894
// FP store instructions
@@ -1238,223 +1238,223 @@ def : InstRW<[N2Write_5cyc_1M0_1V], (instregex "^INSvi(8|16|32|64)gpr$")>;
1238
1238
1239
1239
// ASIMD load, 1 element, multiple, 1 reg, D-form
1240
1240
def : InstRW<[N2Write_6cyc_1L], (instregex "^LD1Onev(8b|4h|2s|1d)$")>;
1241
- def : InstRW<[N2Write_6cyc_1L, WriteAdr ],
1241
+ def : InstRW<[WriteAdr, N2Write_6cyc_1L ],
1242
1242
(instregex "^LD1Onev(8b|4h|2s|1d)_POST$")>;
1243
1243
1244
1244
// ASIMD load, 1 element, multiple, 1 reg, Q-form
1245
1245
def : InstRW<[N2Write_6cyc_1L], (instregex "^LD1Onev(16b|8h|4s|2d)$")>;
1246
- def : InstRW<[N2Write_6cyc_1L, WriteAdr ],
1246
+ def : InstRW<[WriteAdr, N2Write_6cyc_1L ],
1247
1247
(instregex "^LD1Onev(16b|8h|4s|2d)_POST$")>;
1248
1248
1249
1249
// ASIMD load, 1 element, multiple, 2 reg, D-form
1250
1250
def : InstRW<[N2Write_6cyc_2L], (instregex "^LD1Twov(8b|4h|2s|1d)$")>;
1251
- def : InstRW<[N2Write_6cyc_2L, WriteAdr ],
1251
+ def : InstRW<[WriteAdr, N2Write_6cyc_2L ],
1252
1252
(instregex "^LD1Twov(8b|4h|2s|1d)_POST$")>;
1253
1253
1254
1254
// ASIMD load, 1 element, multiple, 2 reg, Q-form
1255
1255
def : InstRW<[N2Write_6cyc_2L], (instregex "^LD1Twov(16b|8h|4s|2d)$")>;
1256
- def : InstRW<[N2Write_6cyc_2L, WriteAdr ],
1256
+ def : InstRW<[WriteAdr, N2Write_6cyc_2L ],
1257
1257
(instregex "^LD1Twov(16b|8h|4s|2d)_POST$")>;
1258
1258
1259
1259
// ASIMD load, 1 element, multiple, 3 reg, D-form
1260
1260
def : InstRW<[N2Write_6cyc_3L], (instregex "^LD1Threev(8b|4h|2s|1d)$")>;
1261
- def : InstRW<[N2Write_6cyc_3L, WriteAdr ],
1261
+ def : InstRW<[WriteAdr, N2Write_6cyc_3L ],
1262
1262
(instregex "^LD1Threev(8b|4h|2s|1d)_POST$")>;
1263
1263
1264
1264
// ASIMD load, 1 element, multiple, 3 reg, Q-form
1265
1265
def : InstRW<[N2Write_6cyc_3L], (instregex "^LD1Threev(16b|8h|4s|2d)$")>;
1266
- def : InstRW<[N2Write_6cyc_3L, WriteAdr ],
1266
+ def : InstRW<[WriteAdr, N2Write_6cyc_3L ],
1267
1267
(instregex "^LD1Threev(16b|8h|4s|2d)_POST$")>;
1268
1268
1269
1269
// ASIMD load, 1 element, multiple, 4 reg, D-form
1270
1270
def : InstRW<[N2Write_7cyc_4L], (instregex "^LD1Fourv(8b|4h|2s|1d)$")>;
1271
- def : InstRW<[N2Write_7cyc_4L, WriteAdr ],
1271
+ def : InstRW<[WriteAdr, N2Write_7cyc_4L ],
1272
1272
(instregex "^LD1Fourv(8b|4h|2s|1d)_POST$")>;
1273
1273
1274
1274
// ASIMD load, 1 element, multiple, 4 reg, Q-form
1275
1275
def : InstRW<[N2Write_7cyc_4L], (instregex "^LD1Fourv(16b|8h|4s|2d)$")>;
1276
- def : InstRW<[N2Write_7cyc_4L, WriteAdr ],
1276
+ def : InstRW<[WriteAdr, N2Write_7cyc_4L ],
1277
1277
(instregex "^LD1Fourv(16b|8h|4s|2d)_POST$")>;
1278
1278
1279
1279
// ASIMD load, 1 element, one lane, B/H/S
1280
1280
// ASIMD load, 1 element, one lane, D
1281
1281
def : InstRW<[N2Write_8cyc_1L_1V], (instregex "LD1i(8|16|32|64)$")>;
1282
- def : InstRW<[N2Write_8cyc_1L_1V, WriteAdr ], (instregex "LD1i(8|16|32|64)_POST$")>;
1282
+ def : InstRW<[WriteAdr, N2Write_8cyc_1L_1V ], (instregex "LD1i(8|16|32|64)_POST$")>;
1283
1283
1284
1284
// ASIMD load, 1 element, all lanes, D-form, B/H/S
1285
1285
// ASIMD load, 1 element, all lanes, D-form, D
1286
1286
def : InstRW<[N2Write_8cyc_1L_1V], (instregex "LD1Rv(8b|4h|2s|1d)$")>;
1287
- def : InstRW<[N2Write_8cyc_1L_1V, WriteAdr ], (instregex "LD1Rv(8b|4h|2s|1d)_POST$")>;
1287
+ def : InstRW<[WriteAdr, N2Write_8cyc_1L_1V ], (instregex "LD1Rv(8b|4h|2s|1d)_POST$")>;
1288
1288
1289
1289
// ASIMD load, 1 element, all lanes, Q-form
1290
1290
def : InstRW<[N2Write_8cyc_1L_1V], (instregex "LD1Rv(16b|8h|4s|2d)$")>;
1291
- def : InstRW<[N2Write_8cyc_1L_1V, WriteAdr ], (instregex "LD1Rv(16b|8h|4s|2d)_POST$")>;
1291
+ def : InstRW<[WriteAdr, N2Write_8cyc_1L_1V ], (instregex "LD1Rv(16b|8h|4s|2d)_POST$")>;
1292
1292
1293
1293
// ASIMD load, 2 element, multiple, D-form, B/H/S
1294
1294
def : InstRW<[N2Write_8cyc_1L_2V], (instregex "LD2Twov(8b|4h|2s)$")>;
1295
- def : InstRW<[N2Write_8cyc_1L_2V, WriteAdr ], (instregex "LD2Twov(8b|4h|2s)_POST$")>;
1295
+ def : InstRW<[WriteAdr, N2Write_8cyc_1L_2V ], (instregex "LD2Twov(8b|4h|2s)_POST$")>;
1296
1296
1297
1297
// ASIMD load, 2 element, multiple, Q-form, B/H/S
1298
1298
// ASIMD load, 2 element, multiple, Q-form, D
1299
1299
def : InstRW<[N2Write_8cyc_2L_2V], (instregex "LD2Twov(16b|8h|4s|2d)$")>;
1300
- def : InstRW<[N2Write_8cyc_2L_2V, WriteAdr ], (instregex "LD2Twov(16b|8h|4s|2d)_POST$")>;
1300
+ def : InstRW<[WriteAdr, N2Write_8cyc_2L_2V ], (instregex "LD2Twov(16b|8h|4s|2d)_POST$")>;
1301
1301
1302
1302
// ASIMD load, 2 element, one lane, B/H
1303
1303
// ASIMD load, 2 element, one lane, S
1304
1304
// ASIMD load, 2 element, one lane, D
1305
1305
def : InstRW<[N2Write_8cyc_1L_2V], (instregex "LD2i(8|16|32|64)$")>;
1306
- def : InstRW<[N2Write_8cyc_1L_2V, WriteAdr ], (instregex "LD2i(8|16|32|64)_POST$")>;
1306
+ def : InstRW<[WriteAdr, N2Write_8cyc_1L_2V ], (instregex "LD2i(8|16|32|64)_POST$")>;
1307
1307
1308
1308
// ASIMD load, 2 element, all lanes, D-form, B/H/S
1309
1309
// ASIMD load, 2 element, all lanes, D-form, D
1310
1310
def : InstRW<[N2Write_8cyc_1L_2V], (instregex "LD2Rv(8b|4h|2s|1d)$")>;
1311
- def : InstRW<[N2Write_8cyc_1L_2V, WriteAdr ], (instregex "LD2Rv(8b|4h|2s|1d)_POST$")>;
1311
+ def : InstRW<[WriteAdr, N2Write_8cyc_1L_2V ], (instregex "LD2Rv(8b|4h|2s|1d)_POST$")>;
1312
1312
1313
1313
// ASIMD load, 2 element, all lanes, Q-form
1314
1314
def : InstRW<[N2Write_8cyc_1L_2V], (instregex "LD2Rv(16b|8h|4s|2d)$")>;
1315
- def : InstRW<[N2Write_8cyc_1L_2V, WriteAdr ], (instregex "LD2Rv(16b|8h|4s|2d)_POST$")>;
1315
+ def : InstRW<[WriteAdr, N2Write_8cyc_1L_2V ], (instregex "LD2Rv(16b|8h|4s|2d)_POST$")>;
1316
1316
1317
1317
// ASIMD load, 3 element, multiple, D-form, B/H/S
1318
1318
def : InstRW<[N2Write_8cyc_2L_3V], (instregex "LD3Threev(8b|4h|2s)$")>;
1319
- def : InstRW<[N2Write_8cyc_2L_3V, WriteAdr ], (instregex "LD3Threev(8b|4h|2s)_POST$")>;
1319
+ def : InstRW<[WriteAdr, N2Write_8cyc_2L_3V ], (instregex "LD3Threev(8b|4h|2s)_POST$")>;
1320
1320
1321
1321
// ASIMD load, 3 element, multiple, Q-form, B/H/S
1322
1322
def : InstRW<[N2Write_8cyc_3L_3V], (instregex "LD3Threev(16b|8h|4s)$")>;
1323
- def : InstRW<[N2Write_8cyc_3L_3V, WriteAdr ], (instregex "LD3Threev(16b|8h|4s)_POST$")>;
1323
+ def : InstRW<[WriteAdr, N2Write_8cyc_3L_3V ], (instregex "LD3Threev(16b|8h|4s)_POST$")>;
1324
1324
1325
1325
// ASIMD load, 3 element, multiple, Q-form, D
1326
1326
def : InstRW<[N2Write_8cyc_3L_3V], (instregex "LD3Threev(2d)$")>;
1327
- def : InstRW<[N2Write_8cyc_3L_3V, WriteAdr ], (instregex "LD3Threev(2d)_POST$")>;
1327
+ def : InstRW<[WriteAdr, N2Write_8cyc_3L_3V ], (instregex "LD3Threev(2d)_POST$")>;
1328
1328
1329
1329
// ASIMD load, 3 element, one lane, B/H
1330
1330
// ASIMD load, 3 element, one lane, S
1331
1331
// ASIMD load, 3 element, one lane, D
1332
1332
def : InstRW<[N2Write_8cyc_2L_3V], (instregex "LD3i(8|16|32|64)$")>;
1333
- def : InstRW<[N2Write_8cyc_2L_3V, WriteAdr ], (instregex "LD3i(8|16|32|64)_POST$")>;
1333
+ def : InstRW<[WriteAdr, N2Write_8cyc_2L_3V ], (instregex "LD3i(8|16|32|64)_POST$")>;
1334
1334
1335
1335
// ASIMD load, 3 element, all lanes, D-form, B/H/S
1336
1336
// ASIMD load, 3 element, all lanes, D-form, D
1337
1337
def : InstRW<[N2Write_8cyc_2L_3V], (instregex "LD3Rv(8b|4h|2s|1d)$")>;
1338
- def : InstRW<[N2Write_8cyc_2L_3V, WriteAdr ], (instregex "LD3Rv(8b|4h|2s|1d)_POST$")>;
1338
+ def : InstRW<[WriteAdr, N2Write_8cyc_2L_3V ], (instregex "LD3Rv(8b|4h|2s|1d)_POST$")>;
1339
1339
1340
1340
// ASIMD load, 3 element, all lanes, Q-form, B/H/S
1341
1341
// ASIMD load, 3 element, all lanes, Q-form, D
1342
1342
def : InstRW<[N2Write_8cyc_3L_3V], (instregex "LD3Rv(16b|8h|4s|2d)$")>;
1343
- def : InstRW<[N2Write_8cyc_3L_3V, WriteAdr ], (instregex "LD3Rv(16b|8h|4s|2d)_POST$")>;
1343
+ def : InstRW<[WriteAdr, N2Write_8cyc_3L_3V ], (instregex "LD3Rv(16b|8h|4s|2d)_POST$")>;
1344
1344
1345
1345
// ASIMD load, 4 element, multiple, D-form, B/H/S
1346
1346
def : InstRW<[N2Write_8cyc_3L_4V], (instregex "LD4Fourv(8b|4h|2s)$")>;
1347
- def : InstRW<[N2Write_8cyc_3L_4V, WriteAdr ], (instregex "LD4Fourv(8b|4h|2s)_POST$")>;
1347
+ def : InstRW<[WriteAdr, N2Write_8cyc_3L_4V ], (instregex "LD4Fourv(8b|4h|2s)_POST$")>;
1348
1348
1349
1349
// ASIMD load, 4 element, multiple, Q-form, B/H/S
1350
1350
// ASIMD load, 4 element, multiple, Q-form, D
1351
1351
def : InstRW<[N2Write_9cyc_4L_4V], (instregex "LD4Fourv(16b|8h|4s|2d)$")>;
1352
- def : InstRW<[N2Write_9cyc_4L_4V, WriteAdr ], (instregex "LD4Fourv(16b|8h|4s|2d)_POST$")>;
1352
+ def : InstRW<[WriteAdr, N2Write_9cyc_4L_4V ], (instregex "LD4Fourv(16b|8h|4s|2d)_POST$")>;
1353
1353
1354
1354
// ASIMD load, 4 element, one lane, B/H
1355
1355
// ASIMD load, 4 element, one lane, S
1356
1356
// ASIMD load, 4 element, one lane, D
1357
1357
def : InstRW<[N2Write_8cyc_3L_4V], (instregex "LD4i(8|16|32|64)$")>;
1358
- def : InstRW<[N2Write_8cyc_3L_4V, WriteAdr ], (instregex "LD4i(8|16|32|64)_POST$")>;
1358
+ def : InstRW<[WriteAdr, N2Write_8cyc_3L_4V ], (instregex "LD4i(8|16|32|64)_POST$")>;
1359
1359
1360
1360
// ASIMD load, 4 element, all lanes, D-form, B/H/S
1361
1361
// ASIMD load, 4 element, all lanes, D-form, D
1362
1362
def : InstRW<[N2Write_8cyc_3L_4V], (instregex "LD4Rv(8b|4h|2s|1d)$")>;
1363
- def : InstRW<[N2Write_8cyc_3L_4V, WriteAdr ], (instregex "LD4Rv(8b|4h|2s|1d)_POST$")>;
1363
+ def : InstRW<[WriteAdr, N2Write_8cyc_3L_4V ], (instregex "LD4Rv(8b|4h|2s|1d)_POST$")>;
1364
1364
1365
1365
// ASIMD load, 4 element, all lanes, Q-form, B/H/S
1366
1366
// ASIMD load, 4 element, all lanes, Q-form, D
1367
1367
def : InstRW<[N2Write_8cyc_4L_4V], (instregex "LD4Rv(16b|8h|4s|2d)$")>;
1368
- def : InstRW<[N2Write_8cyc_4L_4V, WriteAdr ], (instregex "LD4Rv(16b|8h|4s|2d)_POST$")>;
1368
+ def : InstRW<[WriteAdr, N2Write_8cyc_4L_4V ], (instregex "LD4Rv(16b|8h|4s|2d)_POST$")>;
1369
1369
1370
1370
// ASIMD store instructions
1371
1371
// -----------------------------------------------------------------------------
1372
1372
1373
1373
// ASIMD store, 1 element, multiple, 1 reg, D-form
1374
1374
def : InstRW<[N2Write_2cyc_1L01_1V], (instregex "ST1Onev(8b|4h|2s|1d)$")>;
1375
- def : InstRW<[N2Write_2cyc_1L01_1V, WriteAdr ], (instregex "ST1Onev(8b|4h|2s|1d)_POST$")>;
1375
+ def : InstRW<[WriteAdr, N2Write_2cyc_1L01_1V ], (instregex "ST1Onev(8b|4h|2s|1d)_POST$")>;
1376
1376
1377
1377
// ASIMD store, 1 element, multiple, 1 reg, Q-form
1378
1378
def : InstRW<[N2Write_2cyc_1L01_1V], (instregex "ST1Onev(16b|8h|4s|2d)$")>;
1379
- def : InstRW<[N2Write_2cyc_1L01_1V, WriteAdr ], (instregex "ST1Onev(16b|8h|4s|2d)_POST$")>;
1379
+ def : InstRW<[WriteAdr, N2Write_2cyc_1L01_1V ], (instregex "ST1Onev(16b|8h|4s|2d)_POST$")>;
1380
1380
1381
1381
// ASIMD store, 1 element, multiple, 2 reg, D-form
1382
1382
def : InstRW<[N2Write_2cyc_1L01_1V], (instregex "ST1Twov(8b|4h|2s|1d)$")>;
1383
- def : InstRW<[N2Write_2cyc_1L01_1V, WriteAdr ], (instregex "ST1Twov(8b|4h|2s|1d)_POST$")>;
1383
+ def : InstRW<[WriteAdr, N2Write_2cyc_1L01_1V ], (instregex "ST1Twov(8b|4h|2s|1d)_POST$")>;
1384
1384
1385
1385
// ASIMD store, 1 element, multiple, 2 reg, Q-form
1386
1386
def : InstRW<[N2Write_2cyc_2L01_2V], (instregex "ST1Twov(16b|8h|4s|2d)$")>;
1387
- def : InstRW<[N2Write_2cyc_2L01_2V, WriteAdr ], (instregex "ST1Twov(16b|8h|4s|2d)_POST$")>;
1387
+ def : InstRW<[WriteAdr, N2Write_2cyc_2L01_2V ], (instregex "ST1Twov(16b|8h|4s|2d)_POST$")>;
1388
1388
1389
1389
// ASIMD store, 1 element, multiple, 3 reg, D-form
1390
1390
def : InstRW<[N2Write_2cyc_2L01_2V], (instregex "ST1Threev(8b|4h|2s|1d)$")>;
1391
- def : InstRW<[N2Write_2cyc_2L01_2V, WriteAdr ], (instregex "ST1Threev(8b|4h|2s|1d)_POST$")>;
1391
+ def : InstRW<[WriteAdr, N2Write_2cyc_2L01_2V ], (instregex "ST1Threev(8b|4h|2s|1d)_POST$")>;
1392
1392
1393
1393
// ASIMD store, 1 element, multiple, 3 reg, Q-form
1394
1394
def : InstRW<[N2Write_2cyc_3L01_3V], (instregex "ST1Threev(16b|8h|4s|2d)$")>;
1395
- def : InstRW<[N2Write_2cyc_3L01_3V, WriteAdr ], (instregex "ST1Threev(16b|8h|4s|2d)_POST$")>;
1395
+ def : InstRW<[WriteAdr, N2Write_2cyc_3L01_3V ], (instregex "ST1Threev(16b|8h|4s|2d)_POST$")>;
1396
1396
1397
1397
// ASIMD store, 1 element, multiple, 4 reg, D-form
1398
1398
def : InstRW<[N2Write_2cyc_2L01_2V], (instregex "ST1Fourv(8b|4h|2s|1d)$")>;
1399
- def : InstRW<[N2Write_2cyc_2L01_2V, WriteAdr ], (instregex "ST1Fourv(8b|4h|2s|1d)_POST$")>;
1399
+ def : InstRW<[WriteAdr, N2Write_2cyc_2L01_2V ], (instregex "ST1Fourv(8b|4h|2s|1d)_POST$")>;
1400
1400
1401
1401
// ASIMD store, 1 element, multiple, 4 reg, Q-form
1402
1402
def : InstRW<[N2Write_2cyc_4L01_4V], (instregex "ST1Fourv(16b|8h|4s|2d)$")>;
1403
- def : InstRW<[N2Write_2cyc_4L01_4V, WriteAdr ], (instregex "ST1Fourv(16b|8h|4s|2d)_POST$")>;
1403
+ def : InstRW<[WriteAdr, N2Write_2cyc_4L01_4V ], (instregex "ST1Fourv(16b|8h|4s|2d)_POST$")>;
1404
1404
1405
1405
// ASIMD store, 1 element, one lane, B/H/S
1406
1406
// ASIMD store, 1 element, one lane, D
1407
1407
def : InstRW<[N2Write_4cyc_1L01_1V], (instregex "ST1i(8|16|32|64)$")>;
1408
- def : InstRW<[N2Write_4cyc_1L01_1V, WriteAdr ], (instregex "ST1i(8|16|32|64)_POST$")>;
1408
+ def : InstRW<[WriteAdr, N2Write_4cyc_1L01_1V ], (instregex "ST1i(8|16|32|64)_POST$")>;
1409
1409
1410
1410
// ASIMD store, 2 element, multiple, D-form, B/H/S
1411
1411
def : InstRW<[N2Write_4cyc_1L01_1V], (instregex "ST2Twov(8b|4h|2s)$")>;
1412
- def : InstRW<[N2Write_4cyc_1L01_1V, WriteAdr ], (instregex "ST2Twov(8b|4h|2s)_POST$")>;
1412
+ def : InstRW<[WriteAdr, N2Write_4cyc_1L01_1V ], (instregex "ST2Twov(8b|4h|2s)_POST$")>;
1413
1413
1414
1414
// ASIMD store, 2 element, multiple, Q-form, B/H/S
1415
1415
// ASIMD store, 2 element, multiple, Q-form, D
1416
1416
def : InstRW<[N2Write_4cyc_2L01_2V], (instregex "ST2Twov(16b|8h|4s|2d)$")>;
1417
- def : InstRW<[N2Write_4cyc_2L01_2V, WriteAdr ], (instregex "ST2Twov(16b|8h|4s|2d)_POST$")>;
1417
+ def : InstRW<[WriteAdr, N2Write_4cyc_2L01_2V ], (instregex "ST2Twov(16b|8h|4s|2d)_POST$")>;
1418
1418
1419
1419
// ASIMD store, 2 element, one lane, B/H/S
1420
1420
// ASIMD store, 2 element, one lane, D
1421
1421
def : InstRW<[N2Write_4cyc_1L01_1V], (instregex "ST2i(8|16|32|64)$")>;
1422
- def : InstRW<[N2Write_4cyc_1L01_1V, WriteAdr ], (instregex "ST2i(8|16|32|64)_POST$")>;
1422
+ def : InstRW<[WriteAdr, N2Write_4cyc_1L01_1V ], (instregex "ST2i(8|16|32|64)_POST$")>;
1423
1423
1424
1424
// ASIMD store, 3 element, multiple, D-form, B/H/S
1425
1425
def : InstRW<[N2Write_5cyc_2L01_2V], (instregex "ST3Threev(8b|4h|2s)$")>;
1426
- def : InstRW<[N2Write_5cyc_2L01_2V, WriteAdr ], (instregex "ST3Threev(8b|4h|2s)_POST$")>;
1426
+ def : InstRW<[WriteAdr, N2Write_5cyc_2L01_2V ], (instregex "ST3Threev(8b|4h|2s)_POST$")>;
1427
1427
1428
1428
// ASIMD store, 3 element, multiple, Q-form, B/H/S
1429
1429
// ASIMD store, 3 element, multiple, Q-form, D
1430
1430
def : InstRW<[N2Write_6cyc_3L01_3V], (instregex "ST3Threev(16b|8h|4s|2d)$")>;
1431
- def : InstRW<[N2Write_6cyc_3L01_3V, WriteAdr ], (instregex "ST3Threev(16b|8h|4s|2d)_POST$")>;
1431
+ def : InstRW<[WriteAdr, N2Write_6cyc_3L01_3V ], (instregex "ST3Threev(16b|8h|4s|2d)_POST$")>;
1432
1432
1433
1433
// ASIMD store, 3 element, one lane, B/H
1434
1434
// ASIMD store, 3 element, one lane, S
1435
1435
// ASIMD store, 3 element, one lane, D
1436
1436
def : InstRW<[N2Write_6cyc_3L01_3V], (instregex "ST3i(8|16|32|64)$")>;
1437
- def : InstRW<[N2Write_6cyc_3L01_3V, WriteAdr ], (instregex "ST3i(8|16|32|64)_POST$")>;
1437
+ def : InstRW<[WriteAdr, N2Write_6cyc_3L01_3V ], (instregex "ST3i(8|16|32|64)_POST$")>;
1438
1438
1439
1439
// ASIMD store, 4 element, multiple, D-form, B/H/S
1440
1440
def : InstRW<[N2Write_6cyc_3L01_3V], (instregex "ST4Fourv(8b|4h|2s)$")>;
1441
- def : InstRW<[N2Write_6cyc_3L01_3V, WriteAdr ], (instregex "ST4Fourv(8b|4h|2s)_POST$")>;
1441
+ def : InstRW<[WriteAdr, N2Write_6cyc_3L01_3V ], (instregex "ST4Fourv(8b|4h|2s)_POST$")>;
1442
1442
1443
1443
// ASIMD store, 4 element, multiple, Q-form, B/H/S
1444
1444
def : InstRW<[N2Write_7cyc_6L01_6V], (instregex "ST4Fourv(16b|8h|4s)$")>;
1445
- def : InstRW<[N2Write_7cyc_6L01_6V, WriteAdr ], (instregex "ST4Fourv(16b|8h|4s)_POST$")>;
1445
+ def : InstRW<[WriteAdr, N2Write_7cyc_6L01_6V ], (instregex "ST4Fourv(16b|8h|4s)_POST$")>;
1446
1446
1447
1447
// ASIMD store, 4 element, multiple, Q-form, D
1448
1448
def : InstRW<[N2Write_5cyc_4L01_4V], (instregex "ST4Fourv(2d)$")>;
1449
- def : InstRW<[N2Write_5cyc_4L01_4V, WriteAdr ], (instregex "ST4Fourv(2d)_POST$")>;
1449
+ def : InstRW<[WriteAdr, N2Write_5cyc_4L01_4V ], (instregex "ST4Fourv(2d)_POST$")>;
1450
1450
1451
1451
// ASIMD store, 4 element, one lane, B/H/S
1452
1452
def : InstRW<[N2Write_6cyc_3L01_3V], (instregex "ST4i(8|16|32)$")>;
1453
- def : InstRW<[N2Write_6cyc_3L01_3V, WriteAdr ], (instregex "ST4i(8|16|32)_POST$")>;
1453
+ def : InstRW<[WriteAdr, N2Write_6cyc_3L01_3V ], (instregex "ST4i(8|16|32)_POST$")>;
1454
1454
1455
1455
// ASIMD store, 4 element, one lane, D
1456
1456
def : InstRW<[N2Write_4cyc_3L01_3V], (instregex "ST4i(64)$")>;
1457
- def : InstRW<[N2Write_4cyc_3L01_3V, WriteAdr ], (instregex "ST4i(64)_POST$")>;
1457
+ def : InstRW<[WriteAdr, N2Write_4cyc_3L01_3V ], (instregex "ST4i(64)_POST$")>;
1458
1458
1459
1459
// Cryptography extensions
1460
1460
// -----------------------------------------------------------------------------
0 commit comments