@@ -1213,7 +1213,7 @@ def : InstRW<[V2Write_5cyc_1L_1F], (instrs LDRWl, LDRXl, LDRSWl, PRFMl)>;
1213
1213
def : InstRW<[V2Write_5cyc_1I_3L, WriteLDHi], (instrs LDPSWi)>;
1214
1214
1215
1215
// Load pair, immed post-index or immed pre-index, signed words
1216
- def : InstRW<[V2Write_5cyc_1I_3L, WriteLDHi, WriteAdr ],
1216
+ def : InstRW<[WriteAdr, V2Write_5cyc_1I_3L, WriteLDHi ],
1217
1217
(instregex "^LDPSW(post|pre)$")>;
1218
1218
1219
1219
// Store instructions
@@ -1224,7 +1224,7 @@ def : InstRW<[V2Write_5cyc_1I_3L, WriteLDHi, WriteAdr],
1224
1224
def : SchedAlias<WriteST, V2Write_1cyc_1L01_1D>;
1225
1225
def : SchedAlias<WriteSTIdx, V2Write_1cyc_1L01_1D>;
1226
1226
def : SchedAlias<WriteSTP, V2Write_1cyc_1L01_1D>;
1227
- def : SchedAlias<WriteAdr, V2Write_1cyc_1I>; // copied from A57.
1227
+ def : SchedAlias<WriteAdr, V2Write_1cyc_1I>;
1228
1228
1229
1229
// Tag load instructions
1230
1230
// -----------------------------------------------------------------------------
@@ -1337,7 +1337,7 @@ def : InstRW<[V2Write_6cyc_1L], (instregex "^LDUR[BHSDQ]i$")>;
1337
1337
1338
1338
// Load vector reg, immed post-index
1339
1339
// Load vector reg, immed pre-index
1340
- def : InstRW<[V2Write_6cyc_1I_1L, WriteAdr ],
1340
+ def : InstRW<[WriteAdr, V2Write_6cyc_1I_1L ],
1341
1341
(instregex "^LDR[BHSDQ](pre|post)$")>;
1342
1342
1343
1343
// Load vector reg, unsigned immed
@@ -1359,12 +1359,12 @@ def : InstRW<[V2Write_6cyc_2L, WriteLDHi], (instrs LDPQi, LDNPQi)>;
1359
1359
1360
1360
// Load vector pair, immed post-index, S/D-form
1361
1361
// Load vector pair, immed pre-index, S/D-form
1362
- def : InstRW<[V2Write_6cyc_1I_1L, WriteLDHi, WriteAdr ],
1362
+ def : InstRW<[WriteAdr, V2Write_6cyc_1I_1L, WriteLDHi ],
1363
1363
(instregex "^LDP[SD](pre|post)$")>;
1364
1364
1365
1365
// Load vector pair, immed post-index, Q-form
1366
1366
// Load vector pair, immed pre-index, Q-form
1367
- def : InstRW<[V2Write_6cyc_2I_2L, WriteLDHi, WriteAdr ], (instrs LDPQpost,
1367
+ def : InstRW<[WriteAdr, V2Write_6cyc_2I_2L, WriteLDHi ], (instrs LDPQpost,
1368
1368
LDPQpre)>;
1369
1369
1370
1370
// FP store instructions
@@ -1725,220 +1725,220 @@ def : InstRW<[V2Write_5cyc_1M0_1V], (instregex "^INSvi(8|16|32|64)gpr$")>;
1725
1725
1726
1726
// ASIMD load, 1 element, multiple, 1 reg, D-form
1727
1727
def : InstRW<[V2Write_6cyc_1L], (instregex "^LD1Onev(8b|4h|2s|1d)$")>;
1728
- def : InstRW<[V2Write_6cyc_1L, WriteAdr ],
1728
+ def : InstRW<[WriteAdr, V2Write_6cyc_1L ],
1729
1729
(instregex "^LD1Onev(8b|4h|2s|1d)_POST$")>;
1730
1730
1731
1731
// ASIMD load, 1 element, multiple, 1 reg, Q-form
1732
1732
def : InstRW<[V2Write_6cyc_1L], (instregex "^LD1Onev(16b|8h|4s|2d)$")>;
1733
- def : InstRW<[V2Write_6cyc_1L, WriteAdr ],
1733
+ def : InstRW<[WriteAdr, V2Write_6cyc_1L ],
1734
1734
(instregex "^LD1Onev(16b|8h|4s|2d)_POST$")>;
1735
1735
1736
1736
// ASIMD load, 1 element, multiple, 2 reg, D-form
1737
1737
def : InstRW<[V2Write_6cyc_2L], (instregex "^LD1Twov(8b|4h|2s|1d)$")>;
1738
- def : InstRW<[V2Write_6cyc_2L, WriteAdr ],
1738
+ def : InstRW<[WriteAdr, V2Write_6cyc_2L ],
1739
1739
(instregex "^LD1Twov(8b|4h|2s|1d)_POST$")>;
1740
1740
1741
1741
// ASIMD load, 1 element, multiple, 2 reg, Q-form
1742
1742
def : InstRW<[V2Write_6cyc_2L], (instregex "^LD1Twov(16b|8h|4s|2d)$")>;
1743
- def : InstRW<[V2Write_6cyc_2L, WriteAdr ],
1743
+ def : InstRW<[WriteAdr, V2Write_6cyc_2L ],
1744
1744
(instregex "^LD1Twov(16b|8h|4s|2d)_POST$")>;
1745
1745
1746
1746
// ASIMD load, 1 element, multiple, 3 reg, D-form
1747
1747
def : InstRW<[V2Write_6cyc_3L], (instregex "^LD1Threev(8b|4h|2s|1d)$")>;
1748
- def : InstRW<[V2Write_6cyc_3L, WriteAdr ],
1748
+ def : InstRW<[WriteAdr, V2Write_6cyc_3L ],
1749
1749
(instregex "^LD1Threev(8b|4h|2s|1d)_POST$")>;
1750
1750
1751
1751
// ASIMD load, 1 element, multiple, 3 reg, Q-form
1752
1752
def : InstRW<[V2Write_6cyc_3L], (instregex "^LD1Threev(16b|8h|4s|2d)$")>;
1753
- def : InstRW<[V2Write_6cyc_3L, WriteAdr ],
1753
+ def : InstRW<[WriteAdr, V2Write_6cyc_3L ],
1754
1754
(instregex "^LD1Threev(16b|8h|4s|2d)_POST$")>;
1755
1755
1756
1756
// ASIMD load, 1 element, multiple, 4 reg, D-form
1757
1757
def : InstRW<[V2Write_7cyc_4L], (instregex "^LD1Fourv(8b|4h|2s|1d)$")>;
1758
- def : InstRW<[V2Write_7cyc_4L, WriteAdr ],
1758
+ def : InstRW<[WriteAdr, V2Write_7cyc_4L ],
1759
1759
(instregex "^LD1Fourv(8b|4h|2s|1d)_POST$")>;
1760
1760
1761
1761
// ASIMD load, 1 element, multiple, 4 reg, Q-form
1762
1762
def : InstRW<[V2Write_7cyc_4L], (instregex "^LD1Fourv(16b|8h|4s|2d)$")>;
1763
- def : InstRW<[V2Write_7cyc_4L, WriteAdr ],
1763
+ def : InstRW<[WriteAdr, V2Write_7cyc_4L ],
1764
1764
(instregex "^LD1Fourv(16b|8h|4s|2d)_POST$")>;
1765
1765
1766
1766
// ASIMD load, 1 element, one lane, B/H/S
1767
1767
// ASIMD load, 1 element, one lane, D
1768
1768
def : InstRW<[V2Write_8cyc_1L_1V], (instregex "LD1i(8|16|32|64)$")>;
1769
- def : InstRW<[V2Write_8cyc_1L_1V, WriteAdr ], (instregex "LD1i(8|16|32|64)_POST$")>;
1769
+ def : InstRW<[WriteAdr, V2Write_8cyc_1L_1V ], (instregex "LD1i(8|16|32|64)_POST$")>;
1770
1770
1771
1771
// ASIMD load, 1 element, all lanes, D-form, B/H/S
1772
1772
// ASIMD load, 1 element, all lanes, D-form, D
1773
1773
def : InstRW<[V2Write_8cyc_1L_1V], (instregex "LD1Rv(8b|4h|2s|1d)$")>;
1774
- def : InstRW<[V2Write_8cyc_1L_1V, WriteAdr ], (instregex "LD1Rv(8b|4h|2s|1d)_POST$")>;
1774
+ def : InstRW<[WriteAdr, V2Write_8cyc_1L_1V ], (instregex "LD1Rv(8b|4h|2s|1d)_POST$")>;
1775
1775
1776
1776
// ASIMD load, 1 element, all lanes, Q-form
1777
1777
def : InstRW<[V2Write_8cyc_1L_1V], (instregex "LD1Rv(16b|8h|4s|2d)$")>;
1778
- def : InstRW<[V2Write_8cyc_1L_1V, WriteAdr ], (instregex "LD1Rv(16b|8h|4s|2d)_POST$")>;
1778
+ def : InstRW<[WriteAdr, V2Write_8cyc_1L_1V ], (instregex "LD1Rv(16b|8h|4s|2d)_POST$")>;
1779
1779
1780
1780
// ASIMD load, 2 element, multiple, D-form, B/H/S
1781
1781
def : InstRW<[V2Write_8cyc_1L_2V], (instregex "LD2Twov(8b|4h|2s)$")>;
1782
- def : InstRW<[V2Write_8cyc_1L_2V, WriteAdr ], (instregex "LD2Twov(8b|4h|2s)_POST$")>;
1782
+ def : InstRW<[WriteAdr, V2Write_8cyc_1L_2V ], (instregex "LD2Twov(8b|4h|2s)_POST$")>;
1783
1783
1784
1784
// ASIMD load, 2 element, multiple, Q-form, B/H/S
1785
1785
// ASIMD load, 2 element, multiple, Q-form, D
1786
1786
def : InstRW<[V2Write_8cyc_2L_2V], (instregex "LD2Twov(16b|8h|4s|2d)$")>;
1787
- def : InstRW<[V2Write_8cyc_2L_2V, WriteAdr ], (instregex "LD2Twov(16b|8h|4s|2d)_POST$")>;
1787
+ def : InstRW<[WriteAdr, V2Write_8cyc_2L_2V ], (instregex "LD2Twov(16b|8h|4s|2d)_POST$")>;
1788
1788
1789
1789
// ASIMD load, 2 element, one lane, B/H
1790
1790
// ASIMD load, 2 element, one lane, S
1791
1791
// ASIMD load, 2 element, one lane, D
1792
1792
def : InstRW<[V2Write_8cyc_1L_2V], (instregex "LD2i(8|16|32|64)$")>;
1793
- def : InstRW<[V2Write_8cyc_1L_2V, WriteAdr ], (instregex "LD2i(8|16|32|64)_POST$")>;
1793
+ def : InstRW<[WriteAdr, V2Write_8cyc_1L_2V ], (instregex "LD2i(8|16|32|64)_POST$")>;
1794
1794
1795
1795
// ASIMD load, 2 element, all lanes, D-form, B/H/S
1796
1796
// ASIMD load, 2 element, all lanes, D-form, D
1797
1797
def : InstRW<[V2Write_8cyc_1L_2V], (instregex "LD2Rv(8b|4h|2s|1d)$")>;
1798
- def : InstRW<[V2Write_8cyc_1L_2V, WriteAdr ], (instregex "LD2Rv(8b|4h|2s|1d)_POST$")>;
1798
+ def : InstRW<[WriteAdr, V2Write_8cyc_1L_2V ], (instregex "LD2Rv(8b|4h|2s|1d)_POST$")>;
1799
1799
1800
1800
// ASIMD load, 2 element, all lanes, Q-form
1801
1801
def : InstRW<[V2Write_8cyc_1L_2V], (instregex "LD2Rv(16b|8h|4s|2d)$")>;
1802
- def : InstRW<[V2Write_8cyc_1L_2V, WriteAdr ], (instregex "LD2Rv(16b|8h|4s|2d)_POST$")>;
1802
+ def : InstRW<[WriteAdr, V2Write_8cyc_1L_2V ], (instregex "LD2Rv(16b|8h|4s|2d)_POST$")>;
1803
1803
1804
1804
// ASIMD load, 3 element, multiple, D-form, B/H/S
1805
1805
def : InstRW<[V2Write_8cyc_2L_3V], (instregex "LD3Threev(8b|4h|2s)$")>;
1806
- def : InstRW<[V2Write_8cyc_2L_3V, WriteAdr ], (instregex "LD3Threev(8b|4h|2s)_POST$")>;
1806
+ def : InstRW<[WriteAdr, V2Write_8cyc_2L_3V ], (instregex "LD3Threev(8b|4h|2s)_POST$")>;
1807
1807
1808
1808
// ASIMD load, 3 element, multiple, Q-form, B/H/S
1809
1809
// ASIMD load, 3 element, multiple, Q-form, D
1810
1810
def : InstRW<[V2Write_8cyc_3L_3V], (instregex "LD3Threev(16b|8h|4s|2d)$")>;
1811
- def : InstRW<[V2Write_8cyc_3L_3V, WriteAdr ], (instregex "LD3Threev(16b|8h|4s|2d)_POST$")>;
1811
+ def : InstRW<[WriteAdr, V2Write_8cyc_3L_3V ], (instregex "LD3Threev(16b|8h|4s|2d)_POST$")>;
1812
1812
1813
1813
// ASIMD load, 3 element, one lane, B/H
1814
1814
// ASIMD load, 3 element, one lane, S
1815
1815
// ASIMD load, 3 element, one lane, D
1816
1816
def : InstRW<[V2Write_8cyc_2L_3V], (instregex "LD3i(8|16|32|64)$")>;
1817
- def : InstRW<[V2Write_8cyc_2L_3V, WriteAdr ], (instregex "LD3i(8|16|32|64)_POST$")>;
1817
+ def : InstRW<[WriteAdr, V2Write_8cyc_2L_3V ], (instregex "LD3i(8|16|32|64)_POST$")>;
1818
1818
1819
1819
// ASIMD load, 3 element, all lanes, D-form, B/H/S
1820
1820
// ASIMD load, 3 element, all lanes, D-form, D
1821
1821
def : InstRW<[V2Write_8cyc_2L_3V], (instregex "LD3Rv(8b|4h|2s|1d)$")>;
1822
- def : InstRW<[V2Write_8cyc_2L_3V, WriteAdr ], (instregex "LD3Rv(8b|4h|2s|1d)_POST$")>;
1822
+ def : InstRW<[WriteAdr, V2Write_8cyc_2L_3V ], (instregex "LD3Rv(8b|4h|2s|1d)_POST$")>;
1823
1823
1824
1824
// ASIMD load, 3 element, all lanes, Q-form, B/H/S
1825
1825
// ASIMD load, 3 element, all lanes, Q-form, D
1826
1826
def : InstRW<[V2Write_8cyc_3L_3V], (instregex "LD3Rv(16b|8h|4s|2d)$")>;
1827
- def : InstRW<[V2Write_8cyc_3L_3V, WriteAdr ], (instregex "LD3Rv(16b|8h|4s|2d)_POST$")>;
1827
+ def : InstRW<[WriteAdr, V2Write_8cyc_3L_3V ], (instregex "LD3Rv(16b|8h|4s|2d)_POST$")>;
1828
1828
1829
1829
// ASIMD load, 4 element, multiple, D-form, B/H/S
1830
1830
def : InstRW<[V2Write_8cyc_3L_4V], (instregex "LD4Fourv(8b|4h|2s)$")>;
1831
- def : InstRW<[V2Write_8cyc_3L_4V, WriteAdr ], (instregex "LD4Fourv(8b|4h|2s)_POST$")>;
1831
+ def : InstRW<[WriteAdr, V2Write_8cyc_3L_4V ], (instregex "LD4Fourv(8b|4h|2s)_POST$")>;
1832
1832
1833
1833
// ASIMD load, 4 element, multiple, Q-form, B/H/S
1834
1834
// ASIMD load, 4 element, multiple, Q-form, D
1835
1835
def : InstRW<[V2Write_9cyc_6L_4V], (instregex "LD4Fourv(16b|8h|4s|2d)$")>;
1836
- def : InstRW<[V2Write_9cyc_6L_4V, WriteAdr ], (instregex "LD4Fourv(16b|8h|4s|2d)_POST$")>;
1836
+ def : InstRW<[WriteAdr, V2Write_9cyc_6L_4V ], (instregex "LD4Fourv(16b|8h|4s|2d)_POST$")>;
1837
1837
1838
1838
// ASIMD load, 4 element, one lane, B/H
1839
1839
// ASIMD load, 4 element, one lane, S
1840
1840
// ASIMD load, 4 element, one lane, D
1841
1841
def : InstRW<[V2Write_8cyc_3L_4V], (instregex "LD4i(8|16|32|64)$")>;
1842
- def : InstRW<[V2Write_8cyc_3L_4V, WriteAdr ], (instregex "LD4i(8|16|32|64)_POST$")>;
1842
+ def : InstRW<[WriteAdr, V2Write_8cyc_3L_4V ], (instregex "LD4i(8|16|32|64)_POST$")>;
1843
1843
1844
1844
// ASIMD load, 4 element, all lanes, D-form, B/H/S
1845
1845
// ASIMD load, 4 element, all lanes, D-form, D
1846
- def : InstRW<[V2Write_8cyc_3L_4V], (instregex "LD4Rv(8b|4h|2s|1d)$")>;
1847
- def : InstRW<[V2Write_8cyc_3L_4V, WriteAdr], (instregex "LD4Rv(8b|4h|2s|1d)_POST$")>;
1846
+ def : InstRW<[V2Write_8cyc_3L_4V], (instregex "LD4Rv(8b|4h|2s|1d)$")>;
1847
+ def : InstRW<[WriteAdr, V2Write_8cyc_3L_4V], (instregex "LD4Rv(8b|4h|2s|1d)_POST$")>;
1848
1848
1849
1849
// ASIMD load, 4 element, all lanes, Q-form, B/H/S
1850
1850
// ASIMD load, 4 element, all lanes, Q-form, D
1851
- def : InstRW<[V2Write_8cyc_4L_4V], (instregex "LD4Rv(16b|8h|4s|2d)$")>;
1852
- def : InstRW<[V2Write_8cyc_4L_4V, WriteAdr], (instregex "LD4Rv(16b|8h|4s|2d)_POST$")>;
1851
+ def : InstRW<[V2Write_8cyc_4L_4V], (instregex "LD4Rv(16b|8h|4s|2d)$")>;
1852
+ def : InstRW<[WriteAdr, V2Write_8cyc_4L_4V], (instregex "LD4Rv(16b|8h|4s|2d)_POST$")>;
1853
1853
1854
1854
// ASIMD store instructions
1855
1855
// -----------------------------------------------------------------------------
1856
1856
1857
1857
// ASIMD store, 1 element, multiple, 1 reg, D-form
1858
1858
def : InstRW<[V2Write_2cyc_1L01_1V01], (instregex "ST1Onev(8b|4h|2s|1d)$")>;
1859
- def : InstRW<[V2Write_2cyc_1L01_1V01, WriteAdr ], (instregex "ST1Onev(8b|4h|2s|1d)_POST$")>;
1859
+ def : InstRW<[WriteAdr, V2Write_2cyc_1L01_1V01 ], (instregex "ST1Onev(8b|4h|2s|1d)_POST$")>;
1860
1860
1861
1861
// ASIMD store, 1 element, multiple, 1 reg, Q-form
1862
1862
def : InstRW<[V2Write_2cyc_1L01_1V01], (instregex "ST1Onev(16b|8h|4s|2d)$")>;
1863
- def : InstRW<[V2Write_2cyc_1L01_1V01, WriteAdr ], (instregex "ST1Onev(16b|8h|4s|2d)_POST$")>;
1863
+ def : InstRW<[WriteAdr, V2Write_2cyc_1L01_1V01 ], (instregex "ST1Onev(16b|8h|4s|2d)_POST$")>;
1864
1864
1865
1865
// ASIMD store, 1 element, multiple, 2 reg, D-form
1866
1866
def : InstRW<[V2Write_2cyc_1L01_1V01], (instregex "ST1Twov(8b|4h|2s|1d)$")>;
1867
- def : InstRW<[V2Write_2cyc_1L01_1V01, WriteAdr ], (instregex "ST1Twov(8b|4h|2s|1d)_POST$")>;
1867
+ def : InstRW<[WriteAdr, V2Write_2cyc_1L01_1V01 ], (instregex "ST1Twov(8b|4h|2s|1d)_POST$")>;
1868
1868
1869
1869
// ASIMD store, 1 element, multiple, 2 reg, Q-form
1870
1870
def : InstRW<[V2Write_2cyc_2L01_2V01], (instregex "ST1Twov(16b|8h|4s|2d)$")>;
1871
- def : InstRW<[V2Write_2cyc_2L01_2V01, WriteAdr ], (instregex "ST1Twov(16b|8h|4s|2d)_POST$")>;
1871
+ def : InstRW<[WriteAdr, V2Write_2cyc_2L01_2V01 ], (instregex "ST1Twov(16b|8h|4s|2d)_POST$")>;
1872
1872
1873
1873
// ASIMD store, 1 element, multiple, 3 reg, D-form
1874
1874
def : InstRW<[V2Write_2cyc_2L01_2V01], (instregex "ST1Threev(8b|4h|2s|1d)$")>;
1875
- def : InstRW<[V2Write_2cyc_2L01_2V01, WriteAdr ], (instregex "ST1Threev(8b|4h|2s|1d)_POST$")>;
1875
+ def : InstRW<[WriteAdr, V2Write_2cyc_2L01_2V01 ], (instregex "ST1Threev(8b|4h|2s|1d)_POST$")>;
1876
1876
1877
1877
// ASIMD store, 1 element, multiple, 3 reg, Q-form
1878
1878
def : InstRW<[V2Write_2cyc_3L01_3V01], (instregex "ST1Threev(16b|8h|4s|2d)$")>;
1879
- def : InstRW<[V2Write_2cyc_3L01_3V01, WriteAdr ], (instregex "ST1Threev(16b|8h|4s|2d)_POST$")>;
1879
+ def : InstRW<[WriteAdr, V2Write_2cyc_3L01_3V01 ], (instregex "ST1Threev(16b|8h|4s|2d)_POST$")>;
1880
1880
1881
1881
// ASIMD store, 1 element, multiple, 4 reg, D-form
1882
1882
def : InstRW<[V2Write_2cyc_2L01_2V01], (instregex "ST1Fourv(8b|4h|2s|1d)$")>;
1883
- def : InstRW<[V2Write_2cyc_2L01_2V01, WriteAdr ], (instregex "ST1Fourv(8b|4h|2s|1d)_POST$")>;
1883
+ def : InstRW<[WriteAdr, V2Write_2cyc_2L01_2V01 ], (instregex "ST1Fourv(8b|4h|2s|1d)_POST$")>;
1884
1884
1885
1885
// ASIMD store, 1 element, multiple, 4 reg, Q-form
1886
1886
def : InstRW<[V2Write_2cyc_4L01_4V01], (instregex "ST1Fourv(16b|8h|4s|2d)$")>;
1887
- def : InstRW<[V2Write_2cyc_4L01_4V01, WriteAdr ], (instregex "ST1Fourv(16b|8h|4s|2d)_POST$")>;
1887
+ def : InstRW<[WriteAdr, V2Write_2cyc_4L01_4V01 ], (instregex "ST1Fourv(16b|8h|4s|2d)_POST$")>;
1888
1888
1889
1889
// ASIMD store, 1 element, one lane, B/H/S
1890
1890
// ASIMD store, 1 element, one lane, D
1891
1891
def : InstRW<[V2Write_4cyc_1L01_2V01], (instregex "ST1i(8|16|32|64)$")>;
1892
- def : InstRW<[V2Write_4cyc_1L01_2V01, WriteAdr ], (instregex "ST1i(8|16|32|64)_POST$")>;
1892
+ def : InstRW<[WriteAdr, V2Write_4cyc_1L01_2V01 ], (instregex "ST1i(8|16|32|64)_POST$")>;
1893
1893
1894
1894
// ASIMD store, 2 element, multiple, D-form, B/H/S
1895
1895
def : InstRW<[V2Write_4cyc_1L01_2V01], (instregex "ST2Twov(8b|4h|2s)$")>;
1896
- def : InstRW<[V2Write_4cyc_1L01_2V01, WriteAdr ], (instregex "ST2Twov(8b|4h|2s)_POST$")>;
1896
+ def : InstRW<[WriteAdr, V2Write_4cyc_1L01_2V01 ], (instregex "ST2Twov(8b|4h|2s)_POST$")>;
1897
1897
1898
1898
// ASIMD store, 2 element, multiple, Q-form, B/H/S
1899
1899
// ASIMD store, 2 element, multiple, Q-form, D
1900
1900
def : InstRW<[V2Write_4cyc_2L01_4V01], (instregex "ST2Twov(16b|8h|4s|2d)$")>;
1901
- def : InstRW<[V2Write_4cyc_2L01_4V01, WriteAdr ], (instregex "ST2Twov(16b|8h|4s|2d)_POST$")>;
1901
+ def : InstRW<[WriteAdr, V2Write_4cyc_2L01_4V01 ], (instregex "ST2Twov(16b|8h|4s|2d)_POST$")>;
1902
1902
1903
1903
// ASIMD store, 2 element, one lane, B/H/S
1904
1904
// ASIMD store, 2 element, one lane, D
1905
1905
def : InstRW<[V2Write_4cyc_1L01_2V01], (instregex "ST2i(8|16|32|64)$")>;
1906
- def : InstRW<[V2Write_4cyc_1L01_2V01, WriteAdr ], (instregex "ST2i(8|16|32|64)_POST$")>;
1906
+ def : InstRW<[WriteAdr, V2Write_4cyc_1L01_2V01 ], (instregex "ST2i(8|16|32|64)_POST$")>;
1907
1907
1908
1908
// ASIMD store, 3 element, multiple, D-form, B/H/S
1909
1909
def : InstRW<[V2Write_5cyc_2L01_4V01], (instregex "ST3Threev(8b|4h|2s)$")>;
1910
- def : InstRW<[V2Write_5cyc_2L01_4V01, WriteAdr ], (instregex "ST3Threev(8b|4h|2s)_POST$")>;
1910
+ def : InstRW<[WriteAdr, V2Write_5cyc_2L01_4V01 ], (instregex "ST3Threev(8b|4h|2s)_POST$")>;
1911
1911
1912
1912
// ASIMD store, 3 element, multiple, Q-form, B/H/S
1913
1913
// ASIMD store, 3 element, multiple, Q-form, D
1914
1914
def : InstRW<[V2Write_6cyc_3L01_6V01], (instregex "ST3Threev(16b|8h|4s|2d)$")>;
1915
- def : InstRW<[V2Write_6cyc_3L01_6V01, WriteAdr ], (instregex "ST3Threev(16b|8h|4s|2d)_POST$")>;
1915
+ def : InstRW<[WriteAdr, V2Write_6cyc_3L01_6V01 ], (instregex "ST3Threev(16b|8h|4s|2d)_POST$")>;
1916
1916
1917
1917
// ASIMD store, 3 element, one lane, B/H
1918
1918
// ASIMD store, 3 element, one lane, S
1919
1919
// ASIMD store, 3 element, one lane, D
1920
1920
def : InstRW<[V2Write_5cyc_2L01_4V01], (instregex "ST3i(8|16|32|64)$")>;
1921
- def : InstRW<[V2Write_5cyc_2L01_4V01, WriteAdr ], (instregex "ST3i(8|16|32|64)_POST$")>;
1921
+ def : InstRW<[WriteAdr, V2Write_5cyc_2L01_4V01 ], (instregex "ST3i(8|16|32|64)_POST$")>;
1922
1922
1923
1923
// ASIMD store, 4 element, multiple, D-form, B/H/S
1924
1924
def : InstRW<[V2Write_6cyc_2L01_6V01], (instregex "ST4Fourv(8b|4h|2s)$")>;
1925
- def : InstRW<[V2Write_6cyc_2L01_6V01, WriteAdr ], (instregex "ST4Fourv(8b|4h|2s)_POST$")>;
1925
+ def : InstRW<[WriteAdr, V2Write_6cyc_2L01_6V01 ], (instregex "ST4Fourv(8b|4h|2s)_POST$")>;
1926
1926
1927
1927
// ASIMD store, 4 element, multiple, Q-form, B/H/S
1928
1928
def : InstRW<[V2Write_7cyc_4L01_12V01], (instregex "ST4Fourv(16b|8h|4s)$")>;
1929
- def : InstRW<[V2Write_7cyc_4L01_12V01, WriteAdr ], (instregex "ST4Fourv(16b|8h|4s)_POST$")>;
1929
+ def : InstRW<[WriteAdr, V2Write_7cyc_4L01_12V01 ], (instregex "ST4Fourv(16b|8h|4s)_POST$")>;
1930
1930
1931
1931
// ASIMD store, 4 element, multiple, Q-form, D
1932
1932
def : InstRW<[V2Write_5cyc_4L01_8V01], (instregex "ST4Fourv(2d)$")>;
1933
- def : InstRW<[V2Write_5cyc_4L01_8V01, WriteAdr ], (instregex "ST4Fourv(2d)_POST$")>;
1933
+ def : InstRW<[WriteAdr, V2Write_5cyc_4L01_8V01 ], (instregex "ST4Fourv(2d)_POST$")>;
1934
1934
1935
1935
// ASIMD store, 4 element, one lane, B/H/S
1936
1936
def : InstRW<[V2Write_6cyc_1L01_3V01], (instregex "ST4i(8|16|32)$")>;
1937
- def : InstRW<[V2Write_6cyc_1L01_3V01, WriteAdr ], (instregex "ST4i(8|16|32)_POST$")>;
1937
+ def : InstRW<[WriteAdr, V2Write_6cyc_1L01_3V01 ], (instregex "ST4i(8|16|32)_POST$")>;
1938
1938
1939
1939
// ASIMD store, 4 element, one lane, D
1940
1940
def : InstRW<[V2Write_4cyc_2L01_4V01], (instregex "ST4i(64)$")>;
1941
- def : InstRW<[V2Write_4cyc_2L01_4V01, WriteAdr ], (instregex "ST4i(64)_POST$")>;
1941
+ def : InstRW<[WriteAdr, V2Write_4cyc_2L01_4V01 ], (instregex "ST4i(64)_POST$")>;
1942
1942
1943
1943
// Cryptography extensions
1944
1944
// -----------------------------------------------------------------------------
0 commit comments