xref: /freebsd-src/contrib/llvm-project/llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td (revision bdd1243df58e60e85101c09001d9812a789b6bc4)
15ffd83dbSDimitry Andric//===----------------------------------------------------------------------===//
20b57cec5SDimitry Andric//
30b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric//
70b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
85ffd83dbSDimitry Andric// Automatically generated file, do not edit!
90b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
100b57cec5SDimitry Andric
110b57cec5SDimitry Andric
120b57cec5SDimitry Andric// V5 Scalar Instructions.
130b57cec5SDimitry Andric
14fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_abs IntRegs:$src1),
15fe6060f1SDimitry Andric         (A2_abs IntRegs:$src1)>, Requires<[HasV5]>;
16fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_absp DoubleRegs:$src1),
17fe6060f1SDimitry Andric         (A2_absp DoubleRegs:$src1)>, Requires<[HasV5]>;
18fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_abssat IntRegs:$src1),
19fe6060f1SDimitry Andric         (A2_abssat IntRegs:$src1)>, Requires<[HasV5]>;
20fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_add IntRegs:$src1, IntRegs:$src2),
21fe6060f1SDimitry Andric         (A2_add IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
22fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addh_h16_hh IntRegs:$src1, IntRegs:$src2),
23fe6060f1SDimitry Andric         (A2_addh_h16_hh IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
24fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addh_h16_hl IntRegs:$src1, IntRegs:$src2),
25fe6060f1SDimitry Andric         (A2_addh_h16_hl IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
26fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addh_h16_lh IntRegs:$src1, IntRegs:$src2),
27fe6060f1SDimitry Andric         (A2_addh_h16_lh IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
28fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addh_h16_ll IntRegs:$src1, IntRegs:$src2),
29fe6060f1SDimitry Andric         (A2_addh_h16_ll IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
30fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addh_h16_sat_hh IntRegs:$src1, IntRegs:$src2),
31fe6060f1SDimitry Andric         (A2_addh_h16_sat_hh IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
32fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addh_h16_sat_hl IntRegs:$src1, IntRegs:$src2),
33fe6060f1SDimitry Andric         (A2_addh_h16_sat_hl IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
34fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addh_h16_sat_lh IntRegs:$src1, IntRegs:$src2),
35fe6060f1SDimitry Andric         (A2_addh_h16_sat_lh IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
36fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addh_h16_sat_ll IntRegs:$src1, IntRegs:$src2),
37fe6060f1SDimitry Andric         (A2_addh_h16_sat_ll IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
38fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addh_l16_hl IntRegs:$src1, IntRegs:$src2),
39fe6060f1SDimitry Andric         (A2_addh_l16_hl IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
40fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addh_l16_ll IntRegs:$src1, IntRegs:$src2),
41fe6060f1SDimitry Andric         (A2_addh_l16_ll IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
42fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addh_l16_sat_hl IntRegs:$src1, IntRegs:$src2),
43fe6060f1SDimitry Andric         (A2_addh_l16_sat_hl IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
44fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addh_l16_sat_ll IntRegs:$src1, IntRegs:$src2),
45fe6060f1SDimitry Andric         (A2_addh_l16_sat_ll IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
46fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addi IntRegs:$src1, s32_0ImmPred_timm:$src2),
47fe6060f1SDimitry Andric         (A2_addi IntRegs:$src1, s32_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
48fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addp DoubleRegs:$src1, DoubleRegs:$src2),
49fe6060f1SDimitry Andric         (A2_addp DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
50fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addpsat DoubleRegs:$src1, DoubleRegs:$src2),
51fe6060f1SDimitry Andric         (A2_addpsat DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
52fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addsat IntRegs:$src1, IntRegs:$src2),
53fe6060f1SDimitry Andric         (A2_addsat IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
54fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_addsp IntRegs:$src1, DoubleRegs:$src2),
55fe6060f1SDimitry Andric         (A2_addsp IntRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
56fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_and IntRegs:$src1, IntRegs:$src2),
57fe6060f1SDimitry Andric         (A2_and IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
58fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_andir IntRegs:$src1, s32_0ImmPred_timm:$src2),
59fe6060f1SDimitry Andric         (A2_andir IntRegs:$src1, s32_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
60fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_andp DoubleRegs:$src1, DoubleRegs:$src2),
61fe6060f1SDimitry Andric         (A2_andp DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
62fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_aslh IntRegs:$src1),
63fe6060f1SDimitry Andric         (A2_aslh IntRegs:$src1)>, Requires<[HasV5]>;
64fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_asrh IntRegs:$src1),
65fe6060f1SDimitry Andric         (A2_asrh IntRegs:$src1)>, Requires<[HasV5]>;
66fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_combine_hh IntRegs:$src1, IntRegs:$src2),
67fe6060f1SDimitry Andric         (A2_combine_hh IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
68fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_combine_hl IntRegs:$src1, IntRegs:$src2),
69fe6060f1SDimitry Andric         (A2_combine_hl IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
70fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_combine_lh IntRegs:$src1, IntRegs:$src2),
71fe6060f1SDimitry Andric         (A2_combine_lh IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
72fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_combine_ll IntRegs:$src1, IntRegs:$src2),
73fe6060f1SDimitry Andric         (A2_combine_ll IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
74fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_combineii s32_0ImmPred_timm:$src1, s8_0ImmPred_timm:$src2),
75fe6060f1SDimitry Andric         (A2_combineii s32_0ImmPred_timm:$src1, s8_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
76fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_combinew IntRegs:$src1, IntRegs:$src2),
77fe6060f1SDimitry Andric         (A2_combinew IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
78fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_max IntRegs:$src1, IntRegs:$src2),
79fe6060f1SDimitry Andric         (A2_max IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
80fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_maxp DoubleRegs:$src1, DoubleRegs:$src2),
81fe6060f1SDimitry Andric         (A2_maxp DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
82fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_maxu IntRegs:$src1, IntRegs:$src2),
83fe6060f1SDimitry Andric         (A2_maxu IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
84fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_maxup DoubleRegs:$src1, DoubleRegs:$src2),
85fe6060f1SDimitry Andric         (A2_maxup DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
86fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_min IntRegs:$src1, IntRegs:$src2),
87fe6060f1SDimitry Andric         (A2_min IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
88fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_minp DoubleRegs:$src1, DoubleRegs:$src2),
89fe6060f1SDimitry Andric         (A2_minp DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
90fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_minu IntRegs:$src1, IntRegs:$src2),
91fe6060f1SDimitry Andric         (A2_minu IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
92fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_minup DoubleRegs:$src1, DoubleRegs:$src2),
93fe6060f1SDimitry Andric         (A2_minup DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
94fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_negp DoubleRegs:$src1),
95fe6060f1SDimitry Andric         (A2_negp DoubleRegs:$src1)>, Requires<[HasV5]>;
96fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_negsat IntRegs:$src1),
97fe6060f1SDimitry Andric         (A2_negsat IntRegs:$src1)>, Requires<[HasV5]>;
98fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_notp DoubleRegs:$src1),
99fe6060f1SDimitry Andric         (A2_notp DoubleRegs:$src1)>, Requires<[HasV5]>;
100fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_or IntRegs:$src1, IntRegs:$src2),
101fe6060f1SDimitry Andric         (A2_or IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
102fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_orir IntRegs:$src1, s32_0ImmPred_timm:$src2),
103fe6060f1SDimitry Andric         (A2_orir IntRegs:$src1, s32_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
104fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_orp DoubleRegs:$src1, DoubleRegs:$src2),
105fe6060f1SDimitry Andric         (A2_orp DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
106fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_roundsat DoubleRegs:$src1),
107fe6060f1SDimitry Andric         (A2_roundsat DoubleRegs:$src1)>, Requires<[HasV5]>;
108fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_sat DoubleRegs:$src1),
109fe6060f1SDimitry Andric         (A2_sat DoubleRegs:$src1)>, Requires<[HasV5]>;
110fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_satb IntRegs:$src1),
111fe6060f1SDimitry Andric         (A2_satb IntRegs:$src1)>, Requires<[HasV5]>;
112fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_sath IntRegs:$src1),
113fe6060f1SDimitry Andric         (A2_sath IntRegs:$src1)>, Requires<[HasV5]>;
114fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_satub IntRegs:$src1),
115fe6060f1SDimitry Andric         (A2_satub IntRegs:$src1)>, Requires<[HasV5]>;
116fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_satuh IntRegs:$src1),
117fe6060f1SDimitry Andric         (A2_satuh IntRegs:$src1)>, Requires<[HasV5]>;
118fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_sub IntRegs:$src1, IntRegs:$src2),
119fe6060f1SDimitry Andric         (A2_sub IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
120fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_subh_h16_hh IntRegs:$src1, IntRegs:$src2),
121fe6060f1SDimitry Andric         (A2_subh_h16_hh IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
122fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_subh_h16_hl IntRegs:$src1, IntRegs:$src2),
123fe6060f1SDimitry Andric         (A2_subh_h16_hl IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
124fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_subh_h16_lh IntRegs:$src1, IntRegs:$src2),
125fe6060f1SDimitry Andric         (A2_subh_h16_lh IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
126fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_subh_h16_ll IntRegs:$src1, IntRegs:$src2),
127fe6060f1SDimitry Andric         (A2_subh_h16_ll IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
128fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_subh_h16_sat_hh IntRegs:$src1, IntRegs:$src2),
129fe6060f1SDimitry Andric         (A2_subh_h16_sat_hh IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
130fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_subh_h16_sat_hl IntRegs:$src1, IntRegs:$src2),
131fe6060f1SDimitry Andric         (A2_subh_h16_sat_hl IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
132fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_subh_h16_sat_lh IntRegs:$src1, IntRegs:$src2),
133fe6060f1SDimitry Andric         (A2_subh_h16_sat_lh IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
134fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_subh_h16_sat_ll IntRegs:$src1, IntRegs:$src2),
135fe6060f1SDimitry Andric         (A2_subh_h16_sat_ll IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
136fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_subh_l16_hl IntRegs:$src1, IntRegs:$src2),
137fe6060f1SDimitry Andric         (A2_subh_l16_hl IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
138fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_subh_l16_ll IntRegs:$src1, IntRegs:$src2),
139fe6060f1SDimitry Andric         (A2_subh_l16_ll IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
140fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_subh_l16_sat_hl IntRegs:$src1, IntRegs:$src2),
141fe6060f1SDimitry Andric         (A2_subh_l16_sat_hl IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
142fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_subh_l16_sat_ll IntRegs:$src1, IntRegs:$src2),
143fe6060f1SDimitry Andric         (A2_subh_l16_sat_ll IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
144fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_subp DoubleRegs:$src1, DoubleRegs:$src2),
145fe6060f1SDimitry Andric         (A2_subp DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
146fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_subri s32_0ImmPred_timm:$src1, IntRegs:$src2),
147fe6060f1SDimitry Andric         (A2_subri s32_0ImmPred_timm:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
148fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_subsat IntRegs:$src1, IntRegs:$src2),
149fe6060f1SDimitry Andric         (A2_subsat IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
150fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_svaddh IntRegs:$src1, IntRegs:$src2),
151fe6060f1SDimitry Andric         (A2_svaddh IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
152fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_svaddhs IntRegs:$src1, IntRegs:$src2),
153fe6060f1SDimitry Andric         (A2_svaddhs IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
154fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_svadduhs IntRegs:$src1, IntRegs:$src2),
155fe6060f1SDimitry Andric         (A2_svadduhs IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
156fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_svavgh IntRegs:$src1, IntRegs:$src2),
157fe6060f1SDimitry Andric         (A2_svavgh IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
158fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_svavghs IntRegs:$src1, IntRegs:$src2),
159fe6060f1SDimitry Andric         (A2_svavghs IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
160fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_svnavgh IntRegs:$src1, IntRegs:$src2),
161fe6060f1SDimitry Andric         (A2_svnavgh IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
162fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_svsubh IntRegs:$src1, IntRegs:$src2),
163fe6060f1SDimitry Andric         (A2_svsubh IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
164fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_svsubhs IntRegs:$src1, IntRegs:$src2),
165fe6060f1SDimitry Andric         (A2_svsubhs IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
166fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_svsubuhs IntRegs:$src1, IntRegs:$src2),
167fe6060f1SDimitry Andric         (A2_svsubuhs IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
168fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_swiz IntRegs:$src1),
169fe6060f1SDimitry Andric         (A2_swiz IntRegs:$src1)>, Requires<[HasV5]>;
170fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_sxtb IntRegs:$src1),
171fe6060f1SDimitry Andric         (A2_sxtb IntRegs:$src1)>, Requires<[HasV5]>;
172fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_sxth IntRegs:$src1),
173fe6060f1SDimitry Andric         (A2_sxth IntRegs:$src1)>, Requires<[HasV5]>;
174fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_sxtw IntRegs:$src1),
175fe6060f1SDimitry Andric         (A2_sxtw IntRegs:$src1)>, Requires<[HasV5]>;
176fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_tfr IntRegs:$src1),
177fe6060f1SDimitry Andric         (A2_tfr IntRegs:$src1)>, Requires<[HasV5]>;
178fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_tfrih IntRegs:$src1, u16_0ImmPred_timm:$src2),
179fe6060f1SDimitry Andric         (A2_tfrih IntRegs:$src1, u16_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
180fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_tfril IntRegs:$src1, u16_0ImmPred_timm:$src2),
181fe6060f1SDimitry Andric         (A2_tfril IntRegs:$src1, u16_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
182fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_tfrp DoubleRegs:$src1),
183fe6060f1SDimitry Andric         (A2_tfrp DoubleRegs:$src1)>, Requires<[HasV5]>;
184fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_tfrsi s32_0ImmPred_timm:$src1),
185fe6060f1SDimitry Andric         (A2_tfrsi s32_0ImmPred_timm:$src1)>, Requires<[HasV5]>;
186fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vabsh DoubleRegs:$src1),
187fe6060f1SDimitry Andric         (A2_vabsh DoubleRegs:$src1)>, Requires<[HasV5]>;
188fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vabshsat DoubleRegs:$src1),
189fe6060f1SDimitry Andric         (A2_vabshsat DoubleRegs:$src1)>, Requires<[HasV5]>;
190fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vabsw DoubleRegs:$src1),
191fe6060f1SDimitry Andric         (A2_vabsw DoubleRegs:$src1)>, Requires<[HasV5]>;
192fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vabswsat DoubleRegs:$src1),
193fe6060f1SDimitry Andric         (A2_vabswsat DoubleRegs:$src1)>, Requires<[HasV5]>;
194fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vaddb_map DoubleRegs:$src1, DoubleRegs:$src2),
195fe6060f1SDimitry Andric         (A2_vaddub DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
196fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vaddh DoubleRegs:$src1, DoubleRegs:$src2),
197fe6060f1SDimitry Andric         (A2_vaddh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
198fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vaddhs DoubleRegs:$src1, DoubleRegs:$src2),
199fe6060f1SDimitry Andric         (A2_vaddhs DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
200fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vaddub DoubleRegs:$src1, DoubleRegs:$src2),
201fe6060f1SDimitry Andric         (A2_vaddub DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
202fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vaddubs DoubleRegs:$src1, DoubleRegs:$src2),
203fe6060f1SDimitry Andric         (A2_vaddubs DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
204fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vadduhs DoubleRegs:$src1, DoubleRegs:$src2),
205fe6060f1SDimitry Andric         (A2_vadduhs DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
206fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vaddw DoubleRegs:$src1, DoubleRegs:$src2),
207fe6060f1SDimitry Andric         (A2_vaddw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
208fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vaddws DoubleRegs:$src1, DoubleRegs:$src2),
209fe6060f1SDimitry Andric         (A2_vaddws DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
210fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vavgh DoubleRegs:$src1, DoubleRegs:$src2),
211fe6060f1SDimitry Andric         (A2_vavgh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
212fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vavghcr DoubleRegs:$src1, DoubleRegs:$src2),
213fe6060f1SDimitry Andric         (A2_vavghcr DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
214fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vavghr DoubleRegs:$src1, DoubleRegs:$src2),
215fe6060f1SDimitry Andric         (A2_vavghr DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
216fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vavgub DoubleRegs:$src1, DoubleRegs:$src2),
217fe6060f1SDimitry Andric         (A2_vavgub DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
218fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vavgubr DoubleRegs:$src1, DoubleRegs:$src2),
219fe6060f1SDimitry Andric         (A2_vavgubr DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
220fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vavguh DoubleRegs:$src1, DoubleRegs:$src2),
221fe6060f1SDimitry Andric         (A2_vavguh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
222fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vavguhr DoubleRegs:$src1, DoubleRegs:$src2),
223fe6060f1SDimitry Andric         (A2_vavguhr DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
224fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vavguw DoubleRegs:$src1, DoubleRegs:$src2),
225fe6060f1SDimitry Andric         (A2_vavguw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
226fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vavguwr DoubleRegs:$src1, DoubleRegs:$src2),
227fe6060f1SDimitry Andric         (A2_vavguwr DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
228fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vavgw DoubleRegs:$src1, DoubleRegs:$src2),
229fe6060f1SDimitry Andric         (A2_vavgw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
230fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vavgwcr DoubleRegs:$src1, DoubleRegs:$src2),
231fe6060f1SDimitry Andric         (A2_vavgwcr DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
232fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vavgwr DoubleRegs:$src1, DoubleRegs:$src2),
233fe6060f1SDimitry Andric         (A2_vavgwr DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
234fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vcmpbeq DoubleRegs:$src1, DoubleRegs:$src2),
235fe6060f1SDimitry Andric         (C2_tfrpr (A2_vcmpbeq DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
236fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vcmpbgtu DoubleRegs:$src1, DoubleRegs:$src2),
237fe6060f1SDimitry Andric         (C2_tfrpr (A2_vcmpbgtu DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
238fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vcmpheq DoubleRegs:$src1, DoubleRegs:$src2),
239fe6060f1SDimitry Andric         (C2_tfrpr (A2_vcmpheq DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
240fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vcmphgt DoubleRegs:$src1, DoubleRegs:$src2),
241fe6060f1SDimitry Andric         (C2_tfrpr (A2_vcmphgt DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
242fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vcmphgtu DoubleRegs:$src1, DoubleRegs:$src2),
243fe6060f1SDimitry Andric         (C2_tfrpr (A2_vcmphgtu DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
244fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vcmpweq DoubleRegs:$src1, DoubleRegs:$src2),
245fe6060f1SDimitry Andric         (C2_tfrpr (A2_vcmpweq DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
246fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vcmpwgt DoubleRegs:$src1, DoubleRegs:$src2),
247fe6060f1SDimitry Andric         (C2_tfrpr (A2_vcmpwgt DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
248fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vcmpwgtu DoubleRegs:$src1, DoubleRegs:$src2),
249fe6060f1SDimitry Andric         (C2_tfrpr (A2_vcmpwgtu DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
250fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vconj DoubleRegs:$src1),
251fe6060f1SDimitry Andric         (A2_vconj DoubleRegs:$src1)>, Requires<[HasV5]>;
252fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vmaxb DoubleRegs:$src1, DoubleRegs:$src2),
253fe6060f1SDimitry Andric         (A2_vmaxb DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
254fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vmaxh DoubleRegs:$src1, DoubleRegs:$src2),
255fe6060f1SDimitry Andric         (A2_vmaxh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
256fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vmaxub DoubleRegs:$src1, DoubleRegs:$src2),
257fe6060f1SDimitry Andric         (A2_vmaxub DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
258fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vmaxuh DoubleRegs:$src1, DoubleRegs:$src2),
259fe6060f1SDimitry Andric         (A2_vmaxuh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
260fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vmaxuw DoubleRegs:$src1, DoubleRegs:$src2),
261fe6060f1SDimitry Andric         (A2_vmaxuw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
262fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vmaxw DoubleRegs:$src1, DoubleRegs:$src2),
263fe6060f1SDimitry Andric         (A2_vmaxw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
264fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vminb DoubleRegs:$src1, DoubleRegs:$src2),
265fe6060f1SDimitry Andric         (A2_vminb DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
266fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vminh DoubleRegs:$src1, DoubleRegs:$src2),
267fe6060f1SDimitry Andric         (A2_vminh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
268fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vminub DoubleRegs:$src1, DoubleRegs:$src2),
269fe6060f1SDimitry Andric         (A2_vminub DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
270fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vminuh DoubleRegs:$src1, DoubleRegs:$src2),
271fe6060f1SDimitry Andric         (A2_vminuh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
272fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vminuw DoubleRegs:$src1, DoubleRegs:$src2),
273fe6060f1SDimitry Andric         (A2_vminuw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
274fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vminw DoubleRegs:$src1, DoubleRegs:$src2),
275fe6060f1SDimitry Andric         (A2_vminw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
276fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vnavgh DoubleRegs:$src1, DoubleRegs:$src2),
277fe6060f1SDimitry Andric         (A2_vnavgh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
278fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vnavghcr DoubleRegs:$src1, DoubleRegs:$src2),
279fe6060f1SDimitry Andric         (A2_vnavghcr DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
280fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vnavghr DoubleRegs:$src1, DoubleRegs:$src2),
281fe6060f1SDimitry Andric         (A2_vnavghr DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
282fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vnavgw DoubleRegs:$src1, DoubleRegs:$src2),
283fe6060f1SDimitry Andric         (A2_vnavgw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
284fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vnavgwcr DoubleRegs:$src1, DoubleRegs:$src2),
285fe6060f1SDimitry Andric         (A2_vnavgwcr DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
286fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vnavgwr DoubleRegs:$src1, DoubleRegs:$src2),
287fe6060f1SDimitry Andric         (A2_vnavgwr DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
288fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vraddub DoubleRegs:$src1, DoubleRegs:$src2),
289fe6060f1SDimitry Andric         (A2_vraddub DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
290fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vraddub_acc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
291fe6060f1SDimitry Andric         (A2_vraddub_acc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
292fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vrsadub DoubleRegs:$src1, DoubleRegs:$src2),
293fe6060f1SDimitry Andric         (A2_vrsadub DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
294fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vrsadub_acc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
295fe6060f1SDimitry Andric         (A2_vrsadub_acc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
296fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vsubb_map DoubleRegs:$src1, DoubleRegs:$src2),
297fe6060f1SDimitry Andric         (A2_vsubub DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
298fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vsubh DoubleRegs:$src1, DoubleRegs:$src2),
299fe6060f1SDimitry Andric         (A2_vsubh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
300fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vsubhs DoubleRegs:$src1, DoubleRegs:$src2),
301fe6060f1SDimitry Andric         (A2_vsubhs DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
302fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vsubub DoubleRegs:$src1, DoubleRegs:$src2),
303fe6060f1SDimitry Andric         (A2_vsubub DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
304fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vsububs DoubleRegs:$src1, DoubleRegs:$src2),
305fe6060f1SDimitry Andric         (A2_vsububs DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
306fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vsubuhs DoubleRegs:$src1, DoubleRegs:$src2),
307fe6060f1SDimitry Andric         (A2_vsubuhs DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
308fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vsubw DoubleRegs:$src1, DoubleRegs:$src2),
309fe6060f1SDimitry Andric         (A2_vsubw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
310fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_vsubws DoubleRegs:$src1, DoubleRegs:$src2),
311fe6060f1SDimitry Andric         (A2_vsubws DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
312fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_xor IntRegs:$src1, IntRegs:$src2),
313fe6060f1SDimitry Andric         (A2_xor IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
314fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_xorp DoubleRegs:$src1, DoubleRegs:$src2),
315fe6060f1SDimitry Andric         (A2_xorp DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
316fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_zxtb IntRegs:$src1),
317fe6060f1SDimitry Andric         (A2_zxtb IntRegs:$src1)>, Requires<[HasV5]>;
318fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A2_zxth IntRegs:$src1),
319fe6060f1SDimitry Andric         (A2_zxth IntRegs:$src1)>, Requires<[HasV5]>;
320fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_andn IntRegs:$src1, IntRegs:$src2),
321fe6060f1SDimitry Andric         (A4_andn IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
322fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_andnp DoubleRegs:$src1, DoubleRegs:$src2),
323fe6060f1SDimitry Andric         (A4_andnp DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
324fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_bitsplit IntRegs:$src1, IntRegs:$src2),
325fe6060f1SDimitry Andric         (A4_bitsplit IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
326fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_bitspliti IntRegs:$src1, u5_0ImmPred_timm:$src2),
327fe6060f1SDimitry Andric         (A4_bitspliti IntRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
328fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_boundscheck IntRegs:$src1, DoubleRegs:$src2),
329fe6060f1SDimitry Andric         (C2_tfrpr (A4_boundscheck IntRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
330fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_cmpbeq IntRegs:$src1, IntRegs:$src2),
331fe6060f1SDimitry Andric         (C2_tfrpr (A4_cmpbeq IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
332fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_cmpbeqi IntRegs:$src1, u8_0ImmPred_timm:$src2),
333fe6060f1SDimitry Andric         (C2_tfrpr (A4_cmpbeqi IntRegs:$src1, u8_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
334fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_cmpbgt IntRegs:$src1, IntRegs:$src2),
335fe6060f1SDimitry Andric         (C2_tfrpr (A4_cmpbgt IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
336fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_cmpbgti IntRegs:$src1, s8_0ImmPred_timm:$src2),
337fe6060f1SDimitry Andric         (C2_tfrpr (A4_cmpbgti IntRegs:$src1, s8_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
338fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_cmpbgtu IntRegs:$src1, IntRegs:$src2),
339fe6060f1SDimitry Andric         (C2_tfrpr (A4_cmpbgtu IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
340fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_cmpbgtui IntRegs:$src1, u32_0ImmPred_timm:$src2),
341fe6060f1SDimitry Andric         (C2_tfrpr (A4_cmpbgtui IntRegs:$src1, u32_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
342fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_cmpheq IntRegs:$src1, IntRegs:$src2),
343fe6060f1SDimitry Andric         (C2_tfrpr (A4_cmpheq IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
344fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_cmpheqi IntRegs:$src1, s32_0ImmPred_timm:$src2),
345fe6060f1SDimitry Andric         (C2_tfrpr (A4_cmpheqi IntRegs:$src1, s32_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
346fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_cmphgt IntRegs:$src1, IntRegs:$src2),
347fe6060f1SDimitry Andric         (C2_tfrpr (A4_cmphgt IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
348fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_cmphgti IntRegs:$src1, s32_0ImmPred_timm:$src2),
349fe6060f1SDimitry Andric         (C2_tfrpr (A4_cmphgti IntRegs:$src1, s32_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
350fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_cmphgtu IntRegs:$src1, IntRegs:$src2),
351fe6060f1SDimitry Andric         (C2_tfrpr (A4_cmphgtu IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
352fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_cmphgtui IntRegs:$src1, u32_0ImmPred_timm:$src2),
353fe6060f1SDimitry Andric         (C2_tfrpr (A4_cmphgtui IntRegs:$src1, u32_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
354fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_combineir s32_0ImmPred_timm:$src1, IntRegs:$src2),
355fe6060f1SDimitry Andric         (A4_combineir s32_0ImmPred_timm:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
356fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_combineri IntRegs:$src1, s32_0ImmPred_timm:$src2),
357fe6060f1SDimitry Andric         (A4_combineri IntRegs:$src1, s32_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
358fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_cround_ri IntRegs:$src1, u5_0ImmPred_timm:$src2),
359fe6060f1SDimitry Andric         (A4_cround_ri IntRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
360fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_cround_rr IntRegs:$src1, IntRegs:$src2),
361fe6060f1SDimitry Andric         (A4_cround_rr IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
362fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_modwrapu IntRegs:$src1, IntRegs:$src2),
363fe6060f1SDimitry Andric         (A4_modwrapu IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
364fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_orn IntRegs:$src1, IntRegs:$src2),
365fe6060f1SDimitry Andric         (A4_orn IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
366fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_ornp DoubleRegs:$src1, DoubleRegs:$src2),
367fe6060f1SDimitry Andric         (A4_ornp DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
3680b57cec5SDimitry Andricdef: Pat<(int_hexagon_A4_rcmpeq IntRegs:$src1, IntRegs:$src2),
3690b57cec5SDimitry Andric         (A4_rcmpeq IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
370fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_rcmpeqi IntRegs:$src1, s32_0ImmPred_timm:$src2),
371fe6060f1SDimitry Andric         (A4_rcmpeqi IntRegs:$src1, s32_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
3720b57cec5SDimitry Andricdef: Pat<(int_hexagon_A4_rcmpneq IntRegs:$src1, IntRegs:$src2),
3730b57cec5SDimitry Andric         (A4_rcmpneq IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
374fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_rcmpneqi IntRegs:$src1, s32_0ImmPred_timm:$src2),
375fe6060f1SDimitry Andric         (A4_rcmpneqi IntRegs:$src1, s32_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
376fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_round_ri IntRegs:$src1, u5_0ImmPred_timm:$src2),
377fe6060f1SDimitry Andric         (A4_round_ri IntRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
378fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_round_ri_sat IntRegs:$src1, u5_0ImmPred_timm:$src2),
379fe6060f1SDimitry Andric         (A4_round_ri_sat IntRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
380fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_round_rr IntRegs:$src1, IntRegs:$src2),
381fe6060f1SDimitry Andric         (A4_round_rr IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
382fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_round_rr_sat IntRegs:$src1, IntRegs:$src2),
383fe6060f1SDimitry Andric         (A4_round_rr_sat IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
384fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_tlbmatch DoubleRegs:$src1, IntRegs:$src2),
385fe6060f1SDimitry Andric         (C2_tfrpr (A4_tlbmatch DoubleRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
386fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vcmpbeq_any DoubleRegs:$src1, DoubleRegs:$src2),
387fe6060f1SDimitry Andric         (C2_tfrpr (A4_vcmpbeq_any DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
388fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vcmpbeqi DoubleRegs:$src1, u8_0ImmPred_timm:$src2),
389fe6060f1SDimitry Andric         (C2_tfrpr (A4_vcmpbeqi DoubleRegs:$src1, u8_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
390fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vcmpbgt DoubleRegs:$src1, DoubleRegs:$src2),
391fe6060f1SDimitry Andric         (C2_tfrpr (A4_vcmpbgt DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
392fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vcmpbgti DoubleRegs:$src1, s8_0ImmPred_timm:$src2),
393fe6060f1SDimitry Andric         (C2_tfrpr (A4_vcmpbgti DoubleRegs:$src1, s8_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
394fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vcmpbgtui DoubleRegs:$src1, u7_0ImmPred_timm:$src2),
395fe6060f1SDimitry Andric         (C2_tfrpr (A4_vcmpbgtui DoubleRegs:$src1, u7_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
396fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vcmpheqi DoubleRegs:$src1, s8_0ImmPred_timm:$src2),
397fe6060f1SDimitry Andric         (C2_tfrpr (A4_vcmpheqi DoubleRegs:$src1, s8_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
398fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vcmphgti DoubleRegs:$src1, s8_0ImmPred_timm:$src2),
399fe6060f1SDimitry Andric         (C2_tfrpr (A4_vcmphgti DoubleRegs:$src1, s8_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
400fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vcmphgtui DoubleRegs:$src1, u7_0ImmPred_timm:$src2),
401fe6060f1SDimitry Andric         (C2_tfrpr (A4_vcmphgtui DoubleRegs:$src1, u7_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
402fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vcmpweqi DoubleRegs:$src1, s8_0ImmPred_timm:$src2),
403fe6060f1SDimitry Andric         (C2_tfrpr (A4_vcmpweqi DoubleRegs:$src1, s8_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
404fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vcmpwgti DoubleRegs:$src1, s8_0ImmPred_timm:$src2),
405fe6060f1SDimitry Andric         (C2_tfrpr (A4_vcmpwgti DoubleRegs:$src1, s8_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
406fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vcmpwgtui DoubleRegs:$src1, u7_0ImmPred_timm:$src2),
407fe6060f1SDimitry Andric         (C2_tfrpr (A4_vcmpwgtui DoubleRegs:$src1, u7_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
408fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vrmaxh DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
409fe6060f1SDimitry Andric         (A4_vrmaxh DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
410fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vrmaxuh DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
411fe6060f1SDimitry Andric         (A4_vrmaxuh DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
412fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vrmaxuw DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
413fe6060f1SDimitry Andric         (A4_vrmaxuw DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
414fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vrmaxw DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
415fe6060f1SDimitry Andric         (A4_vrmaxw DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
416fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vrminh DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
417fe6060f1SDimitry Andric         (A4_vrminh DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
418fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vrminuh DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
419fe6060f1SDimitry Andric         (A4_vrminuh DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
420fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vrminuw DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
421fe6060f1SDimitry Andric         (A4_vrminuw DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
422fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A4_vrminw DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
423fe6060f1SDimitry Andric         (A4_vrminw DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
424fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A5_vaddhubs DoubleRegs:$src1, DoubleRegs:$src2),
425fe6060f1SDimitry Andric         (A5_vaddhubs DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
4265ffd83dbSDimitry Andricdef: Pat<(int_hexagon_C2_all8 PredRegs:$src1),
4275ffd83dbSDimitry Andric         (C2_tfrpr (C2_all8 (C2_tfrrp PredRegs:$src1)))>, Requires<[HasV5]>;
428fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_and PredRegs:$src1, PredRegs:$src2),
429fe6060f1SDimitry Andric         (C2_tfrpr (C2_and (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2)))>, Requires<[HasV5]>;
430fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_andn PredRegs:$src1, PredRegs:$src2),
431fe6060f1SDimitry Andric         (C2_tfrpr (C2_andn (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2)))>, Requires<[HasV5]>;
432fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_any8 PredRegs:$src1),
433fe6060f1SDimitry Andric         (C2_tfrpr (C2_any8 (C2_tfrrp PredRegs:$src1)))>, Requires<[HasV5]>;
434fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_bitsclr IntRegs:$src1, IntRegs:$src2),
435fe6060f1SDimitry Andric         (C2_tfrpr (C2_bitsclr IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
436fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_bitsclri IntRegs:$src1, u6_0ImmPred_timm:$src2),
437fe6060f1SDimitry Andric         (C2_tfrpr (C2_bitsclri IntRegs:$src1, u6_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
438fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_bitsset IntRegs:$src1, IntRegs:$src2),
439fe6060f1SDimitry Andric         (C2_tfrpr (C2_bitsset IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
440fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_cmpeq IntRegs:$src1, IntRegs:$src2),
441fe6060f1SDimitry Andric         (C2_tfrpr (C2_cmpeq IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
442fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_cmpeqi IntRegs:$src1, s32_0ImmPred_timm:$src2),
443fe6060f1SDimitry Andric         (C2_tfrpr (C2_cmpeqi IntRegs:$src1, s32_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
444fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_cmpeqp DoubleRegs:$src1, DoubleRegs:$src2),
445fe6060f1SDimitry Andric         (C2_tfrpr (C2_cmpeqp DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
446fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_cmpgt IntRegs:$src1, IntRegs:$src2),
447fe6060f1SDimitry Andric         (C2_tfrpr (C2_cmpgt IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
448fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_cmpgti IntRegs:$src1, s32_0ImmPred_timm:$src2),
449fe6060f1SDimitry Andric         (C2_tfrpr (C2_cmpgti IntRegs:$src1, s32_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
450fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_cmpgtp DoubleRegs:$src1, DoubleRegs:$src2),
451fe6060f1SDimitry Andric         (C2_tfrpr (C2_cmpgtp DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
452fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_cmpgtu IntRegs:$src1, IntRegs:$src2),
453fe6060f1SDimitry Andric         (C2_tfrpr (C2_cmpgtu IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
454fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_cmpgtui IntRegs:$src1, u32_0ImmPred_timm:$src2),
455fe6060f1SDimitry Andric         (C2_tfrpr (C2_cmpgtui IntRegs:$src1, u32_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
456fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_cmpgtup DoubleRegs:$src1, DoubleRegs:$src2),
457fe6060f1SDimitry Andric         (C2_tfrpr (C2_cmpgtup DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
458fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_mask PredRegs:$src1),
459fe6060f1SDimitry Andric         (C2_mask (C2_tfrrp PredRegs:$src1))>, Requires<[HasV5]>;
4605ffd83dbSDimitry Andricdef: Pat<(int_hexagon_C2_mux PredRegs:$src1, IntRegs:$src2, IntRegs:$src3),
4615ffd83dbSDimitry Andric         (C2_mux (C2_tfrrp PredRegs:$src1), IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
4625ffd83dbSDimitry Andricdef: Pat<(int_hexagon_C2_muxii PredRegs:$src1, s32_0ImmPred_timm:$src2, s8_0ImmPred_timm:$src3),
4635ffd83dbSDimitry Andric         (C2_muxii (C2_tfrrp PredRegs:$src1), s32_0ImmPred_timm:$src2, s8_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
4645ffd83dbSDimitry Andricdef: Pat<(int_hexagon_C2_muxir PredRegs:$src1, IntRegs:$src2, s32_0ImmPred_timm:$src3),
4655ffd83dbSDimitry Andric         (C2_muxir (C2_tfrrp PredRegs:$src1), IntRegs:$src2, s32_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
4665ffd83dbSDimitry Andricdef: Pat<(int_hexagon_C2_muxri PredRegs:$src1, s32_0ImmPred_timm:$src2, IntRegs:$src3),
4675ffd83dbSDimitry Andric         (C2_muxri (C2_tfrrp PredRegs:$src1), s32_0ImmPred_timm:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
468fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_not PredRegs:$src1),
469fe6060f1SDimitry Andric         (C2_tfrpr (C2_not (C2_tfrrp PredRegs:$src1)))>, Requires<[HasV5]>;
470fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_or PredRegs:$src1, PredRegs:$src2),
471fe6060f1SDimitry Andric         (C2_tfrpr (C2_or (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2)))>, Requires<[HasV5]>;
472fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_orn PredRegs:$src1, PredRegs:$src2),
473fe6060f1SDimitry Andric         (C2_tfrpr (C2_orn (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2)))>, Requires<[HasV5]>;
474fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_pxfer_map PredRegs:$src1),
475fe6060f1SDimitry Andric         (C2_tfrpr (C2_pxfer_map (C2_tfrrp PredRegs:$src1)))>, Requires<[HasV5]>;
4765ffd83dbSDimitry Andricdef: Pat<(int_hexagon_C2_tfrpr PredRegs:$src1),
4775ffd83dbSDimitry Andric         (C2_tfrpr (C2_tfrrp PredRegs:$src1))>, Requires<[HasV5]>;
4785ffd83dbSDimitry Andricdef: Pat<(int_hexagon_C2_tfrrp IntRegs:$src1),
4795ffd83dbSDimitry Andric         (C2_tfrpr (C2_tfrrp IntRegs:$src1))>, Requires<[HasV5]>;
480fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_vitpack PredRegs:$src1, PredRegs:$src2),
481fe6060f1SDimitry Andric         (C2_vitpack (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2))>, Requires<[HasV5]>;
482fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_vmux PredRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
483fe6060f1SDimitry Andric         (C2_vmux (C2_tfrrp PredRegs:$src1), DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
484fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C2_xor PredRegs:$src1, PredRegs:$src2),
485fe6060f1SDimitry Andric         (C2_tfrpr (C2_xor (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2)))>, Requires<[HasV5]>;
486fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_and_and PredRegs:$src1, PredRegs:$src2, PredRegs:$src3),
487fe6060f1SDimitry Andric         (C2_tfrpr (C4_and_and (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2), (C2_tfrrp PredRegs:$src3)))>, Requires<[HasV5]>;
488fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_and_andn PredRegs:$src1, PredRegs:$src2, PredRegs:$src3),
489fe6060f1SDimitry Andric         (C2_tfrpr (C4_and_andn (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2), (C2_tfrrp PredRegs:$src3)))>, Requires<[HasV5]>;
490fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_and_or PredRegs:$src1, PredRegs:$src2, PredRegs:$src3),
491fe6060f1SDimitry Andric         (C2_tfrpr (C4_and_or (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2), (C2_tfrrp PredRegs:$src3)))>, Requires<[HasV5]>;
492fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_and_orn PredRegs:$src1, PredRegs:$src2, PredRegs:$src3),
493fe6060f1SDimitry Andric         (C2_tfrpr (C4_and_orn (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2), (C2_tfrrp PredRegs:$src3)))>, Requires<[HasV5]>;
494fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_cmplte IntRegs:$src1, IntRegs:$src2),
495fe6060f1SDimitry Andric         (C2_tfrpr (C4_cmplte IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
496fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_cmpltei IntRegs:$src1, s32_0ImmPred_timm:$src2),
497fe6060f1SDimitry Andric         (C2_tfrpr (C4_cmpltei IntRegs:$src1, s32_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
498fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_cmplteu IntRegs:$src1, IntRegs:$src2),
499fe6060f1SDimitry Andric         (C2_tfrpr (C4_cmplteu IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
500fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_cmplteui IntRegs:$src1, u32_0ImmPred_timm:$src2),
501fe6060f1SDimitry Andric         (C2_tfrpr (C4_cmplteui IntRegs:$src1, u32_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
502fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_cmpneq IntRegs:$src1, IntRegs:$src2),
503fe6060f1SDimitry Andric         (C2_tfrpr (C4_cmpneq IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
504fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_cmpneqi IntRegs:$src1, s32_0ImmPred_timm:$src2),
505fe6060f1SDimitry Andric         (C2_tfrpr (C4_cmpneqi IntRegs:$src1, s32_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
5065ffd83dbSDimitry Andricdef: Pat<(int_hexagon_C4_fastcorner9 PredRegs:$src1, PredRegs:$src2),
5075ffd83dbSDimitry Andric         (C2_tfrpr (C4_fastcorner9 (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2)))>, Requires<[HasV5]>;
5085ffd83dbSDimitry Andricdef: Pat<(int_hexagon_C4_fastcorner9_not PredRegs:$src1, PredRegs:$src2),
5095ffd83dbSDimitry Andric         (C2_tfrpr (C4_fastcorner9_not (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2)))>, Requires<[HasV5]>;
510fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_nbitsclr IntRegs:$src1, IntRegs:$src2),
511fe6060f1SDimitry Andric         (C2_tfrpr (C4_nbitsclr IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
512fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_nbitsclri IntRegs:$src1, u6_0ImmPred_timm:$src2),
513fe6060f1SDimitry Andric         (C2_tfrpr (C4_nbitsclri IntRegs:$src1, u6_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
514fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_nbitsset IntRegs:$src1, IntRegs:$src2),
515fe6060f1SDimitry Andric         (C2_tfrpr (C4_nbitsset IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
516fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_or_and PredRegs:$src1, PredRegs:$src2, PredRegs:$src3),
517fe6060f1SDimitry Andric         (C2_tfrpr (C4_or_and (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2), (C2_tfrrp PredRegs:$src3)))>, Requires<[HasV5]>;
518fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_or_andn PredRegs:$src1, PredRegs:$src2, PredRegs:$src3),
519fe6060f1SDimitry Andric         (C2_tfrpr (C4_or_andn (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2), (C2_tfrrp PredRegs:$src3)))>, Requires<[HasV5]>;
520fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_or_or PredRegs:$src1, PredRegs:$src2, PredRegs:$src3),
521fe6060f1SDimitry Andric         (C2_tfrpr (C4_or_or (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2), (C2_tfrrp PredRegs:$src3)))>, Requires<[HasV5]>;
522fe6060f1SDimitry Andricdef: Pat<(int_hexagon_C4_or_orn PredRegs:$src1, PredRegs:$src2, PredRegs:$src3),
523fe6060f1SDimitry Andric         (C2_tfrpr (C4_or_orn (C2_tfrrp PredRegs:$src1), (C2_tfrrp PredRegs:$src2), (C2_tfrrp PredRegs:$src3)))>, Requires<[HasV5]>;
524fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_d2df DoubleRegs:$src1),
525fe6060f1SDimitry Andric         (F2_conv_d2df DoubleRegs:$src1)>, Requires<[HasV5]>;
526fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_d2sf DoubleRegs:$src1),
527fe6060f1SDimitry Andric         (F2_conv_d2sf DoubleRegs:$src1)>, Requires<[HasV5]>;
528fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_df2d DoubleRegs:$src1),
529fe6060f1SDimitry Andric         (F2_conv_df2d DoubleRegs:$src1)>, Requires<[HasV5]>;
530fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_df2d_chop DoubleRegs:$src1),
531fe6060f1SDimitry Andric         (F2_conv_df2d_chop DoubleRegs:$src1)>, Requires<[HasV5]>;
532fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_df2sf DoubleRegs:$src1),
533fe6060f1SDimitry Andric         (F2_conv_df2sf DoubleRegs:$src1)>, Requires<[HasV5]>;
534fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_df2ud DoubleRegs:$src1),
535fe6060f1SDimitry Andric         (F2_conv_df2ud DoubleRegs:$src1)>, Requires<[HasV5]>;
536fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_df2ud_chop DoubleRegs:$src1),
537fe6060f1SDimitry Andric         (F2_conv_df2ud_chop DoubleRegs:$src1)>, Requires<[HasV5]>;
538fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_df2uw DoubleRegs:$src1),
539fe6060f1SDimitry Andric         (F2_conv_df2uw DoubleRegs:$src1)>, Requires<[HasV5]>;
540fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_df2uw_chop DoubleRegs:$src1),
541fe6060f1SDimitry Andric         (F2_conv_df2uw_chop DoubleRegs:$src1)>, Requires<[HasV5]>;
542fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_df2w DoubleRegs:$src1),
543fe6060f1SDimitry Andric         (F2_conv_df2w DoubleRegs:$src1)>, Requires<[HasV5]>;
544fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_df2w_chop DoubleRegs:$src1),
545fe6060f1SDimitry Andric         (F2_conv_df2w_chop DoubleRegs:$src1)>, Requires<[HasV5]>;
546fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_sf2d IntRegs:$src1),
547fe6060f1SDimitry Andric         (F2_conv_sf2d IntRegs:$src1)>, Requires<[HasV5]>;
548fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_sf2d_chop IntRegs:$src1),
549fe6060f1SDimitry Andric         (F2_conv_sf2d_chop IntRegs:$src1)>, Requires<[HasV5]>;
550fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_sf2df IntRegs:$src1),
551fe6060f1SDimitry Andric         (F2_conv_sf2df IntRegs:$src1)>, Requires<[HasV5]>;
552fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_sf2ud IntRegs:$src1),
553fe6060f1SDimitry Andric         (F2_conv_sf2ud IntRegs:$src1)>, Requires<[HasV5]>;
554fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_sf2ud_chop IntRegs:$src1),
555fe6060f1SDimitry Andric         (F2_conv_sf2ud_chop IntRegs:$src1)>, Requires<[HasV5]>;
556fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_sf2uw IntRegs:$src1),
557fe6060f1SDimitry Andric         (F2_conv_sf2uw IntRegs:$src1)>, Requires<[HasV5]>;
558fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_sf2uw_chop IntRegs:$src1),
559fe6060f1SDimitry Andric         (F2_conv_sf2uw_chop IntRegs:$src1)>, Requires<[HasV5]>;
560fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_sf2w IntRegs:$src1),
561fe6060f1SDimitry Andric         (F2_conv_sf2w IntRegs:$src1)>, Requires<[HasV5]>;
562fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_sf2w_chop IntRegs:$src1),
563fe6060f1SDimitry Andric         (F2_conv_sf2w_chop IntRegs:$src1)>, Requires<[HasV5]>;
564fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_ud2df DoubleRegs:$src1),
565fe6060f1SDimitry Andric         (F2_conv_ud2df DoubleRegs:$src1)>, Requires<[HasV5]>;
566fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_ud2sf DoubleRegs:$src1),
567fe6060f1SDimitry Andric         (F2_conv_ud2sf DoubleRegs:$src1)>, Requires<[HasV5]>;
568fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_uw2df IntRegs:$src1),
569fe6060f1SDimitry Andric         (F2_conv_uw2df IntRegs:$src1)>, Requires<[HasV5]>;
570fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_uw2sf IntRegs:$src1),
571fe6060f1SDimitry Andric         (F2_conv_uw2sf IntRegs:$src1)>, Requires<[HasV5]>;
572fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_w2df IntRegs:$src1),
573fe6060f1SDimitry Andric         (F2_conv_w2df IntRegs:$src1)>, Requires<[HasV5]>;
574fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_conv_w2sf IntRegs:$src1),
575fe6060f1SDimitry Andric         (F2_conv_w2sf IntRegs:$src1)>, Requires<[HasV5]>;
576fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_dfclass DoubleRegs:$src1, u5_0ImmPred_timm:$src2),
577fe6060f1SDimitry Andric         (C2_tfrpr (F2_dfclass DoubleRegs:$src1, u5_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
578fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_dfcmpeq DoubleRegs:$src1, DoubleRegs:$src2),
579fe6060f1SDimitry Andric         (C2_tfrpr (F2_dfcmpeq DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
580fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_dfcmpge DoubleRegs:$src1, DoubleRegs:$src2),
581fe6060f1SDimitry Andric         (C2_tfrpr (F2_dfcmpge DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
582fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_dfcmpgt DoubleRegs:$src1, DoubleRegs:$src2),
583fe6060f1SDimitry Andric         (C2_tfrpr (F2_dfcmpgt DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
584fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_dfcmpuo DoubleRegs:$src1, DoubleRegs:$src2),
585fe6060f1SDimitry Andric         (C2_tfrpr (F2_dfcmpuo DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV5]>;
586fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_dfimm_n u10_0ImmPred_timm:$src1),
587fe6060f1SDimitry Andric         (F2_dfimm_n u10_0ImmPred_timm:$src1)>, Requires<[HasV5]>;
588fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_dfimm_p u10_0ImmPred_timm:$src1),
589fe6060f1SDimitry Andric         (F2_dfimm_p u10_0ImmPred_timm:$src1)>, Requires<[HasV5]>;
590fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sfadd IntRegs:$src1, IntRegs:$src2),
591fe6060f1SDimitry Andric         (F2_sfadd IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
592fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sfclass IntRegs:$src1, u5_0ImmPred_timm:$src2),
593fe6060f1SDimitry Andric         (C2_tfrpr (F2_sfclass IntRegs:$src1, u5_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
594fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sfcmpeq IntRegs:$src1, IntRegs:$src2),
595fe6060f1SDimitry Andric         (C2_tfrpr (F2_sfcmpeq IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
596fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sfcmpge IntRegs:$src1, IntRegs:$src2),
597fe6060f1SDimitry Andric         (C2_tfrpr (F2_sfcmpge IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
598fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sfcmpgt IntRegs:$src1, IntRegs:$src2),
599fe6060f1SDimitry Andric         (C2_tfrpr (F2_sfcmpgt IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
600fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sfcmpuo IntRegs:$src1, IntRegs:$src2),
601fe6060f1SDimitry Andric         (C2_tfrpr (F2_sfcmpuo IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
602fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sffixupd IntRegs:$src1, IntRegs:$src2),
603fe6060f1SDimitry Andric         (F2_sffixupd IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
604fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sffixupn IntRegs:$src1, IntRegs:$src2),
605fe6060f1SDimitry Andric         (F2_sffixupn IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
606fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sffixupr IntRegs:$src1),
607fe6060f1SDimitry Andric         (F2_sffixupr IntRegs:$src1)>, Requires<[HasV5]>;
608fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sffma IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
609fe6060f1SDimitry Andric         (F2_sffma IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
610fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sffma_lib IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
611fe6060f1SDimitry Andric         (F2_sffma_lib IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
612fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sffma_sc IntRegs:$src1, IntRegs:$src2, IntRegs:$src3, PredRegs:$src4),
613fe6060f1SDimitry Andric         (F2_sffma_sc IntRegs:$src1, IntRegs:$src2, IntRegs:$src3, (C2_tfrrp PredRegs:$src4))>, Requires<[HasV5]>;
614fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sffms IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
615fe6060f1SDimitry Andric         (F2_sffms IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
616fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sffms_lib IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
617fe6060f1SDimitry Andric         (F2_sffms_lib IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
618fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sfimm_n u10_0ImmPred_timm:$src1),
619fe6060f1SDimitry Andric         (F2_sfimm_n u10_0ImmPred_timm:$src1)>, Requires<[HasV5]>;
620fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sfimm_p u10_0ImmPred_timm:$src1),
621fe6060f1SDimitry Andric         (F2_sfimm_p u10_0ImmPred_timm:$src1)>, Requires<[HasV5]>;
622fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sfmax IntRegs:$src1, IntRegs:$src2),
623fe6060f1SDimitry Andric         (F2_sfmax IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
624fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sfmin IntRegs:$src1, IntRegs:$src2),
625fe6060f1SDimitry Andric         (F2_sfmin IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
626fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sfmpy IntRegs:$src1, IntRegs:$src2),
627fe6060f1SDimitry Andric         (F2_sfmpy IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
628fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_sfsub IntRegs:$src1, IntRegs:$src2),
629fe6060f1SDimitry Andric         (F2_sfsub IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
6305ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_acci IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
6315ffd83dbSDimitry Andric         (M2_acci IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
6325ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_accii IntRegs:$src1, IntRegs:$src2, s32_0ImmPred_timm:$src3),
6335ffd83dbSDimitry Andric         (M2_accii IntRegs:$src1, IntRegs:$src2, s32_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
634fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_cmaci_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
635fe6060f1SDimitry Andric         (M2_cmaci_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
636fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_cmacr_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
637fe6060f1SDimitry Andric         (M2_cmacr_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
6385ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_cmacs_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
6395ffd83dbSDimitry Andric         (M2_cmacs_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
6405ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_cmacs_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
6415ffd83dbSDimitry Andric         (M2_cmacs_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
6425ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_cmacsc_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
6435ffd83dbSDimitry Andric         (M2_cmacsc_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
6445ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_cmacsc_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
6455ffd83dbSDimitry Andric         (M2_cmacsc_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
646fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_cmpyi_s0 IntRegs:$src1, IntRegs:$src2),
647fe6060f1SDimitry Andric         (M2_cmpyi_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
648fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_cmpyr_s0 IntRegs:$src1, IntRegs:$src2),
649fe6060f1SDimitry Andric         (M2_cmpyr_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
650fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_cmpyrs_s0 IntRegs:$src1, IntRegs:$src2),
651fe6060f1SDimitry Andric         (M2_cmpyrs_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
652fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_cmpyrs_s1 IntRegs:$src1, IntRegs:$src2),
653fe6060f1SDimitry Andric         (M2_cmpyrs_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
654fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_cmpyrsc_s0 IntRegs:$src1, IntRegs:$src2),
655fe6060f1SDimitry Andric         (M2_cmpyrsc_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
656fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_cmpyrsc_s1 IntRegs:$src1, IntRegs:$src2),
657fe6060f1SDimitry Andric         (M2_cmpyrsc_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
6585ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_cmpys_s0 IntRegs:$src1, IntRegs:$src2),
6595ffd83dbSDimitry Andric         (M2_cmpys_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
6605ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_cmpys_s1 IntRegs:$src1, IntRegs:$src2),
6615ffd83dbSDimitry Andric         (M2_cmpys_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
6625ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_cmpysc_s0 IntRegs:$src1, IntRegs:$src2),
6635ffd83dbSDimitry Andric         (M2_cmpysc_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
6645ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_cmpysc_s1 IntRegs:$src1, IntRegs:$src2),
6655ffd83dbSDimitry Andric         (M2_cmpysc_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
6665ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_cnacs_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
6675ffd83dbSDimitry Andric         (M2_cnacs_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
6685ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_cnacs_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
6695ffd83dbSDimitry Andric         (M2_cnacs_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
6705ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_cnacsc_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
6715ffd83dbSDimitry Andric         (M2_cnacsc_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
6725ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_cnacsc_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
6735ffd83dbSDimitry Andric         (M2_cnacsc_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
674fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_dpmpyss_acc_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
675fe6060f1SDimitry Andric         (M2_dpmpyss_acc_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
676fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_dpmpyss_nac_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
677fe6060f1SDimitry Andric         (M2_dpmpyss_nac_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
678fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_dpmpyss_rnd_s0 IntRegs:$src1, IntRegs:$src2),
679fe6060f1SDimitry Andric         (M2_dpmpyss_rnd_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
680fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_dpmpyss_s0 IntRegs:$src1, IntRegs:$src2),
681fe6060f1SDimitry Andric         (M2_dpmpyss_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
682fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_dpmpyuu_acc_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
683fe6060f1SDimitry Andric         (M2_dpmpyuu_acc_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
684fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_dpmpyuu_nac_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
685fe6060f1SDimitry Andric         (M2_dpmpyuu_nac_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
686fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_dpmpyuu_s0 IntRegs:$src1, IntRegs:$src2),
687fe6060f1SDimitry Andric         (M2_dpmpyuu_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
688fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_hmmpyh_rs1 IntRegs:$src1, IntRegs:$src2),
689fe6060f1SDimitry Andric         (M2_hmmpyh_rs1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
690fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_hmmpyh_s1 IntRegs:$src1, IntRegs:$src2),
691fe6060f1SDimitry Andric         (M2_hmmpyh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
692fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_hmmpyl_rs1 IntRegs:$src1, IntRegs:$src2),
693fe6060f1SDimitry Andric         (M2_hmmpyl_rs1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
694fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_hmmpyl_s1 IntRegs:$src1, IntRegs:$src2),
695fe6060f1SDimitry Andric         (M2_hmmpyl_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
696fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_maci IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
697fe6060f1SDimitry Andric         (M2_maci IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
698fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_macsin IntRegs:$src1, IntRegs:$src2, u32_0ImmPred_timm:$src3),
699fe6060f1SDimitry Andric         (M2_macsin IntRegs:$src1, IntRegs:$src2, u32_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
700fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_macsip IntRegs:$src1, IntRegs:$src2, u32_0ImmPred_timm:$src3),
701fe6060f1SDimitry Andric         (M2_macsip IntRegs:$src1, IntRegs:$src2, u32_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
7025ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_mmachs_rs0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
7035ffd83dbSDimitry Andric         (M2_mmachs_rs0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
7045ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_mmachs_rs1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
7055ffd83dbSDimitry Andric         (M2_mmachs_rs1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
706fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmachs_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
707fe6060f1SDimitry Andric         (M2_mmachs_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
708fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmachs_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
709fe6060f1SDimitry Andric         (M2_mmachs_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
710fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmacls_rs0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
711fe6060f1SDimitry Andric         (M2_mmacls_rs0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
712fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmacls_rs1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
713fe6060f1SDimitry Andric         (M2_mmacls_rs1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
714fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmacls_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
715fe6060f1SDimitry Andric         (M2_mmacls_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
716fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmacls_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
717fe6060f1SDimitry Andric         (M2_mmacls_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
7185ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_mmacuhs_rs0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
7195ffd83dbSDimitry Andric         (M2_mmacuhs_rs0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
7205ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_mmacuhs_rs1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
7215ffd83dbSDimitry Andric         (M2_mmacuhs_rs1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
722fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmacuhs_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
723fe6060f1SDimitry Andric         (M2_mmacuhs_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
724fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmacuhs_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
725fe6060f1SDimitry Andric         (M2_mmacuhs_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
726fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmaculs_rs0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
727fe6060f1SDimitry Andric         (M2_mmaculs_rs0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
728fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmaculs_rs1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
729fe6060f1SDimitry Andric         (M2_mmaculs_rs1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
730fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmaculs_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
731fe6060f1SDimitry Andric         (M2_mmaculs_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
732fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmaculs_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
733fe6060f1SDimitry Andric         (M2_mmaculs_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
734fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmpyh_rs0 DoubleRegs:$src1, DoubleRegs:$src2),
735fe6060f1SDimitry Andric         (M2_mmpyh_rs0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
736fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmpyh_rs1 DoubleRegs:$src1, DoubleRegs:$src2),
737fe6060f1SDimitry Andric         (M2_mmpyh_rs1 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
738fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmpyh_s0 DoubleRegs:$src1, DoubleRegs:$src2),
739fe6060f1SDimitry Andric         (M2_mmpyh_s0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
740fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmpyh_s1 DoubleRegs:$src1, DoubleRegs:$src2),
741fe6060f1SDimitry Andric         (M2_mmpyh_s1 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
742fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmpyl_rs0 DoubleRegs:$src1, DoubleRegs:$src2),
743fe6060f1SDimitry Andric         (M2_mmpyl_rs0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
744fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmpyl_rs1 DoubleRegs:$src1, DoubleRegs:$src2),
745fe6060f1SDimitry Andric         (M2_mmpyl_rs1 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
746fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmpyl_s0 DoubleRegs:$src1, DoubleRegs:$src2),
747fe6060f1SDimitry Andric         (M2_mmpyl_s0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
748fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmpyl_s1 DoubleRegs:$src1, DoubleRegs:$src2),
749fe6060f1SDimitry Andric         (M2_mmpyl_s1 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
7505ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_mmpyuh_rs0 DoubleRegs:$src1, DoubleRegs:$src2),
7515ffd83dbSDimitry Andric         (M2_mmpyuh_rs0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
7525ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_mmpyuh_rs1 DoubleRegs:$src1, DoubleRegs:$src2),
7535ffd83dbSDimitry Andric         (M2_mmpyuh_rs1 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
754fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmpyuh_s0 DoubleRegs:$src1, DoubleRegs:$src2),
755fe6060f1SDimitry Andric         (M2_mmpyuh_s0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
756fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmpyuh_s1 DoubleRegs:$src1, DoubleRegs:$src2),
757fe6060f1SDimitry Andric         (M2_mmpyuh_s1 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
758fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmpyul_rs0 DoubleRegs:$src1, DoubleRegs:$src2),
759fe6060f1SDimitry Andric         (M2_mmpyul_rs0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
760fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmpyul_rs1 DoubleRegs:$src1, DoubleRegs:$src2),
761fe6060f1SDimitry Andric         (M2_mmpyul_rs1 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
762fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmpyul_s0 DoubleRegs:$src1, DoubleRegs:$src2),
763fe6060f1SDimitry Andric         (M2_mmpyul_s0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
764fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mmpyul_s1 DoubleRegs:$src1, DoubleRegs:$src2),
765fe6060f1SDimitry Andric         (M2_mmpyul_s1 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
766fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_hh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
767fe6060f1SDimitry Andric         (M2_mpy_acc_hh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
768fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_hh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
769fe6060f1SDimitry Andric         (M2_mpy_acc_hh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
770fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_hl_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
771fe6060f1SDimitry Andric         (M2_mpy_acc_hl_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
772fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_hl_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
773fe6060f1SDimitry Andric         (M2_mpy_acc_hl_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
774fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_lh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
775fe6060f1SDimitry Andric         (M2_mpy_acc_lh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
776fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_lh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
777fe6060f1SDimitry Andric         (M2_mpy_acc_lh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
778fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_ll_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
779fe6060f1SDimitry Andric         (M2_mpy_acc_ll_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
780fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_ll_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
781fe6060f1SDimitry Andric         (M2_mpy_acc_ll_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
782fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_sat_hh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
783fe6060f1SDimitry Andric         (M2_mpy_acc_sat_hh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
784fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_sat_hh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
785fe6060f1SDimitry Andric         (M2_mpy_acc_sat_hh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
786fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_sat_hl_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
787fe6060f1SDimitry Andric         (M2_mpy_acc_sat_hl_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
788fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_sat_hl_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
789fe6060f1SDimitry Andric         (M2_mpy_acc_sat_hl_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
790fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_sat_lh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
791fe6060f1SDimitry Andric         (M2_mpy_acc_sat_lh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
792fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_sat_lh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
793fe6060f1SDimitry Andric         (M2_mpy_acc_sat_lh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
794fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_sat_ll_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
795fe6060f1SDimitry Andric         (M2_mpy_acc_sat_ll_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
796fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_acc_sat_ll_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
797fe6060f1SDimitry Andric         (M2_mpy_acc_sat_ll_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
798fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_hh_s0 IntRegs:$src1, IntRegs:$src2),
799fe6060f1SDimitry Andric         (M2_mpy_hh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
800fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_hh_s1 IntRegs:$src1, IntRegs:$src2),
801fe6060f1SDimitry Andric         (M2_mpy_hh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
802fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_hl_s0 IntRegs:$src1, IntRegs:$src2),
803fe6060f1SDimitry Andric         (M2_mpy_hl_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
804fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_hl_s1 IntRegs:$src1, IntRegs:$src2),
805fe6060f1SDimitry Andric         (M2_mpy_hl_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
806fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_lh_s0 IntRegs:$src1, IntRegs:$src2),
807fe6060f1SDimitry Andric         (M2_mpy_lh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
808fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_lh_s1 IntRegs:$src1, IntRegs:$src2),
809fe6060f1SDimitry Andric         (M2_mpy_lh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
810fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_ll_s0 IntRegs:$src1, IntRegs:$src2),
811fe6060f1SDimitry Andric         (M2_mpy_ll_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
812fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_ll_s1 IntRegs:$src1, IntRegs:$src2),
813fe6060f1SDimitry Andric         (M2_mpy_ll_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
814fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_hh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
815fe6060f1SDimitry Andric         (M2_mpy_nac_hh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
816fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_hh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
817fe6060f1SDimitry Andric         (M2_mpy_nac_hh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
818fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_hl_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
819fe6060f1SDimitry Andric         (M2_mpy_nac_hl_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
820fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_hl_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
821fe6060f1SDimitry Andric         (M2_mpy_nac_hl_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
822fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_lh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
823fe6060f1SDimitry Andric         (M2_mpy_nac_lh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
824fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_lh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
825fe6060f1SDimitry Andric         (M2_mpy_nac_lh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
826fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_ll_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
827fe6060f1SDimitry Andric         (M2_mpy_nac_ll_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
828fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_ll_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
829fe6060f1SDimitry Andric         (M2_mpy_nac_ll_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
830fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_sat_hh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
831fe6060f1SDimitry Andric         (M2_mpy_nac_sat_hh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
832fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_sat_hh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
833fe6060f1SDimitry Andric         (M2_mpy_nac_sat_hh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
834fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_sat_hl_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
835fe6060f1SDimitry Andric         (M2_mpy_nac_sat_hl_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
836fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_sat_hl_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
837fe6060f1SDimitry Andric         (M2_mpy_nac_sat_hl_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
838fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_sat_lh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
839fe6060f1SDimitry Andric         (M2_mpy_nac_sat_lh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
840fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_sat_lh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
841fe6060f1SDimitry Andric         (M2_mpy_nac_sat_lh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
842fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_sat_ll_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
843fe6060f1SDimitry Andric         (M2_mpy_nac_sat_ll_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
844fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_nac_sat_ll_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
845fe6060f1SDimitry Andric         (M2_mpy_nac_sat_ll_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
846fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_rnd_hh_s0 IntRegs:$src1, IntRegs:$src2),
847fe6060f1SDimitry Andric         (M2_mpy_rnd_hh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
848fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_rnd_hh_s1 IntRegs:$src1, IntRegs:$src2),
849fe6060f1SDimitry Andric         (M2_mpy_rnd_hh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
850fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_rnd_hl_s0 IntRegs:$src1, IntRegs:$src2),
851fe6060f1SDimitry Andric         (M2_mpy_rnd_hl_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
852fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_rnd_hl_s1 IntRegs:$src1, IntRegs:$src2),
853fe6060f1SDimitry Andric         (M2_mpy_rnd_hl_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
854fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_rnd_lh_s0 IntRegs:$src1, IntRegs:$src2),
855fe6060f1SDimitry Andric         (M2_mpy_rnd_lh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
856fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_rnd_lh_s1 IntRegs:$src1, IntRegs:$src2),
857fe6060f1SDimitry Andric         (M2_mpy_rnd_lh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
858fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_rnd_ll_s0 IntRegs:$src1, IntRegs:$src2),
859fe6060f1SDimitry Andric         (M2_mpy_rnd_ll_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
860fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_rnd_ll_s1 IntRegs:$src1, IntRegs:$src2),
861fe6060f1SDimitry Andric         (M2_mpy_rnd_ll_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
862fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_hh_s0 IntRegs:$src1, IntRegs:$src2),
863fe6060f1SDimitry Andric         (M2_mpy_sat_hh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
864fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_hh_s1 IntRegs:$src1, IntRegs:$src2),
865fe6060f1SDimitry Andric         (M2_mpy_sat_hh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
866fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_hl_s0 IntRegs:$src1, IntRegs:$src2),
867fe6060f1SDimitry Andric         (M2_mpy_sat_hl_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
868fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_hl_s1 IntRegs:$src1, IntRegs:$src2),
869fe6060f1SDimitry Andric         (M2_mpy_sat_hl_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
870fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_lh_s0 IntRegs:$src1, IntRegs:$src2),
871fe6060f1SDimitry Andric         (M2_mpy_sat_lh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
872fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_lh_s1 IntRegs:$src1, IntRegs:$src2),
873fe6060f1SDimitry Andric         (M2_mpy_sat_lh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
874fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_ll_s0 IntRegs:$src1, IntRegs:$src2),
875fe6060f1SDimitry Andric         (M2_mpy_sat_ll_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
876fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_ll_s1 IntRegs:$src1, IntRegs:$src2),
877fe6060f1SDimitry Andric         (M2_mpy_sat_ll_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
878fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_rnd_hh_s0 IntRegs:$src1, IntRegs:$src2),
879fe6060f1SDimitry Andric         (M2_mpy_sat_rnd_hh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
880fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_rnd_hh_s1 IntRegs:$src1, IntRegs:$src2),
881fe6060f1SDimitry Andric         (M2_mpy_sat_rnd_hh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
882fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_rnd_hl_s0 IntRegs:$src1, IntRegs:$src2),
883fe6060f1SDimitry Andric         (M2_mpy_sat_rnd_hl_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
884fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_rnd_hl_s1 IntRegs:$src1, IntRegs:$src2),
885fe6060f1SDimitry Andric         (M2_mpy_sat_rnd_hl_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
886fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_rnd_lh_s0 IntRegs:$src1, IntRegs:$src2),
887fe6060f1SDimitry Andric         (M2_mpy_sat_rnd_lh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
888fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_rnd_lh_s1 IntRegs:$src1, IntRegs:$src2),
889fe6060f1SDimitry Andric         (M2_mpy_sat_rnd_lh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
890fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_rnd_ll_s0 IntRegs:$src1, IntRegs:$src2),
891fe6060f1SDimitry Andric         (M2_mpy_sat_rnd_ll_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
892fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_sat_rnd_ll_s1 IntRegs:$src1, IntRegs:$src2),
893fe6060f1SDimitry Andric         (M2_mpy_sat_rnd_ll_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
894fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_up IntRegs:$src1, IntRegs:$src2),
895fe6060f1SDimitry Andric         (M2_mpy_up IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
896fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_up_s1 IntRegs:$src1, IntRegs:$src2),
897fe6060f1SDimitry Andric         (M2_mpy_up_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
898fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpy_up_s1_sat IntRegs:$src1, IntRegs:$src2),
899fe6060f1SDimitry Andric         (M2_mpy_up_s1_sat IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
900fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_acc_hh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
901fe6060f1SDimitry Andric         (M2_mpyd_acc_hh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
902fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_acc_hh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
903fe6060f1SDimitry Andric         (M2_mpyd_acc_hh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
904fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_acc_hl_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
905fe6060f1SDimitry Andric         (M2_mpyd_acc_hl_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
906fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_acc_hl_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
907fe6060f1SDimitry Andric         (M2_mpyd_acc_hl_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
908fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_acc_lh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
909fe6060f1SDimitry Andric         (M2_mpyd_acc_lh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
910fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_acc_lh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
911fe6060f1SDimitry Andric         (M2_mpyd_acc_lh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
912fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_acc_ll_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
913fe6060f1SDimitry Andric         (M2_mpyd_acc_ll_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
914fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_acc_ll_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
915fe6060f1SDimitry Andric         (M2_mpyd_acc_ll_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
916fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_hh_s0 IntRegs:$src1, IntRegs:$src2),
917fe6060f1SDimitry Andric         (M2_mpyd_hh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
918fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_hh_s1 IntRegs:$src1, IntRegs:$src2),
919fe6060f1SDimitry Andric         (M2_mpyd_hh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
920fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_hl_s0 IntRegs:$src1, IntRegs:$src2),
921fe6060f1SDimitry Andric         (M2_mpyd_hl_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
922fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_hl_s1 IntRegs:$src1, IntRegs:$src2),
923fe6060f1SDimitry Andric         (M2_mpyd_hl_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
924fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_lh_s0 IntRegs:$src1, IntRegs:$src2),
925fe6060f1SDimitry Andric         (M2_mpyd_lh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
926fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_lh_s1 IntRegs:$src1, IntRegs:$src2),
927fe6060f1SDimitry Andric         (M2_mpyd_lh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
928fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_ll_s0 IntRegs:$src1, IntRegs:$src2),
929fe6060f1SDimitry Andric         (M2_mpyd_ll_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
930fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_ll_s1 IntRegs:$src1, IntRegs:$src2),
931fe6060f1SDimitry Andric         (M2_mpyd_ll_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
932fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_nac_hh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
933fe6060f1SDimitry Andric         (M2_mpyd_nac_hh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
934fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_nac_hh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
935fe6060f1SDimitry Andric         (M2_mpyd_nac_hh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
936fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_nac_hl_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
937fe6060f1SDimitry Andric         (M2_mpyd_nac_hl_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
938fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_nac_hl_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
939fe6060f1SDimitry Andric         (M2_mpyd_nac_hl_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
940fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_nac_lh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
941fe6060f1SDimitry Andric         (M2_mpyd_nac_lh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
942fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_nac_lh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
943fe6060f1SDimitry Andric         (M2_mpyd_nac_lh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
944fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_nac_ll_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
945fe6060f1SDimitry Andric         (M2_mpyd_nac_ll_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
946fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_nac_ll_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
947fe6060f1SDimitry Andric         (M2_mpyd_nac_ll_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
948fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_rnd_hh_s0 IntRegs:$src1, IntRegs:$src2),
949fe6060f1SDimitry Andric         (M2_mpyd_rnd_hh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
950fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_rnd_hh_s1 IntRegs:$src1, IntRegs:$src2),
951fe6060f1SDimitry Andric         (M2_mpyd_rnd_hh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
952fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_rnd_hl_s0 IntRegs:$src1, IntRegs:$src2),
953fe6060f1SDimitry Andric         (M2_mpyd_rnd_hl_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
954fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_rnd_hl_s1 IntRegs:$src1, IntRegs:$src2),
955fe6060f1SDimitry Andric         (M2_mpyd_rnd_hl_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
956fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_rnd_lh_s0 IntRegs:$src1, IntRegs:$src2),
957fe6060f1SDimitry Andric         (M2_mpyd_rnd_lh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
958fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_rnd_lh_s1 IntRegs:$src1, IntRegs:$src2),
959fe6060f1SDimitry Andric         (M2_mpyd_rnd_lh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
960fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_rnd_ll_s0 IntRegs:$src1, IntRegs:$src2),
961fe6060f1SDimitry Andric         (M2_mpyd_rnd_ll_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
962fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyd_rnd_ll_s1 IntRegs:$src1, IntRegs:$src2),
963fe6060f1SDimitry Andric         (M2_mpyd_rnd_ll_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
964fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyi IntRegs:$src1, IntRegs:$src2),
965fe6060f1SDimitry Andric         (M2_mpyi IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
966fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpysmi IntRegs:$src1, m32_0ImmPred_timm:$src2),
967fe6060f1SDimitry Andric         (M2_mpysmi IntRegs:$src1, m32_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
968fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpysu_up IntRegs:$src1, IntRegs:$src2),
969fe6060f1SDimitry Andric         (M2_mpysu_up IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
970fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_acc_hh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
971fe6060f1SDimitry Andric         (M2_mpyu_acc_hh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
972fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_acc_hh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
973fe6060f1SDimitry Andric         (M2_mpyu_acc_hh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
974fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_acc_hl_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
975fe6060f1SDimitry Andric         (M2_mpyu_acc_hl_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
976fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_acc_hl_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
977fe6060f1SDimitry Andric         (M2_mpyu_acc_hl_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
978fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_acc_lh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
979fe6060f1SDimitry Andric         (M2_mpyu_acc_lh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
980fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_acc_lh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
981fe6060f1SDimitry Andric         (M2_mpyu_acc_lh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
982fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_acc_ll_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
983fe6060f1SDimitry Andric         (M2_mpyu_acc_ll_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
984fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_acc_ll_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
985fe6060f1SDimitry Andric         (M2_mpyu_acc_ll_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
986fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_hh_s0 IntRegs:$src1, IntRegs:$src2),
987fe6060f1SDimitry Andric         (M2_mpyu_hh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
988fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_hh_s1 IntRegs:$src1, IntRegs:$src2),
989fe6060f1SDimitry Andric         (M2_mpyu_hh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
990fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_hl_s0 IntRegs:$src1, IntRegs:$src2),
991fe6060f1SDimitry Andric         (M2_mpyu_hl_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
992fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_hl_s1 IntRegs:$src1, IntRegs:$src2),
993fe6060f1SDimitry Andric         (M2_mpyu_hl_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
994fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_lh_s0 IntRegs:$src1, IntRegs:$src2),
995fe6060f1SDimitry Andric         (M2_mpyu_lh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
996fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_lh_s1 IntRegs:$src1, IntRegs:$src2),
997fe6060f1SDimitry Andric         (M2_mpyu_lh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
998fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_ll_s0 IntRegs:$src1, IntRegs:$src2),
999fe6060f1SDimitry Andric         (M2_mpyu_ll_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1000fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_ll_s1 IntRegs:$src1, IntRegs:$src2),
1001fe6060f1SDimitry Andric         (M2_mpyu_ll_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1002fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_nac_hh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1003fe6060f1SDimitry Andric         (M2_mpyu_nac_hh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1004fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_nac_hh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1005fe6060f1SDimitry Andric         (M2_mpyu_nac_hh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1006fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_nac_hl_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1007fe6060f1SDimitry Andric         (M2_mpyu_nac_hl_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1008fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_nac_hl_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1009fe6060f1SDimitry Andric         (M2_mpyu_nac_hl_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1010fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_nac_lh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1011fe6060f1SDimitry Andric         (M2_mpyu_nac_lh_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1012fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_nac_lh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1013fe6060f1SDimitry Andric         (M2_mpyu_nac_lh_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1014fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_nac_ll_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1015fe6060f1SDimitry Andric         (M2_mpyu_nac_ll_s0 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1016fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_nac_ll_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1017fe6060f1SDimitry Andric         (M2_mpyu_nac_ll_s1 IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1018fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyu_up IntRegs:$src1, IntRegs:$src2),
1019fe6060f1SDimitry Andric         (M2_mpyu_up IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1020fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_acc_hh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1021fe6060f1SDimitry Andric         (M2_mpyud_acc_hh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1022fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_acc_hh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1023fe6060f1SDimitry Andric         (M2_mpyud_acc_hh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1024fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_acc_hl_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1025fe6060f1SDimitry Andric         (M2_mpyud_acc_hl_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1026fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_acc_hl_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1027fe6060f1SDimitry Andric         (M2_mpyud_acc_hl_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1028fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_acc_lh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1029fe6060f1SDimitry Andric         (M2_mpyud_acc_lh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1030fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_acc_lh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1031fe6060f1SDimitry Andric         (M2_mpyud_acc_lh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1032fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_acc_ll_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1033fe6060f1SDimitry Andric         (M2_mpyud_acc_ll_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1034fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_acc_ll_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1035fe6060f1SDimitry Andric         (M2_mpyud_acc_ll_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1036fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_hh_s0 IntRegs:$src1, IntRegs:$src2),
1037fe6060f1SDimitry Andric         (M2_mpyud_hh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1038fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_hh_s1 IntRegs:$src1, IntRegs:$src2),
1039fe6060f1SDimitry Andric         (M2_mpyud_hh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1040fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_hl_s0 IntRegs:$src1, IntRegs:$src2),
1041fe6060f1SDimitry Andric         (M2_mpyud_hl_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1042fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_hl_s1 IntRegs:$src1, IntRegs:$src2),
1043fe6060f1SDimitry Andric         (M2_mpyud_hl_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1044fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_lh_s0 IntRegs:$src1, IntRegs:$src2),
1045fe6060f1SDimitry Andric         (M2_mpyud_lh_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1046fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_lh_s1 IntRegs:$src1, IntRegs:$src2),
1047fe6060f1SDimitry Andric         (M2_mpyud_lh_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1048fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_ll_s0 IntRegs:$src1, IntRegs:$src2),
1049fe6060f1SDimitry Andric         (M2_mpyud_ll_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1050fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_ll_s1 IntRegs:$src1, IntRegs:$src2),
1051fe6060f1SDimitry Andric         (M2_mpyud_ll_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1052fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_nac_hh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1053fe6060f1SDimitry Andric         (M2_mpyud_nac_hh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1054fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_nac_hh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1055fe6060f1SDimitry Andric         (M2_mpyud_nac_hh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1056fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_nac_hl_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1057fe6060f1SDimitry Andric         (M2_mpyud_nac_hl_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1058fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_nac_hl_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1059fe6060f1SDimitry Andric         (M2_mpyud_nac_hl_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1060fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_nac_lh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1061fe6060f1SDimitry Andric         (M2_mpyud_nac_lh_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1062fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_nac_lh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1063fe6060f1SDimitry Andric         (M2_mpyud_nac_lh_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1064fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_nac_ll_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1065fe6060f1SDimitry Andric         (M2_mpyud_nac_ll_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1066fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyud_nac_ll_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1067fe6060f1SDimitry Andric         (M2_mpyud_nac_ll_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1068fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mpyui IntRegs:$src1, IntRegs:$src2),
1069fe6060f1SDimitry Andric         (M2_mpyui IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1070fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_nacci IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1071fe6060f1SDimitry Andric         (M2_nacci IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1072fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_naccii IntRegs:$src1, IntRegs:$src2, s32_0ImmPred_timm:$src3),
1073fe6060f1SDimitry Andric         (M2_naccii IntRegs:$src1, IntRegs:$src2, s32_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1074fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_subacc IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1075fe6060f1SDimitry Andric         (M2_subacc IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1076fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vabsdiffh DoubleRegs:$src1, DoubleRegs:$src2),
1077fe6060f1SDimitry Andric         (M2_vabsdiffh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1078fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vabsdiffw DoubleRegs:$src1, DoubleRegs:$src2),
1079fe6060f1SDimitry Andric         (M2_vabsdiffw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1080fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vcmac_s0_sat_i DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1081fe6060f1SDimitry Andric         (M2_vcmac_s0_sat_i DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1082fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vcmac_s0_sat_r DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1083fe6060f1SDimitry Andric         (M2_vcmac_s0_sat_r DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
10845ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_vcmpy_s0_sat_i DoubleRegs:$src1, DoubleRegs:$src2),
10855ffd83dbSDimitry Andric         (M2_vcmpy_s0_sat_i DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
10865ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_vcmpy_s0_sat_r DoubleRegs:$src1, DoubleRegs:$src2),
10875ffd83dbSDimitry Andric         (M2_vcmpy_s0_sat_r DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
10885ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_vcmpy_s1_sat_i DoubleRegs:$src1, DoubleRegs:$src2),
10895ffd83dbSDimitry Andric         (M2_vcmpy_s1_sat_i DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
10905ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_vcmpy_s1_sat_r DoubleRegs:$src1, DoubleRegs:$src2),
10915ffd83dbSDimitry Andric         (M2_vcmpy_s1_sat_r DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1092fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vdmacs_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1093fe6060f1SDimitry Andric         (M2_vdmacs_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1094fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vdmacs_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1095fe6060f1SDimitry Andric         (M2_vdmacs_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1096fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vdmpyrs_s0 DoubleRegs:$src1, DoubleRegs:$src2),
1097fe6060f1SDimitry Andric         (M2_vdmpyrs_s0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1098fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vdmpyrs_s1 DoubleRegs:$src1, DoubleRegs:$src2),
1099fe6060f1SDimitry Andric         (M2_vdmpyrs_s1 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1100fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vdmpys_s0 DoubleRegs:$src1, DoubleRegs:$src2),
1101fe6060f1SDimitry Andric         (M2_vdmpys_s0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1102fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vdmpys_s1 DoubleRegs:$src1, DoubleRegs:$src2),
1103fe6060f1SDimitry Andric         (M2_vdmpys_s1 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1104fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmac2 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1105fe6060f1SDimitry Andric         (M2_vmac2 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1106fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmac2es DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1107fe6060f1SDimitry Andric         (M2_vmac2es DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1108fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmac2es_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1109fe6060f1SDimitry Andric         (M2_vmac2es_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1110fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmac2es_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1111fe6060f1SDimitry Andric         (M2_vmac2es_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1112fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmac2s_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1113fe6060f1SDimitry Andric         (M2_vmac2s_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1114fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmac2s_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1115fe6060f1SDimitry Andric         (M2_vmac2s_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1116fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmac2su_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1117fe6060f1SDimitry Andric         (M2_vmac2su_s0 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1118fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmac2su_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1119fe6060f1SDimitry Andric         (M2_vmac2su_s1 DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1120fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmpy2es_s0 DoubleRegs:$src1, DoubleRegs:$src2),
1121fe6060f1SDimitry Andric         (M2_vmpy2es_s0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1122fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmpy2es_s1 DoubleRegs:$src1, DoubleRegs:$src2),
1123fe6060f1SDimitry Andric         (M2_vmpy2es_s1 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1124fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmpy2s_s0 IntRegs:$src1, IntRegs:$src2),
1125fe6060f1SDimitry Andric         (M2_vmpy2s_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1126fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmpy2s_s0pack IntRegs:$src1, IntRegs:$src2),
1127fe6060f1SDimitry Andric         (M2_vmpy2s_s0pack IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1128fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmpy2s_s1 IntRegs:$src1, IntRegs:$src2),
1129fe6060f1SDimitry Andric         (M2_vmpy2s_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1130fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmpy2s_s1pack IntRegs:$src1, IntRegs:$src2),
1131fe6060f1SDimitry Andric         (M2_vmpy2s_s1pack IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1132fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmpy2su_s0 IntRegs:$src1, IntRegs:$src2),
1133fe6060f1SDimitry Andric         (M2_vmpy2su_s0 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1134fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vmpy2su_s1 IntRegs:$src1, IntRegs:$src2),
1135fe6060f1SDimitry Andric         (M2_vmpy2su_s1 IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1136fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vraddh DoubleRegs:$src1, DoubleRegs:$src2),
1137fe6060f1SDimitry Andric         (M2_vraddh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1138fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vradduh DoubleRegs:$src1, DoubleRegs:$src2),
1139fe6060f1SDimitry Andric         (M2_vradduh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1140fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vrcmaci_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1141fe6060f1SDimitry Andric         (M2_vrcmaci_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1142fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vrcmaci_s0c DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1143fe6060f1SDimitry Andric         (M2_vrcmaci_s0c DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1144fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vrcmacr_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1145fe6060f1SDimitry Andric         (M2_vrcmacr_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1146fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vrcmacr_s0c DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1147fe6060f1SDimitry Andric         (M2_vrcmacr_s0c DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1148fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vrcmpyi_s0 DoubleRegs:$src1, DoubleRegs:$src2),
1149fe6060f1SDimitry Andric         (M2_vrcmpyi_s0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1150fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vrcmpyi_s0c DoubleRegs:$src1, DoubleRegs:$src2),
1151fe6060f1SDimitry Andric         (M2_vrcmpyi_s0c DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1152fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vrcmpyr_s0 DoubleRegs:$src1, DoubleRegs:$src2),
1153fe6060f1SDimitry Andric         (M2_vrcmpyr_s0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1154fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vrcmpyr_s0c DoubleRegs:$src1, DoubleRegs:$src2),
1155fe6060f1SDimitry Andric         (M2_vrcmpyr_s0c DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1156fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vrcmpys_acc_s1 DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1157fe6060f1SDimitry Andric         (M2_vrcmpys_acc_s1 DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1158fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vrcmpys_s1 DoubleRegs:$src1, IntRegs:$src2),
1159fe6060f1SDimitry Andric         (M2_vrcmpys_s1 DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1160fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vrcmpys_s1rp DoubleRegs:$src1, IntRegs:$src2),
1161fe6060f1SDimitry Andric         (M2_vrcmpys_s1rp DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1162fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vrmac_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1163fe6060f1SDimitry Andric         (M2_vrmac_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1164fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_vrmpy_s0 DoubleRegs:$src1, DoubleRegs:$src2),
1165fe6060f1SDimitry Andric         (M2_vrmpy_s0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
11665ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M2_xor_xacc IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
11675ffd83dbSDimitry Andric         (M2_xor_xacc IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
11685ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M4_and_and IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
11695ffd83dbSDimitry Andric         (M4_and_and IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
11705ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M4_and_andn IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
11715ffd83dbSDimitry Andric         (M4_and_andn IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
11725ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M4_and_or IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
11735ffd83dbSDimitry Andric         (M4_and_or IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
11745ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M4_and_xor IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
11755ffd83dbSDimitry Andric         (M4_and_xor IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1176fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_cmpyi_wh DoubleRegs:$src1, IntRegs:$src2),
1177fe6060f1SDimitry Andric         (M4_cmpyi_wh DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1178fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_cmpyi_whc DoubleRegs:$src1, IntRegs:$src2),
1179fe6060f1SDimitry Andric         (M4_cmpyi_whc DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1180fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_cmpyr_wh DoubleRegs:$src1, IntRegs:$src2),
1181fe6060f1SDimitry Andric         (M4_cmpyr_wh DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1182fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_cmpyr_whc DoubleRegs:$src1, IntRegs:$src2),
1183fe6060f1SDimitry Andric         (M4_cmpyr_whc DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1184fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_mac_up_s1_sat IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1185fe6060f1SDimitry Andric         (M4_mac_up_s1_sat IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1186fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_mpyri_addi u32_0ImmPred_timm:$src1, IntRegs:$src2, u6_0ImmPred_timm:$src3),
1187fe6060f1SDimitry Andric         (M4_mpyri_addi u32_0ImmPred_timm:$src1, IntRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[UseCompound, HasV5]>;
1188fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_mpyri_addr IntRegs:$src1, IntRegs:$src2, u32_0ImmPred_timm:$src3),
1189fe6060f1SDimitry Andric         (M4_mpyri_addr IntRegs:$src1, IntRegs:$src2, u32_0ImmPred_timm:$src3)>, Requires<[UseCompound, HasV5]>;
1190fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_mpyri_addr_u2 IntRegs:$src1, u6_2ImmPred_timm:$src2, IntRegs:$src3),
1191fe6060f1SDimitry Andric         (M4_mpyri_addr_u2 IntRegs:$src1, u6_2ImmPred_timm:$src2, IntRegs:$src3)>, Requires<[UseCompound, HasV5]>;
1192fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_mpyrr_addi u32_0ImmPred_timm:$src1, IntRegs:$src2, IntRegs:$src3),
1193fe6060f1SDimitry Andric         (M4_mpyrr_addi u32_0ImmPred_timm:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[UseCompound, HasV5]>;
1194fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_mpyrr_addr IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1195fe6060f1SDimitry Andric         (M4_mpyrr_addr IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[UseCompound, HasV5]>;
1196fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_nac_up_s1_sat IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1197fe6060f1SDimitry Andric         (M4_nac_up_s1_sat IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
11985ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M4_or_and IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
11995ffd83dbSDimitry Andric         (M4_or_and IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
12005ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M4_or_andn IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
12015ffd83dbSDimitry Andric         (M4_or_andn IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
12025ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M4_or_or IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
12035ffd83dbSDimitry Andric         (M4_or_or IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
12045ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M4_or_xor IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
12055ffd83dbSDimitry Andric         (M4_or_xor IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1206fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_pmpyw IntRegs:$src1, IntRegs:$src2),
1207fe6060f1SDimitry Andric         (M4_pmpyw IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1208fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_pmpyw_acc DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1209fe6060f1SDimitry Andric         (M4_pmpyw_acc DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1210fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_vpmpyh IntRegs:$src1, IntRegs:$src2),
1211fe6060f1SDimitry Andric         (M4_vpmpyh IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1212fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_vpmpyh_acc DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1213fe6060f1SDimitry Andric         (M4_vpmpyh_acc DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1214fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_vrmpyeh_acc_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1215fe6060f1SDimitry Andric         (M4_vrmpyeh_acc_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1216fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_vrmpyeh_acc_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1217fe6060f1SDimitry Andric         (M4_vrmpyeh_acc_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1218fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_vrmpyeh_s0 DoubleRegs:$src1, DoubleRegs:$src2),
1219fe6060f1SDimitry Andric         (M4_vrmpyeh_s0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1220fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_vrmpyeh_s1 DoubleRegs:$src1, DoubleRegs:$src2),
1221fe6060f1SDimitry Andric         (M4_vrmpyeh_s1 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1222fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_vrmpyoh_acc_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1223fe6060f1SDimitry Andric         (M4_vrmpyoh_acc_s0 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1224fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_vrmpyoh_acc_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1225fe6060f1SDimitry Andric         (M4_vrmpyoh_acc_s1 DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1226fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_vrmpyoh_s0 DoubleRegs:$src1, DoubleRegs:$src2),
1227fe6060f1SDimitry Andric         (M4_vrmpyoh_s0 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1228fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_vrmpyoh_s1 DoubleRegs:$src1, DoubleRegs:$src2),
1229fe6060f1SDimitry Andric         (M4_vrmpyoh_s1 DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
12305ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M4_xor_and IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
12315ffd83dbSDimitry Andric         (M4_xor_and IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
12325ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M4_xor_andn IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
12335ffd83dbSDimitry Andric         (M4_xor_andn IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1234fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_xor_or IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1235fe6060f1SDimitry Andric         (M4_xor_or IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1236fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M4_xor_xacc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1237fe6060f1SDimitry Andric         (M4_xor_xacc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1238fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M5_vdmacbsu DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1239fe6060f1SDimitry Andric         (M5_vdmacbsu DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1240fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M5_vdmpybsu DoubleRegs:$src1, DoubleRegs:$src2),
1241fe6060f1SDimitry Andric         (M5_vdmpybsu DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1242fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M5_vmacbsu DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1243fe6060f1SDimitry Andric         (M5_vmacbsu DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1244fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M5_vmacbuu DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1245fe6060f1SDimitry Andric         (M5_vmacbuu DoubleRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1246fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M5_vmpybsu IntRegs:$src1, IntRegs:$src2),
1247fe6060f1SDimitry Andric         (M5_vmpybsu IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1248fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M5_vmpybuu IntRegs:$src1, IntRegs:$src2),
1249fe6060f1SDimitry Andric         (M5_vmpybuu IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1250fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M5_vrmacbsu DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1251fe6060f1SDimitry Andric         (M5_vrmacbsu DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1252fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M5_vrmacbuu DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1253fe6060f1SDimitry Andric         (M5_vrmacbuu DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1254fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M5_vrmpybsu DoubleRegs:$src1, DoubleRegs:$src2),
1255fe6060f1SDimitry Andric         (M5_vrmpybsu DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1256fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M5_vrmpybuu DoubleRegs:$src1, DoubleRegs:$src2),
1257fe6060f1SDimitry Andric         (M5_vrmpybuu DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
12585ffd83dbSDimitry Andricdef: Pat<(int_hexagon_S2_addasl_rrri IntRegs:$src1, IntRegs:$src2, u3_0ImmPred_timm:$src3),
12595ffd83dbSDimitry Andric         (S2_addasl_rrri IntRegs:$src1, IntRegs:$src2, u3_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1260fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_i_p DoubleRegs:$src1, u6_0ImmPred_timm:$src2),
1261fe6060f1SDimitry Andric         (S2_asl_i_p DoubleRegs:$src1, u6_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1262fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_i_p_acc DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1263fe6060f1SDimitry Andric         (S2_asl_i_p_acc DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1264fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_i_p_and DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1265fe6060f1SDimitry Andric         (S2_asl_i_p_and DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1266fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_i_p_nac DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1267fe6060f1SDimitry Andric         (S2_asl_i_p_nac DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1268fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_i_p_or DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1269fe6060f1SDimitry Andric         (S2_asl_i_p_or DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1270fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_i_p_xacc DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1271fe6060f1SDimitry Andric         (S2_asl_i_p_xacc DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1272fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_i_r IntRegs:$src1, u5_0ImmPred_timm:$src2),
1273fe6060f1SDimitry Andric         (S2_asl_i_r IntRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1274fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_i_r_acc IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1275fe6060f1SDimitry Andric         (S2_asl_i_r_acc IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1276fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_i_r_and IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1277fe6060f1SDimitry Andric         (S2_asl_i_r_and IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1278fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_i_r_nac IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1279fe6060f1SDimitry Andric         (S2_asl_i_r_nac IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1280fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_i_r_or IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1281fe6060f1SDimitry Andric         (S2_asl_i_r_or IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1282fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_i_r_sat IntRegs:$src1, u5_0ImmPred_timm:$src2),
1283fe6060f1SDimitry Andric         (S2_asl_i_r_sat IntRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1284fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_i_r_xacc IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1285fe6060f1SDimitry Andric         (S2_asl_i_r_xacc IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
12865ffd83dbSDimitry Andricdef: Pat<(int_hexagon_S2_asl_i_vh DoubleRegs:$src1, u4_0ImmPred_timm:$src2),
12875ffd83dbSDimitry Andric         (S2_asl_i_vh DoubleRegs:$src1, u4_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
12885ffd83dbSDimitry Andricdef: Pat<(int_hexagon_S2_asl_i_vw DoubleRegs:$src1, u5_0ImmPred_timm:$src2),
12895ffd83dbSDimitry Andric         (S2_asl_i_vw DoubleRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1290fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_r_p DoubleRegs:$src1, IntRegs:$src2),
1291fe6060f1SDimitry Andric         (S2_asl_r_p DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1292fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_r_p_acc DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1293fe6060f1SDimitry Andric         (S2_asl_r_p_acc DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1294fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_r_p_and DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1295fe6060f1SDimitry Andric         (S2_asl_r_p_and DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1296fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_r_p_nac DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1297fe6060f1SDimitry Andric         (S2_asl_r_p_nac DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1298fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_r_p_or DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1299fe6060f1SDimitry Andric         (S2_asl_r_p_or DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1300fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_r_p_xor DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1301fe6060f1SDimitry Andric         (S2_asl_r_p_xor DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1302fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_r_r IntRegs:$src1, IntRegs:$src2),
1303fe6060f1SDimitry Andric         (S2_asl_r_r IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1304fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_r_r_acc IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1305fe6060f1SDimitry Andric         (S2_asl_r_r_acc IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1306fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_r_r_and IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1307fe6060f1SDimitry Andric         (S2_asl_r_r_and IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1308fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_r_r_nac IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1309fe6060f1SDimitry Andric         (S2_asl_r_r_nac IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1310fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_r_r_or IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1311fe6060f1SDimitry Andric         (S2_asl_r_r_or IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1312fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_r_r_sat IntRegs:$src1, IntRegs:$src2),
1313fe6060f1SDimitry Andric         (S2_asl_r_r_sat IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1314fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asl_r_vh DoubleRegs:$src1, IntRegs:$src2),
1315fe6060f1SDimitry Andric         (S2_asl_r_vh DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
13165ffd83dbSDimitry Andricdef: Pat<(int_hexagon_S2_asl_r_vw DoubleRegs:$src1, IntRegs:$src2),
13175ffd83dbSDimitry Andric         (S2_asl_r_vw DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1318fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_i_p DoubleRegs:$src1, u6_0ImmPred_timm:$src2),
1319fe6060f1SDimitry Andric         (S2_asr_i_p DoubleRegs:$src1, u6_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1320fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_i_p_acc DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1321fe6060f1SDimitry Andric         (S2_asr_i_p_acc DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1322fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_i_p_and DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1323fe6060f1SDimitry Andric         (S2_asr_i_p_and DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1324fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_i_p_nac DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1325fe6060f1SDimitry Andric         (S2_asr_i_p_nac DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1326fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_i_p_or DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1327fe6060f1SDimitry Andric         (S2_asr_i_p_or DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1328fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_i_p_rnd DoubleRegs:$src1, u6_0ImmPred_timm:$src2),
1329fe6060f1SDimitry Andric         (S2_asr_i_p_rnd DoubleRegs:$src1, u6_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1330fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_i_r IntRegs:$src1, u5_0ImmPred_timm:$src2),
1331fe6060f1SDimitry Andric         (S2_asr_i_r IntRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1332fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_i_r_acc IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1333fe6060f1SDimitry Andric         (S2_asr_i_r_acc IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1334fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_i_r_and IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1335fe6060f1SDimitry Andric         (S2_asr_i_r_and IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1336fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_i_r_nac IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1337fe6060f1SDimitry Andric         (S2_asr_i_r_nac IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1338fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_i_r_or IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1339fe6060f1SDimitry Andric         (S2_asr_i_r_or IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1340fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_i_r_rnd IntRegs:$src1, u5_0ImmPred_timm:$src2),
1341fe6060f1SDimitry Andric         (S2_asr_i_r_rnd IntRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1342fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_i_svw_trun DoubleRegs:$src1, u5_0ImmPred_timm:$src2),
1343fe6060f1SDimitry Andric         (S2_asr_i_svw_trun DoubleRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1344fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_i_vh DoubleRegs:$src1, u4_0ImmPred_timm:$src2),
1345fe6060f1SDimitry Andric         (S2_asr_i_vh DoubleRegs:$src1, u4_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1346fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_i_vw DoubleRegs:$src1, u5_0ImmPred_timm:$src2),
1347fe6060f1SDimitry Andric         (S2_asr_i_vw DoubleRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1348fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_r_p DoubleRegs:$src1, IntRegs:$src2),
1349fe6060f1SDimitry Andric         (S2_asr_r_p DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1350fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_r_p_acc DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1351fe6060f1SDimitry Andric         (S2_asr_r_p_acc DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1352fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_r_p_and DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1353fe6060f1SDimitry Andric         (S2_asr_r_p_and DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1354fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_r_p_nac DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1355fe6060f1SDimitry Andric         (S2_asr_r_p_nac DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1356fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_r_p_or DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1357fe6060f1SDimitry Andric         (S2_asr_r_p_or DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1358fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_r_p_xor DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1359fe6060f1SDimitry Andric         (S2_asr_r_p_xor DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1360fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_r_r IntRegs:$src1, IntRegs:$src2),
1361fe6060f1SDimitry Andric         (S2_asr_r_r IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1362fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_r_r_acc IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1363fe6060f1SDimitry Andric         (S2_asr_r_r_acc IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1364fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_r_r_and IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1365fe6060f1SDimitry Andric         (S2_asr_r_r_and IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1366fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_r_r_nac IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1367fe6060f1SDimitry Andric         (S2_asr_r_r_nac IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1368fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_r_r_or IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1369fe6060f1SDimitry Andric         (S2_asr_r_r_or IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1370fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_r_r_sat IntRegs:$src1, IntRegs:$src2),
1371fe6060f1SDimitry Andric         (S2_asr_r_r_sat IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1372fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_r_svw_trun DoubleRegs:$src1, IntRegs:$src2),
1373fe6060f1SDimitry Andric         (S2_asr_r_svw_trun DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1374fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_r_vh DoubleRegs:$src1, IntRegs:$src2),
1375fe6060f1SDimitry Andric         (S2_asr_r_vh DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1376fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_asr_r_vw DoubleRegs:$src1, IntRegs:$src2),
1377fe6060f1SDimitry Andric         (S2_asr_r_vw DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
13785ffd83dbSDimitry Andricdef: Pat<(int_hexagon_S2_brev IntRegs:$src1),
13795ffd83dbSDimitry Andric         (S2_brev IntRegs:$src1)>, Requires<[HasV5]>;
13805ffd83dbSDimitry Andricdef: Pat<(int_hexagon_S2_brevp DoubleRegs:$src1),
13815ffd83dbSDimitry Andric         (S2_brevp DoubleRegs:$src1)>, Requires<[HasV5]>;
1382fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_cl0 IntRegs:$src1),
1383fe6060f1SDimitry Andric         (S2_cl0 IntRegs:$src1)>, Requires<[HasV5]>;
1384fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_cl0p DoubleRegs:$src1),
1385fe6060f1SDimitry Andric         (S2_cl0p DoubleRegs:$src1)>, Requires<[HasV5]>;
1386fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_cl1 IntRegs:$src1),
1387fe6060f1SDimitry Andric         (S2_cl1 IntRegs:$src1)>, Requires<[HasV5]>;
1388fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_cl1p DoubleRegs:$src1),
1389fe6060f1SDimitry Andric         (S2_cl1p DoubleRegs:$src1)>, Requires<[HasV5]>;
1390fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_clb IntRegs:$src1),
1391fe6060f1SDimitry Andric         (S2_clb IntRegs:$src1)>, Requires<[HasV5]>;
1392fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_clbnorm IntRegs:$src1),
1393fe6060f1SDimitry Andric         (S2_clbnorm IntRegs:$src1)>, Requires<[HasV5]>;
1394fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_clbp DoubleRegs:$src1),
1395fe6060f1SDimitry Andric         (S2_clbp DoubleRegs:$src1)>, Requires<[HasV5]>;
1396fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_clrbit_i IntRegs:$src1, u5_0ImmPred_timm:$src2),
1397fe6060f1SDimitry Andric         (S2_clrbit_i IntRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1398fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_clrbit_r IntRegs:$src1, IntRegs:$src2),
1399fe6060f1SDimitry Andric         (S2_clrbit_r IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
14005ffd83dbSDimitry Andricdef: Pat<(int_hexagon_S2_ct0 IntRegs:$src1),
14015ffd83dbSDimitry Andric         (S2_ct0 IntRegs:$src1)>, Requires<[HasV5]>;
14025ffd83dbSDimitry Andricdef: Pat<(int_hexagon_S2_ct0p DoubleRegs:$src1),
14035ffd83dbSDimitry Andric         (S2_ct0p DoubleRegs:$src1)>, Requires<[HasV5]>;
1404fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_ct1 IntRegs:$src1),
1405fe6060f1SDimitry Andric         (S2_ct1 IntRegs:$src1)>, Requires<[HasV5]>;
14065ffd83dbSDimitry Andricdef: Pat<(int_hexagon_S2_ct1p DoubleRegs:$src1),
14075ffd83dbSDimitry Andric         (S2_ct1p DoubleRegs:$src1)>, Requires<[HasV5]>;
14085ffd83dbSDimitry Andricdef: Pat<(int_hexagon_S2_deinterleave DoubleRegs:$src1),
14095ffd83dbSDimitry Andric         (S2_deinterleave DoubleRegs:$src1)>, Requires<[HasV5]>;
1410fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_extractu IntRegs:$src1, u5_0ImmPred_timm:$src2, u5_0ImmPred_timm:$src3),
1411fe6060f1SDimitry Andric         (S2_extractu IntRegs:$src1, u5_0ImmPred_timm:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1412fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_extractu_rp IntRegs:$src1, DoubleRegs:$src2),
1413fe6060f1SDimitry Andric         (S2_extractu_rp IntRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1414fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_extractup DoubleRegs:$src1, u6_0ImmPred_timm:$src2, u6_0ImmPred_timm:$src3),
1415fe6060f1SDimitry Andric         (S2_extractup DoubleRegs:$src1, u6_0ImmPred_timm:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1416fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_extractup_rp DoubleRegs:$src1, DoubleRegs:$src2),
1417fe6060f1SDimitry Andric         (S2_extractup_rp DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1418fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_insert IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3, u5_0ImmPred_timm:$src4),
1419fe6060f1SDimitry Andric         (S2_insert IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3, u5_0ImmPred_timm:$src4)>, Requires<[HasV5]>;
1420fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_insert_rp IntRegs:$src1, IntRegs:$src2, DoubleRegs:$src3),
1421fe6060f1SDimitry Andric         (S2_insert_rp IntRegs:$src1, IntRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1422fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_insertp DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3, u6_0ImmPred_timm:$src4),
1423fe6060f1SDimitry Andric         (S2_insertp DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3, u6_0ImmPred_timm:$src4)>, Requires<[HasV5]>;
1424fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_insertp_rp DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1425fe6060f1SDimitry Andric         (S2_insertp_rp DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV5]>;
1426fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_interleave DoubleRegs:$src1),
1427fe6060f1SDimitry Andric         (S2_interleave DoubleRegs:$src1)>, Requires<[HasV5]>;
1428fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lfsp DoubleRegs:$src1, DoubleRegs:$src2),
1429fe6060f1SDimitry Andric         (S2_lfsp DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1430fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsl_r_p DoubleRegs:$src1, IntRegs:$src2),
1431fe6060f1SDimitry Andric         (S2_lsl_r_p DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1432fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsl_r_p_acc DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1433fe6060f1SDimitry Andric         (S2_lsl_r_p_acc DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1434fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsl_r_p_and DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1435fe6060f1SDimitry Andric         (S2_lsl_r_p_and DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1436fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsl_r_p_nac DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1437fe6060f1SDimitry Andric         (S2_lsl_r_p_nac DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1438fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsl_r_p_or DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1439fe6060f1SDimitry Andric         (S2_lsl_r_p_or DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1440fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsl_r_p_xor DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1441fe6060f1SDimitry Andric         (S2_lsl_r_p_xor DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1442fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsl_r_r IntRegs:$src1, IntRegs:$src2),
1443fe6060f1SDimitry Andric         (S2_lsl_r_r IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1444fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsl_r_r_acc IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1445fe6060f1SDimitry Andric         (S2_lsl_r_r_acc IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1446fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsl_r_r_and IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1447fe6060f1SDimitry Andric         (S2_lsl_r_r_and IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1448fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsl_r_r_nac IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1449fe6060f1SDimitry Andric         (S2_lsl_r_r_nac IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1450fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsl_r_r_or IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1451fe6060f1SDimitry Andric         (S2_lsl_r_r_or IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1452fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsl_r_vh DoubleRegs:$src1, IntRegs:$src2),
1453fe6060f1SDimitry Andric         (S2_lsl_r_vh DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1454fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsl_r_vw DoubleRegs:$src1, IntRegs:$src2),
1455fe6060f1SDimitry Andric         (S2_lsl_r_vw DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1456fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_i_p DoubleRegs:$src1, u6_0ImmPred_timm:$src2),
1457fe6060f1SDimitry Andric         (S2_lsr_i_p DoubleRegs:$src1, u6_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1458fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_i_p_acc DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1459fe6060f1SDimitry Andric         (S2_lsr_i_p_acc DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1460fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_i_p_and DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1461fe6060f1SDimitry Andric         (S2_lsr_i_p_and DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1462fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_i_p_nac DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1463fe6060f1SDimitry Andric         (S2_lsr_i_p_nac DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1464fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_i_p_or DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1465fe6060f1SDimitry Andric         (S2_lsr_i_p_or DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1466fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_i_p_xacc DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1467fe6060f1SDimitry Andric         (S2_lsr_i_p_xacc DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1468fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_i_r IntRegs:$src1, u5_0ImmPred_timm:$src2),
1469fe6060f1SDimitry Andric         (S2_lsr_i_r IntRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1470fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_i_r_acc IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1471fe6060f1SDimitry Andric         (S2_lsr_i_r_acc IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1472fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_i_r_and IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1473fe6060f1SDimitry Andric         (S2_lsr_i_r_and IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1474fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_i_r_nac IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1475fe6060f1SDimitry Andric         (S2_lsr_i_r_nac IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1476fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_i_r_or IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1477fe6060f1SDimitry Andric         (S2_lsr_i_r_or IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1478fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_i_r_xacc IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1479fe6060f1SDimitry Andric         (S2_lsr_i_r_xacc IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1480fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_i_vh DoubleRegs:$src1, u4_0ImmPred_timm:$src2),
1481fe6060f1SDimitry Andric         (S2_lsr_i_vh DoubleRegs:$src1, u4_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1482fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_i_vw DoubleRegs:$src1, u5_0ImmPred_timm:$src2),
1483fe6060f1SDimitry Andric         (S2_lsr_i_vw DoubleRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1484fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_r_p DoubleRegs:$src1, IntRegs:$src2),
1485fe6060f1SDimitry Andric         (S2_lsr_r_p DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1486fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_r_p_acc DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1487fe6060f1SDimitry Andric         (S2_lsr_r_p_acc DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1488fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_r_p_and DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1489fe6060f1SDimitry Andric         (S2_lsr_r_p_and DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1490fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_r_p_nac DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1491fe6060f1SDimitry Andric         (S2_lsr_r_p_nac DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1492fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_r_p_or DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1493fe6060f1SDimitry Andric         (S2_lsr_r_p_or DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1494fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_r_p_xor DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1495fe6060f1SDimitry Andric         (S2_lsr_r_p_xor DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1496fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_r_r IntRegs:$src1, IntRegs:$src2),
1497fe6060f1SDimitry Andric         (S2_lsr_r_r IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1498fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_r_r_acc IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1499fe6060f1SDimitry Andric         (S2_lsr_r_r_acc IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1500fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_r_r_and IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1501fe6060f1SDimitry Andric         (S2_lsr_r_r_and IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1502fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_r_r_nac IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1503fe6060f1SDimitry Andric         (S2_lsr_r_r_nac IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1504fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_r_r_or IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1505fe6060f1SDimitry Andric         (S2_lsr_r_r_or IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1506fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_r_vh DoubleRegs:$src1, IntRegs:$src2),
1507fe6060f1SDimitry Andric         (S2_lsr_r_vh DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1508fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_lsr_r_vw DoubleRegs:$src1, IntRegs:$src2),
1509fe6060f1SDimitry Andric         (S2_lsr_r_vw DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1510fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_packhl IntRegs:$src1, IntRegs:$src2),
1511fe6060f1SDimitry Andric         (S2_packhl IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1512fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_parityp DoubleRegs:$src1, DoubleRegs:$src2),
1513fe6060f1SDimitry Andric         (S2_parityp DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1514fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_setbit_i IntRegs:$src1, u5_0ImmPred_timm:$src2),
1515fe6060f1SDimitry Andric         (S2_setbit_i IntRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1516fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_setbit_r IntRegs:$src1, IntRegs:$src2),
1517fe6060f1SDimitry Andric         (S2_setbit_r IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1518fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_shuffeb DoubleRegs:$src1, DoubleRegs:$src2),
1519fe6060f1SDimitry Andric         (S2_shuffeb DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1520fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_shuffeh DoubleRegs:$src1, DoubleRegs:$src2),
1521fe6060f1SDimitry Andric         (S2_shuffeh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1522fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_shuffob DoubleRegs:$src1, DoubleRegs:$src2),
1523fe6060f1SDimitry Andric         (S2_shuffob DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1524fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_shuffoh DoubleRegs:$src1, DoubleRegs:$src2),
1525fe6060f1SDimitry Andric         (S2_shuffoh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1526fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_svsathb IntRegs:$src1),
1527fe6060f1SDimitry Andric         (S2_svsathb IntRegs:$src1)>, Requires<[HasV5]>;
1528fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_svsathub IntRegs:$src1),
1529fe6060f1SDimitry Andric         (S2_svsathub IntRegs:$src1)>, Requires<[HasV5]>;
1530fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_togglebit_i IntRegs:$src1, u5_0ImmPred_timm:$src2),
1531fe6060f1SDimitry Andric         (S2_togglebit_i IntRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1532fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_togglebit_r IntRegs:$src1, IntRegs:$src2),
1533fe6060f1SDimitry Andric         (S2_togglebit_r IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1534fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_tstbit_i IntRegs:$src1, u5_0ImmPred_timm:$src2),
1535fe6060f1SDimitry Andric         (C2_tfrpr (S2_tstbit_i IntRegs:$src1, u5_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
1536fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_tstbit_r IntRegs:$src1, IntRegs:$src2),
1537fe6060f1SDimitry Andric         (C2_tfrpr (S2_tstbit_r IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
1538fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_valignib DoubleRegs:$src1, DoubleRegs:$src2, u3_0ImmPred_timm:$src3),
1539fe6060f1SDimitry Andric         (S2_valignib DoubleRegs:$src1, DoubleRegs:$src2, u3_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1540fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_valignrb DoubleRegs:$src1, DoubleRegs:$src2, PredRegs:$src3),
1541fe6060f1SDimitry Andric         (S2_valignrb DoubleRegs:$src1, DoubleRegs:$src2, (C2_tfrrp PredRegs:$src3))>, Requires<[HasV5]>;
1542fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vcnegh DoubleRegs:$src1, IntRegs:$src2),
1543fe6060f1SDimitry Andric         (S2_vcnegh DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1544fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vcrotate DoubleRegs:$src1, IntRegs:$src2),
1545fe6060f1SDimitry Andric         (S2_vcrotate DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1546fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vrcnegh DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3),
1547fe6060f1SDimitry Andric         (S2_vrcnegh DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3)>, Requires<[HasV5]>;
1548fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vrndpackwh DoubleRegs:$src1),
1549fe6060f1SDimitry Andric         (S2_vrndpackwh DoubleRegs:$src1)>, Requires<[HasV5]>;
1550fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vrndpackwhs DoubleRegs:$src1),
1551fe6060f1SDimitry Andric         (S2_vrndpackwhs DoubleRegs:$src1)>, Requires<[HasV5]>;
1552fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vsathb DoubleRegs:$src1),
1553fe6060f1SDimitry Andric         (S2_vsathb DoubleRegs:$src1)>, Requires<[HasV5]>;
1554fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vsathb_nopack DoubleRegs:$src1),
1555fe6060f1SDimitry Andric         (S2_vsathb_nopack DoubleRegs:$src1)>, Requires<[HasV5]>;
1556fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vsathub DoubleRegs:$src1),
1557fe6060f1SDimitry Andric         (S2_vsathub DoubleRegs:$src1)>, Requires<[HasV5]>;
1558fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vsathub_nopack DoubleRegs:$src1),
1559fe6060f1SDimitry Andric         (S2_vsathub_nopack DoubleRegs:$src1)>, Requires<[HasV5]>;
1560fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vsatwh DoubleRegs:$src1),
1561fe6060f1SDimitry Andric         (S2_vsatwh DoubleRegs:$src1)>, Requires<[HasV5]>;
1562fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vsatwh_nopack DoubleRegs:$src1),
1563fe6060f1SDimitry Andric         (S2_vsatwh_nopack DoubleRegs:$src1)>, Requires<[HasV5]>;
1564fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vsatwuh DoubleRegs:$src1),
1565fe6060f1SDimitry Andric         (S2_vsatwuh DoubleRegs:$src1)>, Requires<[HasV5]>;
1566fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vsatwuh_nopack DoubleRegs:$src1),
1567fe6060f1SDimitry Andric         (S2_vsatwuh_nopack DoubleRegs:$src1)>, Requires<[HasV5]>;
1568fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vsplatrb IntRegs:$src1),
1569fe6060f1SDimitry Andric         (S2_vsplatrb IntRegs:$src1)>, Requires<[HasV5]>;
1570fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vsplatrh IntRegs:$src1),
1571fe6060f1SDimitry Andric         (S2_vsplatrh IntRegs:$src1)>, Requires<[HasV5]>;
1572fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vspliceib DoubleRegs:$src1, DoubleRegs:$src2, u3_0ImmPred_timm:$src3),
1573fe6060f1SDimitry Andric         (S2_vspliceib DoubleRegs:$src1, DoubleRegs:$src2, u3_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1574fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vsplicerb DoubleRegs:$src1, DoubleRegs:$src2, PredRegs:$src3),
1575fe6060f1SDimitry Andric         (S2_vsplicerb DoubleRegs:$src1, DoubleRegs:$src2, (C2_tfrrp PredRegs:$src3))>, Requires<[HasV5]>;
1576fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vsxtbh IntRegs:$src1),
1577fe6060f1SDimitry Andric         (S2_vsxtbh IntRegs:$src1)>, Requires<[HasV5]>;
1578fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vsxthw IntRegs:$src1),
1579fe6060f1SDimitry Andric         (S2_vsxthw IntRegs:$src1)>, Requires<[HasV5]>;
1580fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vtrunehb DoubleRegs:$src1),
1581fe6060f1SDimitry Andric         (S2_vtrunehb DoubleRegs:$src1)>, Requires<[HasV5]>;
1582fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vtrunewh DoubleRegs:$src1, DoubleRegs:$src2),
1583fe6060f1SDimitry Andric         (S2_vtrunewh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1584fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vtrunohb DoubleRegs:$src1),
1585fe6060f1SDimitry Andric         (S2_vtrunohb DoubleRegs:$src1)>, Requires<[HasV5]>;
1586fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vtrunowh DoubleRegs:$src1, DoubleRegs:$src2),
1587fe6060f1SDimitry Andric         (S2_vtrunowh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1588fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vzxtbh IntRegs:$src1),
1589fe6060f1SDimitry Andric         (S2_vzxtbh IntRegs:$src1)>, Requires<[HasV5]>;
1590fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S2_vzxthw IntRegs:$src1),
1591fe6060f1SDimitry Andric         (S2_vzxthw IntRegs:$src1)>, Requires<[HasV5]>;
1592fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_addaddi IntRegs:$src1, IntRegs:$src2, s32_0ImmPred_timm:$src3),
1593fe6060f1SDimitry Andric         (S4_addaddi IntRegs:$src1, IntRegs:$src2, s32_0ImmPred_timm:$src3)>, Requires<[UseCompound, HasV5]>;
1594fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_addi_asl_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1595fe6060f1SDimitry Andric         (S4_addi_asl_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[UseCompound, HasV5]>;
1596fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_addi_lsr_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1597fe6060f1SDimitry Andric         (S4_addi_lsr_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[UseCompound, HasV5]>;
1598fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_andi_asl_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1599fe6060f1SDimitry Andric         (S4_andi_asl_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[UseCompound, HasV5]>;
1600fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_andi_lsr_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1601fe6060f1SDimitry Andric         (S4_andi_lsr_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[UseCompound, HasV5]>;
1602fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_clbaddi IntRegs:$src1, s6_0ImmPred_timm:$src2),
1603fe6060f1SDimitry Andric         (S4_clbaddi IntRegs:$src1, s6_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1604fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_clbpaddi DoubleRegs:$src1, s6_0ImmPred_timm:$src2),
1605fe6060f1SDimitry Andric         (S4_clbpaddi DoubleRegs:$src1, s6_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1606fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_clbpnorm DoubleRegs:$src1),
1607fe6060f1SDimitry Andric         (S4_clbpnorm DoubleRegs:$src1)>, Requires<[HasV5]>;
1608fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_extract IntRegs:$src1, u5_0ImmPred_timm:$src2, u5_0ImmPred_timm:$src3),
1609fe6060f1SDimitry Andric         (S4_extract IntRegs:$src1, u5_0ImmPred_timm:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1610fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_extract_rp IntRegs:$src1, DoubleRegs:$src2),
1611fe6060f1SDimitry Andric         (S4_extract_rp IntRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1612fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_extractp DoubleRegs:$src1, u6_0ImmPred_timm:$src2, u6_0ImmPred_timm:$src3),
1613fe6060f1SDimitry Andric         (S4_extractp DoubleRegs:$src1, u6_0ImmPred_timm:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1614fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_extractp_rp DoubleRegs:$src1, DoubleRegs:$src2),
1615fe6060f1SDimitry Andric         (S4_extractp_rp DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1616fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_lsli s6_0ImmPred_timm:$src1, IntRegs:$src2),
1617fe6060f1SDimitry Andric         (S4_lsli s6_0ImmPred_timm:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1618fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_ntstbit_i IntRegs:$src1, u5_0ImmPred_timm:$src2),
1619fe6060f1SDimitry Andric         (C2_tfrpr (S4_ntstbit_i IntRegs:$src1, u5_0ImmPred_timm:$src2))>, Requires<[HasV5]>;
1620fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_ntstbit_r IntRegs:$src1, IntRegs:$src2),
1621fe6060f1SDimitry Andric         (C2_tfrpr (S4_ntstbit_r IntRegs:$src1, IntRegs:$src2))>, Requires<[HasV5]>;
1622fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_or_andi IntRegs:$src1, IntRegs:$src2, s32_0ImmPred_timm:$src3),
1623fe6060f1SDimitry Andric         (S4_or_andi IntRegs:$src1, IntRegs:$src2, s32_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1624fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_or_andix IntRegs:$src1, IntRegs:$src2, s32_0ImmPred_timm:$src3),
1625fe6060f1SDimitry Andric         (S4_or_andix IntRegs:$src1, IntRegs:$src2, s32_0ImmPred_timm:$src3)>, Requires<[UseCompound, HasV5]>;
1626fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_or_ori IntRegs:$src1, IntRegs:$src2, s32_0ImmPred_timm:$src3),
1627fe6060f1SDimitry Andric         (S4_or_ori IntRegs:$src1, IntRegs:$src2, s32_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1628fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_ori_asl_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1629fe6060f1SDimitry Andric         (S4_ori_asl_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[UseCompound, HasV5]>;
1630fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_ori_lsr_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1631fe6060f1SDimitry Andric         (S4_ori_lsr_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[UseCompound, HasV5]>;
1632fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_parity IntRegs:$src1, IntRegs:$src2),
1633fe6060f1SDimitry Andric         (S4_parity IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
1634fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_subaddi IntRegs:$src1, s32_0ImmPred_timm:$src2, IntRegs:$src3),
1635fe6060f1SDimitry Andric         (S4_subaddi IntRegs:$src1, s32_0ImmPred_timm:$src2, IntRegs:$src3)>, Requires<[UseCompound, HasV5]>;
1636fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_subi_asl_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1637fe6060f1SDimitry Andric         (S4_subi_asl_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[UseCompound, HasV5]>;
1638fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_subi_lsr_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1639fe6060f1SDimitry Andric         (S4_subi_lsr_ri u32_0ImmPred_timm:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[UseCompound, HasV5]>;
1640fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_vrcrotate DoubleRegs:$src1, IntRegs:$src2, u2_0ImmPred_timm:$src3),
1641fe6060f1SDimitry Andric         (S4_vrcrotate DoubleRegs:$src1, IntRegs:$src2, u2_0ImmPred_timm:$src3)>, Requires<[HasV5]>;
1642fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_vrcrotate_acc DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3, u2_0ImmPred_timm:$src4),
1643fe6060f1SDimitry Andric         (S4_vrcrotate_acc DoubleRegs:$src1, DoubleRegs:$src2, IntRegs:$src3, u2_0ImmPred_timm:$src4)>, Requires<[HasV5]>;
1644fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_vxaddsubh DoubleRegs:$src1, DoubleRegs:$src2),
1645fe6060f1SDimitry Andric         (S4_vxaddsubh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1646fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_vxaddsubhr DoubleRegs:$src1, DoubleRegs:$src2),
1647fe6060f1SDimitry Andric         (S4_vxaddsubhr DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1648fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_vxaddsubw DoubleRegs:$src1, DoubleRegs:$src2),
1649fe6060f1SDimitry Andric         (S4_vxaddsubw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1650fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_vxsubaddh DoubleRegs:$src1, DoubleRegs:$src2),
1651fe6060f1SDimitry Andric         (S4_vxsubaddh DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1652fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_vxsubaddhr DoubleRegs:$src1, DoubleRegs:$src2),
1653fe6060f1SDimitry Andric         (S4_vxsubaddhr DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1654fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S4_vxsubaddw DoubleRegs:$src1, DoubleRegs:$src2),
1655fe6060f1SDimitry Andric         (S4_vxsubaddw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
1656fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S5_asrhub_sat DoubleRegs:$src1, u4_0ImmPred_timm:$src2),
1657fe6060f1SDimitry Andric         (S5_asrhub_sat DoubleRegs:$src1, u4_0ImmPred_timm:$src2)>, Requires<[HasV5]>;
1658fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S5_popcountp DoubleRegs:$src1),
1659fe6060f1SDimitry Andric         (S5_popcountp DoubleRegs:$src1)>, Requires<[HasV5]>;
16605ffd83dbSDimitry Andricdef: Pat<(int_hexagon_Y2_dccleana IntRegs:$src1),
16615ffd83dbSDimitry Andric         (Y2_dccleana IntRegs:$src1)>, Requires<[HasV5]>;
16625ffd83dbSDimitry Andricdef: Pat<(int_hexagon_Y2_dccleaninva IntRegs:$src1),
16635ffd83dbSDimitry Andric         (Y2_dccleaninva IntRegs:$src1)>, Requires<[HasV5]>;
16645ffd83dbSDimitry Andricdef: Pat<(int_hexagon_Y2_dcinva IntRegs:$src1),
16655ffd83dbSDimitry Andric         (Y2_dcinva IntRegs:$src1)>, Requires<[HasV5]>;
1666fe6060f1SDimitry Andricdef: Pat<(int_hexagon_Y2_dczeroa IntRegs:$src1),
1667fe6060f1SDimitry Andric         (Y2_dczeroa IntRegs:$src1)>, Requires<[HasV5]>;
16685ffd83dbSDimitry Andricdef: Pat<(int_hexagon_Y4_l2fetch IntRegs:$src1, IntRegs:$src2),
16695ffd83dbSDimitry Andric         (Y4_l2fetch IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV5]>;
16705ffd83dbSDimitry Andricdef: Pat<(int_hexagon_Y5_l2fetch IntRegs:$src1, DoubleRegs:$src2),
16715ffd83dbSDimitry Andric         (Y5_l2fetch IntRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV5]>;
16720b57cec5SDimitry Andric
16730b57cec5SDimitry Andric// V60 Scalar Instructions.
16740b57cec5SDimitry Andric
16755ffd83dbSDimitry Andricdef: Pat<(int_hexagon_S6_rol_i_p DoubleRegs:$src1, u6_0ImmPred_timm:$src2),
16765ffd83dbSDimitry Andric         (S6_rol_i_p DoubleRegs:$src1, u6_0ImmPred_timm:$src2)>, Requires<[HasV60]>;
16775ffd83dbSDimitry Andricdef: Pat<(int_hexagon_S6_rol_i_p_acc DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
16785ffd83dbSDimitry Andric         (S6_rol_i_p_acc DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV60]>;
16795ffd83dbSDimitry Andricdef: Pat<(int_hexagon_S6_rol_i_p_and DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
16805ffd83dbSDimitry Andric         (S6_rol_i_p_and DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV60]>;
1681fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S6_rol_i_p_nac DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1682fe6060f1SDimitry Andric         (S6_rol_i_p_nac DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV60]>;
16838bcb0991SDimitry Andricdef: Pat<(int_hexagon_S6_rol_i_p_or DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
16848bcb0991SDimitry Andric         (S6_rol_i_p_or DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV60]>;
1685fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S6_rol_i_p_xacc DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3),
1686fe6060f1SDimitry Andric         (S6_rol_i_p_xacc DoubleRegs:$src1, DoubleRegs:$src2, u6_0ImmPred_timm:$src3)>, Requires<[HasV60]>;
1687fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S6_rol_i_r IntRegs:$src1, u5_0ImmPred_timm:$src2),
1688fe6060f1SDimitry Andric         (S6_rol_i_r IntRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV60]>;
1689fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S6_rol_i_r_acc IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1690fe6060f1SDimitry Andric         (S6_rol_i_r_acc IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV60]>;
1691fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S6_rol_i_r_and IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1692fe6060f1SDimitry Andric         (S6_rol_i_r_and IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV60]>;
1693fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S6_rol_i_r_nac IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1694fe6060f1SDimitry Andric         (S6_rol_i_r_nac IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV60]>;
1695fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S6_rol_i_r_or IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1696fe6060f1SDimitry Andric         (S6_rol_i_r_or IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV60]>;
1697fe6060f1SDimitry Andricdef: Pat<(int_hexagon_S6_rol_i_r_xacc IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3),
1698fe6060f1SDimitry Andric         (S6_rol_i_r_xacc IntRegs:$src1, IntRegs:$src2, u5_0ImmPred_timm:$src3)>, Requires<[HasV60]>;
16990b57cec5SDimitry Andric
17000b57cec5SDimitry Andric// V62 Scalar Instructions.
17010b57cec5SDimitry Andric
17020b57cec5SDimitry Andricdef: Pat<(int_hexagon_M6_vabsdiffb DoubleRegs:$src1, DoubleRegs:$src2),
17030b57cec5SDimitry Andric         (M6_vabsdiffb DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV62]>;
17045ffd83dbSDimitry Andricdef: Pat<(int_hexagon_M6_vabsdiffub DoubleRegs:$src1, DoubleRegs:$src2),
17055ffd83dbSDimitry Andric         (M6_vabsdiffub DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV62]>;
17060b57cec5SDimitry Andricdef: Pat<(int_hexagon_S6_vsplatrbp IntRegs:$src1),
17070b57cec5SDimitry Andric         (S6_vsplatrbp IntRegs:$src1)>, Requires<[HasV62]>;
17085ffd83dbSDimitry Andricdef: Pat<(int_hexagon_S6_vtrunehb_ppp DoubleRegs:$src1, DoubleRegs:$src2),
17095ffd83dbSDimitry Andric         (S6_vtrunehb_ppp DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV62]>;
17105ffd83dbSDimitry Andricdef: Pat<(int_hexagon_S6_vtrunohb_ppp DoubleRegs:$src1, DoubleRegs:$src2),
17115ffd83dbSDimitry Andric         (S6_vtrunohb_ppp DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV62]>;
17120b57cec5SDimitry Andric
17130b57cec5SDimitry Andric// V65 Scalar Instructions.
17140b57cec5SDimitry Andric
17150b57cec5SDimitry Andricdef: Pat<(int_hexagon_A6_vcmpbeq_notany DoubleRegs:$src1, DoubleRegs:$src2),
17165ffd83dbSDimitry Andric         (C2_tfrpr (A6_vcmpbeq_notany DoubleRegs:$src1, DoubleRegs:$src2))>, Requires<[HasV65]>;
17170b57cec5SDimitry Andric
17180b57cec5SDimitry Andric// V66 Scalar Instructions.
17190b57cec5SDimitry Andric
17205ffd83dbSDimitry Andricdef: Pat<(int_hexagon_F2_dfadd DoubleRegs:$src1, DoubleRegs:$src2),
17215ffd83dbSDimitry Andric         (F2_dfadd DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV66]>;
17225ffd83dbSDimitry Andricdef: Pat<(int_hexagon_F2_dfsub DoubleRegs:$src1, DoubleRegs:$src2),
17235ffd83dbSDimitry Andric         (F2_dfsub DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV66]>;
1724fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M2_mnaci IntRegs:$src1, IntRegs:$src2, IntRegs:$src3),
1725fe6060f1SDimitry Andric         (M2_mnaci IntRegs:$src1, IntRegs:$src2, IntRegs:$src3)>, Requires<[HasV66]>;
17268bcb0991SDimitry Andricdef: Pat<(int_hexagon_S2_mask u5_0ImmPred_timm:$src1, u5_0ImmPred_timm:$src2),
17278bcb0991SDimitry Andric         (S2_mask u5_0ImmPred_timm:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV66]>;
17280b57cec5SDimitry Andric
17295ffd83dbSDimitry Andric// V67 Scalar Instructions.
17305ffd83dbSDimitry Andric
1731fe6060f1SDimitry Andricdef: Pat<(int_hexagon_A7_clip IntRegs:$src1, u5_0ImmPred_timm:$src2),
1732fe6060f1SDimitry Andric         (A7_clip IntRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV67]>;
17335ffd83dbSDimitry Andricdef: Pat<(int_hexagon_A7_croundd_ri DoubleRegs:$src1, u6_0ImmPred_timm:$src2),
17345ffd83dbSDimitry Andric         (A7_croundd_ri DoubleRegs:$src1, u6_0ImmPred_timm:$src2)>, Requires<[HasV67]>;
17355ffd83dbSDimitry Andricdef: Pat<(int_hexagon_A7_croundd_rr DoubleRegs:$src1, IntRegs:$src2),
17365ffd83dbSDimitry Andric         (A7_croundd_rr DoubleRegs:$src1, IntRegs:$src2)>, Requires<[HasV67]>;
17375ffd83dbSDimitry Andricdef: Pat<(int_hexagon_A7_vclip DoubleRegs:$src1, u5_0ImmPred_timm:$src2),
17385ffd83dbSDimitry Andric         (A7_vclip DoubleRegs:$src1, u5_0ImmPred_timm:$src2)>, Requires<[HasV67]>;
17395ffd83dbSDimitry Andricdef: Pat<(int_hexagon_F2_dfmax DoubleRegs:$src1, DoubleRegs:$src2),
17405ffd83dbSDimitry Andric         (F2_dfmax DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
17415ffd83dbSDimitry Andricdef: Pat<(int_hexagon_F2_dfmin DoubleRegs:$src1, DoubleRegs:$src2),
17425ffd83dbSDimitry Andric         (F2_dfmin DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
17435ffd83dbSDimitry Andricdef: Pat<(int_hexagon_F2_dfmpyfix DoubleRegs:$src1, DoubleRegs:$src2),
17445ffd83dbSDimitry Andric         (F2_dfmpyfix DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
17455ffd83dbSDimitry Andricdef: Pat<(int_hexagon_F2_dfmpyhh DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
17465ffd83dbSDimitry Andric         (F2_dfmpyhh DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV67]>;
1747fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_dfmpylh DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1748fe6060f1SDimitry Andric         (F2_dfmpylh DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV67]>;
1749fe6060f1SDimitry Andricdef: Pat<(int_hexagon_F2_dfmpyll DoubleRegs:$src1, DoubleRegs:$src2),
1750fe6060f1SDimitry Andric         (F2_dfmpyll DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
1751fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_dcmpyiw DoubleRegs:$src1, DoubleRegs:$src2),
1752fe6060f1SDimitry Andric         (M7_dcmpyiw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
1753fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_dcmpyiw_acc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1754fe6060f1SDimitry Andric         (M7_dcmpyiw_acc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV67]>;
1755fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_dcmpyiwc DoubleRegs:$src1, DoubleRegs:$src2),
1756fe6060f1SDimitry Andric         (M7_dcmpyiwc DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
1757fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_dcmpyiwc_acc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1758fe6060f1SDimitry Andric         (M7_dcmpyiwc_acc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV67]>;
1759fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_dcmpyrw DoubleRegs:$src1, DoubleRegs:$src2),
1760fe6060f1SDimitry Andric         (M7_dcmpyrw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
1761fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_dcmpyrw_acc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1762fe6060f1SDimitry Andric         (M7_dcmpyrw_acc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV67]>;
1763fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_dcmpyrwc DoubleRegs:$src1, DoubleRegs:$src2),
1764fe6060f1SDimitry Andric         (M7_dcmpyrwc DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
1765fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_dcmpyrwc_acc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1766fe6060f1SDimitry Andric         (M7_dcmpyrwc_acc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV67]>;
1767fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_vdmpy DoubleRegs:$src1, DoubleRegs:$src2),
1768fe6060f1SDimitry Andric         (M7_dcmpyrwc DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
1769fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_vdmpy_acc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3),
1770fe6060f1SDimitry Andric         (M7_dcmpyrwc_acc DoubleRegs:$src1, DoubleRegs:$src2, DoubleRegs:$src3)>, Requires<[HasV67]>;
1771fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_wcmpyiw DoubleRegs:$src1, DoubleRegs:$src2),
1772fe6060f1SDimitry Andric         (M7_wcmpyiw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
1773fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_wcmpyiw_rnd DoubleRegs:$src1, DoubleRegs:$src2),
1774fe6060f1SDimitry Andric         (M7_wcmpyiw_rnd DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
1775fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_wcmpyiwc DoubleRegs:$src1, DoubleRegs:$src2),
1776fe6060f1SDimitry Andric         (M7_wcmpyiwc DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
1777fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_wcmpyiwc_rnd DoubleRegs:$src1, DoubleRegs:$src2),
1778fe6060f1SDimitry Andric         (M7_wcmpyiwc_rnd DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
1779fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_wcmpyrw DoubleRegs:$src1, DoubleRegs:$src2),
1780fe6060f1SDimitry Andric         (M7_wcmpyrw DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
1781fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_wcmpyrw_rnd DoubleRegs:$src1, DoubleRegs:$src2),
1782fe6060f1SDimitry Andric         (M7_wcmpyrw_rnd DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
1783fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_wcmpyrwc DoubleRegs:$src1, DoubleRegs:$src2),
1784fe6060f1SDimitry Andric         (M7_wcmpyrwc DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
1785fe6060f1SDimitry Andricdef: Pat<(int_hexagon_M7_wcmpyrwc_rnd DoubleRegs:$src1, DoubleRegs:$src2),
1786fe6060f1SDimitry Andric         (M7_wcmpyrwc_rnd DoubleRegs:$src1, DoubleRegs:$src2)>, Requires<[HasV67]>;
1787fe6060f1SDimitry Andric
1788fe6060f1SDimitry Andric// V68 Scalar Instructions.
1789fe6060f1SDimitry Andric
1790fe6060f1SDimitry Andricdef: Pat<(int_hexagon_Y6_dmlink IntRegs:$src1, IntRegs:$src2),
1791fe6060f1SDimitry Andric         (Y6_dmlink IntRegs:$src1, IntRegs:$src2)>, Requires<[HasV68]>;
1792fe6060f1SDimitry Andricdef: Pat<(int_hexagon_Y6_dmpause ),
1793fe6060f1SDimitry Andric         (Y6_dmpause )>, Requires<[HasV68]>;
1794fe6060f1SDimitry Andricdef: Pat<(int_hexagon_Y6_dmpoll ),
1795fe6060f1SDimitry Andric         (Y6_dmpoll )>, Requires<[HasV68]>;
1796fe6060f1SDimitry Andricdef: Pat<(int_hexagon_Y6_dmresume IntRegs:$src1),
1797fe6060f1SDimitry Andric         (Y6_dmresume IntRegs:$src1)>, Requires<[HasV68]>;
1798fe6060f1SDimitry Andricdef: Pat<(int_hexagon_Y6_dmstart IntRegs:$src1),
1799fe6060f1SDimitry Andric         (Y6_dmstart IntRegs:$src1)>, Requires<[HasV68]>;
1800fe6060f1SDimitry Andricdef: Pat<(int_hexagon_Y6_dmwait ),
1801fe6060f1SDimitry Andric         (Y6_dmwait )>, Requires<[HasV68]>;
18025ffd83dbSDimitry Andric
18030b57cec5SDimitry Andric// V60 HVX Instructions.
18040b57cec5SDimitry Andric
1805fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_extractw HvxVR:$src1, IntRegs:$src2),
1806*bdd1243dSDimitry Andric         (V6_extractw HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1807fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_extractw_128B HvxVR:$src1, IntRegs:$src2),
1808*bdd1243dSDimitry Andric         (V6_extractw HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1809fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_hi HvxWR:$src1),
1810*bdd1243dSDimitry Andric         (V6_hi HvxWR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
1811fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_hi_128B HvxWR:$src1),
1812*bdd1243dSDimitry Andric         (V6_hi HvxWR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
1813fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_lo HvxWR:$src1),
1814*bdd1243dSDimitry Andric         (V6_lo HvxWR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
1815fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_lo_128B HvxWR:$src1),
1816*bdd1243dSDimitry Andric         (V6_lo HvxWR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
1817fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_lvsplatw IntRegs:$src1),
1818*bdd1243dSDimitry Andric         (V6_lvsplatw IntRegs:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
1819fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_lvsplatw_128B IntRegs:$src1),
1820*bdd1243dSDimitry Andric         (V6_lvsplatw IntRegs:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
1821fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_and HvxQR:$src1, HvxQR:$src2),
1822*bdd1243dSDimitry Andric         (V6_pred_and HvxQR:$src1, HvxQR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1823fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_and_128B HvxQR:$src1, HvxQR:$src2),
1824*bdd1243dSDimitry Andric         (V6_pred_and HvxQR:$src1, HvxQR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1825fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_and_n HvxQR:$src1, HvxQR:$src2),
1826*bdd1243dSDimitry Andric         (V6_pred_and_n HvxQR:$src1, HvxQR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1827fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_and_n_128B HvxQR:$src1, HvxQR:$src2),
1828*bdd1243dSDimitry Andric         (V6_pred_and_n HvxQR:$src1, HvxQR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1829fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_not HvxQR:$src1),
1830*bdd1243dSDimitry Andric         (V6_pred_not HvxQR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
1831fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_not_128B HvxQR:$src1),
1832*bdd1243dSDimitry Andric         (V6_pred_not HvxQR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
1833fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_or HvxQR:$src1, HvxQR:$src2),
1834*bdd1243dSDimitry Andric         (V6_pred_or HvxQR:$src1, HvxQR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1835fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_or_128B HvxQR:$src1, HvxQR:$src2),
1836*bdd1243dSDimitry Andric         (V6_pred_or HvxQR:$src1, HvxQR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1837fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_or_n HvxQR:$src1, HvxQR:$src2),
1838*bdd1243dSDimitry Andric         (V6_pred_or_n HvxQR:$src1, HvxQR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1839fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_or_n_128B HvxQR:$src1, HvxQR:$src2),
1840*bdd1243dSDimitry Andric         (V6_pred_or_n HvxQR:$src1, HvxQR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1841fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_scalar2 IntRegs:$src1),
1842*bdd1243dSDimitry Andric         (V6_pred_scalar2 IntRegs:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
1843fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_scalar2_128B IntRegs:$src1),
1844*bdd1243dSDimitry Andric         (V6_pred_scalar2 IntRegs:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
1845fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_xor HvxQR:$src1, HvxQR:$src2),
1846*bdd1243dSDimitry Andric         (V6_pred_xor HvxQR:$src1, HvxQR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1847fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_xor_128B HvxQR:$src1, HvxQR:$src2),
1848*bdd1243dSDimitry Andric         (V6_pred_xor HvxQR:$src1, HvxQR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
18495ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vS32b_nqpred_ai HvxQR:$src1, IntRegs:$src2, HvxVR:$src3),
1850*bdd1243dSDimitry Andric         (V6_vS32b_nqpred_ai HvxQR:$src1, IntRegs:$src2, 0, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
18515ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vS32b_nqpred_ai_128B HvxQR:$src1, IntRegs:$src2, HvxVR:$src3),
1852*bdd1243dSDimitry Andric         (V6_vS32b_nqpred_ai HvxQR:$src1, IntRegs:$src2, 0, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
18535ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vS32b_nt_nqpred_ai HvxQR:$src1, IntRegs:$src2, HvxVR:$src3),
1854*bdd1243dSDimitry Andric         (V6_vS32b_nt_nqpred_ai HvxQR:$src1, IntRegs:$src2, 0, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
18555ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vS32b_nt_nqpred_ai_128B HvxQR:$src1, IntRegs:$src2, HvxVR:$src3),
1856*bdd1243dSDimitry Andric         (V6_vS32b_nt_nqpred_ai HvxQR:$src1, IntRegs:$src2, 0, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
1857fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vS32b_nt_qpred_ai HvxQR:$src1, IntRegs:$src2, HvxVR:$src3),
1858*bdd1243dSDimitry Andric         (V6_vS32b_nt_qpred_ai HvxQR:$src1, IntRegs:$src2, 0, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
1859fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vS32b_nt_qpred_ai_128B HvxQR:$src1, IntRegs:$src2, HvxVR:$src3),
1860*bdd1243dSDimitry Andric         (V6_vS32b_nt_qpred_ai HvxQR:$src1, IntRegs:$src2, 0, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
1861fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vS32b_qpred_ai HvxQR:$src1, IntRegs:$src2, HvxVR:$src3),
1862*bdd1243dSDimitry Andric         (V6_vS32b_qpred_ai HvxQR:$src1, IntRegs:$src2, 0, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
1863fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vS32b_qpred_ai_128B HvxQR:$src1, IntRegs:$src2, HvxVR:$src3),
1864*bdd1243dSDimitry Andric         (V6_vS32b_qpred_ai HvxQR:$src1, IntRegs:$src2, 0, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
1865fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsdiffh HvxVR:$src1, HvxVR:$src2),
1866*bdd1243dSDimitry Andric         (V6_vabsdiffh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1867fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsdiffh_128B HvxVR:$src1, HvxVR:$src2),
1868*bdd1243dSDimitry Andric         (V6_vabsdiffh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1869fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsdiffub HvxVR:$src1, HvxVR:$src2),
1870*bdd1243dSDimitry Andric         (V6_vabsdiffub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1871fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsdiffub_128B HvxVR:$src1, HvxVR:$src2),
1872*bdd1243dSDimitry Andric         (V6_vabsdiffub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1873fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsdiffuh HvxVR:$src1, HvxVR:$src2),
1874*bdd1243dSDimitry Andric         (V6_vabsdiffuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1875fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsdiffuh_128B HvxVR:$src1, HvxVR:$src2),
1876*bdd1243dSDimitry Andric         (V6_vabsdiffuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1877fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsdiffw HvxVR:$src1, HvxVR:$src2),
1878*bdd1243dSDimitry Andric         (V6_vabsdiffw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1879fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsdiffw_128B HvxVR:$src1, HvxVR:$src2),
1880*bdd1243dSDimitry Andric         (V6_vabsdiffw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1881fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsh HvxVR:$src1),
1882*bdd1243dSDimitry Andric         (V6_vabsh HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
1883fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsh_128B HvxVR:$src1),
1884*bdd1243dSDimitry Andric         (V6_vabsh HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
1885fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsh_sat HvxVR:$src1),
1886*bdd1243dSDimitry Andric         (V6_vabsh_sat HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
1887fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsh_sat_128B HvxVR:$src1),
1888*bdd1243dSDimitry Andric         (V6_vabsh_sat HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
1889fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsw HvxVR:$src1),
1890*bdd1243dSDimitry Andric         (V6_vabsw HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
1891fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsw_128B HvxVR:$src1),
1892*bdd1243dSDimitry Andric         (V6_vabsw HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
1893fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsw_sat HvxVR:$src1),
1894*bdd1243dSDimitry Andric         (V6_vabsw_sat HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
1895fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vabsw_sat_128B HvxVR:$src1),
1896*bdd1243dSDimitry Andric         (V6_vabsw_sat HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
1897fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddb HvxVR:$src1, HvxVR:$src2),
1898*bdd1243dSDimitry Andric         (V6_vaddb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1899fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddb_128B HvxVR:$src1, HvxVR:$src2),
1900*bdd1243dSDimitry Andric         (V6_vaddb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1901fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddb_dv HvxWR:$src1, HvxWR:$src2),
1902*bdd1243dSDimitry Andric         (V6_vaddb_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1903fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddb_dv_128B HvxWR:$src1, HvxWR:$src2),
1904*bdd1243dSDimitry Andric         (V6_vaddb_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1905fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddbnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
1906*bdd1243dSDimitry Andric         (V6_vaddbnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
1907fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddbnq_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
1908*bdd1243dSDimitry Andric         (V6_vaddbnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
1909fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddbq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
1910*bdd1243dSDimitry Andric         (V6_vaddbq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
1911fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddbq_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
1912*bdd1243dSDimitry Andric         (V6_vaddbq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
1913fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddh HvxVR:$src1, HvxVR:$src2),
1914*bdd1243dSDimitry Andric         (V6_vaddh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1915fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddh_128B HvxVR:$src1, HvxVR:$src2),
1916*bdd1243dSDimitry Andric         (V6_vaddh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1917fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddh_dv HvxWR:$src1, HvxWR:$src2),
1918*bdd1243dSDimitry Andric         (V6_vaddh_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1919fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddh_dv_128B HvxWR:$src1, HvxWR:$src2),
1920*bdd1243dSDimitry Andric         (V6_vaddh_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1921fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddhnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
1922*bdd1243dSDimitry Andric         (V6_vaddhnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
1923fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddhnq_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
1924*bdd1243dSDimitry Andric         (V6_vaddhnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
1925fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddhq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
1926*bdd1243dSDimitry Andric         (V6_vaddhq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
1927fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddhq_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
1928*bdd1243dSDimitry Andric         (V6_vaddhq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
1929fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddhsat HvxVR:$src1, HvxVR:$src2),
1930*bdd1243dSDimitry Andric         (V6_vaddhsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1931fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddhsat_128B HvxVR:$src1, HvxVR:$src2),
1932*bdd1243dSDimitry Andric         (V6_vaddhsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1933fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddhsat_dv HvxWR:$src1, HvxWR:$src2),
1934*bdd1243dSDimitry Andric         (V6_vaddhsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1935fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddhsat_dv_128B HvxWR:$src1, HvxWR:$src2),
1936*bdd1243dSDimitry Andric         (V6_vaddhsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1937fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddhw HvxVR:$src1, HvxVR:$src2),
1938*bdd1243dSDimitry Andric         (V6_vaddhw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1939fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddhw_128B HvxVR:$src1, HvxVR:$src2),
1940*bdd1243dSDimitry Andric         (V6_vaddhw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1941fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddubh HvxVR:$src1, HvxVR:$src2),
1942*bdd1243dSDimitry Andric         (V6_vaddubh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1943fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddubh_128B HvxVR:$src1, HvxVR:$src2),
1944*bdd1243dSDimitry Andric         (V6_vaddubh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1945fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddubsat HvxVR:$src1, HvxVR:$src2),
1946*bdd1243dSDimitry Andric         (V6_vaddubsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1947fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddubsat_128B HvxVR:$src1, HvxVR:$src2),
1948*bdd1243dSDimitry Andric         (V6_vaddubsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1949fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddubsat_dv HvxWR:$src1, HvxWR:$src2),
1950*bdd1243dSDimitry Andric         (V6_vaddubsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1951fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddubsat_dv_128B HvxWR:$src1, HvxWR:$src2),
1952*bdd1243dSDimitry Andric         (V6_vaddubsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1953fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vadduhsat HvxVR:$src1, HvxVR:$src2),
1954*bdd1243dSDimitry Andric         (V6_vadduhsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1955fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vadduhsat_128B HvxVR:$src1, HvxVR:$src2),
1956*bdd1243dSDimitry Andric         (V6_vadduhsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1957fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vadduhsat_dv HvxWR:$src1, HvxWR:$src2),
1958*bdd1243dSDimitry Andric         (V6_vadduhsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1959fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vadduhsat_dv_128B HvxWR:$src1, HvxWR:$src2),
1960*bdd1243dSDimitry Andric         (V6_vadduhsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1961fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vadduhw HvxVR:$src1, HvxVR:$src2),
1962*bdd1243dSDimitry Andric         (V6_vadduhw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1963fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vadduhw_128B HvxVR:$src1, HvxVR:$src2),
1964*bdd1243dSDimitry Andric         (V6_vadduhw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1965fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddw HvxVR:$src1, HvxVR:$src2),
1966*bdd1243dSDimitry Andric         (V6_vaddw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1967fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddw_128B HvxVR:$src1, HvxVR:$src2),
1968*bdd1243dSDimitry Andric         (V6_vaddw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1969fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddw_dv HvxWR:$src1, HvxWR:$src2),
1970*bdd1243dSDimitry Andric         (V6_vaddw_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1971fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddw_dv_128B HvxWR:$src1, HvxWR:$src2),
1972*bdd1243dSDimitry Andric         (V6_vaddw_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1973fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddwnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
1974*bdd1243dSDimitry Andric         (V6_vaddwnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
1975fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddwnq_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
1976*bdd1243dSDimitry Andric         (V6_vaddwnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
1977fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddwq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
1978*bdd1243dSDimitry Andric         (V6_vaddwq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
1979fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddwq_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
1980*bdd1243dSDimitry Andric         (V6_vaddwq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
1981fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddwsat HvxVR:$src1, HvxVR:$src2),
1982*bdd1243dSDimitry Andric         (V6_vaddwsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1983fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddwsat_128B HvxVR:$src1, HvxVR:$src2),
1984*bdd1243dSDimitry Andric         (V6_vaddwsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
1985fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddwsat_dv HvxWR:$src1, HvxWR:$src2),
1986*bdd1243dSDimitry Andric         (V6_vaddwsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1987fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddwsat_dv_128B HvxWR:$src1, HvxWR:$src2),
1988*bdd1243dSDimitry Andric         (V6_vaddwsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
19890b57cec5SDimitry Andricdef: Pat<(int_hexagon_V6_valignb HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
1990*bdd1243dSDimitry Andric         (V6_valignb HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
19910b57cec5SDimitry Andricdef: Pat<(int_hexagon_V6_valignb_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
1992*bdd1243dSDimitry Andric         (V6_valignb HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
19938bcb0991SDimitry Andricdef: Pat<(int_hexagon_V6_valignbi HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3),
1994*bdd1243dSDimitry Andric         (V6_valignbi HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
19958bcb0991SDimitry Andricdef: Pat<(int_hexagon_V6_valignbi_128B HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3),
1996*bdd1243dSDimitry Andric         (V6_valignbi HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
1997fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vand HvxVR:$src1, HvxVR:$src2),
1998*bdd1243dSDimitry Andric         (V6_vand HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
1999fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vand_128B HvxVR:$src1, HvxVR:$src2),
2000*bdd1243dSDimitry Andric         (V6_vand HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2001fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vandqrt HvxQR:$src1, IntRegs:$src2),
2002*bdd1243dSDimitry Andric         (V6_vandqrt HvxQR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2003fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vandqrt_128B HvxQR:$src1, IntRegs:$src2),
2004*bdd1243dSDimitry Andric         (V6_vandqrt HvxQR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2005fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vandqrt_acc HvxVR:$src1, HvxQR:$src2, IntRegs:$src3),
2006*bdd1243dSDimitry Andric         (V6_vandqrt_acc HvxVR:$src1, HvxQR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2007fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vandqrt_acc_128B HvxVR:$src1, HvxQR:$src2, IntRegs:$src3),
2008*bdd1243dSDimitry Andric         (V6_vandqrt_acc HvxVR:$src1, HvxQR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2009fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vandvrt HvxVR:$src1, IntRegs:$src2),
2010*bdd1243dSDimitry Andric         (V6_vandvrt HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2011fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vandvrt_128B HvxVR:$src1, IntRegs:$src2),
2012*bdd1243dSDimitry Andric         (V6_vandvrt HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2013fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vandvrt_acc HvxQR:$src1, HvxVR:$src2, IntRegs:$src3),
2014*bdd1243dSDimitry Andric         (V6_vandvrt_acc HvxQR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2015fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vandvrt_acc_128B HvxQR:$src1, HvxVR:$src2, IntRegs:$src3),
2016*bdd1243dSDimitry Andric         (V6_vandvrt_acc HvxQR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2017fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaslh HvxVR:$src1, IntRegs:$src2),
2018*bdd1243dSDimitry Andric         (V6_vaslh HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2019fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaslh_128B HvxVR:$src1, IntRegs:$src2),
2020*bdd1243dSDimitry Andric         (V6_vaslh HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2021fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaslhv HvxVR:$src1, HvxVR:$src2),
2022*bdd1243dSDimitry Andric         (V6_vaslhv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2023fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaslhv_128B HvxVR:$src1, HvxVR:$src2),
2024*bdd1243dSDimitry Andric         (V6_vaslhv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2025fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaslw HvxVR:$src1, IntRegs:$src2),
2026*bdd1243dSDimitry Andric         (V6_vaslw HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2027fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaslw_128B HvxVR:$src1, IntRegs:$src2),
2028*bdd1243dSDimitry Andric         (V6_vaslw HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2029fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaslw_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2030*bdd1243dSDimitry Andric         (V6_vaslw_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2031fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaslw_acc_128B HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2032*bdd1243dSDimitry Andric         (V6_vaslw_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2033fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaslwv HvxVR:$src1, HvxVR:$src2),
2034*bdd1243dSDimitry Andric         (V6_vaslwv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2035fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaslwv_128B HvxVR:$src1, HvxVR:$src2),
2036*bdd1243dSDimitry Andric         (V6_vaslwv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2037fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrh HvxVR:$src1, IntRegs:$src2),
2038*bdd1243dSDimitry Andric         (V6_vasrh HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2039fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrh_128B HvxVR:$src1, IntRegs:$src2),
2040*bdd1243dSDimitry Andric         (V6_vasrh HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2041fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrhbrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2042*bdd1243dSDimitry Andric         (V6_vasrhbrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2043fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrhbrndsat_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2044*bdd1243dSDimitry Andric         (V6_vasrhbrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2045fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrhubrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2046*bdd1243dSDimitry Andric         (V6_vasrhubrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2047fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrhubrndsat_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2048*bdd1243dSDimitry Andric         (V6_vasrhubrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2049fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrhubsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2050*bdd1243dSDimitry Andric         (V6_vasrhubsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2051fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrhubsat_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2052*bdd1243dSDimitry Andric         (V6_vasrhubsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2053fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrhv HvxVR:$src1, HvxVR:$src2),
2054*bdd1243dSDimitry Andric         (V6_vasrhv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2055fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrhv_128B HvxVR:$src1, HvxVR:$src2),
2056*bdd1243dSDimitry Andric         (V6_vasrhv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2057fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrw HvxVR:$src1, IntRegs:$src2),
2058*bdd1243dSDimitry Andric         (V6_vasrw HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2059fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrw_128B HvxVR:$src1, IntRegs:$src2),
2060*bdd1243dSDimitry Andric         (V6_vasrw HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2061fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrw_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2062*bdd1243dSDimitry Andric         (V6_vasrw_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2063fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrw_acc_128B HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2064*bdd1243dSDimitry Andric         (V6_vasrw_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2065fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrwh HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2066*bdd1243dSDimitry Andric         (V6_vasrwh HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2067fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrwh_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2068*bdd1243dSDimitry Andric         (V6_vasrwh HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2069fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrwhrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2070*bdd1243dSDimitry Andric         (V6_vasrwhrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2071fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrwhrndsat_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2072*bdd1243dSDimitry Andric         (V6_vasrwhrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2073fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrwhsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2074*bdd1243dSDimitry Andric         (V6_vasrwhsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2075fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrwhsat_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2076*bdd1243dSDimitry Andric         (V6_vasrwhsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2077fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrwuhsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2078*bdd1243dSDimitry Andric         (V6_vasrwuhsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2079fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrwuhsat_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2080*bdd1243dSDimitry Andric         (V6_vasrwuhsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2081fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrwv HvxVR:$src1, HvxVR:$src2),
2082*bdd1243dSDimitry Andric         (V6_vasrwv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2083fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrwv_128B HvxVR:$src1, HvxVR:$src2),
2084*bdd1243dSDimitry Andric         (V6_vasrwv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2085fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vassign HvxVR:$src1),
2086*bdd1243dSDimitry Andric         (V6_vassign HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2087fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vassign_128B HvxVR:$src1),
2088*bdd1243dSDimitry Andric         (V6_vassign HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2089fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vassignp HvxWR:$src1),
2090*bdd1243dSDimitry Andric         (V6_vassignp HvxWR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2091fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vassignp_128B HvxWR:$src1),
2092*bdd1243dSDimitry Andric         (V6_vassignp HvxWR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2093fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavgh HvxVR:$src1, HvxVR:$src2),
2094*bdd1243dSDimitry Andric         (V6_vavgh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2095fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavgh_128B HvxVR:$src1, HvxVR:$src2),
2096*bdd1243dSDimitry Andric         (V6_vavgh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2097fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavghrnd HvxVR:$src1, HvxVR:$src2),
2098*bdd1243dSDimitry Andric         (V6_vavghrnd HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2099fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavghrnd_128B HvxVR:$src1, HvxVR:$src2),
2100*bdd1243dSDimitry Andric         (V6_vavghrnd HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2101fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavgub HvxVR:$src1, HvxVR:$src2),
2102*bdd1243dSDimitry Andric         (V6_vavgub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2103fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavgub_128B HvxVR:$src1, HvxVR:$src2),
2104*bdd1243dSDimitry Andric         (V6_vavgub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2105fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavgubrnd HvxVR:$src1, HvxVR:$src2),
2106*bdd1243dSDimitry Andric         (V6_vavgubrnd HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2107fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavgubrnd_128B HvxVR:$src1, HvxVR:$src2),
2108*bdd1243dSDimitry Andric         (V6_vavgubrnd HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2109fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavguh HvxVR:$src1, HvxVR:$src2),
2110*bdd1243dSDimitry Andric         (V6_vavguh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2111fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavguh_128B HvxVR:$src1, HvxVR:$src2),
2112*bdd1243dSDimitry Andric         (V6_vavguh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2113fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavguhrnd HvxVR:$src1, HvxVR:$src2),
2114*bdd1243dSDimitry Andric         (V6_vavguhrnd HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2115fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavguhrnd_128B HvxVR:$src1, HvxVR:$src2),
2116*bdd1243dSDimitry Andric         (V6_vavguhrnd HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2117fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavgw HvxVR:$src1, HvxVR:$src2),
2118*bdd1243dSDimitry Andric         (V6_vavgw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2119fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavgw_128B HvxVR:$src1, HvxVR:$src2),
2120*bdd1243dSDimitry Andric         (V6_vavgw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2121fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavgwrnd HvxVR:$src1, HvxVR:$src2),
2122*bdd1243dSDimitry Andric         (V6_vavgwrnd HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2123fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavgwrnd_128B HvxVR:$src1, HvxVR:$src2),
2124*bdd1243dSDimitry Andric         (V6_vavgwrnd HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2125fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vcl0h HvxVR:$src1),
2126*bdd1243dSDimitry Andric         (V6_vcl0h HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2127fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vcl0h_128B HvxVR:$src1),
2128*bdd1243dSDimitry Andric         (V6_vcl0h HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2129fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vcl0w HvxVR:$src1),
2130*bdd1243dSDimitry Andric         (V6_vcl0w HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2131fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vcl0w_128B HvxVR:$src1),
2132*bdd1243dSDimitry Andric         (V6_vcl0w HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2133fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vcombine HvxVR:$src1, HvxVR:$src2),
2134*bdd1243dSDimitry Andric         (V6_vcombine HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2135fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vcombine_128B HvxVR:$src1, HvxVR:$src2),
2136*bdd1243dSDimitry Andric         (V6_vcombine HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2137fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vd0 ),
2138*bdd1243dSDimitry Andric         (V6_vd0 )>, Requires<[UseHVXV60, UseHVX64B]>;
2139fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vd0_128B ),
2140*bdd1243dSDimitry Andric         (V6_vd0 )>, Requires<[UseHVXV60, UseHVX128B]>;
2141fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdealb HvxVR:$src1),
2142*bdd1243dSDimitry Andric         (V6_vdealb HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2143fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdealb_128B HvxVR:$src1),
2144*bdd1243dSDimitry Andric         (V6_vdealb HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2145fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdealb4w HvxVR:$src1, HvxVR:$src2),
2146*bdd1243dSDimitry Andric         (V6_vdealb4w HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2147fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdealb4w_128B HvxVR:$src1, HvxVR:$src2),
2148*bdd1243dSDimitry Andric         (V6_vdealb4w HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2149fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdealh HvxVR:$src1),
2150*bdd1243dSDimitry Andric         (V6_vdealh HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2151fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdealh_128B HvxVR:$src1),
2152*bdd1243dSDimitry Andric         (V6_vdealh HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2153fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdealvdd HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2154*bdd1243dSDimitry Andric         (V6_vdealvdd HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2155fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdealvdd_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2156*bdd1243dSDimitry Andric         (V6_vdealvdd HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2157fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdelta HvxVR:$src1, HvxVR:$src2),
2158*bdd1243dSDimitry Andric         (V6_vdelta HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2159fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdelta_128B HvxVR:$src1, HvxVR:$src2),
2160*bdd1243dSDimitry Andric         (V6_vdelta HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
21615ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpybus HvxVR:$src1, IntRegs:$src2),
2162*bdd1243dSDimitry Andric         (V6_vdmpybus HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
21635ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpybus_128B HvxVR:$src1, IntRegs:$src2),
2164*bdd1243dSDimitry Andric         (V6_vdmpybus HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
21655ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpybus_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2166*bdd1243dSDimitry Andric         (V6_vdmpybus_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
21675ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpybus_acc_128B HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2168*bdd1243dSDimitry Andric         (V6_vdmpybus_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
21695ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpybus_dv HvxWR:$src1, IntRegs:$src2),
2170*bdd1243dSDimitry Andric         (V6_vdmpybus_dv HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
21715ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpybus_dv_128B HvxWR:$src1, IntRegs:$src2),
2172*bdd1243dSDimitry Andric         (V6_vdmpybus_dv HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
21735ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpybus_dv_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2174*bdd1243dSDimitry Andric         (V6_vdmpybus_dv_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
21755ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpybus_dv_acc_128B HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2176*bdd1243dSDimitry Andric         (V6_vdmpybus_dv_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
21775ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhb HvxVR:$src1, IntRegs:$src2),
2178*bdd1243dSDimitry Andric         (V6_vdmpyhb HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
21795ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhb_128B HvxVR:$src1, IntRegs:$src2),
2180*bdd1243dSDimitry Andric         (V6_vdmpyhb HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
21815ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhb_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2182*bdd1243dSDimitry Andric         (V6_vdmpyhb_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
21835ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhb_acc_128B HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2184*bdd1243dSDimitry Andric         (V6_vdmpyhb_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
21855ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhb_dv HvxWR:$src1, IntRegs:$src2),
2186*bdd1243dSDimitry Andric         (V6_vdmpyhb_dv HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
21875ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhb_dv_128B HvxWR:$src1, IntRegs:$src2),
2188*bdd1243dSDimitry Andric         (V6_vdmpyhb_dv HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
21895ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhb_dv_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2190*bdd1243dSDimitry Andric         (V6_vdmpyhb_dv_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
21915ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhb_dv_acc_128B HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2192*bdd1243dSDimitry Andric         (V6_vdmpyhb_dv_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
21935ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhisat HvxWR:$src1, IntRegs:$src2),
2194*bdd1243dSDimitry Andric         (V6_vdmpyhisat HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
21955ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhisat_128B HvxWR:$src1, IntRegs:$src2),
2196*bdd1243dSDimitry Andric         (V6_vdmpyhisat HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
21975ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhisat_acc HvxVR:$src1, HvxWR:$src2, IntRegs:$src3),
2198*bdd1243dSDimitry Andric         (V6_vdmpyhisat_acc HvxVR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
21995ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhisat_acc_128B HvxVR:$src1, HvxWR:$src2, IntRegs:$src3),
2200*bdd1243dSDimitry Andric         (V6_vdmpyhisat_acc HvxVR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2201fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhsat HvxVR:$src1, IntRegs:$src2),
2202*bdd1243dSDimitry Andric         (V6_vdmpyhsat HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2203fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhsat_128B HvxVR:$src1, IntRegs:$src2),
2204*bdd1243dSDimitry Andric         (V6_vdmpyhsat HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2205fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhsat_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2206*bdd1243dSDimitry Andric         (V6_vdmpyhsat_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2207fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhsat_acc_128B HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2208*bdd1243dSDimitry Andric         (V6_vdmpyhsat_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
22095ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhsuisat HvxWR:$src1, IntRegs:$src2),
2210*bdd1243dSDimitry Andric         (V6_vdmpyhsuisat HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
22115ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhsuisat_128B HvxWR:$src1, IntRegs:$src2),
2212*bdd1243dSDimitry Andric         (V6_vdmpyhsuisat HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
22135ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhsuisat_acc HvxVR:$src1, HvxWR:$src2, IntRegs:$src3),
2214*bdd1243dSDimitry Andric         (V6_vdmpyhsuisat_acc HvxVR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
22155ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhsuisat_acc_128B HvxVR:$src1, HvxWR:$src2, IntRegs:$src3),
2216*bdd1243dSDimitry Andric         (V6_vdmpyhsuisat_acc HvxVR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2217fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhsusat HvxVR:$src1, IntRegs:$src2),
2218*bdd1243dSDimitry Andric         (V6_vdmpyhsusat HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2219fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhsusat_128B HvxVR:$src1, IntRegs:$src2),
2220*bdd1243dSDimitry Andric         (V6_vdmpyhsusat HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2221fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhsusat_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2222*bdd1243dSDimitry Andric         (V6_vdmpyhsusat_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2223fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhsusat_acc_128B HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2224*bdd1243dSDimitry Andric         (V6_vdmpyhsusat_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2225fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhvsat HvxVR:$src1, HvxVR:$src2),
2226*bdd1243dSDimitry Andric         (V6_vdmpyhvsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2227fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhvsat_128B HvxVR:$src1, HvxVR:$src2),
2228*bdd1243dSDimitry Andric         (V6_vdmpyhvsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2229fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhvsat_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2230*bdd1243dSDimitry Andric         (V6_vdmpyhvsat_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2231fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdmpyhvsat_acc_128B HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2232*bdd1243dSDimitry Andric         (V6_vdmpyhvsat_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2233fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdsaduh HvxWR:$src1, IntRegs:$src2),
2234*bdd1243dSDimitry Andric         (V6_vdsaduh HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2235fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdsaduh_128B HvxWR:$src1, IntRegs:$src2),
2236*bdd1243dSDimitry Andric         (V6_vdsaduh HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2237fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdsaduh_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2238*bdd1243dSDimitry Andric         (V6_vdsaduh_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2239fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdsaduh_acc_128B HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2240*bdd1243dSDimitry Andric         (V6_vdsaduh_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2241fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqb HvxVR:$src1, HvxVR:$src2),
2242*bdd1243dSDimitry Andric         (V6_veqb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2243fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqb_128B HvxVR:$src1, HvxVR:$src2),
2244*bdd1243dSDimitry Andric         (V6_veqb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2245fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqb_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2246*bdd1243dSDimitry Andric         (V6_veqb_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2247fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqb_and_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2248*bdd1243dSDimitry Andric         (V6_veqb_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2249fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqb_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2250*bdd1243dSDimitry Andric         (V6_veqb_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2251fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqb_or_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2252*bdd1243dSDimitry Andric         (V6_veqb_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2253fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqb_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2254*bdd1243dSDimitry Andric         (V6_veqb_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2255fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqb_xor_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2256*bdd1243dSDimitry Andric         (V6_veqb_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2257fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqh HvxVR:$src1, HvxVR:$src2),
2258*bdd1243dSDimitry Andric         (V6_veqh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2259fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqh_128B HvxVR:$src1, HvxVR:$src2),
2260*bdd1243dSDimitry Andric         (V6_veqh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2261fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqh_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2262*bdd1243dSDimitry Andric         (V6_veqh_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2263fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqh_and_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2264*bdd1243dSDimitry Andric         (V6_veqh_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2265fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqh_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2266*bdd1243dSDimitry Andric         (V6_veqh_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2267fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqh_or_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2268*bdd1243dSDimitry Andric         (V6_veqh_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2269fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqh_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2270*bdd1243dSDimitry Andric         (V6_veqh_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2271fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqh_xor_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2272*bdd1243dSDimitry Andric         (V6_veqh_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2273fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqw HvxVR:$src1, HvxVR:$src2),
2274*bdd1243dSDimitry Andric         (V6_veqw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2275fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqw_128B HvxVR:$src1, HvxVR:$src2),
2276*bdd1243dSDimitry Andric         (V6_veqw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2277fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqw_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2278*bdd1243dSDimitry Andric         (V6_veqw_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2279fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqw_and_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2280*bdd1243dSDimitry Andric         (V6_veqw_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2281fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqw_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2282*bdd1243dSDimitry Andric         (V6_veqw_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2283fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqw_or_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2284*bdd1243dSDimitry Andric         (V6_veqw_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2285fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqw_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2286*bdd1243dSDimitry Andric         (V6_veqw_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2287fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_veqw_xor_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2288*bdd1243dSDimitry Andric         (V6_veqw_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2289fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtb HvxVR:$src1, HvxVR:$src2),
2290*bdd1243dSDimitry Andric         (V6_vgtb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2291fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtb_128B HvxVR:$src1, HvxVR:$src2),
2292*bdd1243dSDimitry Andric         (V6_vgtb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2293fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtb_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2294*bdd1243dSDimitry Andric         (V6_vgtb_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2295fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtb_and_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2296*bdd1243dSDimitry Andric         (V6_vgtb_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2297fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtb_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2298*bdd1243dSDimitry Andric         (V6_vgtb_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2299fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtb_or_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2300*bdd1243dSDimitry Andric         (V6_vgtb_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2301fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtb_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2302*bdd1243dSDimitry Andric         (V6_vgtb_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2303fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtb_xor_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2304*bdd1243dSDimitry Andric         (V6_vgtb_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2305fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgth HvxVR:$src1, HvxVR:$src2),
2306*bdd1243dSDimitry Andric         (V6_vgth HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2307fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgth_128B HvxVR:$src1, HvxVR:$src2),
2308*bdd1243dSDimitry Andric         (V6_vgth HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2309fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgth_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2310*bdd1243dSDimitry Andric         (V6_vgth_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2311fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgth_and_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2312*bdd1243dSDimitry Andric         (V6_vgth_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2313fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgth_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2314*bdd1243dSDimitry Andric         (V6_vgth_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2315fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgth_or_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2316*bdd1243dSDimitry Andric         (V6_vgth_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2317fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgth_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2318*bdd1243dSDimitry Andric         (V6_vgth_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2319fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgth_xor_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2320*bdd1243dSDimitry Andric         (V6_vgth_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2321fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtub HvxVR:$src1, HvxVR:$src2),
2322*bdd1243dSDimitry Andric         (V6_vgtub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2323fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtub_128B HvxVR:$src1, HvxVR:$src2),
2324*bdd1243dSDimitry Andric         (V6_vgtub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2325fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtub_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2326*bdd1243dSDimitry Andric         (V6_vgtub_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2327fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtub_and_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2328*bdd1243dSDimitry Andric         (V6_vgtub_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2329fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtub_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2330*bdd1243dSDimitry Andric         (V6_vgtub_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2331fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtub_or_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2332*bdd1243dSDimitry Andric         (V6_vgtub_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2333fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtub_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2334*bdd1243dSDimitry Andric         (V6_vgtub_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2335fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtub_xor_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2336*bdd1243dSDimitry Andric         (V6_vgtub_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2337fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuh HvxVR:$src1, HvxVR:$src2),
2338*bdd1243dSDimitry Andric         (V6_vgtuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2339fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuh_128B HvxVR:$src1, HvxVR:$src2),
2340*bdd1243dSDimitry Andric         (V6_vgtuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2341fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuh_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2342*bdd1243dSDimitry Andric         (V6_vgtuh_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2343fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuh_and_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2344*bdd1243dSDimitry Andric         (V6_vgtuh_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2345fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuh_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2346*bdd1243dSDimitry Andric         (V6_vgtuh_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2347fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuh_or_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2348*bdd1243dSDimitry Andric         (V6_vgtuh_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2349fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuh_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2350*bdd1243dSDimitry Andric         (V6_vgtuh_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2351fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuh_xor_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2352*bdd1243dSDimitry Andric         (V6_vgtuh_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2353fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuw HvxVR:$src1, HvxVR:$src2),
2354*bdd1243dSDimitry Andric         (V6_vgtuw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2355fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuw_128B HvxVR:$src1, HvxVR:$src2),
2356*bdd1243dSDimitry Andric         (V6_vgtuw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2357fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuw_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2358*bdd1243dSDimitry Andric         (V6_vgtuw_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2359fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuw_and_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2360*bdd1243dSDimitry Andric         (V6_vgtuw_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2361fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuw_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2362*bdd1243dSDimitry Andric         (V6_vgtuw_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2363fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuw_or_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2364*bdd1243dSDimitry Andric         (V6_vgtuw_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2365fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuw_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2366*bdd1243dSDimitry Andric         (V6_vgtuw_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2367fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtuw_xor_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2368*bdd1243dSDimitry Andric         (V6_vgtuw_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2369fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtw HvxVR:$src1, HvxVR:$src2),
2370*bdd1243dSDimitry Andric         (V6_vgtw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2371fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtw_128B HvxVR:$src1, HvxVR:$src2),
2372*bdd1243dSDimitry Andric         (V6_vgtw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2373fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtw_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2374*bdd1243dSDimitry Andric         (V6_vgtw_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2375fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtw_and_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2376*bdd1243dSDimitry Andric         (V6_vgtw_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2377fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtw_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2378*bdd1243dSDimitry Andric         (V6_vgtw_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2379fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtw_or_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2380*bdd1243dSDimitry Andric         (V6_vgtw_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2381fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtw_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2382*bdd1243dSDimitry Andric         (V6_vgtw_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2383fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vgtw_xor_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2384*bdd1243dSDimitry Andric         (V6_vgtw_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2385fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vinsertwr HvxVR:$src1, IntRegs:$src2),
2386*bdd1243dSDimitry Andric         (V6_vinsertwr HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2387fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vinsertwr_128B HvxVR:$src1, IntRegs:$src2),
2388*bdd1243dSDimitry Andric         (V6_vinsertwr HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2389fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlalignb HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2390*bdd1243dSDimitry Andric         (V6_vlalignb HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2391fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlalignb_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2392*bdd1243dSDimitry Andric         (V6_vlalignb HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2393fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlalignbi HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3),
2394*bdd1243dSDimitry Andric         (V6_vlalignbi HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2395fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlalignbi_128B HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3),
2396*bdd1243dSDimitry Andric         (V6_vlalignbi HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2397fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlsrh HvxVR:$src1, IntRegs:$src2),
2398*bdd1243dSDimitry Andric         (V6_vlsrh HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2399fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlsrh_128B HvxVR:$src1, IntRegs:$src2),
2400*bdd1243dSDimitry Andric         (V6_vlsrh HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2401fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlsrhv HvxVR:$src1, HvxVR:$src2),
2402*bdd1243dSDimitry Andric         (V6_vlsrhv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2403fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlsrhv_128B HvxVR:$src1, HvxVR:$src2),
2404*bdd1243dSDimitry Andric         (V6_vlsrhv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2405fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlsrw HvxVR:$src1, IntRegs:$src2),
2406*bdd1243dSDimitry Andric         (V6_vlsrw HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2407fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlsrw_128B HvxVR:$src1, IntRegs:$src2),
2408*bdd1243dSDimitry Andric         (V6_vlsrw HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2409fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlsrwv HvxVR:$src1, HvxVR:$src2),
2410*bdd1243dSDimitry Andric         (V6_vlsrwv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2411fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlsrwv_128B HvxVR:$src1, HvxVR:$src2),
2412*bdd1243dSDimitry Andric         (V6_vlsrwv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2413fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvvb HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2414*bdd1243dSDimitry Andric         (V6_vlutvvb HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2415fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvvb_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2416*bdd1243dSDimitry Andric         (V6_vlutvvb HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2417fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvvb_oracc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3, IntRegsLow8:$src4),
2418*bdd1243dSDimitry Andric         (V6_vlutvvb_oracc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3, IntRegsLow8:$src4)>, Requires<[UseHVXV60, UseHVX64B]>;
2419fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvvb_oracc_128B HvxVR:$src1, HvxVR:$src2, HvxVR:$src3, IntRegsLow8:$src4),
2420*bdd1243dSDimitry Andric         (V6_vlutvvb_oracc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3, IntRegsLow8:$src4)>, Requires<[UseHVXV60, UseHVX128B]>;
2421fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvwh HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2422*bdd1243dSDimitry Andric         (V6_vlutvwh HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2423fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvwh_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2424*bdd1243dSDimitry Andric         (V6_vlutvwh HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2425fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvwh_oracc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3, IntRegsLow8:$src4),
2426*bdd1243dSDimitry Andric         (V6_vlutvwh_oracc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3, IntRegsLow8:$src4)>, Requires<[UseHVXV60, UseHVX64B]>;
2427fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvwh_oracc_128B HvxWR:$src1, HvxVR:$src2, HvxVR:$src3, IntRegsLow8:$src4),
2428*bdd1243dSDimitry Andric         (V6_vlutvwh_oracc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3, IntRegsLow8:$src4)>, Requires<[UseHVXV60, UseHVX128B]>;
2429fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmaxh HvxVR:$src1, HvxVR:$src2),
2430*bdd1243dSDimitry Andric         (V6_vmaxh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2431fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmaxh_128B HvxVR:$src1, HvxVR:$src2),
2432*bdd1243dSDimitry Andric         (V6_vmaxh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2433fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmaxub HvxVR:$src1, HvxVR:$src2),
2434*bdd1243dSDimitry Andric         (V6_vmaxub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2435fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmaxub_128B HvxVR:$src1, HvxVR:$src2),
2436*bdd1243dSDimitry Andric         (V6_vmaxub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2437fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmaxuh HvxVR:$src1, HvxVR:$src2),
2438*bdd1243dSDimitry Andric         (V6_vmaxuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2439fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmaxuh_128B HvxVR:$src1, HvxVR:$src2),
2440*bdd1243dSDimitry Andric         (V6_vmaxuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2441fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmaxw HvxVR:$src1, HvxVR:$src2),
2442*bdd1243dSDimitry Andric         (V6_vmaxw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2443fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmaxw_128B HvxVR:$src1, HvxVR:$src2),
2444*bdd1243dSDimitry Andric         (V6_vmaxw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2445fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vminh HvxVR:$src1, HvxVR:$src2),
2446*bdd1243dSDimitry Andric         (V6_vminh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2447fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vminh_128B HvxVR:$src1, HvxVR:$src2),
2448*bdd1243dSDimitry Andric         (V6_vminh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2449fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vminub HvxVR:$src1, HvxVR:$src2),
2450*bdd1243dSDimitry Andric         (V6_vminub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2451fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vminub_128B HvxVR:$src1, HvxVR:$src2),
2452*bdd1243dSDimitry Andric         (V6_vminub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2453fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vminuh HvxVR:$src1, HvxVR:$src2),
2454*bdd1243dSDimitry Andric         (V6_vminuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2455fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vminuh_128B HvxVR:$src1, HvxVR:$src2),
2456*bdd1243dSDimitry Andric         (V6_vminuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2457fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vminw HvxVR:$src1, HvxVR:$src2),
2458*bdd1243dSDimitry Andric         (V6_vminw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2459fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vminw_128B HvxVR:$src1, HvxVR:$src2),
2460*bdd1243dSDimitry Andric         (V6_vminw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2461fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpabus HvxWR:$src1, IntRegs:$src2),
2462*bdd1243dSDimitry Andric         (V6_vmpabus HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2463fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpabus_128B HvxWR:$src1, IntRegs:$src2),
2464*bdd1243dSDimitry Andric         (V6_vmpabus HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2465fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpabus_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2466*bdd1243dSDimitry Andric         (V6_vmpabus_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2467fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpabus_acc_128B HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2468*bdd1243dSDimitry Andric         (V6_vmpabus_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2469fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpabusv HvxWR:$src1, HvxWR:$src2),
2470*bdd1243dSDimitry Andric         (V6_vmpabusv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2471fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpabusv_128B HvxWR:$src1, HvxWR:$src2),
2472*bdd1243dSDimitry Andric         (V6_vmpabusv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2473fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpabuuv HvxWR:$src1, HvxWR:$src2),
2474*bdd1243dSDimitry Andric         (V6_vmpabuuv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2475fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpabuuv_128B HvxWR:$src1, HvxWR:$src2),
2476*bdd1243dSDimitry Andric         (V6_vmpabuuv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2477fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpahb HvxWR:$src1, IntRegs:$src2),
2478*bdd1243dSDimitry Andric         (V6_vmpahb HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2479fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpahb_128B HvxWR:$src1, IntRegs:$src2),
2480*bdd1243dSDimitry Andric         (V6_vmpahb HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2481fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpahb_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2482*bdd1243dSDimitry Andric         (V6_vmpahb_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2483fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpahb_acc_128B HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2484*bdd1243dSDimitry Andric         (V6_vmpahb_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2485fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpybus HvxVR:$src1, IntRegs:$src2),
2486*bdd1243dSDimitry Andric         (V6_vmpybus HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2487fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpybus_128B HvxVR:$src1, IntRegs:$src2),
2488*bdd1243dSDimitry Andric         (V6_vmpybus HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2489fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpybus_acc HvxWR:$src1, HvxVR:$src2, IntRegs:$src3),
2490*bdd1243dSDimitry Andric         (V6_vmpybus_acc HvxWR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2491fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpybus_acc_128B HvxWR:$src1, HvxVR:$src2, IntRegs:$src3),
2492*bdd1243dSDimitry Andric         (V6_vmpybus_acc HvxWR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2493fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpybusv HvxVR:$src1, HvxVR:$src2),
2494*bdd1243dSDimitry Andric         (V6_vmpybusv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2495fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpybusv_128B HvxVR:$src1, HvxVR:$src2),
2496*bdd1243dSDimitry Andric         (V6_vmpybusv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2497fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpybusv_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
2498*bdd1243dSDimitry Andric         (V6_vmpybusv_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2499fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpybusv_acc_128B HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
2500*bdd1243dSDimitry Andric         (V6_vmpybusv_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2501fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpybv HvxVR:$src1, HvxVR:$src2),
2502*bdd1243dSDimitry Andric         (V6_vmpybv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2503fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpybv_128B HvxVR:$src1, HvxVR:$src2),
2504*bdd1243dSDimitry Andric         (V6_vmpybv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2505fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpybv_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
2506*bdd1243dSDimitry Andric         (V6_vmpybv_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2507fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpybv_acc_128B HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
2508*bdd1243dSDimitry Andric         (V6_vmpybv_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2509fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyewuh HvxVR:$src1, HvxVR:$src2),
2510*bdd1243dSDimitry Andric         (V6_vmpyewuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2511fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyewuh_128B HvxVR:$src1, HvxVR:$src2),
2512*bdd1243dSDimitry Andric         (V6_vmpyewuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2513fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyh HvxVR:$src1, IntRegs:$src2),
2514*bdd1243dSDimitry Andric         (V6_vmpyh HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2515fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyh_128B HvxVR:$src1, IntRegs:$src2),
2516*bdd1243dSDimitry Andric         (V6_vmpyh HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2517fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhsat_acc HvxWR:$src1, HvxVR:$src2, IntRegs:$src3),
2518*bdd1243dSDimitry Andric         (V6_vmpyhsat_acc HvxWR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2519fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhsat_acc_128B HvxWR:$src1, HvxVR:$src2, IntRegs:$src3),
2520*bdd1243dSDimitry Andric         (V6_vmpyhsat_acc HvxWR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2521fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhsrs HvxVR:$src1, IntRegs:$src2),
2522*bdd1243dSDimitry Andric         (V6_vmpyhsrs HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2523fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhsrs_128B HvxVR:$src1, IntRegs:$src2),
2524*bdd1243dSDimitry Andric         (V6_vmpyhsrs HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2525fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhss HvxVR:$src1, IntRegs:$src2),
2526*bdd1243dSDimitry Andric         (V6_vmpyhss HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2527fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhss_128B HvxVR:$src1, IntRegs:$src2),
2528*bdd1243dSDimitry Andric         (V6_vmpyhss HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2529fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhus HvxVR:$src1, HvxVR:$src2),
2530*bdd1243dSDimitry Andric         (V6_vmpyhus HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2531fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhus_128B HvxVR:$src1, HvxVR:$src2),
2532*bdd1243dSDimitry Andric         (V6_vmpyhus HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2533fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhus_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
2534*bdd1243dSDimitry Andric         (V6_vmpyhus_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2535fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhus_acc_128B HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
2536*bdd1243dSDimitry Andric         (V6_vmpyhus_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2537fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhv HvxVR:$src1, HvxVR:$src2),
2538*bdd1243dSDimitry Andric         (V6_vmpyhv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2539fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhv_128B HvxVR:$src1, HvxVR:$src2),
2540*bdd1243dSDimitry Andric         (V6_vmpyhv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2541fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhv_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
2542*bdd1243dSDimitry Andric         (V6_vmpyhv_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2543fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhv_acc_128B HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
2544*bdd1243dSDimitry Andric         (V6_vmpyhv_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2545fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhvsrs HvxVR:$src1, HvxVR:$src2),
2546*bdd1243dSDimitry Andric         (V6_vmpyhvsrs HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2547fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyhvsrs_128B HvxVR:$src1, HvxVR:$src2),
2548*bdd1243dSDimitry Andric         (V6_vmpyhvsrs HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2549fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyieoh HvxVR:$src1, HvxVR:$src2),
2550*bdd1243dSDimitry Andric         (V6_vmpyieoh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2551fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyieoh_128B HvxVR:$src1, HvxVR:$src2),
2552*bdd1243dSDimitry Andric         (V6_vmpyieoh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2553fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiewh_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2554*bdd1243dSDimitry Andric         (V6_vmpyiewh_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2555fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiewh_acc_128B HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2556*bdd1243dSDimitry Andric         (V6_vmpyiewh_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2557fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiewuh HvxVR:$src1, HvxVR:$src2),
2558*bdd1243dSDimitry Andric         (V6_vmpyiewuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2559fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiewuh_128B HvxVR:$src1, HvxVR:$src2),
2560*bdd1243dSDimitry Andric         (V6_vmpyiewuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2561fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiewuh_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2562*bdd1243dSDimitry Andric         (V6_vmpyiewuh_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2563fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiewuh_acc_128B HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2564*bdd1243dSDimitry Andric         (V6_vmpyiewuh_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2565fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyih HvxVR:$src1, HvxVR:$src2),
2566*bdd1243dSDimitry Andric         (V6_vmpyih HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2567fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyih_128B HvxVR:$src1, HvxVR:$src2),
2568*bdd1243dSDimitry Andric         (V6_vmpyih HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2569fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyih_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2570*bdd1243dSDimitry Andric         (V6_vmpyih_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2571fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyih_acc_128B HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2572*bdd1243dSDimitry Andric         (V6_vmpyih_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2573fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyihb HvxVR:$src1, IntRegs:$src2),
2574*bdd1243dSDimitry Andric         (V6_vmpyihb HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2575fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyihb_128B HvxVR:$src1, IntRegs:$src2),
2576*bdd1243dSDimitry Andric         (V6_vmpyihb HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2577fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyihb_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2578*bdd1243dSDimitry Andric         (V6_vmpyihb_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2579fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyihb_acc_128B HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2580*bdd1243dSDimitry Andric         (V6_vmpyihb_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2581fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiowh HvxVR:$src1, HvxVR:$src2),
2582*bdd1243dSDimitry Andric         (V6_vmpyiowh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2583fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiowh_128B HvxVR:$src1, HvxVR:$src2),
2584*bdd1243dSDimitry Andric         (V6_vmpyiowh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2585fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiwb HvxVR:$src1, IntRegs:$src2),
2586*bdd1243dSDimitry Andric         (V6_vmpyiwb HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2587fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiwb_128B HvxVR:$src1, IntRegs:$src2),
2588*bdd1243dSDimitry Andric         (V6_vmpyiwb HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2589fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiwb_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2590*bdd1243dSDimitry Andric         (V6_vmpyiwb_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2591fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiwb_acc_128B HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2592*bdd1243dSDimitry Andric         (V6_vmpyiwb_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2593fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiwh HvxVR:$src1, IntRegs:$src2),
2594*bdd1243dSDimitry Andric         (V6_vmpyiwh HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2595fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiwh_128B HvxVR:$src1, IntRegs:$src2),
2596*bdd1243dSDimitry Andric         (V6_vmpyiwh HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2597fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiwh_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2598*bdd1243dSDimitry Andric         (V6_vmpyiwh_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2599fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiwh_acc_128B HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2600*bdd1243dSDimitry Andric         (V6_vmpyiwh_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2601fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyowh HvxVR:$src1, HvxVR:$src2),
2602*bdd1243dSDimitry Andric         (V6_vmpyowh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2603fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyowh_128B HvxVR:$src1, HvxVR:$src2),
2604*bdd1243dSDimitry Andric         (V6_vmpyowh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2605fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyowh_rnd HvxVR:$src1, HvxVR:$src2),
2606*bdd1243dSDimitry Andric         (V6_vmpyowh_rnd HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2607fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyowh_rnd_128B HvxVR:$src1, HvxVR:$src2),
2608*bdd1243dSDimitry Andric         (V6_vmpyowh_rnd HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2609fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyowh_rnd_sacc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2610*bdd1243dSDimitry Andric         (V6_vmpyowh_rnd_sacc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2611fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyowh_rnd_sacc_128B HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2612*bdd1243dSDimitry Andric         (V6_vmpyowh_rnd_sacc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2613fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyowh_sacc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2614*bdd1243dSDimitry Andric         (V6_vmpyowh_sacc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2615fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyowh_sacc_128B HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2616*bdd1243dSDimitry Andric         (V6_vmpyowh_sacc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2617fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyub HvxVR:$src1, IntRegs:$src2),
2618*bdd1243dSDimitry Andric         (V6_vmpyub HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2619fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyub_128B HvxVR:$src1, IntRegs:$src2),
2620*bdd1243dSDimitry Andric         (V6_vmpyub HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2621fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyub_acc HvxWR:$src1, HvxVR:$src2, IntRegs:$src3),
2622*bdd1243dSDimitry Andric         (V6_vmpyub_acc HvxWR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2623fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyub_acc_128B HvxWR:$src1, HvxVR:$src2, IntRegs:$src3),
2624*bdd1243dSDimitry Andric         (V6_vmpyub_acc HvxWR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2625fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyubv HvxVR:$src1, HvxVR:$src2),
2626*bdd1243dSDimitry Andric         (V6_vmpyubv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2627fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyubv_128B HvxVR:$src1, HvxVR:$src2),
2628*bdd1243dSDimitry Andric         (V6_vmpyubv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2629fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyubv_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
2630*bdd1243dSDimitry Andric         (V6_vmpyubv_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2631fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyubv_acc_128B HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
2632*bdd1243dSDimitry Andric         (V6_vmpyubv_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2633fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyuh HvxVR:$src1, IntRegs:$src2),
2634*bdd1243dSDimitry Andric         (V6_vmpyuh HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2635fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyuh_128B HvxVR:$src1, IntRegs:$src2),
2636*bdd1243dSDimitry Andric         (V6_vmpyuh HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2637fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyuh_acc HvxWR:$src1, HvxVR:$src2, IntRegs:$src3),
2638*bdd1243dSDimitry Andric         (V6_vmpyuh_acc HvxWR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2639fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyuh_acc_128B HvxWR:$src1, HvxVR:$src2, IntRegs:$src3),
2640*bdd1243dSDimitry Andric         (V6_vmpyuh_acc HvxWR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2641fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyuhv HvxVR:$src1, HvxVR:$src2),
2642*bdd1243dSDimitry Andric         (V6_vmpyuhv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2643fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyuhv_128B HvxVR:$src1, HvxVR:$src2),
2644*bdd1243dSDimitry Andric         (V6_vmpyuhv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2645fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyuhv_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
2646*bdd1243dSDimitry Andric         (V6_vmpyuhv_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2647fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyuhv_acc_128B HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
2648*bdd1243dSDimitry Andric         (V6_vmpyuhv_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2649fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmux HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2650*bdd1243dSDimitry Andric         (V6_vmux HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2651fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmux_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2652*bdd1243dSDimitry Andric         (V6_vmux HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2653fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vnavgh HvxVR:$src1, HvxVR:$src2),
2654*bdd1243dSDimitry Andric         (V6_vnavgh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2655fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vnavgh_128B HvxVR:$src1, HvxVR:$src2),
2656*bdd1243dSDimitry Andric         (V6_vnavgh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2657fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vnavgub HvxVR:$src1, HvxVR:$src2),
2658*bdd1243dSDimitry Andric         (V6_vnavgub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2659fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vnavgub_128B HvxVR:$src1, HvxVR:$src2),
2660*bdd1243dSDimitry Andric         (V6_vnavgub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2661fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vnavgw HvxVR:$src1, HvxVR:$src2),
2662*bdd1243dSDimitry Andric         (V6_vnavgw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2663fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vnavgw_128B HvxVR:$src1, HvxVR:$src2),
2664*bdd1243dSDimitry Andric         (V6_vnavgw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2665fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vnormamth HvxVR:$src1),
2666*bdd1243dSDimitry Andric         (V6_vnormamth HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2667fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vnormamth_128B HvxVR:$src1),
2668*bdd1243dSDimitry Andric         (V6_vnormamth HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2669fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vnormamtw HvxVR:$src1),
2670*bdd1243dSDimitry Andric         (V6_vnormamtw HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2671fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vnormamtw_128B HvxVR:$src1),
2672*bdd1243dSDimitry Andric         (V6_vnormamtw HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2673fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vnot HvxVR:$src1),
2674*bdd1243dSDimitry Andric         (V6_vnot HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2675fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vnot_128B HvxVR:$src1),
2676*bdd1243dSDimitry Andric         (V6_vnot HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2677fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vor HvxVR:$src1, HvxVR:$src2),
2678*bdd1243dSDimitry Andric         (V6_vor HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2679fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vor_128B HvxVR:$src1, HvxVR:$src2),
2680*bdd1243dSDimitry Andric         (V6_vor HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2681fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackeb HvxVR:$src1, HvxVR:$src2),
2682*bdd1243dSDimitry Andric         (V6_vpackeb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2683fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackeb_128B HvxVR:$src1, HvxVR:$src2),
2684*bdd1243dSDimitry Andric         (V6_vpackeb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2685fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackeh HvxVR:$src1, HvxVR:$src2),
2686*bdd1243dSDimitry Andric         (V6_vpackeh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2687fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackeh_128B HvxVR:$src1, HvxVR:$src2),
2688*bdd1243dSDimitry Andric         (V6_vpackeh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2689fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackhb_sat HvxVR:$src1, HvxVR:$src2),
2690*bdd1243dSDimitry Andric         (V6_vpackhb_sat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2691fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackhb_sat_128B HvxVR:$src1, HvxVR:$src2),
2692*bdd1243dSDimitry Andric         (V6_vpackhb_sat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2693fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackhub_sat HvxVR:$src1, HvxVR:$src2),
2694*bdd1243dSDimitry Andric         (V6_vpackhub_sat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2695fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackhub_sat_128B HvxVR:$src1, HvxVR:$src2),
2696*bdd1243dSDimitry Andric         (V6_vpackhub_sat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2697fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackob HvxVR:$src1, HvxVR:$src2),
2698*bdd1243dSDimitry Andric         (V6_vpackob HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2699fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackob_128B HvxVR:$src1, HvxVR:$src2),
2700*bdd1243dSDimitry Andric         (V6_vpackob HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2701fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackoh HvxVR:$src1, HvxVR:$src2),
2702*bdd1243dSDimitry Andric         (V6_vpackoh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2703fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackoh_128B HvxVR:$src1, HvxVR:$src2),
2704*bdd1243dSDimitry Andric         (V6_vpackoh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2705fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackwh_sat HvxVR:$src1, HvxVR:$src2),
2706*bdd1243dSDimitry Andric         (V6_vpackwh_sat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2707fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackwh_sat_128B HvxVR:$src1, HvxVR:$src2),
2708*bdd1243dSDimitry Andric         (V6_vpackwh_sat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2709fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackwuh_sat HvxVR:$src1, HvxVR:$src2),
2710*bdd1243dSDimitry Andric         (V6_vpackwuh_sat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2711fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpackwuh_sat_128B HvxVR:$src1, HvxVR:$src2),
2712*bdd1243dSDimitry Andric         (V6_vpackwuh_sat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2713fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpopcounth HvxVR:$src1),
2714*bdd1243dSDimitry Andric         (V6_vpopcounth HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2715fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vpopcounth_128B HvxVR:$src1),
2716*bdd1243dSDimitry Andric         (V6_vpopcounth HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2717fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrdelta HvxVR:$src1, HvxVR:$src2),
2718*bdd1243dSDimitry Andric         (V6_vrdelta HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2719fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrdelta_128B HvxVR:$src1, HvxVR:$src2),
2720*bdd1243dSDimitry Andric         (V6_vrdelta HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
27215ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybus HvxVR:$src1, IntRegs:$src2),
2722*bdd1243dSDimitry Andric         (V6_vrmpybus HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
27235ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybus_128B HvxVR:$src1, IntRegs:$src2),
2724*bdd1243dSDimitry Andric         (V6_vrmpybus HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
27255ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybus_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2726*bdd1243dSDimitry Andric         (V6_vrmpybus_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
27275ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybus_acc_128B HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2728*bdd1243dSDimitry Andric         (V6_vrmpybus_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
27295ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybusi HvxWR:$src1, IntRegs:$src2, u1_0ImmPred_timm:$src3),
2730*bdd1243dSDimitry Andric         (V6_vrmpybusi HvxWR:$src1, IntRegs:$src2, u1_0ImmPred_timm:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
27315ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybusi_128B HvxWR:$src1, IntRegs:$src2, u1_0ImmPred_timm:$src3),
2732*bdd1243dSDimitry Andric         (V6_vrmpybusi HvxWR:$src1, IntRegs:$src2, u1_0ImmPred_timm:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
27335ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybusi_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3, u1_0ImmPred_timm:$src4),
2734*bdd1243dSDimitry Andric         (V6_vrmpybusi_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3, u1_0ImmPred_timm:$src4)>, Requires<[UseHVXV60, UseHVX64B]>;
27355ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybusi_acc_128B HvxWR:$src1, HvxWR:$src2, IntRegs:$src3, u1_0ImmPred_timm:$src4),
2736*bdd1243dSDimitry Andric         (V6_vrmpybusi_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3, u1_0ImmPred_timm:$src4)>, Requires<[UseHVXV60, UseHVX128B]>;
27375ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybusv HvxVR:$src1, HvxVR:$src2),
2738*bdd1243dSDimitry Andric         (V6_vrmpybusv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
27395ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybusv_128B HvxVR:$src1, HvxVR:$src2),
2740*bdd1243dSDimitry Andric         (V6_vrmpybusv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
27415ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybusv_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2742*bdd1243dSDimitry Andric         (V6_vrmpybusv_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
27435ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybusv_acc_128B HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2744*bdd1243dSDimitry Andric         (V6_vrmpybusv_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2745fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybv HvxVR:$src1, HvxVR:$src2),
2746*bdd1243dSDimitry Andric         (V6_vrmpybv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2747fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybv_128B HvxVR:$src1, HvxVR:$src2),
2748*bdd1243dSDimitry Andric         (V6_vrmpybv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2749fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybv_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2750*bdd1243dSDimitry Andric         (V6_vrmpybv_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2751fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpybv_acc_128B HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2752*bdd1243dSDimitry Andric         (V6_vrmpybv_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2753fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpyub HvxVR:$src1, IntRegs:$src2),
2754*bdd1243dSDimitry Andric         (V6_vrmpyub HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2755fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpyub_128B HvxVR:$src1, IntRegs:$src2),
2756*bdd1243dSDimitry Andric         (V6_vrmpyub HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2757fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpyub_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2758*bdd1243dSDimitry Andric         (V6_vrmpyub_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2759fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpyub_acc_128B HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
2760*bdd1243dSDimitry Andric         (V6_vrmpyub_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2761fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpyubi HvxWR:$src1, IntRegs:$src2, u1_0ImmPred_timm:$src3),
2762*bdd1243dSDimitry Andric         (V6_vrmpyubi HvxWR:$src1, IntRegs:$src2, u1_0ImmPred_timm:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2763fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpyubi_128B HvxWR:$src1, IntRegs:$src2, u1_0ImmPred_timm:$src3),
2764*bdd1243dSDimitry Andric         (V6_vrmpyubi HvxWR:$src1, IntRegs:$src2, u1_0ImmPred_timm:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2765fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpyubi_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3, u1_0ImmPred_timm:$src4),
2766*bdd1243dSDimitry Andric         (V6_vrmpyubi_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3, u1_0ImmPred_timm:$src4)>, Requires<[UseHVXV60, UseHVX64B]>;
2767fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpyubi_acc_128B HvxWR:$src1, HvxWR:$src2, IntRegs:$src3, u1_0ImmPred_timm:$src4),
2768*bdd1243dSDimitry Andric         (V6_vrmpyubi_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3, u1_0ImmPred_timm:$src4)>, Requires<[UseHVXV60, UseHVX128B]>;
2769fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpyubv HvxVR:$src1, HvxVR:$src2),
2770*bdd1243dSDimitry Andric         (V6_vrmpyubv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2771fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpyubv_128B HvxVR:$src1, HvxVR:$src2),
2772*bdd1243dSDimitry Andric         (V6_vrmpyubv HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2773fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpyubv_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2774*bdd1243dSDimitry Andric         (V6_vrmpyubv_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2775fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrmpyubv_acc_128B HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
2776*bdd1243dSDimitry Andric         (V6_vrmpyubv_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2777fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vror HvxVR:$src1, IntRegs:$src2),
2778*bdd1243dSDimitry Andric         (V6_vror HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2779fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vror_128B HvxVR:$src1, IntRegs:$src2),
2780*bdd1243dSDimitry Andric         (V6_vror HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
27815ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vroundhb HvxVR:$src1, HvxVR:$src2),
2782*bdd1243dSDimitry Andric         (V6_vroundhb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
27835ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vroundhb_128B HvxVR:$src1, HvxVR:$src2),
2784*bdd1243dSDimitry Andric         (V6_vroundhb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
27855ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vroundhub HvxVR:$src1, HvxVR:$src2),
2786*bdd1243dSDimitry Andric         (V6_vroundhub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
27875ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vroundhub_128B HvxVR:$src1, HvxVR:$src2),
2788*bdd1243dSDimitry Andric         (V6_vroundhub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2789fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vroundwh HvxVR:$src1, HvxVR:$src2),
2790*bdd1243dSDimitry Andric         (V6_vroundwh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2791fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vroundwh_128B HvxVR:$src1, HvxVR:$src2),
2792*bdd1243dSDimitry Andric         (V6_vroundwh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2793fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vroundwuh HvxVR:$src1, HvxVR:$src2),
2794*bdd1243dSDimitry Andric         (V6_vroundwuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2795fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vroundwuh_128B HvxVR:$src1, HvxVR:$src2),
2796*bdd1243dSDimitry Andric         (V6_vroundwuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2797fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrsadubi HvxWR:$src1, IntRegs:$src2, u1_0ImmPred_timm:$src3),
2798*bdd1243dSDimitry Andric         (V6_vrsadubi HvxWR:$src1, IntRegs:$src2, u1_0ImmPred_timm:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2799fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrsadubi_128B HvxWR:$src1, IntRegs:$src2, u1_0ImmPred_timm:$src3),
2800*bdd1243dSDimitry Andric         (V6_vrsadubi HvxWR:$src1, IntRegs:$src2, u1_0ImmPred_timm:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2801fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrsadubi_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3, u1_0ImmPred_timm:$src4),
2802*bdd1243dSDimitry Andric         (V6_vrsadubi_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3, u1_0ImmPred_timm:$src4)>, Requires<[UseHVXV60, UseHVX64B]>;
2803fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrsadubi_acc_128B HvxWR:$src1, HvxWR:$src2, IntRegs:$src3, u1_0ImmPred_timm:$src4),
2804*bdd1243dSDimitry Andric         (V6_vrsadubi_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3, u1_0ImmPred_timm:$src4)>, Requires<[UseHVXV60, UseHVX128B]>;
28055ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vsathub HvxVR:$src1, HvxVR:$src2),
2806*bdd1243dSDimitry Andric         (V6_vsathub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
28075ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vsathub_128B HvxVR:$src1, HvxVR:$src2),
2808*bdd1243dSDimitry Andric         (V6_vsathub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
28095ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vsatwh HvxVR:$src1, HvxVR:$src2),
2810*bdd1243dSDimitry Andric         (V6_vsatwh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
28115ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vsatwh_128B HvxVR:$src1, HvxVR:$src2),
2812*bdd1243dSDimitry Andric         (V6_vsatwh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2813fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsb HvxVR:$src1),
2814*bdd1243dSDimitry Andric         (V6_vsb HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2815fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsb_128B HvxVR:$src1),
2816*bdd1243dSDimitry Andric         (V6_vsb HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2817fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsh HvxVR:$src1),
2818*bdd1243dSDimitry Andric         (V6_vsh HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2819fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsh_128B HvxVR:$src1),
2820*bdd1243dSDimitry Andric         (V6_vsh HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
28215ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vshufeh HvxVR:$src1, HvxVR:$src2),
2822*bdd1243dSDimitry Andric         (V6_vshufeh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
28235ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vshufeh_128B HvxVR:$src1, HvxVR:$src2),
2824*bdd1243dSDimitry Andric         (V6_vshufeh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
28255ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vshuffb HvxVR:$src1),
2826*bdd1243dSDimitry Andric         (V6_vshuffb HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
28275ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vshuffb_128B HvxVR:$src1),
2828*bdd1243dSDimitry Andric         (V6_vshuffb HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2829fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vshuffeb HvxVR:$src1, HvxVR:$src2),
2830*bdd1243dSDimitry Andric         (V6_vshuffeb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2831fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vshuffeb_128B HvxVR:$src1, HvxVR:$src2),
2832*bdd1243dSDimitry Andric         (V6_vshuffeb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2833fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vshuffh HvxVR:$src1),
2834*bdd1243dSDimitry Andric         (V6_vshuffh HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2835fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vshuffh_128B HvxVR:$src1),
2836*bdd1243dSDimitry Andric         (V6_vshuffh HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2837fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vshuffob HvxVR:$src1, HvxVR:$src2),
2838*bdd1243dSDimitry Andric         (V6_vshuffob HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2839fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vshuffob_128B HvxVR:$src1, HvxVR:$src2),
2840*bdd1243dSDimitry Andric         (V6_vshuffob HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2841fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vshuffvdd HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2842*bdd1243dSDimitry Andric         (V6_vshuffvdd HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2843fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vshuffvdd_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
2844*bdd1243dSDimitry Andric         (V6_vshuffvdd HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2845fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vshufoeb HvxVR:$src1, HvxVR:$src2),
2846*bdd1243dSDimitry Andric         (V6_vshufoeb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2847fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vshufoeb_128B HvxVR:$src1, HvxVR:$src2),
2848*bdd1243dSDimitry Andric         (V6_vshufoeb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2849fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vshufoeh HvxVR:$src1, HvxVR:$src2),
2850*bdd1243dSDimitry Andric         (V6_vshufoeh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2851fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vshufoeh_128B HvxVR:$src1, HvxVR:$src2),
2852*bdd1243dSDimitry Andric         (V6_vshufoeh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2853fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vshufoh HvxVR:$src1, HvxVR:$src2),
2854*bdd1243dSDimitry Andric         (V6_vshufoh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2855fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vshufoh_128B HvxVR:$src1, HvxVR:$src2),
2856*bdd1243dSDimitry Andric         (V6_vshufoh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2857fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubb HvxVR:$src1, HvxVR:$src2),
2858*bdd1243dSDimitry Andric         (V6_vsubb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2859fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubb_128B HvxVR:$src1, HvxVR:$src2),
2860*bdd1243dSDimitry Andric         (V6_vsubb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2861fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubb_dv HvxWR:$src1, HvxWR:$src2),
2862*bdd1243dSDimitry Andric         (V6_vsubb_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2863fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubb_dv_128B HvxWR:$src1, HvxWR:$src2),
2864*bdd1243dSDimitry Andric         (V6_vsubb_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2865fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubbnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2866*bdd1243dSDimitry Andric         (V6_vsubbnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2867fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubbnq_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2868*bdd1243dSDimitry Andric         (V6_vsubbnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2869fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubbq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2870*bdd1243dSDimitry Andric         (V6_vsubbq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2871fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubbq_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2872*bdd1243dSDimitry Andric         (V6_vsubbq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2873fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubh HvxVR:$src1, HvxVR:$src2),
2874*bdd1243dSDimitry Andric         (V6_vsubh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2875fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubh_128B HvxVR:$src1, HvxVR:$src2),
2876*bdd1243dSDimitry Andric         (V6_vsubh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2877fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubh_dv HvxWR:$src1, HvxWR:$src2),
2878*bdd1243dSDimitry Andric         (V6_vsubh_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2879fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubh_dv_128B HvxWR:$src1, HvxWR:$src2),
2880*bdd1243dSDimitry Andric         (V6_vsubh_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2881fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubhnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2882*bdd1243dSDimitry Andric         (V6_vsubhnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2883fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubhnq_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2884*bdd1243dSDimitry Andric         (V6_vsubhnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2885fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubhq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2886*bdd1243dSDimitry Andric         (V6_vsubhq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2887fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubhq_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2888*bdd1243dSDimitry Andric         (V6_vsubhq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2889fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubhsat HvxVR:$src1, HvxVR:$src2),
2890*bdd1243dSDimitry Andric         (V6_vsubhsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2891fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubhsat_128B HvxVR:$src1, HvxVR:$src2),
2892*bdd1243dSDimitry Andric         (V6_vsubhsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2893fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubhsat_dv HvxWR:$src1, HvxWR:$src2),
2894*bdd1243dSDimitry Andric         (V6_vsubhsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2895fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubhsat_dv_128B HvxWR:$src1, HvxWR:$src2),
2896*bdd1243dSDimitry Andric         (V6_vsubhsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2897fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubhw HvxVR:$src1, HvxVR:$src2),
2898*bdd1243dSDimitry Andric         (V6_vsubhw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2899fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubhw_128B HvxVR:$src1, HvxVR:$src2),
2900*bdd1243dSDimitry Andric         (V6_vsubhw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2901fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsububh HvxVR:$src1, HvxVR:$src2),
2902*bdd1243dSDimitry Andric         (V6_vsububh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2903fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsububh_128B HvxVR:$src1, HvxVR:$src2),
2904*bdd1243dSDimitry Andric         (V6_vsububh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2905fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsububsat HvxVR:$src1, HvxVR:$src2),
2906*bdd1243dSDimitry Andric         (V6_vsububsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2907fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsububsat_128B HvxVR:$src1, HvxVR:$src2),
2908*bdd1243dSDimitry Andric         (V6_vsububsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2909fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsububsat_dv HvxWR:$src1, HvxWR:$src2),
2910*bdd1243dSDimitry Andric         (V6_vsububsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2911fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsububsat_dv_128B HvxWR:$src1, HvxWR:$src2),
2912*bdd1243dSDimitry Andric         (V6_vsububsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2913fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubuhsat HvxVR:$src1, HvxVR:$src2),
2914*bdd1243dSDimitry Andric         (V6_vsubuhsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2915fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubuhsat_128B HvxVR:$src1, HvxVR:$src2),
2916*bdd1243dSDimitry Andric         (V6_vsubuhsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2917fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubuhsat_dv HvxWR:$src1, HvxWR:$src2),
2918*bdd1243dSDimitry Andric         (V6_vsubuhsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2919fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubuhsat_dv_128B HvxWR:$src1, HvxWR:$src2),
2920*bdd1243dSDimitry Andric         (V6_vsubuhsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2921fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubuhw HvxVR:$src1, HvxVR:$src2),
2922*bdd1243dSDimitry Andric         (V6_vsubuhw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2923fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubuhw_128B HvxVR:$src1, HvxVR:$src2),
2924*bdd1243dSDimitry Andric         (V6_vsubuhw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2925fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubw HvxVR:$src1, HvxVR:$src2),
2926*bdd1243dSDimitry Andric         (V6_vsubw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2927fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubw_128B HvxVR:$src1, HvxVR:$src2),
2928*bdd1243dSDimitry Andric         (V6_vsubw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2929fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubw_dv HvxWR:$src1, HvxWR:$src2),
2930*bdd1243dSDimitry Andric         (V6_vsubw_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2931fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubw_dv_128B HvxWR:$src1, HvxWR:$src2),
2932*bdd1243dSDimitry Andric         (V6_vsubw_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2933fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubwnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2934*bdd1243dSDimitry Andric         (V6_vsubwnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2935fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubwnq_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2936*bdd1243dSDimitry Andric         (V6_vsubwnq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2937fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubwq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2938*bdd1243dSDimitry Andric         (V6_vsubwq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2939fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubwq_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2940*bdd1243dSDimitry Andric         (V6_vsubwq HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2941fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubwsat HvxVR:$src1, HvxVR:$src2),
2942*bdd1243dSDimitry Andric         (V6_vsubwsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2943fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubwsat_128B HvxVR:$src1, HvxVR:$src2),
2944*bdd1243dSDimitry Andric         (V6_vsubwsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2945fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubwsat_dv HvxWR:$src1, HvxWR:$src2),
2946*bdd1243dSDimitry Andric         (V6_vsubwsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2947fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubwsat_dv_128B HvxWR:$src1, HvxWR:$src2),
2948*bdd1243dSDimitry Andric         (V6_vsubwsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2949fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vswap HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2950*bdd1243dSDimitry Andric         (V6_vswap HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2951fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vswap_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
2952*bdd1243dSDimitry Andric         (V6_vswap HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2953fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vtmpyb HvxWR:$src1, IntRegs:$src2),
2954*bdd1243dSDimitry Andric         (V6_vtmpyb HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2955fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vtmpyb_128B HvxWR:$src1, IntRegs:$src2),
2956*bdd1243dSDimitry Andric         (V6_vtmpyb HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2957fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vtmpyb_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2958*bdd1243dSDimitry Andric         (V6_vtmpyb_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2959fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vtmpyb_acc_128B HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2960*bdd1243dSDimitry Andric         (V6_vtmpyb_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2961fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vtmpybus HvxWR:$src1, IntRegs:$src2),
2962*bdd1243dSDimitry Andric         (V6_vtmpybus HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2963fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vtmpybus_128B HvxWR:$src1, IntRegs:$src2),
2964*bdd1243dSDimitry Andric         (V6_vtmpybus HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2965fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vtmpybus_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2966*bdd1243dSDimitry Andric         (V6_vtmpybus_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2967fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vtmpybus_acc_128B HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2968*bdd1243dSDimitry Andric         (V6_vtmpybus_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2969fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vtmpyhb HvxWR:$src1, IntRegs:$src2),
2970*bdd1243dSDimitry Andric         (V6_vtmpyhb HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2971fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vtmpyhb_128B HvxWR:$src1, IntRegs:$src2),
2972*bdd1243dSDimitry Andric         (V6_vtmpyhb HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2973fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vtmpyhb_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2974*bdd1243dSDimitry Andric         (V6_vtmpyhb_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX64B]>;
2975fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vtmpyhb_acc_128B HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
2976*bdd1243dSDimitry Andric         (V6_vtmpyhb_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV60, UseHVX128B]>;
2977fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vunpackb HvxVR:$src1),
2978*bdd1243dSDimitry Andric         (V6_vunpackb HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2979fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vunpackb_128B HvxVR:$src1),
2980*bdd1243dSDimitry Andric         (V6_vunpackb HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2981fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vunpackh HvxVR:$src1),
2982*bdd1243dSDimitry Andric         (V6_vunpackh HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2983fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vunpackh_128B HvxVR:$src1),
2984*bdd1243dSDimitry Andric         (V6_vunpackh HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2985fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vunpackob HvxWR:$src1, HvxVR:$src2),
2986*bdd1243dSDimitry Andric         (V6_vunpackob HvxWR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2987fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vunpackob_128B HvxWR:$src1, HvxVR:$src2),
2988*bdd1243dSDimitry Andric         (V6_vunpackob HvxWR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2989fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vunpackoh HvxWR:$src1, HvxVR:$src2),
2990*bdd1243dSDimitry Andric         (V6_vunpackoh HvxWR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
2991fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vunpackoh_128B HvxWR:$src1, HvxVR:$src2),
2992*bdd1243dSDimitry Andric         (V6_vunpackoh HvxWR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
2993fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vunpackub HvxVR:$src1),
2994*bdd1243dSDimitry Andric         (V6_vunpackub HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2995fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vunpackub_128B HvxVR:$src1),
2996*bdd1243dSDimitry Andric         (V6_vunpackub HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
2997fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vunpackuh HvxVR:$src1),
2998*bdd1243dSDimitry Andric         (V6_vunpackuh HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
2999fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vunpackuh_128B HvxVR:$src1),
3000*bdd1243dSDimitry Andric         (V6_vunpackuh HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
3001fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vxor HvxVR:$src1, HvxVR:$src2),
3002*bdd1243dSDimitry Andric         (V6_vxor HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX64B]>;
3003fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vxor_128B HvxVR:$src1, HvxVR:$src2),
3004*bdd1243dSDimitry Andric         (V6_vxor HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV60, UseHVX128B]>;
3005fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vzb HvxVR:$src1),
3006*bdd1243dSDimitry Andric         (V6_vzb HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
3007fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vzb_128B HvxVR:$src1),
3008*bdd1243dSDimitry Andric         (V6_vzb HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
3009fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vzh HvxVR:$src1),
3010*bdd1243dSDimitry Andric         (V6_vzh HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX64B]>;
3011fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vzh_128B HvxVR:$src1),
3012*bdd1243dSDimitry Andric         (V6_vzh HvxVR:$src1)>, Requires<[UseHVXV60, UseHVX128B]>;
30130b57cec5SDimitry Andric
30140b57cec5SDimitry Andric// V62 HVX Instructions.
30150b57cec5SDimitry Andric
3016fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_lvsplatb IntRegs:$src1),
3017*bdd1243dSDimitry Andric         (V6_lvsplatb IntRegs:$src1)>, Requires<[UseHVXV62, UseHVX64B]>;
3018fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_lvsplatb_128B IntRegs:$src1),
3019*bdd1243dSDimitry Andric         (V6_lvsplatb IntRegs:$src1)>, Requires<[UseHVXV62, UseHVX128B]>;
3020fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_lvsplath IntRegs:$src1),
3021*bdd1243dSDimitry Andric         (V6_lvsplath IntRegs:$src1)>, Requires<[UseHVXV62, UseHVX64B]>;
3022fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_lvsplath_128B IntRegs:$src1),
3023*bdd1243dSDimitry Andric         (V6_lvsplath IntRegs:$src1)>, Requires<[UseHVXV62, UseHVX128B]>;
3024fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_scalar2v2 IntRegs:$src1),
3025*bdd1243dSDimitry Andric         (V6_pred_scalar2v2 IntRegs:$src1)>, Requires<[UseHVXV62, UseHVX64B]>;
3026fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_pred_scalar2v2_128B IntRegs:$src1),
3027*bdd1243dSDimitry Andric         (V6_pred_scalar2v2 IntRegs:$src1)>, Requires<[UseHVXV62, UseHVX128B]>;
3028fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_shuffeqh HvxQR:$src1, HvxQR:$src2),
3029*bdd1243dSDimitry Andric         (V6_shuffeqh HvxQR:$src1, HvxQR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3030fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_shuffeqh_128B HvxQR:$src1, HvxQR:$src2),
3031*bdd1243dSDimitry Andric         (V6_shuffeqh HvxQR:$src1, HvxQR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3032fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_shuffeqw HvxQR:$src1, HvxQR:$src2),
3033*bdd1243dSDimitry Andric         (V6_shuffeqw HvxQR:$src1, HvxQR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3034fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_shuffeqw_128B HvxQR:$src1, HvxQR:$src2),
3035*bdd1243dSDimitry Andric         (V6_shuffeqw HvxQR:$src1, HvxQR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
30365ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vaddbsat HvxVR:$src1, HvxVR:$src2),
3037*bdd1243dSDimitry Andric         (V6_vaddbsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
30385ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vaddbsat_128B HvxVR:$src1, HvxVR:$src2),
3039*bdd1243dSDimitry Andric         (V6_vaddbsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
30405ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vaddbsat_dv HvxWR:$src1, HvxWR:$src2),
3041*bdd1243dSDimitry Andric         (V6_vaddbsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
30425ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vaddbsat_dv_128B HvxWR:$src1, HvxWR:$src2),
3043*bdd1243dSDimitry Andric         (V6_vaddbsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
30445ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vaddcarry HvxVR:$src1, HvxVR:$src2, HvxQR:$src3),
3045*bdd1243dSDimitry Andric         (V6_vaddcarry HvxVR:$src1, HvxVR:$src2, HvxQR:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
30465ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vaddcarry_128B HvxVR:$src1, HvxVR:$src2, HvxQR:$src3),
3047*bdd1243dSDimitry Andric         (V6_vaddcarry HvxVR:$src1, HvxVR:$src2, HvxQR:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
3048fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddclbh HvxVR:$src1, HvxVR:$src2),
3049*bdd1243dSDimitry Andric         (V6_vaddclbh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3050fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddclbh_128B HvxVR:$src1, HvxVR:$src2),
3051*bdd1243dSDimitry Andric         (V6_vaddclbh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3052fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddclbw HvxVR:$src1, HvxVR:$src2),
3053*bdd1243dSDimitry Andric         (V6_vaddclbw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3054fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddclbw_128B HvxVR:$src1, HvxVR:$src2),
3055*bdd1243dSDimitry Andric         (V6_vaddclbw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
30565ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vaddhw_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
3057*bdd1243dSDimitry Andric         (V6_vaddhw_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
30585ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vaddhw_acc_128B HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
3059*bdd1243dSDimitry Andric         (V6_vaddhw_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
30605ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vaddubh_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
3061*bdd1243dSDimitry Andric         (V6_vaddubh_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
30625ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vaddubh_acc_128B HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
3063*bdd1243dSDimitry Andric         (V6_vaddubh_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
3064fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddububb_sat HvxVR:$src1, HvxVR:$src2),
3065*bdd1243dSDimitry Andric         (V6_vaddububb_sat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3066fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaddububb_sat_128B HvxVR:$src1, HvxVR:$src2),
3067*bdd1243dSDimitry Andric         (V6_vaddububb_sat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3068fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vadduhw_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
3069*bdd1243dSDimitry Andric         (V6_vadduhw_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
3070fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vadduhw_acc_128B HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
3071*bdd1243dSDimitry Andric         (V6_vadduhw_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
3072fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vadduwsat HvxVR:$src1, HvxVR:$src2),
3073*bdd1243dSDimitry Andric         (V6_vadduwsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3074fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vadduwsat_128B HvxVR:$src1, HvxVR:$src2),
3075*bdd1243dSDimitry Andric         (V6_vadduwsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3076fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vadduwsat_dv HvxWR:$src1, HvxWR:$src2),
3077*bdd1243dSDimitry Andric         (V6_vadduwsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3078fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vadduwsat_dv_128B HvxWR:$src1, HvxWR:$src2),
3079*bdd1243dSDimitry Andric         (V6_vadduwsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
30805ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vandnqrt HvxQR:$src1, IntRegs:$src2),
3081*bdd1243dSDimitry Andric         (V6_vandnqrt HvxQR:$src1, IntRegs:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
30825ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vandnqrt_128B HvxQR:$src1, IntRegs:$src2),
3083*bdd1243dSDimitry Andric         (V6_vandnqrt HvxQR:$src1, IntRegs:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
30845ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vandnqrt_acc HvxVR:$src1, HvxQR:$src2, IntRegs:$src3),
3085*bdd1243dSDimitry Andric         (V6_vandnqrt_acc HvxVR:$src1, HvxQR:$src2, IntRegs:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
30865ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vandnqrt_acc_128B HvxVR:$src1, HvxQR:$src2, IntRegs:$src3),
3087*bdd1243dSDimitry Andric         (V6_vandnqrt_acc HvxVR:$src1, HvxQR:$src2, IntRegs:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
30885ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vandvnqv HvxQR:$src1, HvxVR:$src2),
3089*bdd1243dSDimitry Andric         (V6_vandvnqv HvxQR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
30905ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vandvnqv_128B HvxQR:$src1, HvxVR:$src2),
3091*bdd1243dSDimitry Andric         (V6_vandvnqv HvxQR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3092fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vandvqv HvxQR:$src1, HvxVR:$src2),
3093*bdd1243dSDimitry Andric         (V6_vandvqv HvxQR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3094fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vandvqv_128B HvxQR:$src1, HvxVR:$src2),
3095*bdd1243dSDimitry Andric         (V6_vandvqv HvxQR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3096fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrhbsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3097*bdd1243dSDimitry Andric         (V6_vasrhbsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
3098fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrhbsat_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3099*bdd1243dSDimitry Andric         (V6_vasrhbsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
3100fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasruwuhrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3101*bdd1243dSDimitry Andric         (V6_vasruwuhrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
3102fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasruwuhrndsat_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3103*bdd1243dSDimitry Andric         (V6_vasruwuhrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
3104fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrwuhrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3105*bdd1243dSDimitry Andric         (V6_vasrwuhrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
3106fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrwuhrndsat_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3107*bdd1243dSDimitry Andric         (V6_vasrwuhrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
3108fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlsrb HvxVR:$src1, IntRegs:$src2),
3109*bdd1243dSDimitry Andric         (V6_vlsrb HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3110fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlsrb_128B HvxVR:$src1, IntRegs:$src2),
3111*bdd1243dSDimitry Andric         (V6_vlsrb HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3112fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvvb_nm HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3113*bdd1243dSDimitry Andric         (V6_vlutvvb_nm HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
3114fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvvb_nm_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3115*bdd1243dSDimitry Andric         (V6_vlutvvb_nm HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
3116fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvvb_oracci HvxVR:$src1, HvxVR:$src2, HvxVR:$src3, u3_0ImmPred_timm:$src4),
3117*bdd1243dSDimitry Andric         (V6_vlutvvb_oracci HvxVR:$src1, HvxVR:$src2, HvxVR:$src3, u3_0ImmPred_timm:$src4)>, Requires<[UseHVXV62, UseHVX64B]>;
3118fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvvb_oracci_128B HvxVR:$src1, HvxVR:$src2, HvxVR:$src3, u3_0ImmPred_timm:$src4),
3119*bdd1243dSDimitry Andric         (V6_vlutvvb_oracci HvxVR:$src1, HvxVR:$src2, HvxVR:$src3, u3_0ImmPred_timm:$src4)>, Requires<[UseHVXV62, UseHVX128B]>;
3120fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvvbi HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3),
3121*bdd1243dSDimitry Andric         (V6_vlutvvbi HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
3122fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvvbi_128B HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3),
3123*bdd1243dSDimitry Andric         (V6_vlutvvbi HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
3124fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvwh_nm HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3125*bdd1243dSDimitry Andric         (V6_vlutvwh_nm HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
3126fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvwh_nm_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3127*bdd1243dSDimitry Andric         (V6_vlutvwh_nm HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
3128fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvwh_oracci HvxWR:$src1, HvxVR:$src2, HvxVR:$src3, u3_0ImmPred_timm:$src4),
3129*bdd1243dSDimitry Andric         (V6_vlutvwh_oracci HvxWR:$src1, HvxVR:$src2, HvxVR:$src3, u3_0ImmPred_timm:$src4)>, Requires<[UseHVXV62, UseHVX64B]>;
3130fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvwh_oracci_128B HvxWR:$src1, HvxVR:$src2, HvxVR:$src3, u3_0ImmPred_timm:$src4),
3131*bdd1243dSDimitry Andric         (V6_vlutvwh_oracci HvxWR:$src1, HvxVR:$src2, HvxVR:$src3, u3_0ImmPred_timm:$src4)>, Requires<[UseHVXV62, UseHVX128B]>;
3132fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvwhi HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3),
3133*bdd1243dSDimitry Andric         (V6_vlutvwhi HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
3134fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlutvwhi_128B HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3),
3135*bdd1243dSDimitry Andric         (V6_vlutvwhi HvxVR:$src1, HvxVR:$src2, u3_0ImmPred_timm:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
31365ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmaxb HvxVR:$src1, HvxVR:$src2),
3137*bdd1243dSDimitry Andric         (V6_vmaxb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
31385ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmaxb_128B HvxVR:$src1, HvxVR:$src2),
3139*bdd1243dSDimitry Andric         (V6_vmaxb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
31405ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vminb HvxVR:$src1, HvxVR:$src2),
3141*bdd1243dSDimitry Andric         (V6_vminb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
31425ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vminb_128B HvxVR:$src1, HvxVR:$src2),
3143*bdd1243dSDimitry Andric         (V6_vminb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3144fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpauhb HvxWR:$src1, IntRegs:$src2),
3145*bdd1243dSDimitry Andric         (V6_vmpauhb HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3146fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpauhb_128B HvxWR:$src1, IntRegs:$src2),
3147*bdd1243dSDimitry Andric         (V6_vmpauhb HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3148fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpauhb_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
3149*bdd1243dSDimitry Andric         (V6_vmpauhb_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
3150fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpauhb_acc_128B HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
3151*bdd1243dSDimitry Andric         (V6_vmpauhb_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
3152fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyewuh_64 HvxVR:$src1, HvxVR:$src2),
3153*bdd1243dSDimitry Andric         (V6_vmpyewuh_64 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3154fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyewuh_64_128B HvxVR:$src1, HvxVR:$src2),
3155*bdd1243dSDimitry Andric         (V6_vmpyewuh_64 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3156fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiwub HvxVR:$src1, IntRegs:$src2),
3157*bdd1243dSDimitry Andric         (V6_vmpyiwub HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3158fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiwub_128B HvxVR:$src1, IntRegs:$src2),
3159*bdd1243dSDimitry Andric         (V6_vmpyiwub HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3160fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiwub_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
3161*bdd1243dSDimitry Andric         (V6_vmpyiwub_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
3162fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyiwub_acc_128B HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
3163*bdd1243dSDimitry Andric         (V6_vmpyiwub_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
3164fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyowh_64_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
3165*bdd1243dSDimitry Andric         (V6_vmpyowh_64_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
3166fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyowh_64_acc_128B HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
3167*bdd1243dSDimitry Andric         (V6_vmpyowh_64_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
3168fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrounduhub HvxVR:$src1, HvxVR:$src2),
3169*bdd1243dSDimitry Andric         (V6_vrounduhub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3170fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrounduhub_128B HvxVR:$src1, HvxVR:$src2),
3171*bdd1243dSDimitry Andric         (V6_vrounduhub HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3172fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrounduwuh HvxVR:$src1, HvxVR:$src2),
3173*bdd1243dSDimitry Andric         (V6_vrounduwuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3174fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrounduwuh_128B HvxVR:$src1, HvxVR:$src2),
3175*bdd1243dSDimitry Andric         (V6_vrounduwuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
31765ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vsatuwuh HvxVR:$src1, HvxVR:$src2),
3177*bdd1243dSDimitry Andric         (V6_vsatuwuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
31785ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vsatuwuh_128B HvxVR:$src1, HvxVR:$src2),
3179*bdd1243dSDimitry Andric         (V6_vsatuwuh HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3180fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubbsat HvxVR:$src1, HvxVR:$src2),
3181*bdd1243dSDimitry Andric         (V6_vsubbsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3182fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubbsat_128B HvxVR:$src1, HvxVR:$src2),
3183*bdd1243dSDimitry Andric         (V6_vsubbsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3184fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubbsat_dv HvxWR:$src1, HvxWR:$src2),
3185*bdd1243dSDimitry Andric         (V6_vsubbsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3186fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubbsat_dv_128B HvxWR:$src1, HvxWR:$src2),
3187*bdd1243dSDimitry Andric         (V6_vsubbsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3188fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubcarry HvxVR:$src1, HvxVR:$src2, HvxQR:$src3),
3189*bdd1243dSDimitry Andric         (V6_vsubcarry HvxVR:$src1, HvxVR:$src2, HvxQR:$src3)>, Requires<[UseHVXV62, UseHVX64B]>;
3190fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubcarry_128B HvxVR:$src1, HvxVR:$src2, HvxQR:$src3),
3191*bdd1243dSDimitry Andric         (V6_vsubcarry HvxVR:$src1, HvxVR:$src2, HvxQR:$src3)>, Requires<[UseHVXV62, UseHVX128B]>;
3192fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubububb_sat HvxVR:$src1, HvxVR:$src2),
3193*bdd1243dSDimitry Andric         (V6_vsubububb_sat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3194fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubububb_sat_128B HvxVR:$src1, HvxVR:$src2),
3195*bdd1243dSDimitry Andric         (V6_vsubububb_sat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3196fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubuwsat HvxVR:$src1, HvxVR:$src2),
3197*bdd1243dSDimitry Andric         (V6_vsubuwsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3198fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubuwsat_128B HvxVR:$src1, HvxVR:$src2),
3199*bdd1243dSDimitry Andric         (V6_vsubuwsat HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
3200fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubuwsat_dv HvxWR:$src1, HvxWR:$src2),
3201*bdd1243dSDimitry Andric         (V6_vsubuwsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV62, UseHVX64B]>;
3202fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vsubuwsat_dv_128B HvxWR:$src1, HvxWR:$src2),
3203*bdd1243dSDimitry Andric         (V6_vsubuwsat_dv HvxWR:$src1, HvxWR:$src2)>, Requires<[UseHVXV62, UseHVX128B]>;
32040b57cec5SDimitry Andric
32050b57cec5SDimitry Andric// V65 HVX Instructions.
32060b57cec5SDimitry Andric
32075ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vabsb HvxVR:$src1),
3208*bdd1243dSDimitry Andric         (V6_vabsb HvxVR:$src1)>, Requires<[UseHVXV65, UseHVX64B]>;
32095ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vabsb_128B HvxVR:$src1),
3210*bdd1243dSDimitry Andric         (V6_vabsb HvxVR:$src1)>, Requires<[UseHVXV65, UseHVX128B]>;
32110b57cec5SDimitry Andricdef: Pat<(int_hexagon_V6_vabsb_sat HvxVR:$src1),
3212*bdd1243dSDimitry Andric         (V6_vabsb_sat HvxVR:$src1)>, Requires<[UseHVXV65, UseHVX64B]>;
32130b57cec5SDimitry Andricdef: Pat<(int_hexagon_V6_vabsb_sat_128B HvxVR:$src1),
3214*bdd1243dSDimitry Andric         (V6_vabsb_sat HvxVR:$src1)>, Requires<[UseHVXV65, UseHVX128B]>;
3215fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaslh_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
3216*bdd1243dSDimitry Andric         (V6_vaslh_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV65, UseHVX64B]>;
3217fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vaslh_acc_128B HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
3218*bdd1243dSDimitry Andric         (V6_vaslh_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV65, UseHVX128B]>;
3219fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrh_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
3220*bdd1243dSDimitry Andric         (V6_vasrh_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV65, UseHVX64B]>;
3221fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasrh_acc_128B HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
3222*bdd1243dSDimitry Andric         (V6_vasrh_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV65, UseHVX128B]>;
3223fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasruhubrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3224*bdd1243dSDimitry Andric         (V6_vasruhubrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV65, UseHVX64B]>;
3225fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasruhubrndsat_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3226*bdd1243dSDimitry Andric         (V6_vasruhubrndsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV65, UseHVX128B]>;
3227fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasruhubsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3228*bdd1243dSDimitry Andric         (V6_vasruhubsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV65, UseHVX64B]>;
3229fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasruhubsat_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3230*bdd1243dSDimitry Andric         (V6_vasruhubsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV65, UseHVX128B]>;
3231fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasruwuhsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3232*bdd1243dSDimitry Andric         (V6_vasruwuhsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV65, UseHVX64B]>;
3233fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasruwuhsat_128B HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3),
3234*bdd1243dSDimitry Andric         (V6_vasruwuhsat HvxVR:$src1, HvxVR:$src2, IntRegsLow8:$src3)>, Requires<[UseHVXV65, UseHVX128B]>;
3235fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavgb HvxVR:$src1, HvxVR:$src2),
3236*bdd1243dSDimitry Andric         (V6_vavgb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV65, UseHVX64B]>;
3237fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavgb_128B HvxVR:$src1, HvxVR:$src2),
3238*bdd1243dSDimitry Andric         (V6_vavgb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV65, UseHVX128B]>;
3239fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavgbrnd HvxVR:$src1, HvxVR:$src2),
3240*bdd1243dSDimitry Andric         (V6_vavgbrnd HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV65, UseHVX64B]>;
3241fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavgbrnd_128B HvxVR:$src1, HvxVR:$src2),
3242*bdd1243dSDimitry Andric         (V6_vavgbrnd HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV65, UseHVX128B]>;
3243fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavguw HvxVR:$src1, HvxVR:$src2),
3244*bdd1243dSDimitry Andric         (V6_vavguw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV65, UseHVX64B]>;
3245fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavguw_128B HvxVR:$src1, HvxVR:$src2),
3246*bdd1243dSDimitry Andric         (V6_vavguw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV65, UseHVX128B]>;
3247fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavguwrnd HvxVR:$src1, HvxVR:$src2),
3248*bdd1243dSDimitry Andric         (V6_vavguwrnd HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV65, UseHVX64B]>;
3249fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vavguwrnd_128B HvxVR:$src1, HvxVR:$src2),
3250*bdd1243dSDimitry Andric         (V6_vavguwrnd HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV65, UseHVX128B]>;
3251fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdd0 ),
3252*bdd1243dSDimitry Andric         (V6_vdd0 )>, Requires<[UseHVXV65, UseHVX64B]>;
3253fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vdd0_128B ),
3254*bdd1243dSDimitry Andric         (V6_vdd0 )>, Requires<[UseHVXV65, UseHVX128B]>;
3255fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlut4 HvxVR:$src1, DoubleRegs:$src2),
3256*bdd1243dSDimitry Andric         (V6_vlut4 HvxVR:$src1, DoubleRegs:$src2)>, Requires<[UseHVXV65, UseHVX64B]>;
3257fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vlut4_128B HvxVR:$src1, DoubleRegs:$src2),
3258*bdd1243dSDimitry Andric         (V6_vlut4 HvxVR:$src1, DoubleRegs:$src2)>, Requires<[UseHVXV65, UseHVX128B]>;
32595ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmpabuu HvxWR:$src1, IntRegs:$src2),
3260*bdd1243dSDimitry Andric         (V6_vmpabuu HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV65, UseHVX64B]>;
32615ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmpabuu_128B HvxWR:$src1, IntRegs:$src2),
3262*bdd1243dSDimitry Andric         (V6_vmpabuu HvxWR:$src1, IntRegs:$src2)>, Requires<[UseHVXV65, UseHVX128B]>;
32635ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmpabuu_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
3264*bdd1243dSDimitry Andric         (V6_vmpabuu_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV65, UseHVX64B]>;
32655ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmpabuu_acc_128B HvxWR:$src1, HvxWR:$src2, IntRegs:$src3),
3266*bdd1243dSDimitry Andric         (V6_vmpabuu_acc HvxWR:$src1, HvxWR:$src2, IntRegs:$src3)>, Requires<[UseHVXV65, UseHVX128B]>;
32675ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmpahhsat HvxVR:$src1, HvxVR:$src2, DoubleRegs:$src3),
3268*bdd1243dSDimitry Andric         (V6_vmpahhsat HvxVR:$src1, HvxVR:$src2, DoubleRegs:$src3)>, Requires<[UseHVXV65, UseHVX64B]>;
32695ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmpahhsat_128B HvxVR:$src1, HvxVR:$src2, DoubleRegs:$src3),
3270*bdd1243dSDimitry Andric         (V6_vmpahhsat HvxVR:$src1, HvxVR:$src2, DoubleRegs:$src3)>, Requires<[UseHVXV65, UseHVX128B]>;
32715ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmpauhuhsat HvxVR:$src1, HvxVR:$src2, DoubleRegs:$src3),
3272*bdd1243dSDimitry Andric         (V6_vmpauhuhsat HvxVR:$src1, HvxVR:$src2, DoubleRegs:$src3)>, Requires<[UseHVXV65, UseHVX64B]>;
32735ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmpauhuhsat_128B HvxVR:$src1, HvxVR:$src2, DoubleRegs:$src3),
3274*bdd1243dSDimitry Andric         (V6_vmpauhuhsat HvxVR:$src1, HvxVR:$src2, DoubleRegs:$src3)>, Requires<[UseHVXV65, UseHVX128B]>;
32755ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmpsuhuhsat HvxVR:$src1, HvxVR:$src2, DoubleRegs:$src3),
3276*bdd1243dSDimitry Andric         (V6_vmpsuhuhsat HvxVR:$src1, HvxVR:$src2, DoubleRegs:$src3)>, Requires<[UseHVXV65, UseHVX64B]>;
32775ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmpsuhuhsat_128B HvxVR:$src1, HvxVR:$src2, DoubleRegs:$src3),
3278*bdd1243dSDimitry Andric         (V6_vmpsuhuhsat HvxVR:$src1, HvxVR:$src2, DoubleRegs:$src3)>, Requires<[UseHVXV65, UseHVX128B]>;
3279fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyh_acc HvxWR:$src1, HvxVR:$src2, IntRegs:$src3),
3280*bdd1243dSDimitry Andric         (V6_vmpyh_acc HvxWR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV65, UseHVX64B]>;
3281fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vmpyh_acc_128B HvxWR:$src1, HvxVR:$src2, IntRegs:$src3),
3282*bdd1243dSDimitry Andric         (V6_vmpyh_acc HvxWR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV65, UseHVX128B]>;
32835ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmpyuhe HvxVR:$src1, IntRegs:$src2),
3284*bdd1243dSDimitry Andric         (V6_vmpyuhe HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV65, UseHVX64B]>;
32855ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmpyuhe_128B HvxVR:$src1, IntRegs:$src2),
3286*bdd1243dSDimitry Andric         (V6_vmpyuhe HvxVR:$src1, IntRegs:$src2)>, Requires<[UseHVXV65, UseHVX128B]>;
32875ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmpyuhe_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
3288*bdd1243dSDimitry Andric         (V6_vmpyuhe_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV65, UseHVX64B]>;
32895ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vmpyuhe_acc_128B HvxVR:$src1, HvxVR:$src2, IntRegs:$src3),
3290*bdd1243dSDimitry Andric         (V6_vmpyuhe_acc HvxVR:$src1, HvxVR:$src2, IntRegs:$src3)>, Requires<[UseHVXV65, UseHVX128B]>;
3291fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vnavgb HvxVR:$src1, HvxVR:$src2),
3292*bdd1243dSDimitry Andric         (V6_vnavgb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV65, UseHVX64B]>;
3293fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vnavgb_128B HvxVR:$src1, HvxVR:$src2),
3294*bdd1243dSDimitry Andric         (V6_vnavgb HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV65, UseHVX128B]>;
32955ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vprefixqb HvxQR:$src1),
3296*bdd1243dSDimitry Andric         (V6_vprefixqb HvxQR:$src1)>, Requires<[UseHVXV65, UseHVX64B]>;
32975ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vprefixqb_128B HvxQR:$src1),
3298*bdd1243dSDimitry Andric         (V6_vprefixqb HvxQR:$src1)>, Requires<[UseHVXV65, UseHVX128B]>;
32995ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vprefixqh HvxQR:$src1),
3300*bdd1243dSDimitry Andric         (V6_vprefixqh HvxQR:$src1)>, Requires<[UseHVXV65, UseHVX64B]>;
33015ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vprefixqh_128B HvxQR:$src1),
3302*bdd1243dSDimitry Andric         (V6_vprefixqh HvxQR:$src1)>, Requires<[UseHVXV65, UseHVX128B]>;
33035ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vprefixqw HvxQR:$src1),
3304*bdd1243dSDimitry Andric         (V6_vprefixqw HvxQR:$src1)>, Requires<[UseHVXV65, UseHVX64B]>;
33055ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vprefixqw_128B HvxQR:$src1),
3306*bdd1243dSDimitry Andric         (V6_vprefixqw HvxQR:$src1)>, Requires<[UseHVXV65, UseHVX128B]>;
3307fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermh IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4),
3308*bdd1243dSDimitry Andric         (V6_vscattermh IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4)>, Requires<[UseHVXV65, UseHVX64B]>;
3309fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermh_128B IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4),
3310*bdd1243dSDimitry Andric         (V6_vscattermh IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4)>, Requires<[UseHVXV65, UseHVX128B]>;
3311fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermh_add IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4),
3312*bdd1243dSDimitry Andric         (V6_vscattermh_add IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4)>, Requires<[UseHVXV65, UseHVX64B]>;
3313fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermh_add_128B IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4),
3314*bdd1243dSDimitry Andric         (V6_vscattermh_add IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4)>, Requires<[UseHVXV65, UseHVX128B]>;
3315fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermhq HvxQR:$src1, IntRegs:$src2, ModRegs:$src3, HvxVR:$src4, HvxVR:$src5),
3316*bdd1243dSDimitry Andric         (V6_vscattermhq HvxQR:$src1, IntRegs:$src2, ModRegs:$src3, HvxVR:$src4, HvxVR:$src5)>, Requires<[UseHVXV65, UseHVX64B]>;
3317fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermhq_128B HvxQR:$src1, IntRegs:$src2, ModRegs:$src3, HvxVR:$src4, HvxVR:$src5),
3318*bdd1243dSDimitry Andric         (V6_vscattermhq HvxQR:$src1, IntRegs:$src2, ModRegs:$src3, HvxVR:$src4, HvxVR:$src5)>, Requires<[UseHVXV65, UseHVX128B]>;
3319fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermhw IntRegs:$src1, ModRegs:$src2, HvxWR:$src3, HvxVR:$src4),
3320*bdd1243dSDimitry Andric         (V6_vscattermhw IntRegs:$src1, ModRegs:$src2, HvxWR:$src3, HvxVR:$src4)>, Requires<[UseHVXV65, UseHVX64B]>;
3321fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermhw_128B IntRegs:$src1, ModRegs:$src2, HvxWR:$src3, HvxVR:$src4),
3322*bdd1243dSDimitry Andric         (V6_vscattermhw IntRegs:$src1, ModRegs:$src2, HvxWR:$src3, HvxVR:$src4)>, Requires<[UseHVXV65, UseHVX128B]>;
3323fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermhw_add IntRegs:$src1, ModRegs:$src2, HvxWR:$src3, HvxVR:$src4),
3324*bdd1243dSDimitry Andric         (V6_vscattermhw_add IntRegs:$src1, ModRegs:$src2, HvxWR:$src3, HvxVR:$src4)>, Requires<[UseHVXV65, UseHVX64B]>;
3325fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermhw_add_128B IntRegs:$src1, ModRegs:$src2, HvxWR:$src3, HvxVR:$src4),
3326*bdd1243dSDimitry Andric         (V6_vscattermhw_add IntRegs:$src1, ModRegs:$src2, HvxWR:$src3, HvxVR:$src4)>, Requires<[UseHVXV65, UseHVX128B]>;
3327fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermhwq HvxQR:$src1, IntRegs:$src2, ModRegs:$src3, HvxWR:$src4, HvxVR:$src5),
3328*bdd1243dSDimitry Andric         (V6_vscattermhwq HvxQR:$src1, IntRegs:$src2, ModRegs:$src3, HvxWR:$src4, HvxVR:$src5)>, Requires<[UseHVXV65, UseHVX64B]>;
3329fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermhwq_128B HvxQR:$src1, IntRegs:$src2, ModRegs:$src3, HvxWR:$src4, HvxVR:$src5),
3330*bdd1243dSDimitry Andric         (V6_vscattermhwq HvxQR:$src1, IntRegs:$src2, ModRegs:$src3, HvxWR:$src4, HvxVR:$src5)>, Requires<[UseHVXV65, UseHVX128B]>;
3331fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermw IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4),
3332*bdd1243dSDimitry Andric         (V6_vscattermw IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4)>, Requires<[UseHVXV65, UseHVX64B]>;
3333fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermw_128B IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4),
3334*bdd1243dSDimitry Andric         (V6_vscattermw IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4)>, Requires<[UseHVXV65, UseHVX128B]>;
3335fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermw_add IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4),
3336*bdd1243dSDimitry Andric         (V6_vscattermw_add IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4)>, Requires<[UseHVXV65, UseHVX64B]>;
3337fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermw_add_128B IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4),
3338*bdd1243dSDimitry Andric         (V6_vscattermw_add IntRegs:$src1, ModRegs:$src2, HvxVR:$src3, HvxVR:$src4)>, Requires<[UseHVXV65, UseHVX128B]>;
3339fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermwq HvxQR:$src1, IntRegs:$src2, ModRegs:$src3, HvxVR:$src4, HvxVR:$src5),
3340*bdd1243dSDimitry Andric         (V6_vscattermwq HvxQR:$src1, IntRegs:$src2, ModRegs:$src3, HvxVR:$src4, HvxVR:$src5)>, Requires<[UseHVXV65, UseHVX64B]>;
3341fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vscattermwq_128B HvxQR:$src1, IntRegs:$src2, ModRegs:$src3, HvxVR:$src4, HvxVR:$src5),
3342*bdd1243dSDimitry Andric         (V6_vscattermwq HvxQR:$src1, IntRegs:$src2, ModRegs:$src3, HvxVR:$src4, HvxVR:$src5)>, Requires<[UseHVXV65, UseHVX128B]>;
33430b57cec5SDimitry Andric
33440b57cec5SDimitry Andric// V66 HVX Instructions.
33450b57cec5SDimitry Andric
3346*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vaddcarryo HvxVR:$src1, HvxVR:$src2),
3347*bdd1243dSDimitry Andric         (V6_vaddcarryo HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV66, UseHVX64B]>;
3348*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vaddcarryo_128B HvxVR:$src1, HvxVR:$src2),
3349*bdd1243dSDimitry Andric         (V6_vaddcarryo HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV66, UseHVX128B]>;
33505ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vaddcarrysat HvxVR:$src1, HvxVR:$src2, HvxQR:$src3),
3351*bdd1243dSDimitry Andric         (V6_vaddcarrysat HvxVR:$src1, HvxVR:$src2, HvxQR:$src3)>, Requires<[UseHVXV66, UseHVX64B]>;
33525ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vaddcarrysat_128B HvxVR:$src1, HvxVR:$src2, HvxQR:$src3),
3353*bdd1243dSDimitry Andric         (V6_vaddcarrysat HvxVR:$src1, HvxVR:$src2, HvxQR:$src3)>, Requires<[UseHVXV66, UseHVX128B]>;
3354fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasr_into HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
3355*bdd1243dSDimitry Andric         (V6_vasr_into HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV66, UseHVX64B]>;
3356fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vasr_into_128B HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
3357*bdd1243dSDimitry Andric         (V6_vasr_into HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV66, UseHVX128B]>;
3358fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrotr HvxVR:$src1, HvxVR:$src2),
3359*bdd1243dSDimitry Andric         (V6_vrotr HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV66, UseHVX64B]>;
3360fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_vrotr_128B HvxVR:$src1, HvxVR:$src2),
3361*bdd1243dSDimitry Andric         (V6_vrotr HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV66, UseHVX128B]>;
33625ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vsatdw HvxVR:$src1, HvxVR:$src2),
3363*bdd1243dSDimitry Andric         (V6_vsatdw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV66, UseHVX64B]>;
33645ffd83dbSDimitry Andricdef: Pat<(int_hexagon_V6_vsatdw_128B HvxVR:$src1, HvxVR:$src2),
3365*bdd1243dSDimitry Andric         (V6_vsatdw HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV66, UseHVX128B]>;
3366*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vsubcarryo HvxVR:$src1, HvxVR:$src2),
3367*bdd1243dSDimitry Andric         (V6_vsubcarryo HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV66, UseHVX64B]>;
3368*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vsubcarryo_128B HvxVR:$src1, HvxVR:$src2),
3369*bdd1243dSDimitry Andric         (V6_vsubcarryo HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV66, UseHVX128B]>;
3370fe6060f1SDimitry Andric
3371fe6060f1SDimitry Andric// V68 HVX Instructions.
3372fe6060f1SDimitry Andric
3373fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_v6mpyhubs10 HvxWR:$src1, HvxWR:$src2, u2_0ImmPred_timm:$src3),
3374*bdd1243dSDimitry Andric         (V6_v6mpyhubs10 HvxWR:$src1, HvxWR:$src2, u2_0ImmPred_timm:$src3)>, Requires<[UseHVXV68, UseHVX64B]>;
3375fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_v6mpyhubs10_128B HvxWR:$src1, HvxWR:$src2, u2_0ImmPred_timm:$src3),
3376*bdd1243dSDimitry Andric         (V6_v6mpyhubs10 HvxWR:$src1, HvxWR:$src2, u2_0ImmPred_timm:$src3)>, Requires<[UseHVXV68, UseHVX128B]>;
3377fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_v6mpyhubs10_vxx HvxWR:$src1, HvxWR:$src2, HvxWR:$src3, u2_0ImmPred_timm:$src4),
3378*bdd1243dSDimitry Andric         (V6_v6mpyhubs10_vxx HvxWR:$src1, HvxWR:$src2, HvxWR:$src3, u2_0ImmPred_timm:$src4)>, Requires<[UseHVXV68, UseHVX64B]>;
3379fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_v6mpyhubs10_vxx_128B HvxWR:$src1, HvxWR:$src2, HvxWR:$src3, u2_0ImmPred_timm:$src4),
3380*bdd1243dSDimitry Andric         (V6_v6mpyhubs10_vxx HvxWR:$src1, HvxWR:$src2, HvxWR:$src3, u2_0ImmPred_timm:$src4)>, Requires<[UseHVXV68, UseHVX128B]>;
3381fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_v6mpyvubs10 HvxWR:$src1, HvxWR:$src2, u2_0ImmPred_timm:$src3),
3382*bdd1243dSDimitry Andric         (V6_v6mpyvubs10 HvxWR:$src1, HvxWR:$src2, u2_0ImmPred_timm:$src3)>, Requires<[UseHVXV68, UseHVX64B]>;
3383fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_v6mpyvubs10_128B HvxWR:$src1, HvxWR:$src2, u2_0ImmPred_timm:$src3),
3384*bdd1243dSDimitry Andric         (V6_v6mpyvubs10 HvxWR:$src1, HvxWR:$src2, u2_0ImmPred_timm:$src3)>, Requires<[UseHVXV68, UseHVX128B]>;
3385fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_v6mpyvubs10_vxx HvxWR:$src1, HvxWR:$src2, HvxWR:$src3, u2_0ImmPred_timm:$src4),
3386*bdd1243dSDimitry Andric         (V6_v6mpyvubs10_vxx HvxWR:$src1, HvxWR:$src2, HvxWR:$src3, u2_0ImmPred_timm:$src4)>, Requires<[UseHVXV68, UseHVX64B]>;
3387fe6060f1SDimitry Andricdef: Pat<(int_hexagon_V6_v6mpyvubs10_vxx_128B HvxWR:$src1, HvxWR:$src2, HvxWR:$src3, u2_0ImmPred_timm:$src4),
3388*bdd1243dSDimitry Andric         (V6_v6mpyvubs10_vxx HvxWR:$src1, HvxWR:$src2, HvxWR:$src3, u2_0ImmPred_timm:$src4)>, Requires<[UseHVXV68, UseHVX128B]>;
33890eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vabs_hf HvxVR:$src1),
3390*bdd1243dSDimitry Andric         (V6_vabs_hf HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX64B]>;
33910eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vabs_hf_128B HvxVR:$src1),
3392*bdd1243dSDimitry Andric         (V6_vabs_hf HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX128B]>;
33930eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vabs_sf HvxVR:$src1),
3394*bdd1243dSDimitry Andric         (V6_vabs_sf HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX64B]>;
33950eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vabs_sf_128B HvxVR:$src1),
3396*bdd1243dSDimitry Andric         (V6_vabs_sf HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX128B]>;
33970eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_hf HvxVR:$src1, HvxVR:$src2),
3398*bdd1243dSDimitry Andric         (V6_vadd_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
33990eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_hf_128B HvxVR:$src1, HvxVR:$src2),
3400*bdd1243dSDimitry Andric         (V6_vadd_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
34010eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_hf_hf HvxVR:$src1, HvxVR:$src2),
3402*bdd1243dSDimitry Andric         (V6_vadd_hf_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
34030eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_hf_hf_128B HvxVR:$src1, HvxVR:$src2),
3404*bdd1243dSDimitry Andric         (V6_vadd_hf_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
34050eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_qf16 HvxVR:$src1, HvxVR:$src2),
3406*bdd1243dSDimitry Andric         (V6_vadd_qf16 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
34070eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_qf16_128B HvxVR:$src1, HvxVR:$src2),
3408*bdd1243dSDimitry Andric         (V6_vadd_qf16 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
34090eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_qf16_mix HvxVR:$src1, HvxVR:$src2),
3410*bdd1243dSDimitry Andric         (V6_vadd_qf16_mix HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
34110eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_qf16_mix_128B HvxVR:$src1, HvxVR:$src2),
3412*bdd1243dSDimitry Andric         (V6_vadd_qf16_mix HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
34130eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_qf32 HvxVR:$src1, HvxVR:$src2),
3414*bdd1243dSDimitry Andric         (V6_vadd_qf32 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
34150eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_qf32_128B HvxVR:$src1, HvxVR:$src2),
3416*bdd1243dSDimitry Andric         (V6_vadd_qf32 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
34170eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_qf32_mix HvxVR:$src1, HvxVR:$src2),
3418*bdd1243dSDimitry Andric         (V6_vadd_qf32_mix HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
34190eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_qf32_mix_128B HvxVR:$src1, HvxVR:$src2),
3420*bdd1243dSDimitry Andric         (V6_vadd_qf32_mix HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
34210eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_sf HvxVR:$src1, HvxVR:$src2),
3422*bdd1243dSDimitry Andric         (V6_vadd_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
34230eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_sf_128B HvxVR:$src1, HvxVR:$src2),
3424*bdd1243dSDimitry Andric         (V6_vadd_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
34250eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_sf_hf HvxVR:$src1, HvxVR:$src2),
3426*bdd1243dSDimitry Andric         (V6_vadd_sf_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
34270eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_sf_hf_128B HvxVR:$src1, HvxVR:$src2),
3428*bdd1243dSDimitry Andric         (V6_vadd_sf_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
34290eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_sf_sf HvxVR:$src1, HvxVR:$src2),
3430*bdd1243dSDimitry Andric         (V6_vadd_sf_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
34310eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_sf_sf_128B HvxVR:$src1, HvxVR:$src2),
3432*bdd1243dSDimitry Andric         (V6_vadd_sf_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
34330eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vassign_fp HvxVR:$src1),
3434*bdd1243dSDimitry Andric         (V6_vassign_fp HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX64B]>;
34350eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vassign_fp_128B HvxVR:$src1),
3436*bdd1243dSDimitry Andric         (V6_vassign_fp HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX128B]>;
34370eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vconv_hf_qf16 HvxVR:$src1),
3438*bdd1243dSDimitry Andric         (V6_vconv_hf_qf16 HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
34390eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vconv_hf_qf16_128B HvxVR:$src1),
3440*bdd1243dSDimitry Andric         (V6_vconv_hf_qf16 HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
34410eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vconv_hf_qf32 HvxWR:$src1),
3442*bdd1243dSDimitry Andric         (V6_vconv_hf_qf32 HvxWR:$src1)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
34430eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vconv_hf_qf32_128B HvxWR:$src1),
3444*bdd1243dSDimitry Andric         (V6_vconv_hf_qf32 HvxWR:$src1)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
34450eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vconv_sf_qf32 HvxVR:$src1),
3446*bdd1243dSDimitry Andric         (V6_vconv_sf_qf32 HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
34470eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vconv_sf_qf32_128B HvxVR:$src1),
3448*bdd1243dSDimitry Andric         (V6_vconv_sf_qf32 HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
34490eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_b_hf HvxVR:$src1, HvxVR:$src2),
3450*bdd1243dSDimitry Andric         (V6_vcvt_b_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
34510eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_b_hf_128B HvxVR:$src1, HvxVR:$src2),
3452*bdd1243dSDimitry Andric         (V6_vcvt_b_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
34530eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_h_hf HvxVR:$src1),
3454*bdd1243dSDimitry Andric         (V6_vcvt_h_hf HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX64B]>;
34550eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_h_hf_128B HvxVR:$src1),
3456*bdd1243dSDimitry Andric         (V6_vcvt_h_hf HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX128B]>;
34570eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_hf_b HvxVR:$src1),
3458*bdd1243dSDimitry Andric         (V6_vcvt_hf_b HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX64B]>;
34590eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_hf_b_128B HvxVR:$src1),
3460*bdd1243dSDimitry Andric         (V6_vcvt_hf_b HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX128B]>;
34610eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_hf_h HvxVR:$src1),
3462*bdd1243dSDimitry Andric         (V6_vcvt_hf_h HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX64B]>;
34630eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_hf_h_128B HvxVR:$src1),
3464*bdd1243dSDimitry Andric         (V6_vcvt_hf_h HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX128B]>;
34650eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_hf_sf HvxVR:$src1, HvxVR:$src2),
3466*bdd1243dSDimitry Andric         (V6_vcvt_hf_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
34670eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_hf_sf_128B HvxVR:$src1, HvxVR:$src2),
3468*bdd1243dSDimitry Andric         (V6_vcvt_hf_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
34690eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_hf_ub HvxVR:$src1),
3470*bdd1243dSDimitry Andric         (V6_vcvt_hf_ub HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX64B]>;
34710eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_hf_ub_128B HvxVR:$src1),
3472*bdd1243dSDimitry Andric         (V6_vcvt_hf_ub HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX128B]>;
34730eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_hf_uh HvxVR:$src1),
3474*bdd1243dSDimitry Andric         (V6_vcvt_hf_uh HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX64B]>;
34750eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_hf_uh_128B HvxVR:$src1),
3476*bdd1243dSDimitry Andric         (V6_vcvt_hf_uh HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX128B]>;
34770eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_sf_hf HvxVR:$src1),
3478*bdd1243dSDimitry Andric         (V6_vcvt_sf_hf HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX64B]>;
34790eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_sf_hf_128B HvxVR:$src1),
3480*bdd1243dSDimitry Andric         (V6_vcvt_sf_hf HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX128B]>;
34810eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_ub_hf HvxVR:$src1, HvxVR:$src2),
3482*bdd1243dSDimitry Andric         (V6_vcvt_ub_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
34830eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_ub_hf_128B HvxVR:$src1, HvxVR:$src2),
3484*bdd1243dSDimitry Andric         (V6_vcvt_ub_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
34850eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_uh_hf HvxVR:$src1),
3486*bdd1243dSDimitry Andric         (V6_vcvt_uh_hf HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX64B]>;
34870eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_uh_hf_128B HvxVR:$src1),
3488*bdd1243dSDimitry Andric         (V6_vcvt_uh_hf HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX128B]>;
34890eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpy_sf_hf HvxVR:$src1, HvxVR:$src2),
3490*bdd1243dSDimitry Andric         (V6_vdmpy_sf_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
34910eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpy_sf_hf_128B HvxVR:$src1, HvxVR:$src2),
3492*bdd1243dSDimitry Andric         (V6_vdmpy_sf_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
34930eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpy_sf_hf_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
3494*bdd1243dSDimitry Andric         (V6_vdmpy_sf_hf_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX64B]>;
34950eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vdmpy_sf_hf_acc_128B HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
3496*bdd1243dSDimitry Andric         (V6_vdmpy_sf_hf_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX128B]>;
34970eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vfmax_hf HvxVR:$src1, HvxVR:$src2),
3498*bdd1243dSDimitry Andric         (V6_vfmax_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
34990eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vfmax_hf_128B HvxVR:$src1, HvxVR:$src2),
3500*bdd1243dSDimitry Andric         (V6_vfmax_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
35010eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vfmax_sf HvxVR:$src1, HvxVR:$src2),
3502*bdd1243dSDimitry Andric         (V6_vfmax_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
35030eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vfmax_sf_128B HvxVR:$src1, HvxVR:$src2),
3504*bdd1243dSDimitry Andric         (V6_vfmax_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
35050eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vfmin_hf HvxVR:$src1, HvxVR:$src2),
3506*bdd1243dSDimitry Andric         (V6_vfmin_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
35070eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vfmin_hf_128B HvxVR:$src1, HvxVR:$src2),
3508*bdd1243dSDimitry Andric         (V6_vfmin_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
35090eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vfmin_sf HvxVR:$src1, HvxVR:$src2),
3510*bdd1243dSDimitry Andric         (V6_vfmin_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
35110eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vfmin_sf_128B HvxVR:$src1, HvxVR:$src2),
3512*bdd1243dSDimitry Andric         (V6_vfmin_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
35130eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vfneg_hf HvxVR:$src1),
3514*bdd1243dSDimitry Andric         (V6_vfneg_hf HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX64B]>;
35150eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vfneg_hf_128B HvxVR:$src1),
3516*bdd1243dSDimitry Andric         (V6_vfneg_hf HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX128B]>;
35170eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vfneg_sf HvxVR:$src1),
3518*bdd1243dSDimitry Andric         (V6_vfneg_sf HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX64B]>;
35190eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vfneg_sf_128B HvxVR:$src1),
3520*bdd1243dSDimitry Andric         (V6_vfneg_sf HvxVR:$src1)>, Requires<[UseHVXV68, UseHVX128B]>;
35210eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgthf HvxVR:$src1, HvxVR:$src2),
3522*bdd1243dSDimitry Andric         (V6_vgthf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35230eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgthf_128B HvxVR:$src1, HvxVR:$src2),
3524*bdd1243dSDimitry Andric         (V6_vgthf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35250eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgthf_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3526*bdd1243dSDimitry Andric         (V6_vgthf_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35270eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgthf_and_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3528*bdd1243dSDimitry Andric         (V6_vgthf_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35290eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgthf_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3530*bdd1243dSDimitry Andric         (V6_vgthf_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35310eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgthf_or_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3532*bdd1243dSDimitry Andric         (V6_vgthf_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35330eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgthf_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3534*bdd1243dSDimitry Andric         (V6_vgthf_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35350eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgthf_xor_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3536*bdd1243dSDimitry Andric         (V6_vgthf_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35370eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgtsf HvxVR:$src1, HvxVR:$src2),
3538*bdd1243dSDimitry Andric         (V6_vgtsf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35390eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgtsf_128B HvxVR:$src1, HvxVR:$src2),
3540*bdd1243dSDimitry Andric         (V6_vgtsf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35410eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgtsf_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3542*bdd1243dSDimitry Andric         (V6_vgtsf_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35430eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgtsf_and_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3544*bdd1243dSDimitry Andric         (V6_vgtsf_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35450eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgtsf_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3546*bdd1243dSDimitry Andric         (V6_vgtsf_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35470eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgtsf_or_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3548*bdd1243dSDimitry Andric         (V6_vgtsf_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35490eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgtsf_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3550*bdd1243dSDimitry Andric         (V6_vgtsf_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35510eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vgtsf_xor_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3552*bdd1243dSDimitry Andric         (V6_vgtsf_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35530eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmax_hf HvxVR:$src1, HvxVR:$src2),
3554*bdd1243dSDimitry Andric         (V6_vmax_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35550eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmax_hf_128B HvxVR:$src1, HvxVR:$src2),
3556*bdd1243dSDimitry Andric         (V6_vmax_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35570eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmax_sf HvxVR:$src1, HvxVR:$src2),
3558*bdd1243dSDimitry Andric         (V6_vmax_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35590eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmax_sf_128B HvxVR:$src1, HvxVR:$src2),
3560*bdd1243dSDimitry Andric         (V6_vmax_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35610eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmin_hf HvxVR:$src1, HvxVR:$src2),
3562*bdd1243dSDimitry Andric         (V6_vmin_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35630eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmin_hf_128B HvxVR:$src1, HvxVR:$src2),
3564*bdd1243dSDimitry Andric         (V6_vmin_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35650eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmin_sf HvxVR:$src1, HvxVR:$src2),
3566*bdd1243dSDimitry Andric         (V6_vmin_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35670eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmin_sf_128B HvxVR:$src1, HvxVR:$src2),
3568*bdd1243dSDimitry Andric         (V6_vmin_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35690eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_hf_hf HvxVR:$src1, HvxVR:$src2),
3570*bdd1243dSDimitry Andric         (V6_vmpy_hf_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
35710eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_hf_hf_128B HvxVR:$src1, HvxVR:$src2),
3572*bdd1243dSDimitry Andric         (V6_vmpy_hf_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
35730eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_hf_hf_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
3574*bdd1243dSDimitry Andric         (V6_vmpy_hf_hf_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX64B]>;
35750eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_hf_hf_acc_128B HvxVR:$src1, HvxVR:$src2, HvxVR:$src3),
3576*bdd1243dSDimitry Andric         (V6_vmpy_hf_hf_acc HvxVR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX128B]>;
35770eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf16 HvxVR:$src1, HvxVR:$src2),
3578*bdd1243dSDimitry Andric         (V6_vmpy_qf16 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35790eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf16_128B HvxVR:$src1, HvxVR:$src2),
3580*bdd1243dSDimitry Andric         (V6_vmpy_qf16 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35810eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf16_hf HvxVR:$src1, HvxVR:$src2),
3582*bdd1243dSDimitry Andric         (V6_vmpy_qf16_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35830eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf16_hf_128B HvxVR:$src1, HvxVR:$src2),
3584*bdd1243dSDimitry Andric         (V6_vmpy_qf16_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35850eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf16_mix_hf HvxVR:$src1, HvxVR:$src2),
3586*bdd1243dSDimitry Andric         (V6_vmpy_qf16_mix_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35870eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf16_mix_hf_128B HvxVR:$src1, HvxVR:$src2),
3588*bdd1243dSDimitry Andric         (V6_vmpy_qf16_mix_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35890eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf32 HvxVR:$src1, HvxVR:$src2),
3590*bdd1243dSDimitry Andric         (V6_vmpy_qf32 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35910eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf32_128B HvxVR:$src1, HvxVR:$src2),
3592*bdd1243dSDimitry Andric         (V6_vmpy_qf32 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35930eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf32_hf HvxVR:$src1, HvxVR:$src2),
3594*bdd1243dSDimitry Andric         (V6_vmpy_qf32_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35950eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf32_hf_128B HvxVR:$src1, HvxVR:$src2),
3596*bdd1243dSDimitry Andric         (V6_vmpy_qf32_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
35970eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf32_mix_hf HvxVR:$src1, HvxVR:$src2),
3598*bdd1243dSDimitry Andric         (V6_vmpy_qf32_mix_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
35990eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf32_mix_hf_128B HvxVR:$src1, HvxVR:$src2),
3600*bdd1243dSDimitry Andric         (V6_vmpy_qf32_mix_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
36010eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf32_qf16 HvxVR:$src1, HvxVR:$src2),
3602*bdd1243dSDimitry Andric         (V6_vmpy_qf32_qf16 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
36030eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf32_qf16_128B HvxVR:$src1, HvxVR:$src2),
3604*bdd1243dSDimitry Andric         (V6_vmpy_qf32_qf16 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
36050eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf32_sf HvxVR:$src1, HvxVR:$src2),
3606*bdd1243dSDimitry Andric         (V6_vmpy_qf32_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
36070eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_qf32_sf_128B HvxVR:$src1, HvxVR:$src2),
3608*bdd1243dSDimitry Andric         (V6_vmpy_qf32_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
36090eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_sf_hf HvxVR:$src1, HvxVR:$src2),
3610*bdd1243dSDimitry Andric         (V6_vmpy_sf_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
36110eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_sf_hf_128B HvxVR:$src1, HvxVR:$src2),
3612*bdd1243dSDimitry Andric         (V6_vmpy_sf_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
36130eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_sf_hf_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
3614*bdd1243dSDimitry Andric         (V6_vmpy_sf_hf_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX64B]>;
36150eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_sf_hf_acc_128B HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
3616*bdd1243dSDimitry Andric         (V6_vmpy_sf_hf_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV68, UseHVX128B]>;
36170eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_sf_sf HvxVR:$src1, HvxVR:$src2),
3618*bdd1243dSDimitry Andric         (V6_vmpy_sf_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
36190eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_sf_sf_128B HvxVR:$src1, HvxVR:$src2),
3620*bdd1243dSDimitry Andric         (V6_vmpy_sf_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
36210eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_hf HvxVR:$src1, HvxVR:$src2),
3622*bdd1243dSDimitry Andric         (V6_vsub_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
36230eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_hf_128B HvxVR:$src1, HvxVR:$src2),
3624*bdd1243dSDimitry Andric         (V6_vsub_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
36250eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_hf_hf HvxVR:$src1, HvxVR:$src2),
3626*bdd1243dSDimitry Andric         (V6_vsub_hf_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
36270eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_hf_hf_128B HvxVR:$src1, HvxVR:$src2),
3628*bdd1243dSDimitry Andric         (V6_vsub_hf_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
36290eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_qf16 HvxVR:$src1, HvxVR:$src2),
3630*bdd1243dSDimitry Andric         (V6_vsub_qf16 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
36310eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_qf16_128B HvxVR:$src1, HvxVR:$src2),
3632*bdd1243dSDimitry Andric         (V6_vsub_qf16 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
36330eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_qf16_mix HvxVR:$src1, HvxVR:$src2),
3634*bdd1243dSDimitry Andric         (V6_vsub_qf16_mix HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
36350eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_qf16_mix_128B HvxVR:$src1, HvxVR:$src2),
3636*bdd1243dSDimitry Andric         (V6_vsub_qf16_mix HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
36370eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_qf32 HvxVR:$src1, HvxVR:$src2),
3638*bdd1243dSDimitry Andric         (V6_vsub_qf32 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
36390eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_qf32_128B HvxVR:$src1, HvxVR:$src2),
3640*bdd1243dSDimitry Andric         (V6_vsub_qf32 HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
36410eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_qf32_mix HvxVR:$src1, HvxVR:$src2),
3642*bdd1243dSDimitry Andric         (V6_vsub_qf32_mix HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
36430eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_qf32_mix_128B HvxVR:$src1, HvxVR:$src2),
3644*bdd1243dSDimitry Andric         (V6_vsub_qf32_mix HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
36450eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_sf HvxVR:$src1, HvxVR:$src2),
3646*bdd1243dSDimitry Andric         (V6_vsub_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B, UseHVXQFloat]>;
36470eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_sf_128B HvxVR:$src1, HvxVR:$src2),
3648*bdd1243dSDimitry Andric         (V6_vsub_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B, UseHVXQFloat]>;
36490eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_sf_hf HvxVR:$src1, HvxVR:$src2),
3650*bdd1243dSDimitry Andric         (V6_vsub_sf_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
36510eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_sf_hf_128B HvxVR:$src1, HvxVR:$src2),
3652*bdd1243dSDimitry Andric         (V6_vsub_sf_hf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
36530eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_sf_sf HvxVR:$src1, HvxVR:$src2),
3654*bdd1243dSDimitry Andric         (V6_vsub_sf_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX64B]>;
36550eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_sf_sf_128B HvxVR:$src1, HvxVR:$src2),
3656*bdd1243dSDimitry Andric         (V6_vsub_sf_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV68, UseHVX128B]>;
36570eae32dcSDimitry Andric
36580eae32dcSDimitry Andric// V69 HVX Instructions.
36590eae32dcSDimitry Andric
36600eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vasrvuhubrndsat HvxWR:$src1, HvxVR:$src2),
3661*bdd1243dSDimitry Andric         (V6_vasrvuhubrndsat HvxWR:$src1, HvxVR:$src2)>, Requires<[UseHVXV69, UseHVX64B]>;
36620eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vasrvuhubrndsat_128B HvxWR:$src1, HvxVR:$src2),
3663*bdd1243dSDimitry Andric         (V6_vasrvuhubrndsat HvxWR:$src1, HvxVR:$src2)>, Requires<[UseHVXV69, UseHVX128B]>;
36640eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vasrvuhubsat HvxWR:$src1, HvxVR:$src2),
3665*bdd1243dSDimitry Andric         (V6_vasrvuhubsat HvxWR:$src1, HvxVR:$src2)>, Requires<[UseHVXV69, UseHVX64B]>;
36660eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vasrvuhubsat_128B HvxWR:$src1, HvxVR:$src2),
3667*bdd1243dSDimitry Andric         (V6_vasrvuhubsat HvxWR:$src1, HvxVR:$src2)>, Requires<[UseHVXV69, UseHVX128B]>;
36680eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vasrvwuhrndsat HvxWR:$src1, HvxVR:$src2),
3669*bdd1243dSDimitry Andric         (V6_vasrvwuhrndsat HvxWR:$src1, HvxVR:$src2)>, Requires<[UseHVXV69, UseHVX64B]>;
36700eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vasrvwuhrndsat_128B HvxWR:$src1, HvxVR:$src2),
3671*bdd1243dSDimitry Andric         (V6_vasrvwuhrndsat HvxWR:$src1, HvxVR:$src2)>, Requires<[UseHVXV69, UseHVX128B]>;
36720eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vasrvwuhsat HvxWR:$src1, HvxVR:$src2),
3673*bdd1243dSDimitry Andric         (V6_vasrvwuhsat HvxWR:$src1, HvxVR:$src2)>, Requires<[UseHVXV69, UseHVX64B]>;
36740eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vasrvwuhsat_128B HvxWR:$src1, HvxVR:$src2),
3675*bdd1243dSDimitry Andric         (V6_vasrvwuhsat HvxWR:$src1, HvxVR:$src2)>, Requires<[UseHVXV69, UseHVX128B]>;
36760eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpyuhvs HvxVR:$src1, HvxVR:$src2),
3677*bdd1243dSDimitry Andric         (V6_vmpyuhvs HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV69, UseHVX64B]>;
36780eae32dcSDimitry Andricdef: Pat<(int_hexagon_V6_vmpyuhvs_128B HvxVR:$src1, HvxVR:$src2),
3679*bdd1243dSDimitry Andric         (V6_vmpyuhvs HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV69, UseHVX128B]>;
3680*bdd1243dSDimitry Andric
3681*bdd1243dSDimitry Andric// V73 HVX Instructions.
3682*bdd1243dSDimitry Andric
3683*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_sf_bf HvxVR:$src1, HvxVR:$src2),
3684*bdd1243dSDimitry Andric         (V6_vadd_sf_bf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV73, UseHVX64B]>;
3685*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vadd_sf_bf_128B HvxVR:$src1, HvxVR:$src2),
3686*bdd1243dSDimitry Andric         (V6_vadd_sf_bf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV73, UseHVX128B]>;
3687*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vconv_h_hf HvxVR:$src1),
3688*bdd1243dSDimitry Andric         (V6_vconv_h_hf HvxVR:$src1)>, Requires<[UseHVXV73, UseHVX64B]>;
3689*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vconv_h_hf_128B HvxVR:$src1),
3690*bdd1243dSDimitry Andric         (V6_vconv_h_hf HvxVR:$src1)>, Requires<[UseHVXV73, UseHVX128B]>;
3691*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vconv_hf_h HvxVR:$src1),
3692*bdd1243dSDimitry Andric         (V6_vconv_hf_h HvxVR:$src1)>, Requires<[UseHVXV73, UseHVX64B]>;
3693*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vconv_hf_h_128B HvxVR:$src1),
3694*bdd1243dSDimitry Andric         (V6_vconv_hf_h HvxVR:$src1)>, Requires<[UseHVXV73, UseHVX128B]>;
3695*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vconv_sf_w HvxVR:$src1),
3696*bdd1243dSDimitry Andric         (V6_vconv_sf_w HvxVR:$src1)>, Requires<[UseHVXV73, UseHVX64B]>;
3697*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vconv_sf_w_128B HvxVR:$src1),
3698*bdd1243dSDimitry Andric         (V6_vconv_sf_w HvxVR:$src1)>, Requires<[UseHVXV73, UseHVX128B]>;
3699*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vconv_w_sf HvxVR:$src1),
3700*bdd1243dSDimitry Andric         (V6_vconv_w_sf HvxVR:$src1)>, Requires<[UseHVXV73, UseHVX64B]>;
3701*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vconv_w_sf_128B HvxVR:$src1),
3702*bdd1243dSDimitry Andric         (V6_vconv_w_sf HvxVR:$src1)>, Requires<[UseHVXV73, UseHVX128B]>;
3703*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_bf_sf HvxVR:$src1, HvxVR:$src2),
3704*bdd1243dSDimitry Andric         (V6_vcvt_bf_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV73, UseHVX64B]>;
3705*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vcvt_bf_sf_128B HvxVR:$src1, HvxVR:$src2),
3706*bdd1243dSDimitry Andric         (V6_vcvt_bf_sf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV73, UseHVX128B]>;
3707*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vgtbf HvxVR:$src1, HvxVR:$src2),
3708*bdd1243dSDimitry Andric         (V6_vgtbf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV73, UseHVX64B, UseHVXQFloat]>;
3709*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vgtbf_128B HvxVR:$src1, HvxVR:$src2),
3710*bdd1243dSDimitry Andric         (V6_vgtbf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV73, UseHVX128B, UseHVXQFloat]>;
3711*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vgtbf_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3712*bdd1243dSDimitry Andric         (V6_vgtbf_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV73, UseHVX64B, UseHVXQFloat]>;
3713*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vgtbf_and_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3714*bdd1243dSDimitry Andric         (V6_vgtbf_and HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV73, UseHVX128B, UseHVXQFloat]>;
3715*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vgtbf_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3716*bdd1243dSDimitry Andric         (V6_vgtbf_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV73, UseHVX64B, UseHVXQFloat]>;
3717*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vgtbf_or_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3718*bdd1243dSDimitry Andric         (V6_vgtbf_or HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV73, UseHVX128B, UseHVXQFloat]>;
3719*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vgtbf_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3720*bdd1243dSDimitry Andric         (V6_vgtbf_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV73, UseHVX64B, UseHVXQFloat]>;
3721*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vgtbf_xor_128B HvxQR:$src1, HvxVR:$src2, HvxVR:$src3),
3722*bdd1243dSDimitry Andric         (V6_vgtbf_xor HvxQR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV73, UseHVX128B, UseHVXQFloat]>;
3723*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vmax_bf HvxVR:$src1, HvxVR:$src2),
3724*bdd1243dSDimitry Andric         (V6_vmax_bf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV73, UseHVX64B]>;
3725*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vmax_bf_128B HvxVR:$src1, HvxVR:$src2),
3726*bdd1243dSDimitry Andric         (V6_vmax_bf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV73, UseHVX128B]>;
3727*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vmin_bf HvxVR:$src1, HvxVR:$src2),
3728*bdd1243dSDimitry Andric         (V6_vmin_bf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV73, UseHVX64B]>;
3729*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vmin_bf_128B HvxVR:$src1, HvxVR:$src2),
3730*bdd1243dSDimitry Andric         (V6_vmin_bf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV73, UseHVX128B]>;
3731*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_sf_bf HvxVR:$src1, HvxVR:$src2),
3732*bdd1243dSDimitry Andric         (V6_vmpy_sf_bf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV73, UseHVX64B]>;
3733*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_sf_bf_128B HvxVR:$src1, HvxVR:$src2),
3734*bdd1243dSDimitry Andric         (V6_vmpy_sf_bf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV73, UseHVX128B]>;
3735*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_sf_bf_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
3736*bdd1243dSDimitry Andric         (V6_vmpy_sf_bf_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV73, UseHVX64B]>;
3737*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vmpy_sf_bf_acc_128B HvxWR:$src1, HvxVR:$src2, HvxVR:$src3),
3738*bdd1243dSDimitry Andric         (V6_vmpy_sf_bf_acc HvxWR:$src1, HvxVR:$src2, HvxVR:$src3)>, Requires<[UseHVXV73, UseHVX128B]>;
3739*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_sf_bf HvxVR:$src1, HvxVR:$src2),
3740*bdd1243dSDimitry Andric         (V6_vsub_sf_bf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV73, UseHVX64B]>;
3741*bdd1243dSDimitry Andricdef: Pat<(int_hexagon_V6_vsub_sf_bf_128B HvxVR:$src1, HvxVR:$src2),
3742*bdd1243dSDimitry Andric         (V6_vsub_sf_bf HvxVR:$src1, HvxVR:$src2)>, Requires<[UseHVXV73, UseHVX128B]>;
3743