xref: /aosp_15_r20/external/llvm/lib/Target/Hexagon/HexagonInstrAlias.td (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker//==- HexagonInstrAlias.td - Hexagon Instruction Aliases ---*- tablegen -*--==//
2*9880d681SAndroid Build Coastguard Worker//
3*9880d681SAndroid Build Coastguard Worker//                     The LLVM Compiler Infrastructure
4*9880d681SAndroid Build Coastguard Worker//
5*9880d681SAndroid Build Coastguard Worker// This file is distributed under the University of Illinois Open Source
6*9880d681SAndroid Build Coastguard Worker// License. See LICENSE.TXT for details.
7*9880d681SAndroid Build Coastguard Worker//
8*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
9*9880d681SAndroid Build Coastguard Worker//                     Hexagon Instruction Mappings
10*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb({GP}+#$addr) = $Nt.new",
14*9880d681SAndroid Build Coastguard Worker                (S2_storerbnewgp u16_0Imm:$addr, IntRegs:$Nt)>;
15*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh({GP}+#$addr) = $Nt.new",
16*9880d681SAndroid Build Coastguard Worker                (S2_storerhnewgp u16_1Imm:$addr, IntRegs:$Nt)>;
17*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw({GP}+#$addr) = $Nt.new",
18*9880d681SAndroid Build Coastguard Worker                (S2_storerinewgp u16_2Imm:$addr, IntRegs:$Nt)>;
19*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb({GP}+#$addr) = $Nt",
20*9880d681SAndroid Build Coastguard Worker                (S2_storerbgp u16_0Imm:$addr, IntRegs:$Nt)>;
21*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh({GP}+#$addr) = $Nt",
22*9880d681SAndroid Build Coastguard Worker                (S2_storerhgp u16_1Imm:$addr, IntRegs:$Nt)>;
23*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh({GP}+#$addr) = $Nt.h",
24*9880d681SAndroid Build Coastguard Worker                (S2_storerfgp u16_1Imm:$addr, IntRegs:$Nt)>;
25*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw({GP}+#$addr) = $Nt",
26*9880d681SAndroid Build Coastguard Worker                (S2_storerigp u16_2Imm:$addr, IntRegs:$Nt)>;
27*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memd({GP}+#$addr) = $Nt",
28*9880d681SAndroid Build Coastguard Worker                (S2_storerdgp u16_3Imm:$addr, DoubleRegs:$Nt)>;
29*9880d681SAndroid Build Coastguard Worker
30*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Nt = memb({GP}+#$addr)",
31*9880d681SAndroid Build Coastguard Worker                (L2_loadrbgp IntRegs:$Nt, u16_0Imm:$addr)>;
32*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Nt = memub({GP}+#$addr)",
33*9880d681SAndroid Build Coastguard Worker                (L2_loadrubgp IntRegs:$Nt, u16_0Imm:$addr)>;
34*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Nt = memh({GP}+#$addr)",
35*9880d681SAndroid Build Coastguard Worker                (L2_loadrhgp IntRegs:$Nt, u16_1Imm:$addr)>;
36*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Nt = memuh({GP}+#$addr)",
37*9880d681SAndroid Build Coastguard Worker                (L2_loadruhgp IntRegs:$Nt, u16_1Imm:$addr)>;
38*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Nt = memw({GP}+#$addr)",
39*9880d681SAndroid Build Coastguard Worker                (L2_loadrigp IntRegs:$Nt, u16_2Imm:$addr)>;
40*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Nt = memd({GP}+#$addr)",
41*9880d681SAndroid Build Coastguard Worker                (L2_loadrdgp DoubleRegs:$Nt, u16_3Imm:$addr)>;
42*9880d681SAndroid Build Coastguard Worker
43*9880d681SAndroid Build Coastguard Worker// Alias of: memXX($Rs+#XX) = $Rt to memXX($Rs) = $Rt
44*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) = $Rt",
45*9880d681SAndroid Build Coastguard Worker      (S2_storerb_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
46*9880d681SAndroid Build Coastguard Worker
47*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) = $Rt",
48*9880d681SAndroid Build Coastguard Worker      (S2_storerh_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
49*9880d681SAndroid Build Coastguard Worker
50*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) = $Rt.h",
51*9880d681SAndroid Build Coastguard Worker      (S2_storerf_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) = $Rt",
54*9880d681SAndroid Build Coastguard Worker      (S2_storeri_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
55*9880d681SAndroid Build Coastguard Worker
56*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) = $Rt.new",
57*9880d681SAndroid Build Coastguard Worker      (S2_storerbnew_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
58*9880d681SAndroid Build Coastguard Worker
59*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) = $Rt.new",
60*9880d681SAndroid Build Coastguard Worker      (S2_storerhnew_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
61*9880d681SAndroid Build Coastguard Worker
62*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) = $Rt.new",
63*9880d681SAndroid Build Coastguard Worker      (S2_storerinew_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
64*9880d681SAndroid Build Coastguard Worker
65*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) = #$S8",
66*9880d681SAndroid Build Coastguard Worker      (S4_storeirb_io IntRegs:$Rs, 0, s8Ext:$S8), 0>;
67*9880d681SAndroid Build Coastguard Worker
68*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) = #$S8",
69*9880d681SAndroid Build Coastguard Worker      (S4_storeirh_io IntRegs:$Rs, 0, s8Ext:$S8), 0>;
70*9880d681SAndroid Build Coastguard Worker
71*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) = #$S8",
72*9880d681SAndroid Build Coastguard Worker      (S4_storeiri_io IntRegs:$Rs, 0, s8Ext:$S8), 0>;
73*9880d681SAndroid Build Coastguard Worker
74*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memd($Rs) = $Rtt",
75*9880d681SAndroid Build Coastguard Worker      (S2_storerd_io IntRegs:$Rs, 0, DoubleRegs:$Rtt), 0>;
76*9880d681SAndroid Build Coastguard Worker
77*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) = setbit(#$U5)",
78*9880d681SAndroid Build Coastguard Worker      (L4_ior_memopb_io IntRegs:$Rs, 0, u5Imm:$U5), 0>;
79*9880d681SAndroid Build Coastguard Worker
80*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) = setbit(#$U5)",
81*9880d681SAndroid Build Coastguard Worker      (L4_ior_memoph_io IntRegs:$Rs, 0, u5Imm:$U5), 0>;
82*9880d681SAndroid Build Coastguard Worker
83*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) = setbit(#$U5)",
84*9880d681SAndroid Build Coastguard Worker      (L4_ior_memopw_io IntRegs:$Rs, 0, u5Imm:$U5), 0>;
85*9880d681SAndroid Build Coastguard Worker
86*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) = clrbit(#$U5)",
87*9880d681SAndroid Build Coastguard Worker      (L4_iand_memopb_io IntRegs:$Rs, 0, u5Imm:$U5), 0>;
88*9880d681SAndroid Build Coastguard Worker
89*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) = clrbit(#$U5)",
90*9880d681SAndroid Build Coastguard Worker      (L4_iand_memoph_io IntRegs:$Rs, 0, u5Imm:$U5), 0>;
91*9880d681SAndroid Build Coastguard Worker
92*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) = clrbit(#$U5)",
93*9880d681SAndroid Build Coastguard Worker      (L4_iand_memopw_io IntRegs:$Rs, 0, u5Imm:$U5), 0>;
94*9880d681SAndroid Build Coastguard Worker
95*9880d681SAndroid Build Coastguard Worker// Alias of: $Rd = memXX($Rs+#XX) to $Rd = memXX($Rs)
96*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = memb($Rs)",
97*9880d681SAndroid Build Coastguard Worker      (L2_loadrb_io IntRegs:$Rd, IntRegs:$Rs, 0), 0>;
98*9880d681SAndroid Build Coastguard Worker
99*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = memub($Rs)",
100*9880d681SAndroid Build Coastguard Worker      (L2_loadrub_io IntRegs:$Rd, IntRegs:$Rs, 0), 0>;
101*9880d681SAndroid Build Coastguard Worker
102*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = memh($Rs)",
103*9880d681SAndroid Build Coastguard Worker      (L2_loadrh_io IntRegs:$Rd, IntRegs:$Rs, 0), 0>;
104*9880d681SAndroid Build Coastguard Worker
105*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = memuh($Rs)",
106*9880d681SAndroid Build Coastguard Worker      (L2_loadruh_io IntRegs:$Rd, IntRegs:$Rs, 0), 0>;
107*9880d681SAndroid Build Coastguard Worker
108*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = memw($Rs)",
109*9880d681SAndroid Build Coastguard Worker      (L2_loadri_io IntRegs:$Rd, IntRegs:$Rs, 0), 0>;
110*9880d681SAndroid Build Coastguard Worker
111*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rdd = memd($Rs)",
112*9880d681SAndroid Build Coastguard Worker      (L2_loadrd_io DoubleRegs:$Rdd, IntRegs:$Rs, 0), 0>;
113*9880d681SAndroid Build Coastguard Worker
114*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = memubh($Rs)",
115*9880d681SAndroid Build Coastguard Worker      (L2_loadbzw2_io IntRegs:$Rd, IntRegs:$Rs, 0), 0>;
116*9880d681SAndroid Build Coastguard Worker
117*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rdd = memubh($Rs)",
118*9880d681SAndroid Build Coastguard Worker      (L2_loadbzw4_io DoubleRegs:$Rdd, IntRegs:$Rs, 0), 0>;
119*9880d681SAndroid Build Coastguard Worker
120*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = membh($Rs)",
121*9880d681SAndroid Build Coastguard Worker      (L2_loadbsw2_io IntRegs:$Rd, IntRegs:$Rs, 0), 0>;
122*9880d681SAndroid Build Coastguard Worker
123*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rdd = membh($Rs)",
124*9880d681SAndroid Build Coastguard Worker      (L2_loadbsw4_io DoubleRegs:$Rdd, IntRegs:$Rs, 0), 0>;
125*9880d681SAndroid Build Coastguard Worker
126*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rdd = memb_fifo($Rs)",
127*9880d681SAndroid Build Coastguard Worker      (L2_loadalignb_io DoubleRegs:$Rdd, IntRegs:$Rs, 0), 0>;
128*9880d681SAndroid Build Coastguard Worker
129*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rdd = memh_fifo($Rs)",
130*9880d681SAndroid Build Coastguard Worker      (L2_loadalignh_io DoubleRegs:$Rdd, IntRegs:$Rs, 0), 0>;
131*9880d681SAndroid Build Coastguard Worker
132*9880d681SAndroid Build Coastguard Worker// Alias of: if ($Pt) $Rd = memXX($Rs + #$u6_X)
133*9880d681SAndroid Build Coastguard Worker//       to: if ($Pt) $Rd = memXX($Rs)
134*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) $Rd = memb($Rs)",
135*9880d681SAndroid Build Coastguard Worker      (L2_ploadrbt_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
136*9880d681SAndroid Build Coastguard Worker
137*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) $Rd = memub($Rs)",
138*9880d681SAndroid Build Coastguard Worker      (L2_ploadrubt_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
139*9880d681SAndroid Build Coastguard Worker
140*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) $Rd = memh($Rs)",
141*9880d681SAndroid Build Coastguard Worker      (L2_ploadrht_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
142*9880d681SAndroid Build Coastguard Worker
143*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) $Rd = memuh($Rs)",
144*9880d681SAndroid Build Coastguard Worker      (L2_ploadruht_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
145*9880d681SAndroid Build Coastguard Worker
146*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) $Rd = memw($Rs)",
147*9880d681SAndroid Build Coastguard Worker      (L2_ploadrit_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
148*9880d681SAndroid Build Coastguard Worker
149*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) $Rdd = memd($Rs)",
150*9880d681SAndroid Build Coastguard Worker      (L2_ploadrdt_io DoubleRegs:$Rdd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
151*9880d681SAndroid Build Coastguard Worker
152*9880d681SAndroid Build Coastguard Worker// Alias of: if ($Pt) memXX($Rs + #$u6_X) = $Rt
153*9880d681SAndroid Build Coastguard Worker//       to: if ($Pt) memXX($Rs) = $Rt
154*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memb($Rs) = $Rt",
155*9880d681SAndroid Build Coastguard Worker      (S2_pstorerbt_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
156*9880d681SAndroid Build Coastguard Worker
157*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memh($Rs) = $Rt",
158*9880d681SAndroid Build Coastguard Worker      (S2_pstorerht_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
159*9880d681SAndroid Build Coastguard Worker
160*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memh($Rs) = $Rt.h",
161*9880d681SAndroid Build Coastguard Worker      (S2_pstorerft_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
162*9880d681SAndroid Build Coastguard Worker
163*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memw($Rs) = $Rt",
164*9880d681SAndroid Build Coastguard Worker      (S2_pstorerit_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
165*9880d681SAndroid Build Coastguard Worker
166*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memd($Rs) = $Rtt",
167*9880d681SAndroid Build Coastguard Worker      (S2_pstorerdt_io PredRegs:$Pt, IntRegs:$Rs, 0, DoubleRegs:$Rtt), 0>;
168*9880d681SAndroid Build Coastguard Worker
169*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memb($Rs) = $Rt.new",
170*9880d681SAndroid Build Coastguard Worker      (S2_pstorerbnewt_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
171*9880d681SAndroid Build Coastguard Worker
172*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memh($Rs) = $Rt.new",
173*9880d681SAndroid Build Coastguard Worker      (S2_pstorerhnewt_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
174*9880d681SAndroid Build Coastguard Worker
175*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memw($Rs) = $Rt.new",
176*9880d681SAndroid Build Coastguard Worker      (S2_pstorerinewt_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
177*9880d681SAndroid Build Coastguard Worker
178*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) memb($Rs) = $Rt.new",
179*9880d681SAndroid Build Coastguard Worker      (S4_pstorerbnewtnew_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
180*9880d681SAndroid Build Coastguard Worker
181*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) memh($Rs) = $Rt.new",
182*9880d681SAndroid Build Coastguard Worker      (S4_pstorerhnewtnew_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
183*9880d681SAndroid Build Coastguard Worker
184*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) memw($Rs) = $Rt.new",
185*9880d681SAndroid Build Coastguard Worker      (S4_pstorerinewtnew_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
186*9880d681SAndroid Build Coastguard Worker
187*9880d681SAndroid Build Coastguard Worker
188*9880d681SAndroid Build Coastguard Worker// Alias of: if (!$Pt) $Rd = memXX($Rs + #$u6_X)
189*9880d681SAndroid Build Coastguard Worker//       to: if (!$Pt) $Rd = memXX($Rs)
190*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) $Rd = memb($Rs)",
191*9880d681SAndroid Build Coastguard Worker      (L2_ploadrbf_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
192*9880d681SAndroid Build Coastguard Worker
193*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) $Rd = memub($Rs)",
194*9880d681SAndroid Build Coastguard Worker      (L2_ploadrubf_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
195*9880d681SAndroid Build Coastguard Worker
196*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) $Rd = memh($Rs)",
197*9880d681SAndroid Build Coastguard Worker      (L2_ploadrhf_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
198*9880d681SAndroid Build Coastguard Worker
199*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) $Rd = memuh($Rs)",
200*9880d681SAndroid Build Coastguard Worker      (L2_ploadruhf_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
201*9880d681SAndroid Build Coastguard Worker
202*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) $Rd = memw($Rs)",
203*9880d681SAndroid Build Coastguard Worker      (L2_ploadrif_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
204*9880d681SAndroid Build Coastguard Worker
205*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) $Rdd = memd($Rs)",
206*9880d681SAndroid Build Coastguard Worker      (L2_ploadrdf_io DoubleRegs:$Rdd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
207*9880d681SAndroid Build Coastguard Worker
208*9880d681SAndroid Build Coastguard Worker// Alias of: if (!$Pt) memXX($Rs + #$u6_X) = $Rt
209*9880d681SAndroid Build Coastguard Worker//       to: if (!$Pt) memXX($Rs) = $Rt
210*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memb($Rs) = $Rt",
211*9880d681SAndroid Build Coastguard Worker      (S2_pstorerbf_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
212*9880d681SAndroid Build Coastguard Worker
213*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memh($Rs) = $Rt",
214*9880d681SAndroid Build Coastguard Worker      (S2_pstorerhf_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
215*9880d681SAndroid Build Coastguard Worker
216*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memh($Rs) = $Rt.h",
217*9880d681SAndroid Build Coastguard Worker      (S2_pstorerff_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
218*9880d681SAndroid Build Coastguard Worker
219*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memw($Rs) = $Rt",
220*9880d681SAndroid Build Coastguard Worker      (S2_pstorerif_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
221*9880d681SAndroid Build Coastguard Worker
222*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memd($Rs) = $Rtt",
223*9880d681SAndroid Build Coastguard Worker      (S2_pstorerdf_io PredRegs:$Pt, IntRegs:$Rs, 0, DoubleRegs:$Rtt), 0>;
224*9880d681SAndroid Build Coastguard Worker
225*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memb($Rs) = $Rt.new",
226*9880d681SAndroid Build Coastguard Worker      (S2_pstorerbnewf_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
227*9880d681SAndroid Build Coastguard Worker
228*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memh($Rs) = $Rt.new",
229*9880d681SAndroid Build Coastguard Worker      (S2_pstorerhnewf_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
230*9880d681SAndroid Build Coastguard Worker
231*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memw($Rs) = $Rt.new",
232*9880d681SAndroid Build Coastguard Worker      (S2_pstorerinewf_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
233*9880d681SAndroid Build Coastguard Worker
234*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) memb($Rs) = $Rt.new",
235*9880d681SAndroid Build Coastguard Worker      (S4_pstorerbnewfnew_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
236*9880d681SAndroid Build Coastguard Worker
237*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) memh($Rs) = $Rt.new",
238*9880d681SAndroid Build Coastguard Worker      (S4_pstorerhnewfnew_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
239*9880d681SAndroid Build Coastguard Worker
240*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) memw($Rs) = $Rt.new",
241*9880d681SAndroid Build Coastguard Worker      (S4_pstorerinewfnew_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
242*9880d681SAndroid Build Coastguard Worker
243*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memb($Rs) = #$S6",
244*9880d681SAndroid Build Coastguard Worker      (S4_storeirbt_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>;
245*9880d681SAndroid Build Coastguard Worker
246*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memh($Rs) = #$S6",
247*9880d681SAndroid Build Coastguard Worker      (S4_storeirht_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>;
248*9880d681SAndroid Build Coastguard Worker
249*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memw($Rs) = #$S6",
250*9880d681SAndroid Build Coastguard Worker      (S4_storeirit_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>;
251*9880d681SAndroid Build Coastguard Worker
252*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) memb($Rs) = #$S6",
253*9880d681SAndroid Build Coastguard Worker      (S4_storeirbtnew_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>;
254*9880d681SAndroid Build Coastguard Worker
255*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) memh($Rs) = #$S6",
256*9880d681SAndroid Build Coastguard Worker      (S4_storeirhtnew_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>;
257*9880d681SAndroid Build Coastguard Worker
258*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) memw($Rs) = #$S6",
259*9880d681SAndroid Build Coastguard Worker      (S4_storeiritnew_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>;
260*9880d681SAndroid Build Coastguard Worker
261*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memb($Rs) = #$S6",
262*9880d681SAndroid Build Coastguard Worker      (S4_storeirbf_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>;
263*9880d681SAndroid Build Coastguard Worker
264*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memh($Rs) = #$S6",
265*9880d681SAndroid Build Coastguard Worker      (S4_storeirhf_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>;
266*9880d681SAndroid Build Coastguard Worker
267*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memw($Rs) = #$S6",
268*9880d681SAndroid Build Coastguard Worker      (S4_storeirif_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>;
269*9880d681SAndroid Build Coastguard Worker
270*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) memb($Rs) = #$S6",
271*9880d681SAndroid Build Coastguard Worker      (S4_storeirbfnew_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>;
272*9880d681SAndroid Build Coastguard Worker
273*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) memh($Rs) = #$S6",
274*9880d681SAndroid Build Coastguard Worker      (S4_storeirhfnew_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>;
275*9880d681SAndroid Build Coastguard Worker
276*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) memw($Rs) = #$S6",
277*9880d681SAndroid Build Coastguard Worker      (S4_storeirifnew_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>;
278*9880d681SAndroid Build Coastguard Worker
279*9880d681SAndroid Build Coastguard Worker// Alias of: memXX($Rs + $u6_X) |= $Rt, also &=, +=, -=
280*9880d681SAndroid Build Coastguard Worker//       to: memXX($Rs) |= $Rt
281*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) &= $Rt",
282*9880d681SAndroid Build Coastguard Worker      (L4_and_memopb_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>,
283*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
284*9880d681SAndroid Build Coastguard Worker
285*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) |= $Rt",
286*9880d681SAndroid Build Coastguard Worker      (L4_or_memopb_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>,
287*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
288*9880d681SAndroid Build Coastguard Worker
289*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) += $Rt",
290*9880d681SAndroid Build Coastguard Worker      (L4_add_memopb_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>,
291*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
292*9880d681SAndroid Build Coastguard Worker
293*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) -= $Rt",
294*9880d681SAndroid Build Coastguard Worker      (L4_sub_memopb_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>,
295*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
296*9880d681SAndroid Build Coastguard Worker
297*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) += #$U5",
298*9880d681SAndroid Build Coastguard Worker      (L4_iadd_memopb_io IntRegs:$Rs, 0, u5Imm:$U5), 0>,
299*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
300*9880d681SAndroid Build Coastguard Worker
301*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) -= #$U5",
302*9880d681SAndroid Build Coastguard Worker      (L4_isub_memopb_io IntRegs:$Rs, 0, u5Imm:$U5), 0>,
303*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
304*9880d681SAndroid Build Coastguard Worker
305*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) &= $Rt",
306*9880d681SAndroid Build Coastguard Worker      (L4_and_memoph_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>,
307*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
308*9880d681SAndroid Build Coastguard Worker
309*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) |= $Rt",
310*9880d681SAndroid Build Coastguard Worker      (L4_or_memoph_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>,
311*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
312*9880d681SAndroid Build Coastguard Worker
313*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) += $Rt",
314*9880d681SAndroid Build Coastguard Worker      (L4_add_memoph_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>,
315*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
316*9880d681SAndroid Build Coastguard Worker
317*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) -= $Rt",
318*9880d681SAndroid Build Coastguard Worker      (L4_sub_memoph_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>,
319*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
320*9880d681SAndroid Build Coastguard Worker
321*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) += #$U5",
322*9880d681SAndroid Build Coastguard Worker      (L4_iadd_memoph_io IntRegs:$Rs, 0, u5Imm:$U5), 0>,
323*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
324*9880d681SAndroid Build Coastguard Worker
325*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) -= #$U5",
326*9880d681SAndroid Build Coastguard Worker      (L4_isub_memoph_io IntRegs:$Rs, 0, u5Imm:$U5), 0>,
327*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
328*9880d681SAndroid Build Coastguard Worker
329*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) &= $Rt",
330*9880d681SAndroid Build Coastguard Worker      (L4_and_memopw_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>,
331*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
332*9880d681SAndroid Build Coastguard Worker
333*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) |= $Rt",
334*9880d681SAndroid Build Coastguard Worker      (L4_or_memopw_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>,
335*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
336*9880d681SAndroid Build Coastguard Worker
337*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) += $Rt",
338*9880d681SAndroid Build Coastguard Worker      (L4_add_memopw_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>,
339*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
340*9880d681SAndroid Build Coastguard Worker
341*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) -= $Rt",
342*9880d681SAndroid Build Coastguard Worker      (L4_sub_memopw_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>,
343*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
344*9880d681SAndroid Build Coastguard Worker
345*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) += #$U5",
346*9880d681SAndroid Build Coastguard Worker      (L4_iadd_memopw_io IntRegs:$Rs, 0, u5Imm:$U5), 0>,
347*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
348*9880d681SAndroid Build Coastguard Worker
349*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) -= #$U5",
350*9880d681SAndroid Build Coastguard Worker      (L4_isub_memopw_io IntRegs:$Rs, 0, u5Imm:$U5), 0>,
351*9880d681SAndroid Build Coastguard Worker      Requires<[UseMEMOP]>;
352*9880d681SAndroid Build Coastguard Worker
353*9880d681SAndroid Build Coastguard Worker//
354*9880d681SAndroid Build Coastguard Worker// Alias of: if ($Pv.new) memX($Rs) = $Rt
355*9880d681SAndroid Build Coastguard Worker//       to: if (p3.new) memX(r17 + #0) = $Rt
356*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv.new) memb($Rs) = $Rt",
357*9880d681SAndroid Build Coastguard Worker      (S4_pstorerbtnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
358*9880d681SAndroid Build Coastguard Worker
359*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv.new) memh($Rs) = $Rt",
360*9880d681SAndroid Build Coastguard Worker      (S4_pstorerhtnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
361*9880d681SAndroid Build Coastguard Worker
362*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv.new) memh($Rs) = $Rt.h",
363*9880d681SAndroid Build Coastguard Worker      (S4_pstorerftnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
364*9880d681SAndroid Build Coastguard Worker
365*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv.new) memw($Rs) = $Rt",
366*9880d681SAndroid Build Coastguard Worker      (S4_pstoreritnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
367*9880d681SAndroid Build Coastguard Worker
368*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv.new) memd($Rs) = $Rtt",
369*9880d681SAndroid Build Coastguard Worker      (S4_pstorerdtnew_io
370*9880d681SAndroid Build Coastguard Worker       PredRegs:$Pv, IntRegs:$Rs, 0, DoubleRegs:$Rtt), 0>;
371*9880d681SAndroid Build Coastguard Worker
372*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv.new) memb($Rs) = $Rt",
373*9880d681SAndroid Build Coastguard Worker      (S4_pstorerbfnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
374*9880d681SAndroid Build Coastguard Worker
375*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv.new) memh($Rs) = $Rt",
376*9880d681SAndroid Build Coastguard Worker      (S4_pstorerhfnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
377*9880d681SAndroid Build Coastguard Worker
378*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv.new) memh($Rs) = $Rt.h",
379*9880d681SAndroid Build Coastguard Worker      (S4_pstorerffnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
380*9880d681SAndroid Build Coastguard Worker
381*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv.new) memw($Rs) = $Rt",
382*9880d681SAndroid Build Coastguard Worker      (S4_pstorerifnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>;
383*9880d681SAndroid Build Coastguard Worker
384*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv.new) memd($Rs) = $Rtt",
385*9880d681SAndroid Build Coastguard Worker      (S4_pstorerdfnew_io
386*9880d681SAndroid Build Coastguard Worker       PredRegs:$Pv, IntRegs:$Rs, 0, DoubleRegs:$Rtt), 0>;
387*9880d681SAndroid Build Coastguard Worker
388*9880d681SAndroid Build Coastguard Worker//
389*9880d681SAndroid Build Coastguard Worker// Alias of: if ($Pt.new) $Rd = memub($Rs) -- And if (!$Pt.new) ...
390*9880d681SAndroid Build Coastguard Worker//       to: if ($Pt.new) $Rd = memub($Rs + #$u6_0)
391*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) $Rd = memub($Rs)",
392*9880d681SAndroid Build Coastguard Worker      (L2_ploadrubtnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
393*9880d681SAndroid Build Coastguard Worker
394*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) $Rd = memb($Rs)",
395*9880d681SAndroid Build Coastguard Worker      (L2_ploadrbtnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
396*9880d681SAndroid Build Coastguard Worker
397*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) $Rd = memh($Rs)",
398*9880d681SAndroid Build Coastguard Worker      (L2_ploadrhtnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
399*9880d681SAndroid Build Coastguard Worker
400*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) $Rd = memuh($Rs)",
401*9880d681SAndroid Build Coastguard Worker      (L2_ploadruhtnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
402*9880d681SAndroid Build Coastguard Worker
403*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) $Rd = memw($Rs)",
404*9880d681SAndroid Build Coastguard Worker      (L2_ploadritnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
405*9880d681SAndroid Build Coastguard Worker
406*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) $Rdd = memd($Rs)",
407*9880d681SAndroid Build Coastguard Worker      (L2_ploadrdtnew_io DoubleRegs:$Rdd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
408*9880d681SAndroid Build Coastguard Worker
409*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) $Rd = memub($Rs)",
410*9880d681SAndroid Build Coastguard Worker      (L2_ploadrubfnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
411*9880d681SAndroid Build Coastguard Worker
412*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) $Rd = memb($Rs)",
413*9880d681SAndroid Build Coastguard Worker      (L2_ploadrbfnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
414*9880d681SAndroid Build Coastguard Worker
415*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) $Rd = memh($Rs)",
416*9880d681SAndroid Build Coastguard Worker      (L2_ploadrhfnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
417*9880d681SAndroid Build Coastguard Worker
418*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) $Rd = memuh($Rs)",
419*9880d681SAndroid Build Coastguard Worker      (L2_ploadruhfnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
420*9880d681SAndroid Build Coastguard Worker
421*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) $Rd = memw($Rs)",
422*9880d681SAndroid Build Coastguard Worker      (L2_ploadrifnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
423*9880d681SAndroid Build Coastguard Worker
424*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) $Rdd = memd($Rs)",
425*9880d681SAndroid Build Coastguard Worker      (L2_ploadrdfnew_io DoubleRegs:$Rdd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>;
426*9880d681SAndroid Build Coastguard Worker
427*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"dcfetch($Rs)",
428*9880d681SAndroid Build Coastguard Worker      (Y2_dcfetchbo IntRegs:$Rs, 0), 0>;
429*9880d681SAndroid Build Coastguard Worker
430*9880d681SAndroid Build Coastguard Worker// Alias of some insn mappings, others must be handled by the parser
431*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Pd=cmp.lt($Rs, $Rt)",
432*9880d681SAndroid Build Coastguard Worker      (C2_cmpgt PredRegs:$Pd, IntRegs:$Rt, IntRegs:$Rs), 0>;
433*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Pd=cmp.ltu($Rs, $Rt)",
434*9880d681SAndroid Build Coastguard Worker      (C2_cmpgtu PredRegs:$Pd, IntRegs:$Rt, IntRegs:$Rs), 0>;
435*9880d681SAndroid Build Coastguard Worker
436*9880d681SAndroid Build Coastguard Worker// Rd=neg(Rs) is aliased to Rd=sub(#0,Rs)
437*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = neg($Rs)",
438*9880d681SAndroid Build Coastguard Worker      (A2_subri IntRegs:$Rd, 0, IntRegs:$Rs), 0>;
439*9880d681SAndroid Build Coastguard Worker
440*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"m0 = $Rs", (A2_tfrrcr C6, IntRegs:$Rs)>;
441*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = m0", (A2_tfrcrr IntRegs:$Rd, C6)>;
442*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"m1 = $Rs", (A2_tfrrcr C7, IntRegs:$Rs)>;
443*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = m1", (A2_tfrcrr IntRegs:$Rd, C7)>;
444*9880d681SAndroid Build Coastguard Worker
445*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Pd = $Ps",
446*9880d681SAndroid Build Coastguard Worker      (C2_or PredRegs:$Pd, PredRegs:$Ps, PredRegs:$Ps), 0>;
447*9880d681SAndroid Build Coastguard Worker
448*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rdd = vaddb($Rss, $Rtt)",
449*9880d681SAndroid Build Coastguard Worker      (A2_vaddub DoubleRegs:$Rdd, DoubleRegs:$Rss, DoubleRegs:$Rtt), 1>;
450*9880d681SAndroid Build Coastguard Worker
451*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rdd = vsubb($Rss,$Rtt)",
452*9880d681SAndroid Build Coastguard Worker      (A2_vsubub DoubleRegs:$Rdd, DoubleRegs:$Rss, DoubleRegs:$Rtt), 0>;
453*9880d681SAndroid Build Coastguard Worker
454*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = mpyui($Rs,$Rt)",
455*9880d681SAndroid Build Coastguard Worker      (M2_mpyi IntRegs:$Rd, IntRegs:$Rs, IntRegs:$Rt), 0>;
456*9880d681SAndroid Build Coastguard Worker
457*9880d681SAndroid Build Coastguard Worker// Assembler mapped insns: cmp.lt(a,b) -> cmp.gt(b,a)
458*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Pd=cmp.lt($Rs, $Rt)",
459*9880d681SAndroid Build Coastguard Worker      (C2_cmpgt PredRegs:$Pd, IntRegs:$Rt, IntRegs:$Rs), 0>;
460*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Pd=cmp.ltu($Rs, $Rt)",
461*9880d681SAndroid Build Coastguard Worker      (C2_cmpgtu PredRegs:$Pd, IntRegs:$Rt, IntRegs:$Rs), 0>;
462*9880d681SAndroid Build Coastguard Worker
463*9880d681SAndroid Build Coastguard Worker// maps if (!Pu) jumpr Rs -> if (!Pu) jumpr:nt Rs
464*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pu) jumpr $Rs",
465*9880d681SAndroid Build Coastguard Worker      (J2_jumprf PredRegs:$Pu, IntRegs:$Rs)>,
466*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
467*9880d681SAndroid Build Coastguard Worker
468*9880d681SAndroid Build Coastguard Worker// maps if (Pu) jumpr Rs -> if (Pu) jumpr:nt Rs
469*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pu) jumpr $Rs",
470*9880d681SAndroid Build Coastguard Worker      (J2_jumprt PredRegs:$Pu, IntRegs:$Rs)>,
471*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
472*9880d681SAndroid Build Coastguard Worker
473*9880d681SAndroid Build Coastguard Worker// maps if (!Pu) jump $r15_2 -> if (!Pu) jump:nt $r15_2
474*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pu) jump $r15_2",
475*9880d681SAndroid Build Coastguard Worker      (J2_jumpf PredRegs:$Pu, brtarget:$r15_2)>,
476*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
477*9880d681SAndroid Build Coastguard Worker
478*9880d681SAndroid Build Coastguard Worker// maps if (Pu) jump $r15_2 -> if (Pu) jump:nt $r15_2
479*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pu) jump $r15_2",
480*9880d681SAndroid Build Coastguard Worker     (J2_jumpt PredRegs:$Pu, brtarget:$r15_2)>,
481*9880d681SAndroid Build Coastguard Worker     Requires<[HasV60T]>;
482*9880d681SAndroid Build Coastguard Worker
483*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($src) jump $r15_2",
484*9880d681SAndroid Build Coastguard Worker      (J2_jumpt PredRegs:$src, brtarget:$r15_2), 0>;
485*9880d681SAndroid Build Coastguard Worker
486*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$src) jump $r15_2",
487*9880d681SAndroid Build Coastguard Worker      (J2_jumpf PredRegs:$src, brtarget:$r15_2), 0>;
488*9880d681SAndroid Build Coastguard Worker
489*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($src1) jumpr $src2",
490*9880d681SAndroid Build Coastguard Worker      (J2_jumprt PredRegs:$src1, IntRegs:$src2), 0>;
491*9880d681SAndroid Build Coastguard Worker
492*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$src1) jumpr $src2",
493*9880d681SAndroid Build Coastguard Worker      (J2_jumprf PredRegs:$src1, IntRegs:$src2), 0>;
494*9880d681SAndroid Build Coastguard Worker
495*9880d681SAndroid Build Coastguard Worker// V6_vassignp: Vector assign mapping.
496*9880d681SAndroid Build Coastguard Workerlet hasNewValue = 1, opNewValue = 0, isAsmParserOnly = 1 in
497*9880d681SAndroid Build Coastguard Workerdef HEXAGON_V6_vassignpair: CVI_VA_DV_Resource <
498*9880d681SAndroid Build Coastguard Worker  (outs VecDblRegs:$Vdd),
499*9880d681SAndroid Build Coastguard Worker  (ins VecDblRegs:$Vss),
500*9880d681SAndroid Build Coastguard Worker  "$Vdd = $Vss">;
501*9880d681SAndroid Build Coastguard Worker
502*9880d681SAndroid Build Coastguard Worker// maps Vd = #0 to Vd = vxor(Vd, Vd)
503*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Vd = #0",
504*9880d681SAndroid Build Coastguard Worker      (V6_vxor VectorRegs:$Vd, VectorRegs:$Vd, VectorRegs:$Vd)>,
505*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
506*9880d681SAndroid Build Coastguard Worker
507*9880d681SAndroid Build Coastguard Worker// maps Vdd  = #0 to Vdd = vsub(Vdd, Vdd)
508*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Vdd = #0",
509*9880d681SAndroid Build Coastguard Worker      (V6_vsubw_dv VecDblRegs:$Vdd, VecDblRegs:$Vdd, VecDblRegs:$Vdd)>,
510*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
511*9880d681SAndroid Build Coastguard Worker
512*9880d681SAndroid Build Coastguard Worker// maps   "$Qd = vcmp.eq($Vu.uh, $Vv.uh)" -> "$Qd = vcmp.eq($Vu.h, $Vv.h)"
513*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd = vcmp.eq($Vu.uh, $Vv.uh)",
514*9880d681SAndroid Build Coastguard Worker      (V6_veqh VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>,
515*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
516*9880d681SAndroid Build Coastguard Worker
517*9880d681SAndroid Build Coastguard Worker// maps   "$Qd &= vcmp.eq($Vu.uh, $Vv.uh)" -> "$Qd &= vcmp.eq($Vu.h, $Vv.h)"
518*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd &= vcmp.eq($Vu.uh, $Vv.uh)",
519*9880d681SAndroid Build Coastguard Worker      (V6_veqh_and VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>,
520*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
521*9880d681SAndroid Build Coastguard Worker
522*9880d681SAndroid Build Coastguard Worker// maps   "$Qd |= vcmp.eq($Vu.uh, $Vv.uh)" -> "$Qd |= vcmp.eq($Vu.h, $Vv.h)"
523*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd |= vcmp.eq($Vu.uh, $Vv.uh)",
524*9880d681SAndroid Build Coastguard Worker      (V6_veqh_or VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>,
525*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
526*9880d681SAndroid Build Coastguard Worker
527*9880d681SAndroid Build Coastguard Worker// maps   "$Qd ^= vcmp.eq($Vu.uh, $Vv.uh)" -> "$Qd ^= vcmp.eq($Vu.h, $Vv.h)"
528*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd ^= vcmp.eq($Vu.uh, $Vv.uh)",
529*9880d681SAndroid Build Coastguard Worker      (V6_veqh_xor VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>,
530*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
531*9880d681SAndroid Build Coastguard Worker
532*9880d681SAndroid Build Coastguard Worker// maps   "$Qd = vcmp.eq($Vu.uw, $Vv.uw)" -> "$Qd = vcmp.eq($Vu.w, $Vv.w)"
533*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd = vcmp.eq($Vu.uw, $Vv.uw)",
534*9880d681SAndroid Build Coastguard Worker      (V6_veqw VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>,
535*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
536*9880d681SAndroid Build Coastguard Worker
537*9880d681SAndroid Build Coastguard Worker// maps   "$Qd &= vcmp.eq($Vu.uw, $Vv.uw)" -> "$Qd &= vcmp.eq($Vu.w, $Vv.w)"
538*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd &= vcmp.eq($Vu.uw, $Vv.uw)",
539*9880d681SAndroid Build Coastguard Worker      (V6_veqw_and VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>,
540*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
541*9880d681SAndroid Build Coastguard Worker
542*9880d681SAndroid Build Coastguard Worker// maps   "$Qd |= vcmp.eq($Vu.uw, $Vv.uw)" -> "$Qd |= vcmp.eq($Vu.w, $Vv.w)"
543*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd |= vcmp.eq($Vu.uw, $Vv.uw)",
544*9880d681SAndroid Build Coastguard Worker      (V6_veqh_or VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>,
545*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
546*9880d681SAndroid Build Coastguard Worker
547*9880d681SAndroid Build Coastguard Worker// maps   "$Qd ^= vcmp.eq($Vu.uw, $Vv.uw)" -> "$Qd ^= vcmp.eq($Vu.w, $Vv.w)"
548*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd ^= vcmp.eq($Vu.uw, $Vv.uw)",
549*9880d681SAndroid Build Coastguard Worker      (V6_veqw_xor VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>,
550*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
551*9880d681SAndroid Build Coastguard Worker
552*9880d681SAndroid Build Coastguard Worker// maps   "$Qd = vcmp.eq($Vu.ub, $Vv.ub)" -> "$Qd = vcmp.eq($Vu.b, $Vv.b)"
553*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd = vcmp.eq($Vu.ub, $Vv.ub)",
554*9880d681SAndroid Build Coastguard Worker      (V6_veqb VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>,
555*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
556*9880d681SAndroid Build Coastguard Worker
557*9880d681SAndroid Build Coastguard Worker// maps   "$Qd &= vcmp.eq($Vu.ub, $Vv.ub)" -> "$Qd &= vcmp.eq($Vu.b, $Vv.b)"
558*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd &= vcmp.eq($Vu.ub, $Vv.ub)",
559*9880d681SAndroid Build Coastguard Worker      (V6_veqb_and VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>,
560*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
561*9880d681SAndroid Build Coastguard Worker
562*9880d681SAndroid Build Coastguard Worker// maps   "$Qd |= vcmp.eq($Vu.ub, $Vv.ub)" -> "$Qd |= vcmp.eq($Vu.b, $Vv.b)"
563*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd |= vcmp.eq($Vu.ub, $Vv.ub)",
564*9880d681SAndroid Build Coastguard Worker      (V6_veqb_or VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>,
565*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
566*9880d681SAndroid Build Coastguard Worker
567*9880d681SAndroid Build Coastguard Worker// maps   "$Qd ^= vcmp.eq($Vu.ub, $Vv.ub)" -> "$Qd ^= vcmp.eq($Vu.b, $Vv.b)"
568*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd ^= vcmp.eq($Vu.ub, $Vv.ub)",
569*9880d681SAndroid Build Coastguard Worker      (V6_veqb_xor VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>,
570*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
571*9880d681SAndroid Build Coastguard Worker
572*9880d681SAndroid Build Coastguard Worker// maps   "$Rd.w = vextract($Vu, $Rs)" -> "$Rd = vextract($Vu, $Rs)"
573*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd.w = vextract($Vu, $Rs)",
574*9880d681SAndroid Build Coastguard Worker      (V6_extractw IntRegs:$Rd, VectorRegs:$Vu, IntRegs:$Rs)>,
575*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
576*9880d681SAndroid Build Coastguard Worker
577*9880d681SAndroid Build Coastguard Worker// Mapping from vtrans2x2(Vy32,Vx32,Rt32) to vshuff(Vy32,Vx32,Rt32)
578*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"vtrans2x2($Vy, $Vx, $Rt)",
579*9880d681SAndroid Build Coastguard Worker      (V6_vshuff VectorRegs:$Vy, VectorRegs:$Vx, IntRegs:$Rt)>,
580*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
581*9880d681SAndroid Build Coastguard Worker
582*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Vt=vmem($Rs)",
583*9880d681SAndroid Build Coastguard Worker      (V6_vL32b_ai VectorRegs:$Vt, IntRegs:$Rs, 0)>,
584*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
585*9880d681SAndroid Build Coastguard Worker
586*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Vt=vmem($Rs):nt",
587*9880d681SAndroid Build Coastguard Worker      (V6_vL32b_nt_ai VectorRegs:$Vt, IntRegs:$Rs, 0)>,
588*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
589*9880d681SAndroid Build Coastguard Worker
590*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"vmem($Rs)=$Vt",
591*9880d681SAndroid Build Coastguard Worker      (V6_vS32b_ai IntRegs:$Rs, 0, VectorRegs:$Vt)>,
592*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
593*9880d681SAndroid Build Coastguard Worker
594*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"vmem($Rs):nt=$Vt",
595*9880d681SAndroid Build Coastguard Worker      (V6_vS32b_nt_ai IntRegs:$Rs, 0, VectorRegs:$Vt)>,
596*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
597*9880d681SAndroid Build Coastguard Worker
598*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"vmem($Rs)=$Vt.new",
599*9880d681SAndroid Build Coastguard Worker      (V6_vS32b_new_ai IntRegs:$Rs, 0, VectorRegs:$Vt)>,
600*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
601*9880d681SAndroid Build Coastguard Worker
602*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"vmem($Rs):nt=$Vt.new",
603*9880d681SAndroid Build Coastguard Worker      (V6_vS32b_nt_new_ai IntRegs:$Rs, 0, VectorRegs:$Vt)>,
604*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
605*9880d681SAndroid Build Coastguard Worker
606*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Qv) vmem($Rs)=$Vt",
607*9880d681SAndroid Build Coastguard Worker      (V6_vS32b_qpred_ai VecPredRegs:$Qv, IntRegs:$Rs, 0, VectorRegs:$Vt)>,
608*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
609*9880d681SAndroid Build Coastguard Worker
610*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Qv) vmem($Rs)=$Vt",
611*9880d681SAndroid Build Coastguard Worker      (V6_vS32b_nqpred_ai VecPredRegs:$Qv, IntRegs:$Rs, 0, VectorRegs:$Vt)>,
612*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
613*9880d681SAndroid Build Coastguard Worker
614*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Qv) vmem($Rs):nt=$Vt",
615*9880d681SAndroid Build Coastguard Worker      (V6_vS32b_nt_qpred_ai VecPredRegs:$Qv, IntRegs:$Rs, 0, VectorRegs:$Vt)>,
616*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
617*9880d681SAndroid Build Coastguard Worker
618*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Qv) vmem($Rs):nt=$Vt",
619*9880d681SAndroid Build Coastguard Worker      (V6_vS32b_nt_nqpred_ai VecPredRegs:$Qv, IntRegs:$Rs, 0, VectorRegs:$Vt)>,
620*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
621*9880d681SAndroid Build Coastguard Worker
622*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv) vmem($Rs)=$Vt",
623*9880d681SAndroid Build Coastguard Worker      (V6_vS32b_pred_ai PredRegs:$Pv, IntRegs:$Rs, 0, VectorRegs:$Vt)>,
624*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
625*9880d681SAndroid Build Coastguard Worker
626*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv) vmem($Rs)=$Vt",
627*9880d681SAndroid Build Coastguard Worker      (V6_vS32b_npred_ai PredRegs:$Pv, IntRegs:$Rs, 0, VectorRegs:$Vt)>,
628*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
629*9880d681SAndroid Build Coastguard Worker
630*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv) vmem($Rs):nt=$Vt",
631*9880d681SAndroid Build Coastguard Worker      (V6_vS32b_nt_pred_ai PredRegs:$Pv, IntRegs:$Rs, 0, VectorRegs:$Vt)>,
632*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
633*9880d681SAndroid Build Coastguard Worker
634*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv) vmem($Rs):nt=$Vt",
635*9880d681SAndroid Build Coastguard Worker      (V6_vS32b_nt_npred_ai PredRegs:$Pv, IntRegs:$Rs, 0, VectorRegs:$Vt)>,
636*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
637*9880d681SAndroid Build Coastguard Worker
638*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Vt=vmemu($Rs)",
639*9880d681SAndroid Build Coastguard Worker      (V6_vL32Ub_ai VectorRegs:$Vt, IntRegs:$Rs, 0)>,
640*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
641*9880d681SAndroid Build Coastguard Worker
642*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"vmemu($Rs)=$Vt",
643*9880d681SAndroid Build Coastguard Worker      (V6_vS32Ub_ai IntRegs:$Rs, 0, VectorRegs:$Vt)>,
644*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
645*9880d681SAndroid Build Coastguard Worker
646*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv) vmemu($Rs)=$Vt",
647*9880d681SAndroid Build Coastguard Worker      (V6_vS32Ub_pred_ai PredRegs:$Pv, IntRegs:$Rs, 0, VectorRegs:$Vt)>,
648*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
649*9880d681SAndroid Build Coastguard Worker
650*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv) vmemu($Rs)=$Vt",
651*9880d681SAndroid Build Coastguard Worker      (V6_vS32Ub_npred_ai PredRegs:$Pv, IntRegs:$Rs, 0, VectorRegs:$Vt)>,
652*9880d681SAndroid Build Coastguard Worker      Requires<[HasV60T]>;
653*9880d681SAndroid Build Coastguard Worker
654*9880d681SAndroid Build Coastguard Worker
655