xref: /aosp_15_r20/external/llvm/lib/Target/Hexagon/HexagonIntrinsicsV60.td (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker//=- HexagonIntrinsicsV60.td - Target Description for Hexagon -*- 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//
10*9880d681SAndroid Build Coastguard Worker// This file describes the Hexagon V60 Compiler Intrinsics in TableGen format.
11*9880d681SAndroid Build Coastguard Worker//
12*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workerlet isCodeGenOnly = 1 in {
16*9880d681SAndroid Build Coastguard Workerdef HEXAGON_V6_vd0_pseudo : CVI_VA_Resource<(outs VectorRegs:$dst),
17*9880d681SAndroid Build Coastguard Worker    (ins ),
18*9880d681SAndroid Build Coastguard Worker    "$dst=#0",
19*9880d681SAndroid Build Coastguard Worker    [(set VectorRegs:$dst, (int_hexagon_V6_vd0 ))]>;
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Workerdef HEXAGON_V6_vd0_pseudo_128B : CVI_VA_Resource<(outs VectorRegs128B:$dst),
22*9880d681SAndroid Build Coastguard Worker    (ins ),
23*9880d681SAndroid Build Coastguard Worker    "$dst=#0",
24*9880d681SAndroid Build Coastguard Worker    [(set VectorRegs128B:$dst, (int_hexagon_V6_vd0_128B ))]>;
25*9880d681SAndroid Build Coastguard Worker}
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Workerlet isPseudo = 1 in
28*9880d681SAndroid Build Coastguard Workerdef HEXAGON_V6_vassignp : CVI_VA_Resource<(outs VecDblRegs:$dst),
29*9880d681SAndroid Build Coastguard Worker    (ins VecDblRegs:$src1),
30*9880d681SAndroid Build Coastguard Worker    "$dst=vassignp_W($src1)",
31*9880d681SAndroid Build Coastguard Worker    [(set VecDblRegs:$dst, (int_hexagon_V6_vassignp VecDblRegs:$src1))]>;
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Workerlet isPseudo = 1 in
34*9880d681SAndroid Build Coastguard Workerdef HEXAGON_V6_vassignp_128B : CVI_VA_Resource<(outs VecDblRegs128B:$dst),
35*9880d681SAndroid Build Coastguard Worker    (ins VecDblRegs128B:$src1),
36*9880d681SAndroid Build Coastguard Worker    "$dst=vassignp_W_128B($src1)",
37*9880d681SAndroid Build Coastguard Worker    [(set VecDblRegs128B:$dst, (int_hexagon_V6_vassignp_128B
38*9880d681SAndroid Build Coastguard Worker                                VecDblRegs128B:$src1))]>;
39*9880d681SAndroid Build Coastguard Worker
40*9880d681SAndroid Build Coastguard Workerlet isPseudo = 1 in
41*9880d681SAndroid Build Coastguard Workerdef HEXAGON_V6_lo : CVI_VA_Resource<(outs VectorRegs:$dst),
42*9880d681SAndroid Build Coastguard Worker    (ins VecDblRegs:$src1),
43*9880d681SAndroid Build Coastguard Worker    "$dst=lo_W($src1)",
44*9880d681SAndroid Build Coastguard Worker    [(set VectorRegs:$dst, (int_hexagon_V6_lo VecDblRegs:$src1))]>;
45*9880d681SAndroid Build Coastguard Worker
46*9880d681SAndroid Build Coastguard Workerlet isPseudo = 1 in
47*9880d681SAndroid Build Coastguard Workerdef HEXAGON_V6_hi : CVI_VA_Resource<(outs VectorRegs:$dst),
48*9880d681SAndroid Build Coastguard Worker    (ins VecDblRegs:$src1),
49*9880d681SAndroid Build Coastguard Worker    "$dst=hi_W($src1)",
50*9880d681SAndroid Build Coastguard Worker    [(set VectorRegs:$dst, (int_hexagon_V6_hi VecDblRegs:$src1))]>;
51*9880d681SAndroid Build Coastguard Worker
52*9880d681SAndroid Build Coastguard Workerlet isPseudo = 1 in
53*9880d681SAndroid Build Coastguard Workerdef HEXAGON_V6_lo_128B : CVI_VA_Resource<(outs VectorRegs128B:$dst),
54*9880d681SAndroid Build Coastguard Worker    (ins VecDblRegs128B:$src1),
55*9880d681SAndroid Build Coastguard Worker    "$dst=lo_W($src1)",
56*9880d681SAndroid Build Coastguard Worker    [(set VectorRegs128B:$dst, (int_hexagon_V6_lo_128B VecDblRegs128B:$src1))]>;
57*9880d681SAndroid Build Coastguard Worker
58*9880d681SAndroid Build Coastguard Workerlet isPseudo = 1 in
59*9880d681SAndroid Build Coastguard Workerdef HEXAGON_V6_hi_128B : CVI_VA_Resource<(outs VectorRegs128B:$dst),
60*9880d681SAndroid Build Coastguard Worker    (ins VecDblRegs128B:$src1),
61*9880d681SAndroid Build Coastguard Worker    "$dst=hi_W($src1)",
62*9880d681SAndroid Build Coastguard Worker    [(set VectorRegs128B:$dst, (int_hexagon_V6_hi_128B VecDblRegs128B:$src1))]>;
63*9880d681SAndroid Build Coastguard Worker
64*9880d681SAndroid Build Coastguard Workerlet AddedComplexity = 100 in {
65*9880d681SAndroid Build Coastguard Workerdef : Pat < (v16i32 (int_hexagon_V6_lo (v32i32 VecDblRegs:$src1))),
66*9880d681SAndroid Build Coastguard Worker            (v16i32 (EXTRACT_SUBREG (v32i32 VecDblRegs:$src1), subreg_loreg)) >,
67*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXSgl]>;
68*9880d681SAndroid Build Coastguard Worker
69*9880d681SAndroid Build Coastguard Workerdef : Pat < (v16i32 (int_hexagon_V6_hi (v32i32 VecDblRegs:$src1))),
70*9880d681SAndroid Build Coastguard Worker            (v16i32 (EXTRACT_SUBREG (v32i32 VecDblRegs:$src1), subreg_hireg)) >,
71*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXSgl]>;
72*9880d681SAndroid Build Coastguard Worker
73*9880d681SAndroid Build Coastguard Workerdef : Pat < (v32i32 (int_hexagon_V6_lo_128B (v64i32 VecDblRegs128B:$src1))),
74*9880d681SAndroid Build Coastguard Worker            (v32i32 (EXTRACT_SUBREG (v64i32 VecDblRegs128B:$src1),
75*9880d681SAndroid Build Coastguard Worker                                     subreg_loreg)) >,
76*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXDbl]>;
77*9880d681SAndroid Build Coastguard Worker
78*9880d681SAndroid Build Coastguard Workerdef : Pat < (v32i32 (int_hexagon_V6_hi_128B (v64i32 VecDblRegs128B:$src1))),
79*9880d681SAndroid Build Coastguard Worker            (v32i32 (EXTRACT_SUBREG (v64i32 VecDblRegs128B:$src1),
80*9880d681SAndroid Build Coastguard Worker                                     subreg_hireg)) >,
81*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXDbl]>;
82*9880d681SAndroid Build Coastguard Worker}
83*9880d681SAndroid Build Coastguard Worker
84*9880d681SAndroid Build Coastguard Workerdef : Pat <(v512i1 (bitconvert (v16i32 VectorRegs:$src1))),
85*9880d681SAndroid Build Coastguard Worker           (v512i1 (V6_vandvrt(v16i32 VectorRegs:$src1),
86*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
87*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXSgl]>;
88*9880d681SAndroid Build Coastguard Worker
89*9880d681SAndroid Build Coastguard Workerdef : Pat <(v512i1 (bitconvert (v32i16 VectorRegs:$src1))),
90*9880d681SAndroid Build Coastguard Worker           (v512i1 (V6_vandvrt(v32i16 VectorRegs:$src1),
91*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
92*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXSgl]>;
93*9880d681SAndroid Build Coastguard Worker
94*9880d681SAndroid Build Coastguard Workerdef : Pat <(v512i1 (bitconvert (v64i8  VectorRegs:$src1))),
95*9880d681SAndroid Build Coastguard Worker           (v512i1 (V6_vandvrt(v64i8  VectorRegs:$src1),
96*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
97*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXSgl]>;
98*9880d681SAndroid Build Coastguard Worker
99*9880d681SAndroid Build Coastguard Workerdef : Pat <(v512i1 (bitconvert (v8i64  VectorRegs:$src1))),
100*9880d681SAndroid Build Coastguard Worker           (v512i1 (V6_vandvrt(v8i64  VectorRegs:$src1),
101*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
102*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXSgl]>;
103*9880d681SAndroid Build Coastguard Worker
104*9880d681SAndroid Build Coastguard Workerdef : Pat <(v16i32 (bitconvert (v512i1 VecPredRegs:$src1))),
105*9880d681SAndroid Build Coastguard Worker           (v16i32 (V6_vandqrt(v512i1 VecPredRegs:$src1),
106*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
107*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXSgl]>;
108*9880d681SAndroid Build Coastguard Worker
109*9880d681SAndroid Build Coastguard Workerdef : Pat <(v32i16 (bitconvert (v512i1 VecPredRegs:$src1))),
110*9880d681SAndroid Build Coastguard Worker           (v32i16 (V6_vandqrt(v512i1 VecPredRegs:$src1),
111*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
112*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXSgl]>;
113*9880d681SAndroid Build Coastguard Worker
114*9880d681SAndroid Build Coastguard Workerdef : Pat <(v64i8  (bitconvert (v512i1 VecPredRegs:$src1))),
115*9880d681SAndroid Build Coastguard Worker           (v64i8  (V6_vandqrt(v512i1 VecPredRegs:$src1),
116*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
117*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXSgl]>;
118*9880d681SAndroid Build Coastguard Worker
119*9880d681SAndroid Build Coastguard Workerdef : Pat <(v8i64  (bitconvert (v512i1 VecPredRegs:$src1))),
120*9880d681SAndroid Build Coastguard Worker           (v8i64  (V6_vandqrt(v512i1 VecPredRegs:$src1),
121*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
122*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXSgl]>;
123*9880d681SAndroid Build Coastguard Worker
124*9880d681SAndroid Build Coastguard Workerdef : Pat <(v1024i1 (bitconvert (v32i32 VectorRegs128B:$src1))),
125*9880d681SAndroid Build Coastguard Worker           (v1024i1 (V6_vandvrt_128B(v32i32 VectorRegs128B:$src1),
126*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
127*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXDbl]>;
128*9880d681SAndroid Build Coastguard Worker
129*9880d681SAndroid Build Coastguard Workerdef : Pat <(v1024i1 (bitconvert (v64i16 VectorRegs128B:$src1))),
130*9880d681SAndroid Build Coastguard Worker           (v1024i1 (V6_vandvrt_128B(v64i16 VectorRegs128B:$src1),
131*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
132*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXDbl]>;
133*9880d681SAndroid Build Coastguard Worker
134*9880d681SAndroid Build Coastguard Workerdef : Pat <(v1024i1 (bitconvert (v128i8  VectorRegs128B:$src1))),
135*9880d681SAndroid Build Coastguard Worker           (v1024i1 (V6_vandvrt_128B(v128i8  VectorRegs128B:$src1),
136*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
137*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXDbl]>;
138*9880d681SAndroid Build Coastguard Worker
139*9880d681SAndroid Build Coastguard Workerdef : Pat <(v1024i1 (bitconvert (v16i64  VectorRegs128B:$src1))),
140*9880d681SAndroid Build Coastguard Worker           (v1024i1 (V6_vandvrt_128B(v16i64  VectorRegs128B:$src1),
141*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
142*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXDbl]>;
143*9880d681SAndroid Build Coastguard Worker
144*9880d681SAndroid Build Coastguard Workerdef : Pat <(v32i32 (bitconvert (v1024i1 VecPredRegs128B:$src1))),
145*9880d681SAndroid Build Coastguard Worker           (v32i32 (V6_vandqrt_128B(v1024i1 VecPredRegs128B:$src1),
146*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
147*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXDbl]>;
148*9880d681SAndroid Build Coastguard Worker
149*9880d681SAndroid Build Coastguard Workerdef : Pat <(v64i16 (bitconvert (v1024i1 VecPredRegs128B:$src1))),
150*9880d681SAndroid Build Coastguard Worker           (v64i16 (V6_vandqrt_128B(v1024i1 VecPredRegs128B:$src1),
151*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
152*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXDbl]>;
153*9880d681SAndroid Build Coastguard Worker
154*9880d681SAndroid Build Coastguard Workerdef : Pat <(v128i8  (bitconvert (v1024i1 VecPredRegs128B:$src1))),
155*9880d681SAndroid Build Coastguard Worker           (v128i8  (V6_vandqrt_128B(v1024i1 VecPredRegs128B:$src1),
156*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
157*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXDbl]>;
158*9880d681SAndroid Build Coastguard Worker
159*9880d681SAndroid Build Coastguard Workerdef : Pat <(v16i64  (bitconvert (v1024i1 VecPredRegs128B:$src1))),
160*9880d681SAndroid Build Coastguard Worker           (v16i64  (V6_vandqrt_128B(v1024i1 VecPredRegs128B:$src1),
161*9880d681SAndroid Build Coastguard Worker                                              (A2_tfrsi 0x01010101)))>,
162*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXDbl]>;
163*9880d681SAndroid Build Coastguard Worker
164*9880d681SAndroid Build Coastguard Workerlet AddedComplexity = 140 in {
165*9880d681SAndroid Build Coastguard Workerdef : Pat <(store (v512i1 VecPredRegs:$src1), (i32 IntRegs:$addr)),
166*9880d681SAndroid Build Coastguard Worker           (V6_vS32b_ai IntRegs:$addr, 0,
167*9880d681SAndroid Build Coastguard Worker           (v16i32 (V6_vandqrt (v512i1 VecPredRegs:$src1),
168*9880d681SAndroid Build Coastguard Worker                                       (A2_tfrsi 0x01010101))))>,
169*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXSgl]>;
170*9880d681SAndroid Build Coastguard Worker
171*9880d681SAndroid Build Coastguard Workerdef : Pat <(v512i1 (load (i32 IntRegs:$addr))),
172*9880d681SAndroid Build Coastguard Worker           (v512i1 (V6_vandvrt
173*9880d681SAndroid Build Coastguard Worker           (v16i32 (V6_vL32b_ai IntRegs:$addr, 0)), (A2_tfrsi 0x01010101)))>,
174*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXSgl]>;
175*9880d681SAndroid Build Coastguard Worker
176*9880d681SAndroid Build Coastguard Workerdef : Pat <(store (v1024i1 VecPredRegs128B:$src1), (i32 IntRegs:$addr)),
177*9880d681SAndroid Build Coastguard Worker           (V6_vS32b_ai_128B IntRegs:$addr, 0,
178*9880d681SAndroid Build Coastguard Worker           (v32i32 (V6_vandqrt_128B (v1024i1 VecPredRegs128B:$src1),
179*9880d681SAndroid Build Coastguard Worker                                       (A2_tfrsi 0x01010101))))>,
180*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXDbl]>;
181*9880d681SAndroid Build Coastguard Worker
182*9880d681SAndroid Build Coastguard Workerdef : Pat <(v1024i1 (load (i32 IntRegs:$addr))),
183*9880d681SAndroid Build Coastguard Worker           (v1024i1 (V6_vandvrt_128B
184*9880d681SAndroid Build Coastguard Worker           (v32i32 (V6_vL32b_ai_128B IntRegs:$addr, 0)),
185*9880d681SAndroid Build Coastguard Worker                                       (A2_tfrsi 0x01010101)))>,
186*9880d681SAndroid Build Coastguard Worker            Requires<[UseHVXDbl]>;
187*9880d681SAndroid Build Coastguard Worker}
188*9880d681SAndroid Build Coastguard Worker
189*9880d681SAndroid Build Coastguard Workermulticlass T_R_pat <InstHexagon MI, Intrinsic IntID> {
190*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID IntRegs:$src1), (MI IntRegs:$src1)>,
191*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
192*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") IntRegs:$src1),
193*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B") IntRegs:$src1)>,
194*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
195*9880d681SAndroid Build Coastguard Worker}
196*9880d681SAndroid Build Coastguard Worker
197*9880d681SAndroid Build Coastguard Workermulticlass T_V_pat <InstHexagon MI, Intrinsic IntID> {
198*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VectorRegs:$src1),
199*9880d681SAndroid Build Coastguard Worker           (MI    VectorRegs:$src1)>,
200*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
201*9880d681SAndroid Build Coastguard Worker
202*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VectorRegs128B:$src1),
203*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B") VectorRegs128B:$src1)>,
204*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
205*9880d681SAndroid Build Coastguard Worker}
206*9880d681SAndroid Build Coastguard Worker
207*9880d681SAndroid Build Coastguard Workermulticlass T_Q_pat <InstHexagon MI, Intrinsic IntID> {
208*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VecPredRegs:$src1),
209*9880d681SAndroid Build Coastguard Worker           (MI    VecPredRegs:$src1)>,
210*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
211*9880d681SAndroid Build Coastguard Worker
212*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VecPredRegs128B:$src1),
213*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B") VecPredRegs128B:$src1)>,
214*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
215*9880d681SAndroid Build Coastguard Worker}
216*9880d681SAndroid Build Coastguard Worker
217*9880d681SAndroid Build Coastguard Workermulticlass T_WR_pat <InstHexagon MI, Intrinsic IntID> {
218*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VecDblRegs:$src1, IntRegs:$src2),
219*9880d681SAndroid Build Coastguard Worker           (MI    VecDblRegs:$src1, IntRegs:$src2)>,
220*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
221*9880d681SAndroid Build Coastguard Worker
222*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B")VecDblRegs128B:$src1, IntRegs:$src2),
223*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")VecDblRegs128B:$src1, IntRegs:$src2)>,
224*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
225*9880d681SAndroid Build Coastguard Worker}
226*9880d681SAndroid Build Coastguard Worker
227*9880d681SAndroid Build Coastguard Workermulticlass T_VR_pat <InstHexagon MI, Intrinsic IntID> {
228*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VectorRegs:$src1, IntRegs:$src2),
229*9880d681SAndroid Build Coastguard Worker           (MI    VectorRegs:$src1, IntRegs:$src2)>,
230*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
231*9880d681SAndroid Build Coastguard Worker
232*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B")VectorRegs128B:$src1, IntRegs:$src2),
233*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")VectorRegs128B:$src1, IntRegs:$src2)>,
234*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
235*9880d681SAndroid Build Coastguard Worker}
236*9880d681SAndroid Build Coastguard Worker
237*9880d681SAndroid Build Coastguard Workermulticlass T_WV_pat <InstHexagon MI, Intrinsic IntID> {
238*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VecDblRegs:$src1, VectorRegs:$src2),
239*9880d681SAndroid Build Coastguard Worker           (MI    VecDblRegs:$src1, VectorRegs:$src2)>,
240*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
241*9880d681SAndroid Build Coastguard Worker
242*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VecDblRegs128B:$src1,
243*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2),
244*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VecDblRegs128B:$src1,
245*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2)>,
246*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
247*9880d681SAndroid Build Coastguard Worker}
248*9880d681SAndroid Build Coastguard Worker
249*9880d681SAndroid Build Coastguard Workermulticlass T_WW_pat <InstHexagon MI, Intrinsic IntID> {
250*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VecDblRegs:$src1, VecDblRegs:$src2),
251*9880d681SAndroid Build Coastguard Worker           (MI    VecDblRegs:$src1, VecDblRegs:$src2)>,
252*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
253*9880d681SAndroid Build Coastguard Worker
254*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VecDblRegs128B:$src1,
255*9880d681SAndroid Build Coastguard Worker                                            VecDblRegs128B:$src2),
256*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VecDblRegs128B:$src1,
257*9880d681SAndroid Build Coastguard Worker                                            VecDblRegs128B:$src2)>,
258*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
259*9880d681SAndroid Build Coastguard Worker}
260*9880d681SAndroid Build Coastguard Worker
261*9880d681SAndroid Build Coastguard Workermulticlass T_VV_pat <InstHexagon MI, Intrinsic IntID> {
262*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VectorRegs:$src1, VectorRegs:$src2),
263*9880d681SAndroid Build Coastguard Worker           (MI    VectorRegs:$src1, VectorRegs:$src2)>,
264*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
265*9880d681SAndroid Build Coastguard Worker
266*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VectorRegs128B:$src1,
267*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2),
268*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VectorRegs128B:$src1,
269*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2)>,
270*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
271*9880d681SAndroid Build Coastguard Worker}
272*9880d681SAndroid Build Coastguard Worker
273*9880d681SAndroid Build Coastguard Workermulticlass T_QR_pat <InstHexagon MI, Intrinsic IntID> {
274*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VecPredRegs:$src1, IntRegs:$src2),
275*9880d681SAndroid Build Coastguard Worker           (MI    VecPredRegs:$src1, IntRegs:$src2)>,
276*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
277*9880d681SAndroid Build Coastguard Worker
278*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VecPredRegs128B:$src1,
279*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src2),
280*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VecPredRegs128B:$src1,
281*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src2)>,
282*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
283*9880d681SAndroid Build Coastguard Worker}
284*9880d681SAndroid Build Coastguard Worker
285*9880d681SAndroid Build Coastguard Workermulticlass T_QQ_pat <InstHexagon MI, Intrinsic IntID> {
286*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VecPredRegs:$src1, VecPredRegs:$src2),
287*9880d681SAndroid Build Coastguard Worker           (MI    VecPredRegs:$src1, VecPredRegs:$src2)>,
288*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
289*9880d681SAndroid Build Coastguard Worker
290*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VecPredRegs128B:$src1,
291*9880d681SAndroid Build Coastguard Worker                                            VecPredRegs128B:$src2),
292*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VecPredRegs128B:$src1,
293*9880d681SAndroid Build Coastguard Worker                                            VecPredRegs128B:$src2)>,
294*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
295*9880d681SAndroid Build Coastguard Worker}
296*9880d681SAndroid Build Coastguard Worker
297*9880d681SAndroid Build Coastguard Workermulticlass T_WWR_pat <InstHexagon MI, Intrinsic IntID> {
298*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VecDblRegs:$src1, VecDblRegs:$src2, IntRegs:$src3),
299*9880d681SAndroid Build Coastguard Worker           (MI    VecDblRegs:$src1, VecDblRegs:$src2, IntRegs:$src3)>,
300*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
301*9880d681SAndroid Build Coastguard Worker
302*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VecDblRegs128B:$src1,
303*9880d681SAndroid Build Coastguard Worker                                            VecDblRegs128B:$src2,
304*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src3),
305*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VecDblRegs128B:$src1,
306*9880d681SAndroid Build Coastguard Worker                                            VecDblRegs128B:$src2,
307*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src3)>,
308*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
309*9880d681SAndroid Build Coastguard Worker}
310*9880d681SAndroid Build Coastguard Worker
311*9880d681SAndroid Build Coastguard Workermulticlass T_VVR_pat <InstHexagon MI, Intrinsic IntID> {
312*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VectorRegs:$src1, VectorRegs:$src2, IntRegs:$src3),
313*9880d681SAndroid Build Coastguard Worker           (MI    VectorRegs:$src1, VectorRegs:$src2, IntRegs:$src3)>,
314*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
315*9880d681SAndroid Build Coastguard Worker
316*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VectorRegs128B:$src1,
317*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
318*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src3),
319*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VectorRegs128B:$src1,
320*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
321*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src3)>,
322*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
323*9880d681SAndroid Build Coastguard Worker}
324*9880d681SAndroid Build Coastguard Worker
325*9880d681SAndroid Build Coastguard Workermulticlass T_WVR_pat <InstHexagon MI, Intrinsic IntID> {
326*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VecDblRegs:$src1, VectorRegs:$src2, IntRegs:$src3),
327*9880d681SAndroid Build Coastguard Worker           (MI    VecDblRegs:$src1, VectorRegs:$src2, IntRegs:$src3)>,
328*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
329*9880d681SAndroid Build Coastguard Worker
330*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VecDblRegs128B:$src1,
331*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
332*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src3),
333*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VecDblRegs128B:$src1,
334*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
335*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src3)>,
336*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
337*9880d681SAndroid Build Coastguard Worker}
338*9880d681SAndroid Build Coastguard Worker
339*9880d681SAndroid Build Coastguard Workermulticlass T_VWR_pat <InstHexagon MI, Intrinsic IntID> {
340*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VectorRegs:$src1, VecDblRegs:$src2, IntRegs:$src3),
341*9880d681SAndroid Build Coastguard Worker           (MI    VectorRegs:$src1, VecDblRegs:$src2, IntRegs:$src3)>,
342*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
343*9880d681SAndroid Build Coastguard Worker
344*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VectorRegs128B:$src1,
345*9880d681SAndroid Build Coastguard Worker                                            VecDblRegs128B:$src2,
346*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src3),
347*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VectorRegs128B:$src1,
348*9880d681SAndroid Build Coastguard Worker                                            VecDblRegs128B:$src2,
349*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src3)>,
350*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
351*9880d681SAndroid Build Coastguard Worker}
352*9880d681SAndroid Build Coastguard Worker
353*9880d681SAndroid Build Coastguard Workermulticlass T_VVV_pat <InstHexagon MI, Intrinsic IntID> {
354*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VectorRegs:$src1, VectorRegs:$src2, VectorRegs:$src3),
355*9880d681SAndroid Build Coastguard Worker           (MI    VectorRegs:$src1, VectorRegs:$src2, VectorRegs:$src3)>,
356*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
357*9880d681SAndroid Build Coastguard Worker
358*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VectorRegs128B:$src1,
359*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
360*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src3),
361*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VectorRegs128B:$src1,
362*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
363*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src3)>,
364*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
365*9880d681SAndroid Build Coastguard Worker}
366*9880d681SAndroid Build Coastguard Worker
367*9880d681SAndroid Build Coastguard Workermulticlass T_WVV_pat <InstHexagon MI, Intrinsic IntID> {
368*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VecDblRegs:$src1, VectorRegs:$src2, VectorRegs:$src3),
369*9880d681SAndroid Build Coastguard Worker           (MI    VecDblRegs:$src1, VectorRegs:$src2, VectorRegs:$src3)>,
370*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
371*9880d681SAndroid Build Coastguard Worker
372*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VecDblRegs128B:$src1,
373*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
374*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src3),
375*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VecDblRegs128B:$src1,
376*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
377*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src3)>,
378*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
379*9880d681SAndroid Build Coastguard Worker}
380*9880d681SAndroid Build Coastguard Worker
381*9880d681SAndroid Build Coastguard Workermulticlass T_QVV_pat <InstHexagon MI, Intrinsic IntID> {
382*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VecPredRegs:$src1, VectorRegs:$src2, VectorRegs:$src3),
383*9880d681SAndroid Build Coastguard Worker           (MI    VecPredRegs:$src1, VectorRegs:$src2, VectorRegs:$src3)>,
384*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
385*9880d681SAndroid Build Coastguard Worker
386*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VecPredRegs128B:$src1,
387*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
388*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src3),
389*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VecPredRegs128B:$src1,
390*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
391*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src3)>,
392*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
393*9880d681SAndroid Build Coastguard Worker}
394*9880d681SAndroid Build Coastguard Worker
395*9880d681SAndroid Build Coastguard Workermulticlass T_VQR_pat <InstHexagon MI, Intrinsic IntID> {
396*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VectorRegs:$src1, VecPredRegs:$src2, IntRegs:$src3),
397*9880d681SAndroid Build Coastguard Worker           (MI    VectorRegs:$src1, VecPredRegs:$src2, IntRegs:$src3)>,
398*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
399*9880d681SAndroid Build Coastguard Worker
400*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VectorRegs128B:$src1,
401*9880d681SAndroid Build Coastguard Worker                                            VecPredRegs128B:$src2,
402*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src3),
403*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VectorRegs128B:$src1,
404*9880d681SAndroid Build Coastguard Worker                                            VecPredRegs128B:$src2,
405*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src3)>,
406*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
407*9880d681SAndroid Build Coastguard Worker}
408*9880d681SAndroid Build Coastguard Worker
409*9880d681SAndroid Build Coastguard Worker
410*9880d681SAndroid Build Coastguard Workermulticlass T_QVR_pat <InstHexagon MI, Intrinsic IntID> {
411*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VecPredRegs:$src1, VectorRegs:$src2, IntRegs:$src3),
412*9880d681SAndroid Build Coastguard Worker           (MI    VecPredRegs:$src1, VectorRegs:$src2, IntRegs:$src3)>,
413*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
414*9880d681SAndroid Build Coastguard Worker
415*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VecPredRegs128B:$src1,
416*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
417*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src3),
418*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VecPredRegs128B:$src1,
419*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
420*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src3)>,
421*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
422*9880d681SAndroid Build Coastguard Worker}
423*9880d681SAndroid Build Coastguard Worker
424*9880d681SAndroid Build Coastguard Workermulticlass T_VVI_pat <InstHexagon MI, Intrinsic IntID> {
425*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VectorRegs:$src1, VectorRegs:$src2, imm:$src3),
426*9880d681SAndroid Build Coastguard Worker           (MI    VectorRegs:$src1, VectorRegs:$src2, imm:$src3)>,
427*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
428*9880d681SAndroid Build Coastguard Worker
429*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VectorRegs128B:$src1,
430*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2, imm:$src3),
431*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VectorRegs128B:$src1,
432*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2, imm:$src3)>,
433*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
434*9880d681SAndroid Build Coastguard Worker}
435*9880d681SAndroid Build Coastguard Worker
436*9880d681SAndroid Build Coastguard Workermulticlass T_WRI_pat <InstHexagon MI, Intrinsic IntID> {
437*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VecDblRegs:$src1, IntRegs:$src2, imm:$src3),
438*9880d681SAndroid Build Coastguard Worker           (MI    VecDblRegs:$src1, IntRegs:$src2, imm:$src3)>,
439*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
440*9880d681SAndroid Build Coastguard Worker
441*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VecDblRegs128B:$src1,
442*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src2, imm:$src3),
443*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VecDblRegs128B:$src1,
444*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src2, imm:$src3)>,
445*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
446*9880d681SAndroid Build Coastguard Worker}
447*9880d681SAndroid Build Coastguard Worker
448*9880d681SAndroid Build Coastguard Workermulticlass T_WWRI_pat <InstHexagon MI, Intrinsic IntID> {
449*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VecDblRegs:$src1, VecDblRegs:$src2, IntRegs:$src3, imm:$src4),
450*9880d681SAndroid Build Coastguard Worker           (MI   VecDblRegs:$src1, VecDblRegs:$src2, IntRegs:$src3, imm:$src4)>,
451*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
452*9880d681SAndroid Build Coastguard Worker
453*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VecDblRegs128B:$src1,
454*9880d681SAndroid Build Coastguard Worker                                            VecDblRegs128B:$src2,
455*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src3, imm:$src4),
456*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VecDblRegs128B:$src1,
457*9880d681SAndroid Build Coastguard Worker                                            VecDblRegs128B:$src2,
458*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src3, imm:$src4)>,
459*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
460*9880d681SAndroid Build Coastguard Worker}
461*9880d681SAndroid Build Coastguard Worker
462*9880d681SAndroid Build Coastguard Workermulticlass T_VVVR_pat <InstHexagon MI, Intrinsic IntID> {
463*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VectorRegs:$src1, VectorRegs:$src2, VectorRegs:$src3,
464*9880d681SAndroid Build Coastguard Worker                  IntRegs:$src4),
465*9880d681SAndroid Build Coastguard Worker           (MI    VectorRegs:$src1, VectorRegs:$src2, VectorRegs:$src3,
466*9880d681SAndroid Build Coastguard Worker                  IntRegs:$src4)>,
467*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
468*9880d681SAndroid Build Coastguard Worker
469*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VectorRegs128B:$src1,
470*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
471*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src3,
472*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src4),
473*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VectorRegs128B:$src1,
474*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
475*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src3,
476*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src4)>,
477*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
478*9880d681SAndroid Build Coastguard Worker}
479*9880d681SAndroid Build Coastguard Worker
480*9880d681SAndroid Build Coastguard Workermulticlass T_WVVR_pat <InstHexagon MI, Intrinsic IntID> {
481*9880d681SAndroid Build Coastguard Worker  def: Pat<(IntID VecDblRegs:$src1, VectorRegs:$src2, VectorRegs:$src3,
482*9880d681SAndroid Build Coastguard Worker                  IntRegs:$src4),
483*9880d681SAndroid Build Coastguard Worker           (MI    VecDblRegs:$src1, VectorRegs:$src2, VectorRegs:$src3,
484*9880d681SAndroid Build Coastguard Worker                  IntRegs:$src4)>,
485*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXSgl]>;
486*9880d681SAndroid Build Coastguard Worker
487*9880d681SAndroid Build Coastguard Worker  def: Pat<(!cast<Intrinsic>(IntID#"_128B") VecDblRegs128B:$src1,
488*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
489*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src3,
490*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src4),
491*9880d681SAndroid Build Coastguard Worker           (!cast<InstHexagon>(MI#"_128B")  VecDblRegs128B:$src1,
492*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src2,
493*9880d681SAndroid Build Coastguard Worker                                            VectorRegs128B:$src3,
494*9880d681SAndroid Build Coastguard Worker                                            IntRegs:$src4)>,
495*9880d681SAndroid Build Coastguard Worker       Requires<[UseHVXDbl]>;
496*9880d681SAndroid Build Coastguard Worker}
497*9880d681SAndroid Build Coastguard Worker
498*9880d681SAndroid Build Coastguard Workerdefm : T_WR_pat<V6_vtmpyb, int_hexagon_V6_vtmpyb>;
499*9880d681SAndroid Build Coastguard Workerdefm : T_WR_pat <V6_vtmpybus, int_hexagon_V6_vtmpybus>;
500*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vdmpyhb, int_hexagon_V6_vdmpyhb>;
501*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vrmpyub, int_hexagon_V6_vrmpyub>;
502*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vrmpybus, int_hexagon_V6_vrmpybus>;
503*9880d681SAndroid Build Coastguard Workerdefm : T_WR_pat <V6_vdsaduh, int_hexagon_V6_vdsaduh>;
504*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vdmpybus, int_hexagon_V6_vdmpybus>;
505*9880d681SAndroid Build Coastguard Workerdefm : T_WR_pat <V6_vdmpybus_dv, int_hexagon_V6_vdmpybus_dv>;
506*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vdmpyhsusat, int_hexagon_V6_vdmpyhsusat>;
507*9880d681SAndroid Build Coastguard Workerdefm : T_WR_pat <V6_vdmpyhsuisat, int_hexagon_V6_vdmpyhsuisat>;
508*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vdmpyhsat, int_hexagon_V6_vdmpyhsat>;
509*9880d681SAndroid Build Coastguard Workerdefm : T_WR_pat <V6_vdmpyhisat, int_hexagon_V6_vdmpyhisat>;
510*9880d681SAndroid Build Coastguard Workerdefm : T_WR_pat <V6_vdmpyhb_dv, int_hexagon_V6_vdmpyhb_dv>;
511*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vmpybus, int_hexagon_V6_vmpybus>;
512*9880d681SAndroid Build Coastguard Workerdefm : T_WR_pat <V6_vmpabus, int_hexagon_V6_vmpabus>;
513*9880d681SAndroid Build Coastguard Workerdefm : T_WR_pat <V6_vmpahb, int_hexagon_V6_vmpahb>;
514*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vmpyh, int_hexagon_V6_vmpyh>;
515*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vmpyhss, int_hexagon_V6_vmpyhss>;
516*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vmpyhsrs, int_hexagon_V6_vmpyhsrs>;
517*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vmpyuh, int_hexagon_V6_vmpyuh>;
518*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vmpyihb, int_hexagon_V6_vmpyihb>;
519*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vror, int_hexagon_V6_vror>;
520*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vasrw, int_hexagon_V6_vasrw>;
521*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vasrh, int_hexagon_V6_vasrh>;
522*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vaslw, int_hexagon_V6_vaslw>;
523*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vaslh, int_hexagon_V6_vaslh>;
524*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vlsrw, int_hexagon_V6_vlsrw>;
525*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vlsrh, int_hexagon_V6_vlsrh>;
526*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vmpyiwh, int_hexagon_V6_vmpyiwh>;
527*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vmpyiwb, int_hexagon_V6_vmpyiwb>;
528*9880d681SAndroid Build Coastguard Workerdefm : T_WR_pat <V6_vtmpyhb, int_hexagon_V6_vtmpyhb>;
529*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vmpyub, int_hexagon_V6_vmpyub>;
530*9880d681SAndroid Build Coastguard Worker
531*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vrmpyubv, int_hexagon_V6_vrmpyubv>;
532*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vrmpybv, int_hexagon_V6_vrmpybv>;
533*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vrmpybusv, int_hexagon_V6_vrmpybusv>;
534*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vdmpyhvsat, int_hexagon_V6_vdmpyhvsat>;
535*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmpybv, int_hexagon_V6_vmpybv>;
536*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmpyubv, int_hexagon_V6_vmpyubv>;
537*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmpybusv, int_hexagon_V6_vmpybusv>;
538*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmpyhv, int_hexagon_V6_vmpyhv>;
539*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmpyuhv, int_hexagon_V6_vmpyuhv>;
540*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmpyhvsrs, int_hexagon_V6_vmpyhvsrs>;
541*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmpyhus, int_hexagon_V6_vmpyhus>;
542*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vmpabusv, int_hexagon_V6_vmpabusv>;
543*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmpyih, int_hexagon_V6_vmpyih>;
544*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vand, int_hexagon_V6_vand>;
545*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vor, int_hexagon_V6_vor>;
546*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vxor, int_hexagon_V6_vxor>;
547*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vaddw, int_hexagon_V6_vaddw>;
548*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vaddubsat, int_hexagon_V6_vaddubsat>;
549*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vadduhsat, int_hexagon_V6_vadduhsat>;
550*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vaddhsat, int_hexagon_V6_vaddhsat>;
551*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vaddwsat, int_hexagon_V6_vaddwsat>;
552*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vsubb, int_hexagon_V6_vsubb>;
553*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vsubh, int_hexagon_V6_vsubh>;
554*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vsubw, int_hexagon_V6_vsubw>;
555*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vsububsat, int_hexagon_V6_vsububsat>;
556*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vsubuhsat, int_hexagon_V6_vsubuhsat>;
557*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vsubhsat, int_hexagon_V6_vsubhsat>;
558*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vsubwsat, int_hexagon_V6_vsubwsat>;
559*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vaddb_dv, int_hexagon_V6_vaddb_dv>;
560*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vaddh_dv, int_hexagon_V6_vaddh_dv>;
561*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vaddw_dv, int_hexagon_V6_vaddw_dv>;
562*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vaddubsat_dv, int_hexagon_V6_vaddubsat_dv>;
563*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vadduhsat_dv, int_hexagon_V6_vadduhsat_dv>;
564*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vaddhsat_dv, int_hexagon_V6_vaddhsat_dv>;
565*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vaddwsat_dv, int_hexagon_V6_vaddwsat_dv>;
566*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vsubb_dv, int_hexagon_V6_vsubb_dv>;
567*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vsubh_dv, int_hexagon_V6_vsubh_dv>;
568*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vsubw_dv, int_hexagon_V6_vsubw_dv>;
569*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vsububsat_dv, int_hexagon_V6_vsububsat_dv>;
570*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vsubuhsat_dv, int_hexagon_V6_vsubuhsat_dv>;
571*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vsubhsat_dv, int_hexagon_V6_vsubhsat_dv>;
572*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vsubwsat_dv, int_hexagon_V6_vsubwsat_dv>;
573*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vaddubh, int_hexagon_V6_vaddubh>;
574*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vadduhw, int_hexagon_V6_vadduhw>;
575*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vaddhw, int_hexagon_V6_vaddhw>;
576*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vsububh, int_hexagon_V6_vsububh>;
577*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vsubuhw, int_hexagon_V6_vsubuhw>;
578*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vsubhw, int_hexagon_V6_vsubhw>;
579*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vabsdiffub, int_hexagon_V6_vabsdiffub>;
580*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vabsdiffh, int_hexagon_V6_vabsdiffh>;
581*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vabsdiffuh, int_hexagon_V6_vabsdiffuh>;
582*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vabsdiffw, int_hexagon_V6_vabsdiffw>;
583*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vavgub, int_hexagon_V6_vavgub>;
584*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vavguh, int_hexagon_V6_vavguh>;
585*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vavgh, int_hexagon_V6_vavgh>;
586*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vavgw, int_hexagon_V6_vavgw>;
587*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vnavgub, int_hexagon_V6_vnavgub>;
588*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vnavgh, int_hexagon_V6_vnavgh>;
589*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vnavgw, int_hexagon_V6_vnavgw>;
590*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vavgubrnd, int_hexagon_V6_vavgubrnd>;
591*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vavguhrnd, int_hexagon_V6_vavguhrnd>;
592*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vavghrnd, int_hexagon_V6_vavghrnd>;
593*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vavgwrnd, int_hexagon_V6_vavgwrnd>;
594*9880d681SAndroid Build Coastguard Workerdefm : T_WW_pat <V6_vmpabuuv, int_hexagon_V6_vmpabuuv>;
595*9880d681SAndroid Build Coastguard Worker
596*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vdmpyhb_acc, int_hexagon_V6_vdmpyhb_acc>;
597*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vrmpyub_acc, int_hexagon_V6_vrmpyub_acc>;
598*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vrmpybus_acc, int_hexagon_V6_vrmpybus_acc>;
599*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vdmpybus_acc, int_hexagon_V6_vdmpybus_acc>;
600*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vdmpyhsusat_acc, int_hexagon_V6_vdmpyhsusat_acc>;
601*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vdmpyhsat_acc, int_hexagon_V6_vdmpyhsat_acc>;
602*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vmpyiwb_acc, int_hexagon_V6_vmpyiwb_acc>;
603*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vmpyiwh_acc, int_hexagon_V6_vmpyiwh_acc>;
604*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vmpyihb_acc, int_hexagon_V6_vmpyihb_acc>;
605*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vaslw_acc, int_hexagon_V6_vaslw_acc>;
606*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vasrw_acc, int_hexagon_V6_vasrw_acc>;
607*9880d681SAndroid Build Coastguard Worker
608*9880d681SAndroid Build Coastguard Workerdefm : T_VWR_pat <V6_vdmpyhsuisat_acc, int_hexagon_V6_vdmpyhsuisat_acc>;
609*9880d681SAndroid Build Coastguard Workerdefm : T_VWR_pat <V6_vdmpyhisat_acc, int_hexagon_V6_vdmpyhisat_acc>;
610*9880d681SAndroid Build Coastguard Worker
611*9880d681SAndroid Build Coastguard Workerdefm : T_WVR_pat <V6_vmpybus_acc, int_hexagon_V6_vmpybus_acc>;
612*9880d681SAndroid Build Coastguard Workerdefm : T_WVR_pat <V6_vmpyhsat_acc, int_hexagon_V6_vmpyhsat_acc>;
613*9880d681SAndroid Build Coastguard Workerdefm : T_WVR_pat <V6_vmpyuh_acc, int_hexagon_V6_vmpyuh_acc>;
614*9880d681SAndroid Build Coastguard Workerdefm : T_WVR_pat <V6_vmpyub_acc, int_hexagon_V6_vmpyub_acc>;
615*9880d681SAndroid Build Coastguard Worker
616*9880d681SAndroid Build Coastguard Workerdefm : T_WWR_pat <V6_vtmpyb_acc, int_hexagon_V6_vtmpyb_acc>;
617*9880d681SAndroid Build Coastguard Workerdefm : T_WWR_pat <V6_vtmpybus_acc, int_hexagon_V6_vtmpybus_acc>;
618*9880d681SAndroid Build Coastguard Workerdefm : T_WWR_pat <V6_vtmpyhb_acc, int_hexagon_V6_vtmpyhb_acc>;
619*9880d681SAndroid Build Coastguard Workerdefm : T_WWR_pat <V6_vdmpybus_dv_acc, int_hexagon_V6_vdmpybus_dv_acc>;
620*9880d681SAndroid Build Coastguard Workerdefm : T_WWR_pat <V6_vdmpyhb_dv_acc, int_hexagon_V6_vdmpyhb_dv_acc>;
621*9880d681SAndroid Build Coastguard Workerdefm : T_WWR_pat <V6_vmpabus_acc, int_hexagon_V6_vmpabus_acc>;
622*9880d681SAndroid Build Coastguard Workerdefm : T_WWR_pat <V6_vmpahb_acc, int_hexagon_V6_vmpahb_acc>;
623*9880d681SAndroid Build Coastguard Workerdefm : T_WWR_pat <V6_vdsaduh_acc, int_hexagon_V6_vdsaduh_acc>;
624*9880d681SAndroid Build Coastguard Worker
625*9880d681SAndroid Build Coastguard Workerdefm : T_VVV_pat <V6_vdmpyhvsat_acc, int_hexagon_V6_vdmpyhvsat_acc>;
626*9880d681SAndroid Build Coastguard Workerdefm : T_WVV_pat <V6_vmpybusv_acc, int_hexagon_V6_vmpybusv_acc>;
627*9880d681SAndroid Build Coastguard Workerdefm : T_WVV_pat <V6_vmpybv_acc, int_hexagon_V6_vmpybv_acc>;
628*9880d681SAndroid Build Coastguard Workerdefm : T_WVV_pat <V6_vmpyhus_acc, int_hexagon_V6_vmpyhus_acc>;
629*9880d681SAndroid Build Coastguard Workerdefm : T_WVV_pat <V6_vmpyhv_acc, int_hexagon_V6_vmpyhv_acc>;
630*9880d681SAndroid Build Coastguard Workerdefm : T_VVV_pat <V6_vmpyiewh_acc, int_hexagon_V6_vmpyiewh_acc>;
631*9880d681SAndroid Build Coastguard Workerdefm : T_VVV_pat <V6_vmpyiewuh_acc, int_hexagon_V6_vmpyiewuh_acc>;
632*9880d681SAndroid Build Coastguard Workerdefm : T_VVV_pat <V6_vmpyih_acc, int_hexagon_V6_vmpyih_acc>;
633*9880d681SAndroid Build Coastguard Workerdefm : T_VVV_pat <V6_vmpyowh_rnd_sacc, int_hexagon_V6_vmpyowh_rnd_sacc>;
634*9880d681SAndroid Build Coastguard Workerdefm : T_VVV_pat <V6_vmpyowh_sacc, int_hexagon_V6_vmpyowh_sacc>;
635*9880d681SAndroid Build Coastguard Workerdefm : T_WVV_pat <V6_vmpyubv_acc, int_hexagon_V6_vmpyubv_acc>;
636*9880d681SAndroid Build Coastguard Workerdefm : T_WVV_pat <V6_vmpyuhv_acc, int_hexagon_V6_vmpyuhv_acc>;
637*9880d681SAndroid Build Coastguard Workerdefm : T_VVV_pat <V6_vrmpybusv_acc, int_hexagon_V6_vrmpybusv_acc>;
638*9880d681SAndroid Build Coastguard Workerdefm : T_VVV_pat <V6_vrmpybv_acc, int_hexagon_V6_vrmpybv_acc>;
639*9880d681SAndroid Build Coastguard Workerdefm : T_VVV_pat <V6_vrmpyubv_acc, int_hexagon_V6_vrmpyubv_acc>;
640*9880d681SAndroid Build Coastguard Worker
641*9880d681SAndroid Build Coastguard Worker// Compare instructions
642*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_veqb_and, int_hexagon_V6_veqb_and>;
643*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_veqh_and, int_hexagon_V6_veqh_and>;
644*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_veqw_and, int_hexagon_V6_veqw_and>;
645*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgtb_and, int_hexagon_V6_vgtb_and>;
646*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgth_and, int_hexagon_V6_vgth_and>;
647*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgtw_and, int_hexagon_V6_vgtw_and>;
648*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgtub_and, int_hexagon_V6_vgtub_and>;
649*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgtuh_and, int_hexagon_V6_vgtuh_and>;
650*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgtuw_and, int_hexagon_V6_vgtuw_and>;
651*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_veqb_or, int_hexagon_V6_veqb_or>;
652*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_veqh_or, int_hexagon_V6_veqh_or>;
653*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_veqw_or, int_hexagon_V6_veqw_or>;
654*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgtb_or, int_hexagon_V6_vgtb_or>;
655*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgth_or, int_hexagon_V6_vgth_or>;
656*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgtw_or, int_hexagon_V6_vgtw_or>;
657*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgtub_or, int_hexagon_V6_vgtub_or>;
658*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgtuh_or, int_hexagon_V6_vgtuh_or>;
659*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgtuw_or, int_hexagon_V6_vgtuw_or>;
660*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_veqb_xor, int_hexagon_V6_veqb_xor>;
661*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_veqh_xor, int_hexagon_V6_veqh_xor>;
662*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_veqw_xor, int_hexagon_V6_veqw_xor>;
663*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgtb_xor, int_hexagon_V6_vgtb_xor>;
664*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgth_xor, int_hexagon_V6_vgth_xor>;
665*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgtw_xor, int_hexagon_V6_vgtw_xor>;
666*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgtub_xor, int_hexagon_V6_vgtub_xor>;
667*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgtuh_xor, int_hexagon_V6_vgtuh_xor>;
668*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vgtuw_xor, int_hexagon_V6_vgtuw_xor>;
669*9880d681SAndroid Build Coastguard Worker
670*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vminub, int_hexagon_V6_vminub>;
671*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vminuh, int_hexagon_V6_vminuh>;
672*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vminh, int_hexagon_V6_vminh>;
673*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vminw, int_hexagon_V6_vminw>;
674*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmaxub, int_hexagon_V6_vmaxub>;
675*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmaxuh, int_hexagon_V6_vmaxuh>;
676*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmaxh, int_hexagon_V6_vmaxh>;
677*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmaxw, int_hexagon_V6_vmaxw>;
678*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vdelta, int_hexagon_V6_vdelta>;
679*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vrdelta, int_hexagon_V6_vrdelta>;
680*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vdealb4w, int_hexagon_V6_vdealb4w>;
681*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmpyowh_rnd, int_hexagon_V6_vmpyowh_rnd>;
682*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vshuffeb, int_hexagon_V6_vshuffeb>;
683*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vshuffob, int_hexagon_V6_vshuffob>;
684*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vshufeh, int_hexagon_V6_vshufeh>;
685*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vshufoh, int_hexagon_V6_vshufoh>;
686*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vshufoeh, int_hexagon_V6_vshufoeh>;
687*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vshufoeb, int_hexagon_V6_vshufoeb>;
688*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vcombine, int_hexagon_V6_vcombine>;
689*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmpyieoh, int_hexagon_V6_vmpyieoh>;
690*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vsathub, int_hexagon_V6_vsathub>;
691*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vsatwh, int_hexagon_V6_vsatwh>;
692*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vroundwh, int_hexagon_V6_vroundwh>;
693*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vroundwuh, int_hexagon_V6_vroundwuh>;
694*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vroundhb, int_hexagon_V6_vroundhb>;
695*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vroundhub, int_hexagon_V6_vroundhub>;
696*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vasrwv, int_hexagon_V6_vasrwv>;
697*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vlsrwv, int_hexagon_V6_vlsrwv>;
698*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vlsrhv, int_hexagon_V6_vlsrhv>;
699*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vasrhv, int_hexagon_V6_vasrhv>;
700*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vaslwv, int_hexagon_V6_vaslwv>;
701*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vaslhv, int_hexagon_V6_vaslhv>;
702*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vaddb, int_hexagon_V6_vaddb>;
703*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vaddh, int_hexagon_V6_vaddh>;
704*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmpyiewuh, int_hexagon_V6_vmpyiewuh>;
705*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmpyiowh, int_hexagon_V6_vmpyiowh>;
706*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vpackeb, int_hexagon_V6_vpackeb>;
707*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vpackeh, int_hexagon_V6_vpackeh>;
708*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vpackhub_sat, int_hexagon_V6_vpackhub_sat>;
709*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vpackhb_sat, int_hexagon_V6_vpackhb_sat>;
710*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vpackwuh_sat, int_hexagon_V6_vpackwuh_sat>;
711*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vpackwh_sat, int_hexagon_V6_vpackwh_sat>;
712*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vpackob, int_hexagon_V6_vpackob>;
713*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vpackoh, int_hexagon_V6_vpackoh>;
714*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmpyewuh, int_hexagon_V6_vmpyewuh>;
715*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vmpyowh, int_hexagon_V6_vmpyowh>;
716*9880d681SAndroid Build Coastguard Worker
717*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vaddbq, int_hexagon_V6_vaddbq>;
718*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vaddhq, int_hexagon_V6_vaddhq>;
719*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vaddwq, int_hexagon_V6_vaddwq>;
720*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vaddbnq, int_hexagon_V6_vaddbnq>;
721*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vaddhnq, int_hexagon_V6_vaddhnq>;
722*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vaddwnq, int_hexagon_V6_vaddwnq>;
723*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vsubbq, int_hexagon_V6_vsubbq>;
724*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vsubhq, int_hexagon_V6_vsubhq>;
725*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vsubwq, int_hexagon_V6_vsubwq>;
726*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vsubbnq, int_hexagon_V6_vsubbnq>;
727*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vsubhnq, int_hexagon_V6_vsubhnq>;
728*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vsubwnq, int_hexagon_V6_vsubwnq>;
729*9880d681SAndroid Build Coastguard Worker
730*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vabsh, int_hexagon_V6_vabsh>;
731*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vabsw, int_hexagon_V6_vabsw>;
732*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vabsw_sat, int_hexagon_V6_vabsw_sat>;
733*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vabsh_sat, int_hexagon_V6_vabsh_sat>;
734*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vnot, int_hexagon_V6_vnot>;
735*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vassign, int_hexagon_V6_vassign>;
736*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vzb, int_hexagon_V6_vzb>;
737*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vzh, int_hexagon_V6_vzh>;
738*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vsb, int_hexagon_V6_vsb>;
739*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vsh, int_hexagon_V6_vsh>;
740*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vdealh, int_hexagon_V6_vdealh>;
741*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vdealb, int_hexagon_V6_vdealb>;
742*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vunpackub, int_hexagon_V6_vunpackub>;
743*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vunpackuh, int_hexagon_V6_vunpackuh>;
744*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vunpackb, int_hexagon_V6_vunpackb>;
745*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vunpackh, int_hexagon_V6_vunpackh>;
746*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vshuffh, int_hexagon_V6_vshuffh>;
747*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vshuffb, int_hexagon_V6_vshuffb>;
748*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vcl0w, int_hexagon_V6_vcl0w>;
749*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vpopcounth, int_hexagon_V6_vpopcounth>;
750*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vcl0h, int_hexagon_V6_vcl0h>;
751*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vnormamtw, int_hexagon_V6_vnormamtw>;
752*9880d681SAndroid Build Coastguard Workerdefm : T_V_pat <V6_vnormamth, int_hexagon_V6_vnormamth>;
753*9880d681SAndroid Build Coastguard Worker
754*9880d681SAndroid Build Coastguard Workerdefm : T_WRI_pat <V6_vrmpybusi, int_hexagon_V6_vrmpybusi>;
755*9880d681SAndroid Build Coastguard Workerdefm : T_WRI_pat <V6_vrsadubi, int_hexagon_V6_vrsadubi>;
756*9880d681SAndroid Build Coastguard Workerdefm : T_WRI_pat <V6_vrmpyubi, int_hexagon_V6_vrmpyubi>;
757*9880d681SAndroid Build Coastguard Worker
758*9880d681SAndroid Build Coastguard Workerdefm : T_WWRI_pat <V6_vrmpybusi_acc, int_hexagon_V6_vrmpybusi_acc>;
759*9880d681SAndroid Build Coastguard Workerdefm : T_WWRI_pat <V6_vrsadubi_acc, int_hexagon_V6_vrsadubi_acc>;
760*9880d681SAndroid Build Coastguard Workerdefm : T_WWRI_pat <V6_vrmpyubi_acc, int_hexagon_V6_vrmpyubi_acc>;
761*9880d681SAndroid Build Coastguard Worker
762*9880d681SAndroid Build Coastguard Worker// assembler mapped.
763*9880d681SAndroid Build Coastguard Worker//defm : T_V_pat <V6_vtran2x2, int_hexagon_V6_vtran2x2>;
764*9880d681SAndroid Build Coastguard Worker// not present earlier.. need to add intrinsic
765*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_valignb, int_hexagon_V6_valignb>;
766*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vlalignb, int_hexagon_V6_vlalignb>;
767*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vasrwh, int_hexagon_V6_vasrwh>;
768*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vasrwhsat, int_hexagon_V6_vasrwhsat>;
769*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vasrwhrndsat, int_hexagon_V6_vasrwhrndsat>;
770*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vasrwuhsat, int_hexagon_V6_vasrwuhsat>;
771*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vasrhubsat, int_hexagon_V6_vasrhubsat>;
772*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vasrhubrndsat, int_hexagon_V6_vasrhubrndsat>;
773*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vasrhbrndsat, int_hexagon_V6_vasrhbrndsat>;
774*9880d681SAndroid Build Coastguard Worker
775*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vshuffvdd, int_hexagon_V6_vshuffvdd>;
776*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vdealvdd, int_hexagon_V6_vdealvdd>;
777*9880d681SAndroid Build Coastguard Worker
778*9880d681SAndroid Build Coastguard Workerdefm : T_WV_pat <V6_vunpackob, int_hexagon_V6_vunpackob>;
779*9880d681SAndroid Build Coastguard Workerdefm : T_WV_pat <V6_vunpackoh, int_hexagon_V6_vunpackoh>;
780*9880d681SAndroid Build Coastguard Workerdefm : T_VVI_pat <V6_valignbi, int_hexagon_V6_valignbi>;
781*9880d681SAndroid Build Coastguard Workerdefm : T_VVI_pat <V6_vlalignbi, int_hexagon_V6_vlalignbi>;
782*9880d681SAndroid Build Coastguard Worker
783*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vswap, int_hexagon_V6_vswap>;
784*9880d681SAndroid Build Coastguard Workerdefm : T_QVV_pat <V6_vmux, int_hexagon_V6_vmux>;
785*9880d681SAndroid Build Coastguard Workerdefm : T_QQ_pat <V6_pred_and, int_hexagon_V6_pred_and>;
786*9880d681SAndroid Build Coastguard Workerdefm : T_QQ_pat <V6_pred_or, int_hexagon_V6_pred_or>;
787*9880d681SAndroid Build Coastguard Workerdefm : T_Q_pat <V6_pred_not, int_hexagon_V6_pred_not>;
788*9880d681SAndroid Build Coastguard Workerdefm : T_QQ_pat <V6_pred_xor, int_hexagon_V6_pred_xor>;
789*9880d681SAndroid Build Coastguard Workerdefm : T_QQ_pat <V6_pred_or_n, int_hexagon_V6_pred_or_n>;
790*9880d681SAndroid Build Coastguard Workerdefm : T_QQ_pat <V6_pred_and_n, int_hexagon_V6_pred_and_n>;
791*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_veqb, int_hexagon_V6_veqb>;
792*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_veqh, int_hexagon_V6_veqh>;
793*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_veqw, int_hexagon_V6_veqw>;
794*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vgtb, int_hexagon_V6_vgtb>;
795*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vgth, int_hexagon_V6_vgth>;
796*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vgtw, int_hexagon_V6_vgtw>;
797*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vgtub, int_hexagon_V6_vgtub>;
798*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vgtuh, int_hexagon_V6_vgtuh>;
799*9880d681SAndroid Build Coastguard Workerdefm : T_VV_pat <V6_vgtuw, int_hexagon_V6_vgtuw>;
800*9880d681SAndroid Build Coastguard Worker
801*9880d681SAndroid Build Coastguard Workerdefm : T_VQR_pat <V6_vandqrt_acc, int_hexagon_V6_vandqrt_acc>;
802*9880d681SAndroid Build Coastguard Workerdefm : T_QVR_pat <V6_vandvrt_acc, int_hexagon_V6_vandvrt_acc>;
803*9880d681SAndroid Build Coastguard Workerdefm : T_QR_pat <V6_vandqrt, int_hexagon_V6_vandqrt>;
804*9880d681SAndroid Build Coastguard Workerdefm : T_R_pat <V6_lvsplatw, int_hexagon_V6_lvsplatw>;
805*9880d681SAndroid Build Coastguard Workerdefm : T_R_pat <V6_pred_scalar2, int_hexagon_V6_pred_scalar2>;
806*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vandvrt, int_hexagon_V6_vandvrt>;
807*9880d681SAndroid Build Coastguard Worker
808*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vlutvvb, int_hexagon_V6_vlutvvb>;
809*9880d681SAndroid Build Coastguard Workerdefm : T_VVR_pat <V6_vlutvwh, int_hexagon_V6_vlutvwh>;
810*9880d681SAndroid Build Coastguard Workerdefm : T_VVVR_pat <V6_vlutvvb_oracc, int_hexagon_V6_vlutvvb_oracc>;
811*9880d681SAndroid Build Coastguard Workerdefm : T_WVVR_pat <V6_vlutvwh_oracc, int_hexagon_V6_vlutvwh_oracc>;
812*9880d681SAndroid Build Coastguard Worker
813*9880d681SAndroid Build Coastguard Workerdefm : T_QVR_pat <V6_vandvrt_acc, int_hexagon_V6_vandvrt_acc>;
814*9880d681SAndroid Build Coastguard Workerdef : T_PI_pat <S6_rol_i_p, int_hexagon_S6_rol_i_p>;
815*9880d681SAndroid Build Coastguard Workerdef : T_RI_pat <S6_rol_i_r, int_hexagon_S6_rol_i_r>;
816*9880d681SAndroid Build Coastguard Workerdef : T_PPI_pat <S6_rol_i_p_nac, int_hexagon_S6_rol_i_p_nac>;
817*9880d681SAndroid Build Coastguard Workerdef : T_PPI_pat <S6_rol_i_p_acc, int_hexagon_S6_rol_i_p_acc>;
818*9880d681SAndroid Build Coastguard Workerdef : T_PPI_pat <S6_rol_i_p_and, int_hexagon_S6_rol_i_p_and>;
819*9880d681SAndroid Build Coastguard Workerdef : T_PPI_pat <S6_rol_i_p_or, int_hexagon_S6_rol_i_p_or>;
820*9880d681SAndroid Build Coastguard Workerdef : T_PPI_pat <S6_rol_i_p_xacc, int_hexagon_S6_rol_i_p_xacc>;
821*9880d681SAndroid Build Coastguard Workerdef : T_RRI_pat <S6_rol_i_r_nac, int_hexagon_S6_rol_i_r_nac>;
822*9880d681SAndroid Build Coastguard Workerdef : T_RRI_pat <S6_rol_i_r_acc, int_hexagon_S6_rol_i_r_acc>;
823*9880d681SAndroid Build Coastguard Workerdef : T_RRI_pat <S6_rol_i_r_and, int_hexagon_S6_rol_i_r_and>;
824*9880d681SAndroid Build Coastguard Workerdef : T_RRI_pat <S6_rol_i_r_or, int_hexagon_S6_rol_i_r_or>;
825*9880d681SAndroid Build Coastguard Workerdef : T_RRI_pat <S6_rol_i_r_xacc, int_hexagon_S6_rol_i_r_xacc>;
826*9880d681SAndroid Build Coastguard Worker
827*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_extractw, int_hexagon_V6_extractw>;
828*9880d681SAndroid Build Coastguard Workerdefm : T_VR_pat <V6_vinsertwr, int_hexagon_V6_vinsertwr>;
829*9880d681SAndroid Build Coastguard Worker
830*9880d681SAndroid Build Coastguard Workerdef : T_PPQ_pat <S2_cabacencbin, int_hexagon_S2_cabacencbin>;
831*9880d681SAndroid Build Coastguard Worker
832*9880d681SAndroid Build Coastguard Workerdef: Pat<(v64i16 (trunc v64i32:$Vdd)),
833*9880d681SAndroid Build Coastguard Worker         (v64i16 (V6_vpackwh_sat_128B
834*9880d681SAndroid Build Coastguard Worker                 (v32i32 (HEXAGON_V6_hi_128B VecDblRegs128B:$Vdd)),
835*9880d681SAndroid Build Coastguard Worker                 (v32i32 (HEXAGON_V6_lo_128B VecDblRegs128B:$Vdd))))>,
836*9880d681SAndroid Build Coastguard Worker     Requires<[UseHVXDbl]>;
837*9880d681SAndroid Build Coastguard Worker
838*9880d681SAndroid Build Coastguard Worker
839