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