1*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VX_3op_v<bits<15> opc> : OpcodeHexagon { 2*9880d681SAndroid Build Coastguard Worker bits<5> dst; 3*9880d681SAndroid Build Coastguard Worker bits<5> src1; 4*9880d681SAndroid Build Coastguard Worker bits<5> src2; 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { opc{14-4}, src2}; 7*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { opc{3}, src1, opc{2-0}, dst}; 8*9880d681SAndroid Build Coastguard Worker} 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workerclass V6_vtmpyb_enc : Enc_COPROC_VX_3op_v<0b000110010000000>; 11*9880d681SAndroid Build Coastguard Workerclass V6_vtmpybus_enc : Enc_COPROC_VX_3op_v<0b000110010000001>; 12*9880d681SAndroid Build Coastguard Workerclass V6_vdmpyhb_enc : Enc_COPROC_VX_3op_v<0b000110010000010>; 13*9880d681SAndroid Build Coastguard Workerclass V6_vrmpyub_enc : Enc_COPROC_VX_3op_v<0b000110010000011>; 14*9880d681SAndroid Build Coastguard Workerclass V6_vrmpybus_enc : Enc_COPROC_VX_3op_v<0b000110010000100>; 15*9880d681SAndroid Build Coastguard Workerclass V6_vdsaduh_enc : Enc_COPROC_VX_3op_v<0b000110010000101>; 16*9880d681SAndroid Build Coastguard Workerclass V6_vdmpybus_enc : Enc_COPROC_VX_3op_v<0b000110010000110>; 17*9880d681SAndroid Build Coastguard Workerclass V6_vdmpybus_dv_enc : Enc_COPROC_VX_3op_v<0b000110010000111>; 18*9880d681SAndroid Build Coastguard Workerclass V6_vtmpyb_acc_enc : Enc_COPROC_VX_3op_v<0b000110010001000>; 19*9880d681SAndroid Build Coastguard Workerclass V6_vtmpybus_acc_enc : Enc_COPROC_VX_3op_v<0b000110010001001>; 20*9880d681SAndroid Build Coastguard Workerclass V6_vtmpyhb_acc_enc : Enc_COPROC_VX_3op_v<0b000110010001010>; 21*9880d681SAndroid Build Coastguard Workerclass V6_vdmpyhb_acc_enc : Enc_COPROC_VX_3op_v<0b000110010001011>; 22*9880d681SAndroid Build Coastguard Workerclass V6_vrmpyub_acc_enc : Enc_COPROC_VX_3op_v<0b000110010001100>; 23*9880d681SAndroid Build Coastguard Workerclass V6_vrmpybus_acc_enc : Enc_COPROC_VX_3op_v<0b000110010001101>; 24*9880d681SAndroid Build Coastguard Workerclass V6_vdmpybus_acc_enc : Enc_COPROC_VX_3op_v<0b000110010001110>; 25*9880d681SAndroid Build Coastguard Workerclass V6_vdmpybus_dv_acc_enc : Enc_COPROC_VX_3op_v<0b000110010001111>; 26*9880d681SAndroid Build Coastguard Workerclass V6_vdmpyhsusat_enc : Enc_COPROC_VX_3op_v<0b000110010010000>; 27*9880d681SAndroid Build Coastguard Workerclass V6_vdmpyhsuisat_enc : Enc_COPROC_VX_3op_v<0b000110010010001>; 28*9880d681SAndroid Build Coastguard Workerclass V6_vdmpyhsat_enc : Enc_COPROC_VX_3op_v<0b000110010010010>; 29*9880d681SAndroid Build Coastguard Workerclass V6_vdmpyhisat_enc : Enc_COPROC_VX_3op_v<0b000110010010011>; 30*9880d681SAndroid Build Coastguard Workerclass V6_vdmpyhb_dv_enc : Enc_COPROC_VX_3op_v<0b000110010010100>; 31*9880d681SAndroid Build Coastguard Workerclass V6_vmpybus_enc : Enc_COPROC_VX_3op_v<0b000110010010101>; 32*9880d681SAndroid Build Coastguard Workerclass V6_vmpabus_enc : Enc_COPROC_VX_3op_v<0b000110010010110>; 33*9880d681SAndroid Build Coastguard Workerclass V6_vmpahb_enc : Enc_COPROC_VX_3op_v<0b000110010010111>; 34*9880d681SAndroid Build Coastguard Workerclass V6_vdmpyhsusat_acc_enc : Enc_COPROC_VX_3op_v<0b000110010011000>; 35*9880d681SAndroid Build Coastguard Workerclass V6_vdmpyhsuisat_acc_enc : Enc_COPROC_VX_3op_v<0b000110010011001>; 36*9880d681SAndroid Build Coastguard Workerclass V6_vdmpyhisat_acc_enc : Enc_COPROC_VX_3op_v<0b000110010011010>; 37*9880d681SAndroid Build Coastguard Workerclass V6_vdmpyhsat_acc_enc : Enc_COPROC_VX_3op_v<0b000110010011011>; 38*9880d681SAndroid Build Coastguard Workerclass V6_vdmpyhb_dv_acc_enc : Enc_COPROC_VX_3op_v<0b000110010011100>; 39*9880d681SAndroid Build Coastguard Workerclass V6_vmpybus_acc_enc : Enc_COPROC_VX_3op_v<0b000110010011101>; 40*9880d681SAndroid Build Coastguard Workerclass V6_vmpabus_acc_enc : Enc_COPROC_VX_3op_v<0b000110010011110>; 41*9880d681SAndroid Build Coastguard Workerclass V6_vmpahb_acc_enc : Enc_COPROC_VX_3op_v<0b000110010011111>; 42*9880d681SAndroid Build Coastguard Workerclass V6_vmpyh_enc : Enc_COPROC_VX_3op_v<0b000110010100000>; 43*9880d681SAndroid Build Coastguard Workerclass V6_vmpyhss_enc : Enc_COPROC_VX_3op_v<0b000110010100001>; 44*9880d681SAndroid Build Coastguard Workerclass V6_vmpyhsrs_enc : Enc_COPROC_VX_3op_v<0b000110010100010>; 45*9880d681SAndroid Build Coastguard Workerclass V6_vmpyuh_enc : Enc_COPROC_VX_3op_v<0b000110010100011>; 46*9880d681SAndroid Build Coastguard Workerclass V6_vmpyhsat_acc_enc : Enc_COPROC_VX_3op_v<0b000110010101000>; 47*9880d681SAndroid Build Coastguard Workerclass V6_vmpyuh_acc_enc : Enc_COPROC_VX_3op_v<0b000110010101001>; 48*9880d681SAndroid Build Coastguard Workerclass V6_vmpyiwb_acc_enc : Enc_COPROC_VX_3op_v<0b000110010101010>; 49*9880d681SAndroid Build Coastguard Workerclass V6_vmpyiwh_acc_enc : Enc_COPROC_VX_3op_v<0b000110010101011>; 50*9880d681SAndroid Build Coastguard Workerclass V6_vmpyihb_enc : Enc_COPROC_VX_3op_v<0b000110010110000>; 51*9880d681SAndroid Build Coastguard Workerclass V6_vror_enc : Enc_COPROC_VX_3op_v<0b000110010110001>; 52*9880d681SAndroid Build Coastguard Workerclass V6_vasrw_enc : Enc_COPROC_VX_3op_v<0b000110010110101>; 53*9880d681SAndroid Build Coastguard Workerclass V6_vasrh_enc : Enc_COPROC_VX_3op_v<0b000110010110110>; 54*9880d681SAndroid Build Coastguard Workerclass V6_vaslw_enc : Enc_COPROC_VX_3op_v<0b000110010110111>; 55*9880d681SAndroid Build Coastguard Workerclass V6_vdsaduh_acc_enc : Enc_COPROC_VX_3op_v<0b000110010111000>; 56*9880d681SAndroid Build Coastguard Workerclass V6_vmpyihb_acc_enc : Enc_COPROC_VX_3op_v<0b000110010111001>; 57*9880d681SAndroid Build Coastguard Workerclass V6_vaslw_acc_enc : Enc_COPROC_VX_3op_v<0b000110010111010>; 58*9880d681SAndroid Build Coastguard Workerclass V6_vasrw_acc_enc : Enc_COPROC_VX_3op_v<0b000110010111101>; 59*9880d681SAndroid Build Coastguard Workerclass V6_vaslh_enc : Enc_COPROC_VX_3op_v<0b000110011000000>; 60*9880d681SAndroid Build Coastguard Workerclass V6_vlsrw_enc : Enc_COPROC_VX_3op_v<0b000110011000001>; 61*9880d681SAndroid Build Coastguard Workerclass V6_vlsrh_enc : Enc_COPROC_VX_3op_v<0b000110011000010>; 62*9880d681SAndroid Build Coastguard Workerclass V6_vmpyiwh_enc : Enc_COPROC_VX_3op_v<0b000110011000111>; 63*9880d681SAndroid Build Coastguard Workerclass V6_vmpyub_acc_enc : Enc_COPROC_VX_3op_v<0b000110011001000>; 64*9880d681SAndroid Build Coastguard Workerclass V6_vmpyiwb_enc : Enc_COPROC_VX_3op_v<0b000110011010000>; 65*9880d681SAndroid Build Coastguard Workerclass V6_vtmpyhb_enc : Enc_COPROC_VX_3op_v<0b000110011010100>; 66*9880d681SAndroid Build Coastguard Workerclass V6_vmpyub_enc : Enc_COPROC_VX_3op_v<0b000110011100000>; 67*9880d681SAndroid Build Coastguard Workerclass V6_vrmpyubv_enc : Enc_COPROC_VX_3op_v<0b000111000000000>; 68*9880d681SAndroid Build Coastguard Workerclass V6_vrmpybv_enc : Enc_COPROC_VX_3op_v<0b000111000000001>; 69*9880d681SAndroid Build Coastguard Workerclass V6_vrmpybusv_enc : Enc_COPROC_VX_3op_v<0b000111000000010>; 70*9880d681SAndroid Build Coastguard Workerclass V6_vdmpyhvsat_enc : Enc_COPROC_VX_3op_v<0b000111000000011>; 71*9880d681SAndroid Build Coastguard Workerclass V6_vmpybv_enc : Enc_COPROC_VX_3op_v<0b000111000000100>; 72*9880d681SAndroid Build Coastguard Workerclass V6_vmpyubv_enc : Enc_COPROC_VX_3op_v<0b000111000000101>; 73*9880d681SAndroid Build Coastguard Workerclass V6_vmpybusv_enc : Enc_COPROC_VX_3op_v<0b000111000000110>; 74*9880d681SAndroid Build Coastguard Workerclass V6_vmpyhv_enc : Enc_COPROC_VX_3op_v<0b000111000000111>; 75*9880d681SAndroid Build Coastguard Workerclass V6_vrmpyubv_acc_enc : Enc_COPROC_VX_3op_v<0b000111000001000>; 76*9880d681SAndroid Build Coastguard Workerclass V6_vrmpybv_acc_enc : Enc_COPROC_VX_3op_v<0b000111000001001>; 77*9880d681SAndroid Build Coastguard Workerclass V6_vrmpybusv_acc_enc : Enc_COPROC_VX_3op_v<0b000111000001010>; 78*9880d681SAndroid Build Coastguard Workerclass V6_vdmpyhvsat_acc_enc : Enc_COPROC_VX_3op_v<0b000111000001011>; 79*9880d681SAndroid Build Coastguard Workerclass V6_vmpybv_acc_enc : Enc_COPROC_VX_3op_v<0b000111000001100>; 80*9880d681SAndroid Build Coastguard Workerclass V6_vmpyubv_acc_enc : Enc_COPROC_VX_3op_v<0b000111000001101>; 81*9880d681SAndroid Build Coastguard Workerclass V6_vmpybusv_acc_enc : Enc_COPROC_VX_3op_v<0b000111000001110>; 82*9880d681SAndroid Build Coastguard Workerclass V6_vmpyhv_acc_enc : Enc_COPROC_VX_3op_v<0b000111000001111>; 83*9880d681SAndroid Build Coastguard Workerclass V6_vmpyuhv_enc : Enc_COPROC_VX_3op_v<0b000111000010000>; 84*9880d681SAndroid Build Coastguard Workerclass V6_vmpyhvsrs_enc : Enc_COPROC_VX_3op_v<0b000111000010001>; 85*9880d681SAndroid Build Coastguard Workerclass V6_vmpyhus_enc : Enc_COPROC_VX_3op_v<0b000111000010010>; 86*9880d681SAndroid Build Coastguard Workerclass V6_vmpabusv_enc : Enc_COPROC_VX_3op_v<0b000111000010011>; 87*9880d681SAndroid Build Coastguard Workerclass V6_vmpyih_enc : Enc_COPROC_VX_3op_v<0b000111000010100>; 88*9880d681SAndroid Build Coastguard Workerclass V6_vand_enc : Enc_COPROC_VX_3op_v<0b000111000010101>; 89*9880d681SAndroid Build Coastguard Workerclass V6_vor_enc : Enc_COPROC_VX_3op_v<0b000111000010110>; 90*9880d681SAndroid Build Coastguard Workerclass V6_vxor_enc : Enc_COPROC_VX_3op_v<0b000111000010111>; 91*9880d681SAndroid Build Coastguard Workerclass V6_vmpyuhv_acc_enc : Enc_COPROC_VX_3op_v<0b000111000011000>; 92*9880d681SAndroid Build Coastguard Workerclass V6_vmpyhus_acc_enc : Enc_COPROC_VX_3op_v<0b000111000011001>; 93*9880d681SAndroid Build Coastguard Workerclass V6_vmpyih_acc_enc : Enc_COPROC_VX_3op_v<0b000111000011100>; 94*9880d681SAndroid Build Coastguard Workerclass V6_vmpyiewuh_acc_enc : Enc_COPROC_VX_3op_v<0b000111000011101>; 95*9880d681SAndroid Build Coastguard Workerclass V6_vmpyowh_sacc_enc : Enc_COPROC_VX_3op_v<0b000111000011110>; 96*9880d681SAndroid Build Coastguard Workerclass V6_vmpyowh_rnd_sacc_enc : Enc_COPROC_VX_3op_v<0b000111000011111>; 97*9880d681SAndroid Build Coastguard Workerclass V6_vaddw_enc : Enc_COPROC_VX_3op_v<0b000111000100000>; 98*9880d681SAndroid Build Coastguard Workerclass V6_vaddubsat_enc : Enc_COPROC_VX_3op_v<0b000111000100001>; 99*9880d681SAndroid Build Coastguard Workerclass V6_vadduhsat_enc : Enc_COPROC_VX_3op_v<0b000111000100010>; 100*9880d681SAndroid Build Coastguard Workerclass V6_vaddhsat_enc : Enc_COPROC_VX_3op_v<0b000111000100011>; 101*9880d681SAndroid Build Coastguard Workerclass V6_vaddwsat_enc : Enc_COPROC_VX_3op_v<0b000111000100100>; 102*9880d681SAndroid Build Coastguard Workerclass V6_vsubb_enc : Enc_COPROC_VX_3op_v<0b000111000100101>; 103*9880d681SAndroid Build Coastguard Workerclass V6_vsubh_enc : Enc_COPROC_VX_3op_v<0b000111000100110>; 104*9880d681SAndroid Build Coastguard Workerclass V6_vsubw_enc : Enc_COPROC_VX_3op_v<0b000111000100111>; 105*9880d681SAndroid Build Coastguard Workerclass V6_vmpyiewh_acc_enc : Enc_COPROC_VX_3op_v<0b000111000101000>; 106*9880d681SAndroid Build Coastguard Workerclass V6_vsububsat_enc : Enc_COPROC_VX_3op_v<0b000111000110000>; 107*9880d681SAndroid Build Coastguard Workerclass V6_vsubuhsat_enc : Enc_COPROC_VX_3op_v<0b000111000110001>; 108*9880d681SAndroid Build Coastguard Workerclass V6_vsubhsat_enc : Enc_COPROC_VX_3op_v<0b000111000110010>; 109*9880d681SAndroid Build Coastguard Workerclass V6_vsubwsat_enc : Enc_COPROC_VX_3op_v<0b000111000110011>; 110*9880d681SAndroid Build Coastguard Workerclass V6_vaddb_dv_enc : Enc_COPROC_VX_3op_v<0b000111000110100>; 111*9880d681SAndroid Build Coastguard Workerclass V6_vaddh_dv_enc : Enc_COPROC_VX_3op_v<0b000111000110101>; 112*9880d681SAndroid Build Coastguard Workerclass V6_vaddw_dv_enc : Enc_COPROC_VX_3op_v<0b000111000110110>; 113*9880d681SAndroid Build Coastguard Workerclass V6_vaddubsat_dv_enc : Enc_COPROC_VX_3op_v<0b000111000110111>; 114*9880d681SAndroid Build Coastguard Workerclass V6_vadduhsat_dv_enc : Enc_COPROC_VX_3op_v<0b000111001000000>; 115*9880d681SAndroid Build Coastguard Workerclass V6_vaddhsat_dv_enc : Enc_COPROC_VX_3op_v<0b000111001000001>; 116*9880d681SAndroid Build Coastguard Workerclass V6_vaddwsat_dv_enc : Enc_COPROC_VX_3op_v<0b000111001000010>; 117*9880d681SAndroid Build Coastguard Workerclass V6_vsubb_dv_enc : Enc_COPROC_VX_3op_v<0b000111001000011>; 118*9880d681SAndroid Build Coastguard Workerclass V6_vsubh_dv_enc : Enc_COPROC_VX_3op_v<0b000111001000100>; 119*9880d681SAndroid Build Coastguard Workerclass V6_vsubw_dv_enc : Enc_COPROC_VX_3op_v<0b000111001000101>; 120*9880d681SAndroid Build Coastguard Workerclass V6_vsububsat_dv_enc : Enc_COPROC_VX_3op_v<0b000111001000110>; 121*9880d681SAndroid Build Coastguard Workerclass V6_vsubuhsat_dv_enc : Enc_COPROC_VX_3op_v<0b000111001000111>; 122*9880d681SAndroid Build Coastguard Workerclass V6_vsubhsat_dv_enc : Enc_COPROC_VX_3op_v<0b000111001010000>; 123*9880d681SAndroid Build Coastguard Workerclass V6_vsubwsat_dv_enc : Enc_COPROC_VX_3op_v<0b000111001010001>; 124*9880d681SAndroid Build Coastguard Workerclass V6_vaddubh_enc : Enc_COPROC_VX_3op_v<0b000111001010010>; 125*9880d681SAndroid Build Coastguard Workerclass V6_vadduhw_enc : Enc_COPROC_VX_3op_v<0b000111001010011>; 126*9880d681SAndroid Build Coastguard Workerclass V6_vaddhw_enc : Enc_COPROC_VX_3op_v<0b000111001010100>; 127*9880d681SAndroid Build Coastguard Workerclass V6_vsububh_enc : Enc_COPROC_VX_3op_v<0b000111001010101>; 128*9880d681SAndroid Build Coastguard Workerclass V6_vsubuhw_enc : Enc_COPROC_VX_3op_v<0b000111001010110>; 129*9880d681SAndroid Build Coastguard Workerclass V6_vsubhw_enc : Enc_COPROC_VX_3op_v<0b000111001010111>; 130*9880d681SAndroid Build Coastguard Workerclass V6_vabsdiffub_enc : Enc_COPROC_VX_3op_v<0b000111001100000>; 131*9880d681SAndroid Build Coastguard Workerclass V6_vabsdiffh_enc : Enc_COPROC_VX_3op_v<0b000111001100001>; 132*9880d681SAndroid Build Coastguard Workerclass V6_vabsdiffuh_enc : Enc_COPROC_VX_3op_v<0b000111001100010>; 133*9880d681SAndroid Build Coastguard Workerclass V6_vabsdiffw_enc : Enc_COPROC_VX_3op_v<0b000111001100011>; 134*9880d681SAndroid Build Coastguard Workerclass V6_vavgub_enc : Enc_COPROC_VX_3op_v<0b000111001100100>; 135*9880d681SAndroid Build Coastguard Workerclass V6_vavguh_enc : Enc_COPROC_VX_3op_v<0b000111001100101>; 136*9880d681SAndroid Build Coastguard Workerclass V6_vavgh_enc : Enc_COPROC_VX_3op_v<0b000111001100110>; 137*9880d681SAndroid Build Coastguard Workerclass V6_vavgw_enc : Enc_COPROC_VX_3op_v<0b000111001100111>; 138*9880d681SAndroid Build Coastguard Workerclass V6_vnavgub_enc : Enc_COPROC_VX_3op_v<0b000111001110000>; 139*9880d681SAndroid Build Coastguard Workerclass V6_vnavgh_enc : Enc_COPROC_VX_3op_v<0b000111001110001>; 140*9880d681SAndroid Build Coastguard Workerclass V6_vnavgw_enc : Enc_COPROC_VX_3op_v<0b000111001110010>; 141*9880d681SAndroid Build Coastguard Workerclass V6_vavgubrnd_enc : Enc_COPROC_VX_3op_v<0b000111001110011>; 142*9880d681SAndroid Build Coastguard Workerclass V6_vavguhrnd_enc : Enc_COPROC_VX_3op_v<0b000111001110100>; 143*9880d681SAndroid Build Coastguard Workerclass V6_vavghrnd_enc : Enc_COPROC_VX_3op_v<0b000111001110101>; 144*9880d681SAndroid Build Coastguard Workerclass V6_vavgwrnd_enc : Enc_COPROC_VX_3op_v<0b000111001110110>; 145*9880d681SAndroid Build Coastguard Workerclass V6_vmpabuuv_enc : Enc_COPROC_VX_3op_v<0b000111001110111>; 146*9880d681SAndroid Build Coastguard Workerclass V6_vminub_enc : Enc_COPROC_VX_3op_v<0b000111110000001>; 147*9880d681SAndroid Build Coastguard Workerclass V6_vminuh_enc : Enc_COPROC_VX_3op_v<0b000111110000010>; 148*9880d681SAndroid Build Coastguard Workerclass V6_vminh_enc : Enc_COPROC_VX_3op_v<0b000111110000011>; 149*9880d681SAndroid Build Coastguard Workerclass V6_vminw_enc : Enc_COPROC_VX_3op_v<0b000111110000100>; 150*9880d681SAndroid Build Coastguard Workerclass V6_vmaxub_enc : Enc_COPROC_VX_3op_v<0b000111110000101>; 151*9880d681SAndroid Build Coastguard Workerclass V6_vmaxuh_enc : Enc_COPROC_VX_3op_v<0b000111110000110>; 152*9880d681SAndroid Build Coastguard Workerclass V6_vmaxh_enc : Enc_COPROC_VX_3op_v<0b000111110000111>; 153*9880d681SAndroid Build Coastguard Workerclass V6_vmaxw_enc : Enc_COPROC_VX_3op_v<0b000111110010000>; 154*9880d681SAndroid Build Coastguard Workerclass V6_vdelta_enc : Enc_COPROC_VX_3op_v<0b000111110010001>; 155*9880d681SAndroid Build Coastguard Workerclass V6_vrdelta_enc : Enc_COPROC_VX_3op_v<0b000111110010011>; 156*9880d681SAndroid Build Coastguard Workerclass V6_vdealb4w_enc : Enc_COPROC_VX_3op_v<0b000111110010111>; 157*9880d681SAndroid Build Coastguard Workerclass V6_vmpyowh_rnd_enc : Enc_COPROC_VX_3op_v<0b000111110100000>; 158*9880d681SAndroid Build Coastguard Workerclass V6_vshuffeb_enc : Enc_COPROC_VX_3op_v<0b000111110100001>; 159*9880d681SAndroid Build Coastguard Workerclass V6_vshuffob_enc : Enc_COPROC_VX_3op_v<0b000111110100010>; 160*9880d681SAndroid Build Coastguard Workerclass V6_vshufeh_enc : Enc_COPROC_VX_3op_v<0b000111110100011>; 161*9880d681SAndroid Build Coastguard Workerclass V6_vshufoh_enc : Enc_COPROC_VX_3op_v<0b000111110100100>; 162*9880d681SAndroid Build Coastguard Workerclass V6_vshufoeh_enc : Enc_COPROC_VX_3op_v<0b000111110100101>; 163*9880d681SAndroid Build Coastguard Workerclass V6_vshufoeb_enc : Enc_COPROC_VX_3op_v<0b000111110100110>; 164*9880d681SAndroid Build Coastguard Workerclass V6_vcombine_enc : Enc_COPROC_VX_3op_v<0b000111110100111>; 165*9880d681SAndroid Build Coastguard Workerclass V6_vmpyieoh_enc : Enc_COPROC_VX_3op_v<0b000111110110000>; 166*9880d681SAndroid Build Coastguard Workerclass V6_vsathub_enc : Enc_COPROC_VX_3op_v<0b000111110110010>; 167*9880d681SAndroid Build Coastguard Workerclass V6_vsatwh_enc : Enc_COPROC_VX_3op_v<0b000111110110011>; 168*9880d681SAndroid Build Coastguard Workerclass V6_vroundwh_enc : Enc_COPROC_VX_3op_v<0b000111110110100>; 169*9880d681SAndroid Build Coastguard Workerclass V6_vroundwuh_enc : Enc_COPROC_VX_3op_v<0b000111110110101>; 170*9880d681SAndroid Build Coastguard Workerclass V6_vroundhb_enc : Enc_COPROC_VX_3op_v<0b000111110110110>; 171*9880d681SAndroid Build Coastguard Workerclass V6_vroundhub_enc : Enc_COPROC_VX_3op_v<0b000111110110111>; 172*9880d681SAndroid Build Coastguard Workerclass V6_vasrwv_enc : Enc_COPROC_VX_3op_v<0b000111111010000>; 173*9880d681SAndroid Build Coastguard Workerclass V6_vlsrwv_enc : Enc_COPROC_VX_3op_v<0b000111111010001>; 174*9880d681SAndroid Build Coastguard Workerclass V6_vlsrhv_enc : Enc_COPROC_VX_3op_v<0b000111111010010>; 175*9880d681SAndroid Build Coastguard Workerclass V6_vasrhv_enc : Enc_COPROC_VX_3op_v<0b000111111010011>; 176*9880d681SAndroid Build Coastguard Workerclass V6_vaslwv_enc : Enc_COPROC_VX_3op_v<0b000111111010100>; 177*9880d681SAndroid Build Coastguard Workerclass V6_vaslhv_enc : Enc_COPROC_VX_3op_v<0b000111111010101>; 178*9880d681SAndroid Build Coastguard Workerclass V6_vaddb_enc : Enc_COPROC_VX_3op_v<0b000111111010110>; 179*9880d681SAndroid Build Coastguard Workerclass V6_vaddh_enc : Enc_COPROC_VX_3op_v<0b000111111010111>; 180*9880d681SAndroid Build Coastguard Workerclass V6_vmpyiewuh_enc : Enc_COPROC_VX_3op_v<0b000111111100000>; 181*9880d681SAndroid Build Coastguard Workerclass V6_vmpyiowh_enc : Enc_COPROC_VX_3op_v<0b000111111100001>; 182*9880d681SAndroid Build Coastguard Workerclass V6_vpackeb_enc : Enc_COPROC_VX_3op_v<0b000111111100010>; 183*9880d681SAndroid Build Coastguard Workerclass V6_vpackeh_enc : Enc_COPROC_VX_3op_v<0b000111111100011>; 184*9880d681SAndroid Build Coastguard Workerclass V6_vpackhub_sat_enc : Enc_COPROC_VX_3op_v<0b000111111100101>; 185*9880d681SAndroid Build Coastguard Workerclass V6_vpackhb_sat_enc : Enc_COPROC_VX_3op_v<0b000111111100110>; 186*9880d681SAndroid Build Coastguard Workerclass V6_vpackwuh_sat_enc : Enc_COPROC_VX_3op_v<0b000111111100111>; 187*9880d681SAndroid Build Coastguard Workerclass V6_vpackwh_sat_enc : Enc_COPROC_VX_3op_v<0b000111111110000>; 188*9880d681SAndroid Build Coastguard Workerclass V6_vpackob_enc : Enc_COPROC_VX_3op_v<0b000111111110001>; 189*9880d681SAndroid Build Coastguard Workerclass V6_vpackoh_enc : Enc_COPROC_VX_3op_v<0b000111111110010>; 190*9880d681SAndroid Build Coastguard Workerclass V6_vmpyewuh_enc : Enc_COPROC_VX_3op_v<0b000111111110101>; 191*9880d681SAndroid Build Coastguard Workerclass V6_vmpyowh_enc : Enc_COPROC_VX_3op_v<0b000111111110111>; 192*9880d681SAndroid Build Coastguard Workerclass V6_extractw_enc : Enc_COPROC_VX_3op_v<0b100100100000001>; 193*9880d681SAndroid Build Coastguard Workerclass M6_vabsdiffub_enc : Enc_COPROC_VX_3op_v<0b111010001010000>; 194*9880d681SAndroid Build Coastguard Workerclass M6_vabsdiffb_enc : Enc_COPROC_VX_3op_v<0b111010001110000>; 195*9880d681SAndroid Build Coastguard Worker 196*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VX_cmp<bits<13> opc> : OpcodeHexagon { 197*9880d681SAndroid Build Coastguard Worker bits<2> dst; 198*9880d681SAndroid Build Coastguard Worker bits<5> src1; 199*9880d681SAndroid Build Coastguard Worker bits<5> src2; 200*9880d681SAndroid Build Coastguard Worker 201*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b00011, opc{12-7}, src2{4-0} }; 202*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { opc{6}, src1{4-0}, opc{5-0}, dst{1-0} }; 203*9880d681SAndroid Build Coastguard Worker} 204*9880d681SAndroid Build Coastguard Worker 205*9880d681SAndroid Build Coastguard Workerclass V6_vandvrt_acc_enc : Enc_COPROC_VX_cmp<0b0010111100000>; 206*9880d681SAndroid Build Coastguard Workerclass V6_vandvrt_enc : Enc_COPROC_VX_cmp<0b0011010010010>; 207*9880d681SAndroid Build Coastguard Workerclass V6_veqb_and_enc : Enc_COPROC_VX_cmp<0b1001001000000>; 208*9880d681SAndroid Build Coastguard Workerclass V6_veqh_and_enc : Enc_COPROC_VX_cmp<0b1001001000001>; 209*9880d681SAndroid Build Coastguard Workerclass V6_veqw_and_enc : Enc_COPROC_VX_cmp<0b1001001000010>; 210*9880d681SAndroid Build Coastguard Workerclass V6_vgtb_and_enc : Enc_COPROC_VX_cmp<0b1001001000100>; 211*9880d681SAndroid Build Coastguard Workerclass V6_vgth_and_enc : Enc_COPROC_VX_cmp<0b1001001000101>; 212*9880d681SAndroid Build Coastguard Workerclass V6_vgtw_and_enc : Enc_COPROC_VX_cmp<0b1001001000110>; 213*9880d681SAndroid Build Coastguard Workerclass V6_vgtub_and_enc : Enc_COPROC_VX_cmp<0b1001001001000>; 214*9880d681SAndroid Build Coastguard Workerclass V6_vgtuh_and_enc : Enc_COPROC_VX_cmp<0b1001001001001>; 215*9880d681SAndroid Build Coastguard Workerclass V6_vgtuw_and_enc : Enc_COPROC_VX_cmp<0b1001001001010>; 216*9880d681SAndroid Build Coastguard Workerclass V6_veqb_or_enc : Enc_COPROC_VX_cmp<0b1001001010000>; 217*9880d681SAndroid Build Coastguard Workerclass V6_veqh_or_enc : Enc_COPROC_VX_cmp<0b1001001010001>; 218*9880d681SAndroid Build Coastguard Workerclass V6_veqw_or_enc : Enc_COPROC_VX_cmp<0b1001001010010>; 219*9880d681SAndroid Build Coastguard Workerclass V6_vgtb_or_enc : Enc_COPROC_VX_cmp<0b1001001010100>; 220*9880d681SAndroid Build Coastguard Workerclass V6_vgth_or_enc : Enc_COPROC_VX_cmp<0b1001001010101>; 221*9880d681SAndroid Build Coastguard Workerclass V6_vgtw_or_enc : Enc_COPROC_VX_cmp<0b1001001010110>; 222*9880d681SAndroid Build Coastguard Workerclass V6_vgtub_or_enc : Enc_COPROC_VX_cmp<0b1001001011000>; 223*9880d681SAndroid Build Coastguard Workerclass V6_vgtuh_or_enc : Enc_COPROC_VX_cmp<0b1001001011001>; 224*9880d681SAndroid Build Coastguard Workerclass V6_vgtuw_or_enc : Enc_COPROC_VX_cmp<0b1001001011010>; 225*9880d681SAndroid Build Coastguard Workerclass V6_veqb_xor_enc : Enc_COPROC_VX_cmp<0b1001001100000>; 226*9880d681SAndroid Build Coastguard Workerclass V6_veqh_xor_enc : Enc_COPROC_VX_cmp<0b1001001100001>; 227*9880d681SAndroid Build Coastguard Workerclass V6_veqw_xor_enc : Enc_COPROC_VX_cmp<0b1001001100010>; 228*9880d681SAndroid Build Coastguard Workerclass V6_vgtb_xor_enc : Enc_COPROC_VX_cmp<0b1001001100100>; 229*9880d681SAndroid Build Coastguard Workerclass V6_vgth_xor_enc : Enc_COPROC_VX_cmp<0b1001001100101>; 230*9880d681SAndroid Build Coastguard Workerclass V6_vgtw_xor_enc : Enc_COPROC_VX_cmp<0b1001001100110>; 231*9880d681SAndroid Build Coastguard Workerclass V6_vgtub_xor_enc : Enc_COPROC_VX_cmp<0b1001001101000>; 232*9880d681SAndroid Build Coastguard Workerclass V6_vgtuh_xor_enc : Enc_COPROC_VX_cmp<0b1001001101001>; 233*9880d681SAndroid Build Coastguard Workerclass V6_vgtuw_xor_enc : Enc_COPROC_VX_cmp<0b1001001101010>; 234*9880d681SAndroid Build Coastguard Workerclass V6_veqb_enc : Enc_COPROC_VX_cmp<0b1111000000000>; 235*9880d681SAndroid Build Coastguard Workerclass V6_veqh_enc : Enc_COPROC_VX_cmp<0b1111000000001>; 236*9880d681SAndroid Build Coastguard Workerclass V6_veqw_enc : Enc_COPROC_VX_cmp<0b1111000000010>; 237*9880d681SAndroid Build Coastguard Workerclass V6_vgtb_enc : Enc_COPROC_VX_cmp<0b1111000000100>; 238*9880d681SAndroid Build Coastguard Workerclass V6_vgth_enc : Enc_COPROC_VX_cmp<0b1111000000101>; 239*9880d681SAndroid Build Coastguard Workerclass V6_vgtw_enc : Enc_COPROC_VX_cmp<0b1111000000110>; 240*9880d681SAndroid Build Coastguard Workerclass V6_vgtub_enc : Enc_COPROC_VX_cmp<0b1111000001000>; 241*9880d681SAndroid Build Coastguard Workerclass V6_vgtuh_enc : Enc_COPROC_VX_cmp<0b1111000001001>; 242*9880d681SAndroid Build Coastguard Workerclass V6_vgtuw_enc : Enc_COPROC_VX_cmp<0b1111000001010>; 243*9880d681SAndroid Build Coastguard Worker 244*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VX_p2op<bits<5> opc> : OpcodeHexagon { 245*9880d681SAndroid Build Coastguard Worker bits<2> src1; 246*9880d681SAndroid Build Coastguard Worker bits<5> dst; 247*9880d681SAndroid Build Coastguard Worker bits<5> src2; 248*9880d681SAndroid Build Coastguard Worker 249*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b00011110, src1{1-0}, 0b0000, opc{4-3} }; 250*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 1, src2{4-0}, opc{2-0}, dst{4-0} }; 251*9880d681SAndroid Build Coastguard Worker} 252*9880d681SAndroid Build Coastguard Worker 253*9880d681SAndroid Build Coastguard Workerclass V6_vaddbq_enc : Enc_COPROC_VX_p2op<0b01000>; 254*9880d681SAndroid Build Coastguard Workerclass V6_vaddhq_enc : Enc_COPROC_VX_p2op<0b01001>; 255*9880d681SAndroid Build Coastguard Workerclass V6_vaddwq_enc : Enc_COPROC_VX_p2op<0b01010>; 256*9880d681SAndroid Build Coastguard Workerclass V6_vaddbnq_enc : Enc_COPROC_VX_p2op<0b01011>; 257*9880d681SAndroid Build Coastguard Workerclass V6_vaddhnq_enc : Enc_COPROC_VX_p2op<0b01100>; 258*9880d681SAndroid Build Coastguard Workerclass V6_vaddwnq_enc : Enc_COPROC_VX_p2op<0b01101>; 259*9880d681SAndroid Build Coastguard Workerclass V6_vsubbq_enc : Enc_COPROC_VX_p2op<0b01110>; 260*9880d681SAndroid Build Coastguard Workerclass V6_vsubhq_enc : Enc_COPROC_VX_p2op<0b01111>; 261*9880d681SAndroid Build Coastguard Workerclass V6_vsubwq_enc : Enc_COPROC_VX_p2op<0b10000>; 262*9880d681SAndroid Build Coastguard Workerclass V6_vsubbnq_enc : Enc_COPROC_VX_p2op<0b10001>; 263*9880d681SAndroid Build Coastguard Workerclass V6_vsubhnq_enc : Enc_COPROC_VX_p2op<0b10010>; 264*9880d681SAndroid Build Coastguard Workerclass V6_vsubwnq_enc : Enc_COPROC_VX_p2op<0b10011>; 265*9880d681SAndroid Build Coastguard Worker 266*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VX_2op<bits<6> opc> : OpcodeHexagon { 267*9880d681SAndroid Build Coastguard Worker bits<5> dst; 268*9880d681SAndroid Build Coastguard Worker bits<5> src1; 269*9880d681SAndroid Build Coastguard Worker 270*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b00011110000000, opc{5-4} }; 271*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { opc{3}, src1{4-0}, opc{2-0}, dst{4-0} }; 272*9880d681SAndroid Build Coastguard Worker} 273*9880d681SAndroid Build Coastguard Worker 274*9880d681SAndroid Build Coastguard Workerclass V6_vabsh_enc : Enc_COPROC_VX_2op<0b000000>; 275*9880d681SAndroid Build Coastguard Workerclass V6_vabsh_sat_enc : Enc_COPROC_VX_2op<0b000001>; 276*9880d681SAndroid Build Coastguard Workerclass V6_vabsw_enc : Enc_COPROC_VX_2op<0b000010>; 277*9880d681SAndroid Build Coastguard Workerclass V6_vabsw_sat_enc : Enc_COPROC_VX_2op<0b000011>; 278*9880d681SAndroid Build Coastguard Workerclass V6_vnot_enc : Enc_COPROC_VX_2op<0b000100>; 279*9880d681SAndroid Build Coastguard Workerclass V6_vdealh_enc : Enc_COPROC_VX_2op<0b000110>; 280*9880d681SAndroid Build Coastguard Workerclass V6_vdealb_enc : Enc_COPROC_VX_2op<0b000111>; 281*9880d681SAndroid Build Coastguard Workerclass V6_vunpackob_enc : Enc_COPROC_VX_2op<0b001000>; 282*9880d681SAndroid Build Coastguard Workerclass V6_vunpackoh_enc : Enc_COPROC_VX_2op<0b001001>; 283*9880d681SAndroid Build Coastguard Workerclass V6_vunpackub_enc : Enc_COPROC_VX_2op<0b010000>; 284*9880d681SAndroid Build Coastguard Workerclass V6_vunpackuh_enc : Enc_COPROC_VX_2op<0b010001>; 285*9880d681SAndroid Build Coastguard Workerclass V6_vunpackb_enc : Enc_COPROC_VX_2op<0b010010>; 286*9880d681SAndroid Build Coastguard Workerclass V6_vunpackh_enc : Enc_COPROC_VX_2op<0b010011>; 287*9880d681SAndroid Build Coastguard Workerclass V6_vshuffh_enc : Enc_COPROC_VX_2op<0b010111>; 288*9880d681SAndroid Build Coastguard Workerclass V6_vshuffb_enc : Enc_COPROC_VX_2op<0b100000>; 289*9880d681SAndroid Build Coastguard Workerclass V6_vzb_enc : Enc_COPROC_VX_2op<0b100001>; 290*9880d681SAndroid Build Coastguard Workerclass V6_vzh_enc : Enc_COPROC_VX_2op<0b100010>; 291*9880d681SAndroid Build Coastguard Workerclass V6_vsb_enc : Enc_COPROC_VX_2op<0b100011>; 292*9880d681SAndroid Build Coastguard Workerclass V6_vsh_enc : Enc_COPROC_VX_2op<0b100100>; 293*9880d681SAndroid Build Coastguard Workerclass V6_vcl0w_enc : Enc_COPROC_VX_2op<0b100101>; 294*9880d681SAndroid Build Coastguard Workerclass V6_vpopcounth_enc : Enc_COPROC_VX_2op<0b100110>; 295*9880d681SAndroid Build Coastguard Workerclass V6_vcl0h_enc : Enc_COPROC_VX_2op<0b100111>; 296*9880d681SAndroid Build Coastguard Workerclass V6_vnormamtw_enc : Enc_COPROC_VX_2op<0b110100>; 297*9880d681SAndroid Build Coastguard Workerclass V6_vnormamth_enc : Enc_COPROC_VX_2op<0b110101>; 298*9880d681SAndroid Build Coastguard Workerclass V6_vassign_enc : Enc_COPROC_VX_2op<0b111111>; 299*9880d681SAndroid Build Coastguard Worker 300*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vL32_b_ai<bits<4> opc> : OpcodeHexagon { 301*9880d681SAndroid Build Coastguard Worker bits<5> dst; 302*9880d681SAndroid Build Coastguard Worker bits<5> src1; 303*9880d681SAndroid Build Coastguard Worker bits<10> src2; 304*9880d681SAndroid Build Coastguard Worker bits<4> src2_vector; 305*9880d681SAndroid Build Coastguard Worker 306*9880d681SAndroid Build Coastguard Worker let src2_vector = src2{9-6}; 307*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010000, opc{3}, 0, src1{4-0} }; 308*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src2_vector{3}, 0b00, src2_vector{2-0}, opc{2-0}, dst{4-0} }; 309*9880d681SAndroid Build Coastguard Worker} 310*9880d681SAndroid Build Coastguard Worker 311*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_ai_enc : Enc_COPROC_VMEM_vL32_b_ai<0b0000>; 312*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_cur_ai_enc : Enc_COPROC_VMEM_vL32_b_ai<0b0001>; 313*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_tmp_ai_enc : Enc_COPROC_VMEM_vL32_b_ai<0b0010>; 314*9880d681SAndroid Build Coastguard Workerclass V6_vL32Ub_ai_enc : Enc_COPROC_VMEM_vL32_b_ai<0b0111>; 315*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_nt_ai_enc : Enc_COPROC_VMEM_vL32_b_ai<0b1000>; 316*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_nt_cur_ai_enc : Enc_COPROC_VMEM_vL32_b_ai<0b1001>; 317*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_nt_tmp_ai_enc : Enc_COPROC_VMEM_vL32_b_ai<0b1010>; 318*9880d681SAndroid Build Coastguard Worker 319*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vL32_b_ai_128B<bits<4> opc> : OpcodeHexagon { 320*9880d681SAndroid Build Coastguard Worker bits<5> dst; 321*9880d681SAndroid Build Coastguard Worker bits<5> src1; 322*9880d681SAndroid Build Coastguard Worker bits<11> src2; 323*9880d681SAndroid Build Coastguard Worker bits<4> src2_vector; 324*9880d681SAndroid Build Coastguard Worker 325*9880d681SAndroid Build Coastguard Worker let src2_vector = src2{10-7}; 326*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010000, opc{3}, 0, src1{4-0} }; 327*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src2_vector{3}, 0b00, src2_vector{2-0}, opc{2-0}, dst{4-0} }; 328*9880d681SAndroid Build Coastguard Worker} 329*9880d681SAndroid Build Coastguard Worker 330*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_ai_128B_enc : Enc_COPROC_VMEM_vL32_b_ai_128B<0b0000>; 331*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_cur_ai_128B_enc : Enc_COPROC_VMEM_vL32_b_ai_128B<0b0001>; 332*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_tmp_ai_128B_enc : Enc_COPROC_VMEM_vL32_b_ai_128B<0b0010>; 333*9880d681SAndroid Build Coastguard Workerclass V6_vL32Ub_ai_128B_enc : Enc_COPROC_VMEM_vL32_b_ai_128B<0b0111>; 334*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_nt_ai_128B_enc : Enc_COPROC_VMEM_vL32_b_ai_128B<0b1000>; 335*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_nt_cur_ai_128B_enc : Enc_COPROC_VMEM_vL32_b_ai_128B<0b1001>; 336*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_nt_tmp_ai_128B_enc : Enc_COPROC_VMEM_vL32_b_ai_128B<0b1010>; 337*9880d681SAndroid Build Coastguard Worker 338*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32_b_ai_64B<bits<4> opc> : OpcodeHexagon { 339*9880d681SAndroid Build Coastguard Worker bits<5> src1; 340*9880d681SAndroid Build Coastguard Worker bits<10> src2; 341*9880d681SAndroid Build Coastguard Worker bits<4> src2_vector; 342*9880d681SAndroid Build Coastguard Worker bits<5> src3; 343*9880d681SAndroid Build Coastguard Worker 344*9880d681SAndroid Build Coastguard Worker let src2_vector = src2{9-6}; 345*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010000, opc{3}, 1, src1{4-0} }; 346*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src2_vector{3}, 0b00, src2_vector{2-0}, opc{2-0}, src3{4-0} }; 347*9880d681SAndroid Build Coastguard Worker} 348*9880d681SAndroid Build Coastguard Worker 349*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32_b_ai_128B<bits<4> opc> : OpcodeHexagon { 350*9880d681SAndroid Build Coastguard Worker bits<5> src1; 351*9880d681SAndroid Build Coastguard Worker bits<11> src2; 352*9880d681SAndroid Build Coastguard Worker bits<4> src2_vector; 353*9880d681SAndroid Build Coastguard Worker bits<5> src3; 354*9880d681SAndroid Build Coastguard Worker 355*9880d681SAndroid Build Coastguard Worker let src2_vector = src2{10-7}; 356*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010000, opc{3}, 1, src1{4-0} }; 357*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src2_vector{3}, 0b00, src2_vector{2-0}, opc{2-0}, src3{4-0} }; 358*9880d681SAndroid Build Coastguard Worker} 359*9880d681SAndroid Build Coastguard Worker 360*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_ai_enc : Enc_COPROC_VMEM_vS32_b_ai_64B<0b0000>; 361*9880d681SAndroid Build Coastguard Workerclass V6_vS32Ub_ai_enc : Enc_COPROC_VMEM_vS32_b_ai_64B<0b0111>; 362*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_ai_enc : Enc_COPROC_VMEM_vS32_b_ai_64B<0b1000>; 363*9880d681SAndroid Build Coastguard Worker 364*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_ai_128B_enc : Enc_COPROC_VMEM_vS32_b_ai_128B<0b0000>; 365*9880d681SAndroid Build Coastguard Workerclass V6_vS32Ub_ai_128B_enc : Enc_COPROC_VMEM_vS32_b_ai_128B<0b0111>; 366*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_ai_128B_enc : Enc_COPROC_VMEM_vS32_b_ai_128B<0b1000>; 367*9880d681SAndroid Build Coastguard Worker 368*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32b_n_ew_ai_64B<bits<1> opc> : OpcodeHexagon { 369*9880d681SAndroid Build Coastguard Worker bits<5> src1; 370*9880d681SAndroid Build Coastguard Worker bits<10> src2; 371*9880d681SAndroid Build Coastguard Worker bits<4> src2_vector; 372*9880d681SAndroid Build Coastguard Worker bits<3> src3; 373*9880d681SAndroid Build Coastguard Worker 374*9880d681SAndroid Build Coastguard Worker let src2_vector = src2{9-6}; 375*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010000, opc{0}, 1, src1{4-0} }; 376*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src2_vector{3}, 0b00, src2_vector{2-0}, 0b00100, src3{2-0} }; 377*9880d681SAndroid Build Coastguard Worker} 378*9880d681SAndroid Build Coastguard Worker 379*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_new_ai_enc : Enc_COPROC_VMEM_vS32b_n_ew_ai_64B<0>; 380*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_new_ai_enc : Enc_COPROC_VMEM_vS32b_n_ew_ai_64B<1>; 381*9880d681SAndroid Build Coastguard Worker 382*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32b_n_ew_ai_128B<bits<1> opc> : OpcodeHexagon { 383*9880d681SAndroid Build Coastguard Worker bits<5> src1; 384*9880d681SAndroid Build Coastguard Worker bits<11> src2; 385*9880d681SAndroid Build Coastguard Worker bits<4> src2_vector; 386*9880d681SAndroid Build Coastguard Worker bits<3> src3; 387*9880d681SAndroid Build Coastguard Worker 388*9880d681SAndroid Build Coastguard Worker let src2_vector = src2{10-7}; 389*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010000, opc{0}, 1, src1{4-0} }; 390*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src2_vector{3}, 0b00, src2_vector{2-0}, 0b00100, src3{2-0} }; 391*9880d681SAndroid Build Coastguard Worker} 392*9880d681SAndroid Build Coastguard Worker 393*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_new_ai_128B_enc : Enc_COPROC_VMEM_vS32b_n_ew_ai_128B<0>; 394*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_new_ai_128B_enc : Enc_COPROC_VMEM_vS32b_n_ew_ai_128B<1>; 395*9880d681SAndroid Build Coastguard Worker 396*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32_b_pred_ai<bits<5> opc> : OpcodeHexagon { 397*9880d681SAndroid Build Coastguard Worker bits<2> src1; 398*9880d681SAndroid Build Coastguard Worker bits<5> src2; 399*9880d681SAndroid Build Coastguard Worker bits<10> src3; 400*9880d681SAndroid Build Coastguard Worker bits<4> src3_vector; 401*9880d681SAndroid Build Coastguard Worker bits<5> src4; 402*9880d681SAndroid Build Coastguard Worker 403*9880d681SAndroid Build Coastguard Worker let src3_vector = src3{9-6}; 404*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010001, opc{4-3}, src2{4-0} }; 405*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src3_vector{3}, src1{1-0}, src3_vector{2-0}, opc{2-0}, src4{4-0} }; 406*9880d681SAndroid Build Coastguard Worker} 407*9880d681SAndroid Build Coastguard Worker 408*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32_b_pred_ai_128B<bits<5> opc> : OpcodeHexagon { 409*9880d681SAndroid Build Coastguard Worker bits<2> src1; 410*9880d681SAndroid Build Coastguard Worker bits<5> src2; 411*9880d681SAndroid Build Coastguard Worker bits<11> src3; 412*9880d681SAndroid Build Coastguard Worker bits<4> src3_vector; 413*9880d681SAndroid Build Coastguard Worker bits<5> src4; 414*9880d681SAndroid Build Coastguard Worker 415*9880d681SAndroid Build Coastguard Worker let src3_vector = src3{10-7}; 416*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010001, opc{4-3}, src2{4-0} }; 417*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src3_vector{3}, src1{1-0}, src3_vector{2-0}, opc{2-0}, src4{4-0} }; 418*9880d681SAndroid Build Coastguard Worker} 419*9880d681SAndroid Build Coastguard Worker 420*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_qpred_ai_enc : Enc_COPROC_VMEM_vS32_b_pred_ai<0b00000>; 421*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nqpred_ai_enc : Enc_COPROC_VMEM_vS32_b_pred_ai<0b00001>; 422*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_pred_ai_enc : Enc_COPROC_VMEM_vS32_b_pred_ai<0b01000>; 423*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_npred_ai_enc : Enc_COPROC_VMEM_vS32_b_pred_ai<0b01001>; 424*9880d681SAndroid Build Coastguard Workerclass V6_vS32Ub_pred_ai_enc : Enc_COPROC_VMEM_vS32_b_pred_ai<0b01110>; 425*9880d681SAndroid Build Coastguard Workerclass V6_vS32Ub_npred_ai_enc : Enc_COPROC_VMEM_vS32_b_pred_ai<0b01111>; 426*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_qpred_ai_enc : Enc_COPROC_VMEM_vS32_b_pred_ai<0b10000>; 427*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_nqpred_ai_enc : Enc_COPROC_VMEM_vS32_b_pred_ai<0b10001>; 428*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_pred_ai_enc : Enc_COPROC_VMEM_vS32_b_pred_ai<0b11000>; 429*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_npred_ai_enc : Enc_COPROC_VMEM_vS32_b_pred_ai<0b11001>; 430*9880d681SAndroid Build Coastguard Worker 431*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_qpred_ai_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_ai_128B<0b00000>; 432*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nqpred_ai_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_ai_128B<0b00001>; 433*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_pred_ai_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_ai_128B<0b01000>; 434*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_npred_ai_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_ai_128B<0b01001>; 435*9880d681SAndroid Build Coastguard Workerclass V6_vS32Ub_pred_ai_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_ai_128B<0b01110>; 436*9880d681SAndroid Build Coastguard Workerclass V6_vS32Ub_npred_ai_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_ai_128B<0b01111>; 437*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_qpred_ai_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_ai_128B<0b10000>; 438*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_nqpred_ai_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_ai_128B<0b10001>; 439*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_pred_ai_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_ai_128B<0b11000>; 440*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_npred_ai_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_ai_128B<0b11001>; 441*9880d681SAndroid Build Coastguard Worker 442*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32b_n_ew_pred_ai<bits<4> opc> : OpcodeHexagon { 443*9880d681SAndroid Build Coastguard Worker bits<2> src1; 444*9880d681SAndroid Build Coastguard Worker bits<5> src2; 445*9880d681SAndroid Build Coastguard Worker bits<10> src3; 446*9880d681SAndroid Build Coastguard Worker bits<4> src3_vector; 447*9880d681SAndroid Build Coastguard Worker bits<3> src4; 448*9880d681SAndroid Build Coastguard Worker 449*9880d681SAndroid Build Coastguard Worker let src3_vector = src3{9-6}; 450*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010001, opc{3}, 1, src2{4-0} }; 451*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src3_vector{3}, src1{1-0}, src3_vector{2-0}, 0b01, opc{2-0}, src4{2-0} }; 452*9880d681SAndroid Build Coastguard Worker} 453*9880d681SAndroid Build Coastguard Worker 454*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_new_pred_ai_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_ai<0b0000>; 455*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_new_npred_ai_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_ai<0b0101>; 456*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_new_pred_ai_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_ai<0b1010>; 457*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_new_npred_ai_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_ai<0b1111>; 458*9880d681SAndroid Build Coastguard Worker 459*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32b_n_ew_pred_ai_128B<bits<4> opc> : OpcodeHexagon { 460*9880d681SAndroid Build Coastguard Worker bits<2> src1; 461*9880d681SAndroid Build Coastguard Worker bits<5> src2; 462*9880d681SAndroid Build Coastguard Worker bits<11> src3; 463*9880d681SAndroid Build Coastguard Worker bits<4> src3_vector; 464*9880d681SAndroid Build Coastguard Worker bits<3> src4; 465*9880d681SAndroid Build Coastguard Worker 466*9880d681SAndroid Build Coastguard Worker let src3_vector = src3{10-7}; 467*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010001, opc{3}, 1, src2{4-0} }; 468*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src3_vector{3}, src1{1-0}, src3_vector{2-0}, 0b01, opc{2-0}, src4{2-0} }; 469*9880d681SAndroid Build Coastguard Worker} 470*9880d681SAndroid Build Coastguard Worker 471*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_new_pred_ai_128B_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_ai_128B<0b0000>; 472*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_new_npred_ai_128B_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_ai_128B<0b0101>; 473*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_new_pred_ai_128B_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_ai_128B<0b1010>; 474*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_new_npred_ai_128B_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_ai_128B<0b1111>; 475*9880d681SAndroid Build Coastguard Worker 476*9880d681SAndroid Build Coastguard Worker// TODO: Change script to generate dst, src1, src2 instead of 477*9880d681SAndroid Build Coastguard Worker// dst, dst2, src1. 478*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vL32_b_pi<bits<4> opc> : OpcodeHexagon { 479*9880d681SAndroid Build Coastguard Worker bits<5> dst; 480*9880d681SAndroid Build Coastguard Worker bits<5> src1; 481*9880d681SAndroid Build Coastguard Worker bits<9> src2; 482*9880d681SAndroid Build Coastguard Worker bits<3> src2_vector; 483*9880d681SAndroid Build Coastguard Worker 484*9880d681SAndroid Build Coastguard Worker let src2_vector = src2{8-6}; 485*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010010, opc{3}, 0, src1{4-0} }; 486*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0b000, src2_vector{2-0}, opc{2-0}, dst{4-0} }; 487*9880d681SAndroid Build Coastguard Worker} 488*9880d681SAndroid Build Coastguard Worker 489*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_pi_enc : Enc_COPROC_VMEM_vL32_b_pi<0b0000>; 490*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_cur_pi_enc : Enc_COPROC_VMEM_vL32_b_pi<0b0001>; 491*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_tmp_pi_enc : Enc_COPROC_VMEM_vL32_b_pi<0b0010>; 492*9880d681SAndroid Build Coastguard Workerclass V6_vL32Ub_pi_enc : Enc_COPROC_VMEM_vL32_b_pi<0b0111>; 493*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_nt_pi_enc : Enc_COPROC_VMEM_vL32_b_pi<0b1000>; 494*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_nt_cur_pi_enc : Enc_COPROC_VMEM_vL32_b_pi<0b1001>; 495*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_nt_tmp_pi_enc : Enc_COPROC_VMEM_vL32_b_pi<0b1010>; 496*9880d681SAndroid Build Coastguard Worker 497*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vL32_b_pi_128B<bits<4> opc> : OpcodeHexagon { 498*9880d681SAndroid Build Coastguard Worker bits<5> dst; 499*9880d681SAndroid Build Coastguard Worker bits<5> src1; 500*9880d681SAndroid Build Coastguard Worker bits<10> src2; 501*9880d681SAndroid Build Coastguard Worker bits<3> src2_vector; 502*9880d681SAndroid Build Coastguard Worker 503*9880d681SAndroid Build Coastguard Worker let src2_vector = src2{9-7}; 504*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010010, opc{3}, 0, src1{4-0} }; 505*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0b000, src2_vector{2-0}, opc{2-0}, dst{4-0} }; 506*9880d681SAndroid Build Coastguard Worker} 507*9880d681SAndroid Build Coastguard Worker 508*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_pi_128B_enc : Enc_COPROC_VMEM_vL32_b_pi_128B<0b0000>; 509*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_cur_pi_128B_enc : Enc_COPROC_VMEM_vL32_b_pi_128B<0b0001>; 510*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_tmp_pi_128B_enc : Enc_COPROC_VMEM_vL32_b_pi_128B<0b0010>; 511*9880d681SAndroid Build Coastguard Workerclass V6_vL32Ub_pi_128B_enc : Enc_COPROC_VMEM_vL32_b_pi_128B<0b0111>; 512*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_nt_pi_128B_enc : Enc_COPROC_VMEM_vL32_b_pi_128B<0b1000>; 513*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_nt_cur_pi_128B_enc : Enc_COPROC_VMEM_vL32_b_pi_128B<0b1001>; 514*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_nt_tmp_pi_128B_enc : Enc_COPROC_VMEM_vL32_b_pi_128B<0b1010>; 515*9880d681SAndroid Build Coastguard Worker 516*9880d681SAndroid Build Coastguard Worker 517*9880d681SAndroid Build Coastguard Worker// TODO: Change script to generate src1, src2 and src3 instead of 518*9880d681SAndroid Build Coastguard Worker// dst, src1, src2. 519*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32_b_pi<bits<4> opc> : OpcodeHexagon { 520*9880d681SAndroid Build Coastguard Worker bits<5> src1; 521*9880d681SAndroid Build Coastguard Worker bits<9> src2; 522*9880d681SAndroid Build Coastguard Worker bits<3> src2_vector; 523*9880d681SAndroid Build Coastguard Worker bits<5> src3; 524*9880d681SAndroid Build Coastguard Worker 525*9880d681SAndroid Build Coastguard Worker let src2_vector = src2{8-6}; 526*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010010, opc{3}, 1, src1{4-0} }; 527*9880d681SAndroid Build Coastguard Worker let Inst{10-0} = {src2_vector{2-0}, opc{2-0}, src3{4-0} }; 528*9880d681SAndroid Build Coastguard Worker} 529*9880d681SAndroid Build Coastguard Worker 530*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_pi_enc : Enc_COPROC_VMEM_vS32_b_pi<0b0000>; 531*9880d681SAndroid Build Coastguard Workerclass V6_vS32Ub_pi_enc : Enc_COPROC_VMEM_vS32_b_pi<0b0111>; 532*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_pi_enc : Enc_COPROC_VMEM_vS32_b_pi<0b1000>; 533*9880d681SAndroid Build Coastguard Worker 534*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32_b_pi_128B<bits<4> opc> : OpcodeHexagon { 535*9880d681SAndroid Build Coastguard Worker bits<5> src1; 536*9880d681SAndroid Build Coastguard Worker bits<10> src2; 537*9880d681SAndroid Build Coastguard Worker bits<3> src2_vector; 538*9880d681SAndroid Build Coastguard Worker bits<5> src3; 539*9880d681SAndroid Build Coastguard Worker 540*9880d681SAndroid Build Coastguard Worker let src2_vector = src2{9-7}; 541*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010010, opc{3}, 1, src1{4-0} }; 542*9880d681SAndroid Build Coastguard Worker let Inst{10-0} = {src2_vector{2-0}, opc{2-0}, src3{4-0} }; 543*9880d681SAndroid Build Coastguard Worker} 544*9880d681SAndroid Build Coastguard Worker 545*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_pi_128B_enc : Enc_COPROC_VMEM_vS32_b_pi_128B<0b0000>; 546*9880d681SAndroid Build Coastguard Workerclass V6_vS32Ub_pi_128B_enc : Enc_COPROC_VMEM_vS32_b_pi_128B<0b0111>; 547*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_pi_128B_enc : Enc_COPROC_VMEM_vS32_b_pi_128B<0b1000>; 548*9880d681SAndroid Build Coastguard Worker 549*9880d681SAndroid Build Coastguard Worker// TODO: Change script to generate src1, src2 and src3 instead of 550*9880d681SAndroid Build Coastguard Worker// dst, src1, src2. 551*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32b_n_ew_pi<bits<1> opc> : OpcodeHexagon { 552*9880d681SAndroid Build Coastguard Worker bits<5> src1; 553*9880d681SAndroid Build Coastguard Worker bits<9> src2; 554*9880d681SAndroid Build Coastguard Worker bits<3> src2_vector; 555*9880d681SAndroid Build Coastguard Worker bits<3> src3; 556*9880d681SAndroid Build Coastguard Worker 557*9880d681SAndroid Build Coastguard Worker let src2_vector = src2{8-6}; 558*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010010, opc{0}, 1, src1{4-0} }; 559*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0b000, src2_vector{2-0}, 0b00100, src3{2-0} }; 560*9880d681SAndroid Build Coastguard Worker} 561*9880d681SAndroid Build Coastguard Worker 562*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_new_pi_enc : Enc_COPROC_VMEM_vS32b_n_ew_pi<0>; 563*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_new_pi_enc : Enc_COPROC_VMEM_vS32b_n_ew_pi<1>; 564*9880d681SAndroid Build Coastguard Worker 565*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32b_n_ew_pi_128B<bits<1> opc> : OpcodeHexagon { 566*9880d681SAndroid Build Coastguard Worker bits<5> src1; 567*9880d681SAndroid Build Coastguard Worker bits<10> src2; 568*9880d681SAndroid Build Coastguard Worker bits<3> src2_vector; 569*9880d681SAndroid Build Coastguard Worker bits<3> src3; 570*9880d681SAndroid Build Coastguard Worker 571*9880d681SAndroid Build Coastguard Worker let src2_vector = src2{9-7}; 572*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010010, opc{0}, 1, src1{4-0} }; 573*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0b000, src2_vector{2-0}, 0b00100, src3{2-0} }; 574*9880d681SAndroid Build Coastguard Worker} 575*9880d681SAndroid Build Coastguard Worker 576*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_new_pi_128B_enc : Enc_COPROC_VMEM_vS32b_n_ew_pi_128B<0>; 577*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_new_pi_128B_enc : Enc_COPROC_VMEM_vS32b_n_ew_pi_128B<1>; 578*9880d681SAndroid Build Coastguard Worker 579*9880d681SAndroid Build Coastguard Worker// TODO: Change script to generate src1, src2,src3 and src4 instead of 580*9880d681SAndroid Build Coastguard Worker// dst, src1, src2, src3. 581*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32_b_pred_pi<bits<5> opc> : OpcodeHexagon { 582*9880d681SAndroid Build Coastguard Worker bits<2> src1; 583*9880d681SAndroid Build Coastguard Worker bits<5> src2; 584*9880d681SAndroid Build Coastguard Worker bits<9> src3; 585*9880d681SAndroid Build Coastguard Worker bits<3> src3_vector; 586*9880d681SAndroid Build Coastguard Worker bits<5> src4; 587*9880d681SAndroid Build Coastguard Worker 588*9880d681SAndroid Build Coastguard Worker let src3_vector = src3{8-6}; 589*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010011, opc{4-3}, src2{4-0} }; 590*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0, src1{1-0}, src3_vector{2-0}, opc{2-0}, src4{4-0} }; 591*9880d681SAndroid Build Coastguard Worker} 592*9880d681SAndroid Build Coastguard Worker 593*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_qpred_pi_enc : Enc_COPROC_VMEM_vS32_b_pred_pi<0b00000>; 594*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nqpred_pi_enc : Enc_COPROC_VMEM_vS32_b_pred_pi<0b00001>; 595*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_pred_pi_enc : Enc_COPROC_VMEM_vS32_b_pred_pi<0b01000>; 596*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_npred_pi_enc : Enc_COPROC_VMEM_vS32_b_pred_pi<0b01001>; 597*9880d681SAndroid Build Coastguard Workerclass V6_vS32Ub_pred_pi_enc : Enc_COPROC_VMEM_vS32_b_pred_pi<0b01110>; 598*9880d681SAndroid Build Coastguard Workerclass V6_vS32Ub_npred_pi_enc : Enc_COPROC_VMEM_vS32_b_pred_pi<0b01111>; 599*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_qpred_pi_enc : Enc_COPROC_VMEM_vS32_b_pred_pi<0b10000>; 600*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_nqpred_pi_enc : Enc_COPROC_VMEM_vS32_b_pred_pi<0b10001>; 601*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_pred_pi_enc : Enc_COPROC_VMEM_vS32_b_pred_pi<0b11000>; 602*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_npred_pi_enc : Enc_COPROC_VMEM_vS32_b_pred_pi<0b11001>; 603*9880d681SAndroid Build Coastguard Worker 604*9880d681SAndroid Build Coastguard Worker// TODO: Change script to generate src1, src2,src3 and src4 instead of 605*9880d681SAndroid Build Coastguard Worker// dst, src1, src2, src3. 606*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32_b_pred_pi_128B<bits<5> opc> : OpcodeHexagon { 607*9880d681SAndroid Build Coastguard Worker bits<2> src1; 608*9880d681SAndroid Build Coastguard Worker bits<5> src2; 609*9880d681SAndroid Build Coastguard Worker bits<10> src3; 610*9880d681SAndroid Build Coastguard Worker bits<3> src3_vector; 611*9880d681SAndroid Build Coastguard Worker bits<5> src4; 612*9880d681SAndroid Build Coastguard Worker 613*9880d681SAndroid Build Coastguard Worker let src3_vector = src3{9-7}; 614*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010011, opc{4-3}, src2{4-0} }; 615*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0, src1{1-0}, src3_vector{2-0}, opc{2-0}, src4{4-0} }; 616*9880d681SAndroid Build Coastguard Worker} 617*9880d681SAndroid Build Coastguard Worker 618*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_qpred_pi_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_pi_128B<0b00000>; 619*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nqpred_pi_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_pi_128B<0b00001>; 620*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_pred_pi_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_pi_128B<0b01000>; 621*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_npred_pi_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_pi_128B<0b01001>; 622*9880d681SAndroid Build Coastguard Workerclass V6_vS32Ub_pred_pi_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_pi_128B<0b01110>; 623*9880d681SAndroid Build Coastguard Workerclass V6_vS32Ub_npred_pi_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_pi_128B<0b01111>; 624*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_qpred_pi_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_pi_128B<0b10000>; 625*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_nqpred_pi_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_pi_128B<0b10001>; 626*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_pred_pi_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_pi_128B<0b11000>; 627*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_npred_pi_128B_enc : Enc_COPROC_VMEM_vS32_b_pred_pi_128B<0b11001>; 628*9880d681SAndroid Build Coastguard Worker 629*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32b_n_ew_pred_pi<bits<4> opc> : OpcodeHexagon { 630*9880d681SAndroid Build Coastguard Worker bits<2> src1; 631*9880d681SAndroid Build Coastguard Worker bits<5> src2; 632*9880d681SAndroid Build Coastguard Worker bits<9> src3; 633*9880d681SAndroid Build Coastguard Worker bits<3> src3_vector; 634*9880d681SAndroid Build Coastguard Worker bits<3> src4; 635*9880d681SAndroid Build Coastguard Worker 636*9880d681SAndroid Build Coastguard Worker let src3_vector = src3{8-6}; 637*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010011, opc{3}, 1, src2{4-0} }; 638*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0, src1{1-0}, src3_vector{2-0}, 0b01, opc{2-0}, src4{2-0} }; 639*9880d681SAndroid Build Coastguard Worker} 640*9880d681SAndroid Build Coastguard Worker 641*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_new_pred_pi_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_pi<0b0000>; 642*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_new_npred_pi_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_pi<0b0101>; 643*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_new_pred_pi_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_pi<0b1010>; 644*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_new_npred_pi_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_pi<0b1111>; 645*9880d681SAndroid Build Coastguard Worker 646*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32b_n_ew_pred_pi_128B<bits<4> opc> : OpcodeHexagon { 647*9880d681SAndroid Build Coastguard Worker bits<2> src1; 648*9880d681SAndroid Build Coastguard Worker bits<5> src2; 649*9880d681SAndroid Build Coastguard Worker bits<10> src3; 650*9880d681SAndroid Build Coastguard Worker bits<3> src3_vector; 651*9880d681SAndroid Build Coastguard Worker bits<3> src4; 652*9880d681SAndroid Build Coastguard Worker 653*9880d681SAndroid Build Coastguard Worker let src3_vector = src3{9-7}; 654*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010011, opc{3}, 1, src2{4-0} }; 655*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0, src1{1-0}, src3_vector{2-0}, 0b01, opc{2-0}, src4{2-0} }; 656*9880d681SAndroid Build Coastguard Worker} 657*9880d681SAndroid Build Coastguard Worker 658*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_new_pred_pi_128B_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_pi_128B<0b0000>; 659*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_new_npred_pi_128B_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_pi_128B<0b0101>; 660*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_new_pred_pi_128B_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_pi_128B<0b1010>; 661*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_new_npred_pi_128B_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_pi_128B<0b1111>; 662*9880d681SAndroid Build Coastguard Worker 663*9880d681SAndroid Build Coastguard Workerclass Enc_LD_load_m<bits<13> opc> : OpcodeHexagon { 664*9880d681SAndroid Build Coastguard Worker bits<5> dst; 665*9880d681SAndroid Build Coastguard Worker bits<5> src1; 666*9880d681SAndroid Build Coastguard Worker bits<1> src2; 667*9880d681SAndroid Build Coastguard Worker 668*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { opc{12}, 0, opc{11-10}, 1, opc{9-4}, src1{4-0} }; 669*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src2{0}, 0b000, opc{3}, 0, opc{2-0}, dst{4-0} }; 670*9880d681SAndroid Build Coastguard Worker} 671*9880d681SAndroid Build Coastguard Worker 672*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_ppu_enc : Enc_LD_load_m<0b0100110000000>; 673*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_cur_ppu_enc : Enc_LD_load_m<0b0100110000001>; 674*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_tmp_ppu_enc : Enc_LD_load_m<0b0100110000010>; 675*9880d681SAndroid Build Coastguard Workerclass V6_vL32Ub_ppu_enc : Enc_LD_load_m<0b0100110000111>; 676*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_nt_ppu_enc : Enc_LD_load_m<0b0100110100000>; 677*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_nt_cur_ppu_enc : Enc_LD_load_m<0b0100110100001>; 678*9880d681SAndroid Build Coastguard Workerclass V6_vL32b_nt_tmp_ppu_enc : Enc_LD_load_m<0b0100110100010>; 679*9880d681SAndroid Build Coastguard Worker 680*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32_b_ppu<bits<4> opc> : OpcodeHexagon { 681*9880d681SAndroid Build Coastguard Worker bits<5> src1; 682*9880d681SAndroid Build Coastguard Worker bits<1> src2; 683*9880d681SAndroid Build Coastguard Worker bits<5> src3; 684*9880d681SAndroid Build Coastguard Worker 685*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010110, opc{3}, 1, src1{4-0} }; 686*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src2{0}, 0b00000, opc{2-0}, src3{4-0} }; 687*9880d681SAndroid Build Coastguard Worker} 688*9880d681SAndroid Build Coastguard Worker 689*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_ppu_enc : Enc_COPROC_VMEM_vS32_b_ppu<0b0000>; 690*9880d681SAndroid Build Coastguard Workerclass V6_vS32Ub_ppu_enc : Enc_COPROC_VMEM_vS32_b_ppu<0b0111>; 691*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_ppu_enc : Enc_COPROC_VMEM_vS32_b_ppu<0b1000>; 692*9880d681SAndroid Build Coastguard Worker 693*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32b_new_ppu<bits<1> opc> : OpcodeHexagon { 694*9880d681SAndroid Build Coastguard Worker bits<5> src1; 695*9880d681SAndroid Build Coastguard Worker bits<1> src2; 696*9880d681SAndroid Build Coastguard Worker bits<3> src3; 697*9880d681SAndroid Build Coastguard Worker 698*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010110, opc{0}, 1, src1{4-0} }; 699*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src2{0}, 0b0000000100, src3{2-0} }; 700*9880d681SAndroid Build Coastguard Worker} 701*9880d681SAndroid Build Coastguard Worker 702*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_new_ppu_enc : Enc_COPROC_VMEM_vS32b_new_ppu<0>; 703*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_new_ppu_enc : Enc_COPROC_VMEM_vS32b_new_ppu<1>; 704*9880d681SAndroid Build Coastguard Worker 705*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32_b_pred_ppu<bits<5> opc> : OpcodeHexagon { 706*9880d681SAndroid Build Coastguard Worker bits<2> src1; 707*9880d681SAndroid Build Coastguard Worker bits<5> src2; 708*9880d681SAndroid Build Coastguard Worker bits<1> src3; 709*9880d681SAndroid Build Coastguard Worker bits<5> src4; 710*9880d681SAndroid Build Coastguard Worker 711*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010111, opc{4-3}, src2{4-0} }; 712*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src3{0}, src1{1-0}, 0b000, opc{2-0}, src4{4-0} }; 713*9880d681SAndroid Build Coastguard Worker} 714*9880d681SAndroid Build Coastguard Worker 715*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_qpred_ppu_enc : Enc_COPROC_VMEM_vS32_b_pred_ppu<0b00000>; 716*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nqpred_ppu_enc : Enc_COPROC_VMEM_vS32_b_pred_ppu<0b00001>; 717*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_pred_ppu_enc : Enc_COPROC_VMEM_vS32_b_pred_ppu<0b01000>; 718*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_npred_ppu_enc : Enc_COPROC_VMEM_vS32_b_pred_ppu<0b01001>; 719*9880d681SAndroid Build Coastguard Workerclass V6_vS32Ub_pred_ppu_enc : Enc_COPROC_VMEM_vS32_b_pred_ppu<0b01110>; 720*9880d681SAndroid Build Coastguard Workerclass V6_vS32Ub_npred_ppu_enc : Enc_COPROC_VMEM_vS32_b_pred_ppu<0b01111>; 721*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_qpred_ppu_enc : Enc_COPROC_VMEM_vS32_b_pred_ppu<0b10000>; 722*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_nqpred_ppu_enc : Enc_COPROC_VMEM_vS32_b_pred_ppu<0b10001>; 723*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_pred_ppu_enc : Enc_COPROC_VMEM_vS32_b_pred_ppu<0b11000>; 724*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_npred_ppu_enc : Enc_COPROC_VMEM_vS32_b_pred_ppu<0b11001>; 725*9880d681SAndroid Build Coastguard Worker 726*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VMEM_vS32b_n_ew_pred_ppu<bits<4> opc> : OpcodeHexagon { 727*9880d681SAndroid Build Coastguard Worker bits<2> src1; 728*9880d681SAndroid Build Coastguard Worker bits<5> src2; 729*9880d681SAndroid Build Coastguard Worker bits<1> src3; 730*9880d681SAndroid Build Coastguard Worker bits<3> src4; 731*9880d681SAndroid Build Coastguard Worker 732*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b001010111, opc{3}, 1, src2{4-0} }; 733*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src3{0}, src1{1-0}, 0b00001, opc{2-0}, src4{2-0} }; 734*9880d681SAndroid Build Coastguard Worker} 735*9880d681SAndroid Build Coastguard Worker 736*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_new_pred_ppu_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_ppu<0b0000>; 737*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_new_npred_ppu_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_ppu<0b0101>; 738*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_new_pred_ppu_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_ppu<0b1010>; 739*9880d681SAndroid Build Coastguard Workerclass V6_vS32b_nt_new_npred_ppu_enc : Enc_COPROC_VMEM_vS32b_n_ew_pred_ppu<0b1111>; 740*9880d681SAndroid Build Coastguard Worker 741*9880d681SAndroid Build Coastguard Worker 742*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VX_4op_i<bits<5> opc> : OpcodeHexagon { 743*9880d681SAndroid Build Coastguard Worker bits<5> dst; 744*9880d681SAndroid Build Coastguard Worker bits<5> src1; 745*9880d681SAndroid Build Coastguard Worker bits<5> src2; 746*9880d681SAndroid Build Coastguard Worker bits<1> src3; 747*9880d681SAndroid Build Coastguard Worker 748*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b00011001, opc{4-2}, src2{4-0} }; 749*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { opc{1}, src1{4-0}, 1, opc{0}, src3{0}, dst{4-0} }; 750*9880d681SAndroid Build Coastguard Worker} 751*9880d681SAndroid Build Coastguard Worker 752*9880d681SAndroid Build Coastguard Workerclass V6_vrmpybusi_enc : Enc_COPROC_VX_4op_i<0b01000>; 753*9880d681SAndroid Build Coastguard Workerclass V6_vrsadubi_enc : Enc_COPROC_VX_4op_i<0b01001>; 754*9880d681SAndroid Build Coastguard Workerclass V6_vrmpybusi_acc_enc : Enc_COPROC_VX_4op_i<0b01010>; 755*9880d681SAndroid Build Coastguard Workerclass V6_vrsadubi_acc_enc : Enc_COPROC_VX_4op_i<0b01011>; 756*9880d681SAndroid Build Coastguard Workerclass V6_vrmpyubi_acc_enc : Enc_COPROC_VX_4op_i<0b01111>; 757*9880d681SAndroid Build Coastguard Workerclass V6_vrmpyubi_enc : Enc_COPROC_VX_4op_i<0b10101>; 758*9880d681SAndroid Build Coastguard Worker 759*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VX_vandqrt<bits<5> opc> : OpcodeHexagon { 760*9880d681SAndroid Build Coastguard Worker bits<5> dst; 761*9880d681SAndroid Build Coastguard Worker bits<2> src1; 762*9880d681SAndroid Build Coastguard Worker bits<5> src2; 763*9880d681SAndroid Build Coastguard Worker 764*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b00011001, opc{4-3}, 1, src2{4-0} }; 765*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { opc{2}, 0b000, src1{1-0}, opc{1-0}, 1, dst{4-0} }; 766*9880d681SAndroid Build Coastguard Worker} 767*9880d681SAndroid Build Coastguard Worker 768*9880d681SAndroid Build Coastguard Workerclass V6_vandqrt_acc_enc : Enc_COPROC_VX_vandqrt<0b01101>; 769*9880d681SAndroid Build Coastguard Workerclass V6_vandqrt_enc : Enc_COPROC_VX_vandqrt<0b10010>; 770*9880d681SAndroid Build Coastguard Worker 771*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VX_cards<bits<2> opc> : OpcodeHexagon { 772*9880d681SAndroid Build Coastguard Worker bits<5> src1; 773*9880d681SAndroid Build Coastguard Worker bits<5> src2; 774*9880d681SAndroid Build Coastguard Worker bits<5> src3; 775*9880d681SAndroid Build Coastguard Worker 776*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b00011001111, src3{4-0} }; 777*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 1, src1{4-0}, 0, opc{1-0}, src2{4-0} }; 778*9880d681SAndroid Build Coastguard Worker} 779*9880d681SAndroid Build Coastguard Worker 780*9880d681SAndroid Build Coastguard Workerclass V6_vshuff_enc : Enc_COPROC_VX_cards<0b01>; 781*9880d681SAndroid Build Coastguard Workerclass V6_vdeal_enc : Enc_COPROC_VX_cards<0b10>; 782*9880d681SAndroid Build Coastguard Worker 783*9880d681SAndroid Build Coastguard Worker 784*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VX_v_cmov<bits<1> opc> : OpcodeHexagon { 785*9880d681SAndroid Build Coastguard Worker bits<2> src1; 786*9880d681SAndroid Build Coastguard Worker bits<5> dst; 787*9880d681SAndroid Build Coastguard Worker bits<5> src2; 788*9880d681SAndroid Build Coastguard Worker 789*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b0001101000, opc{0}, 0b00000 }; 790*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0, src2{4-0}, 0, src1{1-0}, dst{4-0} }; 791*9880d681SAndroid Build Coastguard Worker} 792*9880d681SAndroid Build Coastguard Worker 793*9880d681SAndroid Build Coastguard Workerclass V6_vcmov_enc : Enc_COPROC_VX_v_cmov<0>; 794*9880d681SAndroid Build Coastguard Workerclass V6_vncmov_enc : Enc_COPROC_VX_v_cmov<1>; 795*9880d681SAndroid Build Coastguard Worker 796*9880d681SAndroid Build Coastguard Workerclass Enc_X_p3op<bits<8> opc> : OpcodeHexagon { 797*9880d681SAndroid Build Coastguard Worker bits<2> src1; 798*9880d681SAndroid Build Coastguard Worker bits<5> dst; 799*9880d681SAndroid Build Coastguard Worker bits<5> src2; 800*9880d681SAndroid Build Coastguard Worker bits<5> src3; 801*9880d681SAndroid Build Coastguard Worker 802*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { opc{7-5}, 0b1101, opc{4}, 0, opc{3-2}, src3{4-0} }; 803*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { opc{1}, src2{4-0}, opc{0}, src1{1-0}, dst{4-0} }; 804*9880d681SAndroid Build Coastguard Worker} 805*9880d681SAndroid Build Coastguard Worker 806*9880d681SAndroid Build Coastguard Workerclass V6_vnccombine_enc : Enc_X_p3op<0b00001000>; 807*9880d681SAndroid Build Coastguard Workerclass V6_vccombine_enc : Enc_X_p3op<0b00001100>; 808*9880d681SAndroid Build Coastguard Worker 809*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VX_4op_r<bits<4> opc> : OpcodeHexagon { 810*9880d681SAndroid Build Coastguard Worker bits<5> dst; 811*9880d681SAndroid Build Coastguard Worker bits<5> src1; 812*9880d681SAndroid Build Coastguard Worker bits<5> src2; 813*9880d681SAndroid Build Coastguard Worker bits<3> src3; 814*9880d681SAndroid Build Coastguard Worker 815*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b00011011, src2{4-0}, src3{2-0} }; 816*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { opc{3}, src1{4-0}, opc{2-0}, dst{4-0} }; 817*9880d681SAndroid Build Coastguard Worker} 818*9880d681SAndroid Build Coastguard Worker 819*9880d681SAndroid Build Coastguard Workerclass V6_valignb_enc : Enc_COPROC_VX_4op_r<0b0000>; 820*9880d681SAndroid Build Coastguard Workerclass V6_vlalignb_enc : Enc_COPROC_VX_4op_r<0b0001>; 821*9880d681SAndroid Build Coastguard Workerclass V6_vasrwh_enc : Enc_COPROC_VX_4op_r<0b0010>; 822*9880d681SAndroid Build Coastguard Workerclass V6_vasrwhsat_enc : Enc_COPROC_VX_4op_r<0b0011>; 823*9880d681SAndroid Build Coastguard Workerclass V6_vasrwhrndsat_enc : Enc_COPROC_VX_4op_r<0b0100>; 824*9880d681SAndroid Build Coastguard Workerclass V6_vasrwuhsat_enc : Enc_COPROC_VX_4op_r<0b0101>; 825*9880d681SAndroid Build Coastguard Workerclass V6_vasrhubsat_enc : Enc_COPROC_VX_4op_r<0b0110>; 826*9880d681SAndroid Build Coastguard Workerclass V6_vasrhubrndsat_enc : Enc_COPROC_VX_4op_r<0b0111>; 827*9880d681SAndroid Build Coastguard Workerclass V6_vasrhbrndsat_enc : Enc_COPROC_VX_4op_r<0b1000>; 828*9880d681SAndroid Build Coastguard Workerclass V6_vlutvvb_enc : Enc_COPROC_VX_4op_r<0b1001>; 829*9880d681SAndroid Build Coastguard Workerclass V6_vshuffvdd_enc : Enc_COPROC_VX_4op_r<0b1011>; 830*9880d681SAndroid Build Coastguard Workerclass V6_vdealvdd_enc : Enc_COPROC_VX_4op_r<0b1100>; 831*9880d681SAndroid Build Coastguard Workerclass V6_vlutvvb_oracc_enc : Enc_COPROC_VX_4op_r<0b1101>; 832*9880d681SAndroid Build Coastguard Workerclass V6_vlutvwh_enc : Enc_COPROC_VX_4op_r<0b1110>; 833*9880d681SAndroid Build Coastguard Workerclass V6_vlutvwh_oracc_enc : Enc_COPROC_VX_4op_r<0b1111>; 834*9880d681SAndroid Build Coastguard Worker 835*9880d681SAndroid Build Coastguard Workerclass Enc_S_3op_valign_i<bits<9> opc> : OpcodeHexagon { 836*9880d681SAndroid Build Coastguard Worker bits<5> dst; 837*9880d681SAndroid Build Coastguard Worker bits<5> src1; 838*9880d681SAndroid Build Coastguard Worker bits<5> src2; 839*9880d681SAndroid Build Coastguard Worker bits<3> src3; 840*9880d681SAndroid Build Coastguard Worker 841*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { opc{8-7}, 0, opc{6-3}, 0b00, opc{2-1}, src2{4-0} }; 842*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { opc{0}, src1{4-0}, src3{2-0}, dst{4-0} }; 843*9880d681SAndroid Build Coastguard Worker} 844*9880d681SAndroid Build Coastguard Worker 845*9880d681SAndroid Build Coastguard Workerclass V6_vlutb_enc : Enc_S_3op_valign_i<0b001100000>; 846*9880d681SAndroid Build Coastguard Workerclass V6_vlutb_dv_enc : Enc_S_3op_valign_i<0b001100010>; 847*9880d681SAndroid Build Coastguard Workerclass V6_vlutb_acc_enc : Enc_S_3op_valign_i<0b001100100>; 848*9880d681SAndroid Build Coastguard Workerclass V6_vlutb_dv_acc_enc : Enc_S_3op_valign_i<0b001100110>; 849*9880d681SAndroid Build Coastguard Workerclass V6_valignbi_enc : Enc_S_3op_valign_i<0b001111011>; 850*9880d681SAndroid Build Coastguard Workerclass V6_vlalignbi_enc : Enc_S_3op_valign_i<0b001111111>; 851*9880d681SAndroid Build Coastguard Workerclass S2_valignib_enc : Enc_S_3op_valign_i<0b110000000>; 852*9880d681SAndroid Build Coastguard Workerclass S2_addasl_rrri_enc : Enc_S_3op_valign_i<0b110010000>; 853*9880d681SAndroid Build Coastguard Worker 854*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VX_3op_q<bits<3> opc> : OpcodeHexagon { 855*9880d681SAndroid Build Coastguard Worker bits<2> dst; 856*9880d681SAndroid Build Coastguard Worker bits<2> src1; 857*9880d681SAndroid Build Coastguard Worker bits<2> src2; 858*9880d681SAndroid Build Coastguard Worker 859*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b00011110, src2{1-0}, 0b000011 }; 860*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0b0000, src1{1-0}, 0b000, opc{2-0}, dst{1-0} }; 861*9880d681SAndroid Build Coastguard Worker} 862*9880d681SAndroid Build Coastguard Worker 863*9880d681SAndroid Build Coastguard Workerclass V6_pred_and_enc : Enc_COPROC_VX_3op_q<0b000>; 864*9880d681SAndroid Build Coastguard Workerclass V6_pred_or_enc : Enc_COPROC_VX_3op_q<0b001>; 865*9880d681SAndroid Build Coastguard Workerclass V6_pred_xor_enc : Enc_COPROC_VX_3op_q<0b011>; 866*9880d681SAndroid Build Coastguard Workerclass V6_pred_or_n_enc : Enc_COPROC_VX_3op_q<0b100>; 867*9880d681SAndroid Build Coastguard Workerclass V6_pred_and_n_enc : Enc_COPROC_VX_3op_q<0b101>; 868*9880d681SAndroid Build Coastguard Worker 869*9880d681SAndroid Build Coastguard Workerclass V6_pred_not_enc : OpcodeHexagon { 870*9880d681SAndroid Build Coastguard Worker bits<2> dst; 871*9880d681SAndroid Build Coastguard Worker bits<2> src1; 872*9880d681SAndroid Build Coastguard Worker 873*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b0001111000000011 }; 874*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0b0000, src1{1-0}, 0b000010, dst{1-0} }; 875*9880d681SAndroid Build Coastguard Worker} 876*9880d681SAndroid Build Coastguard Worker 877*9880d681SAndroid Build Coastguard Workerclass Enc_COPROC_VX_4op_q<bits<1> opc> : OpcodeHexagon { 878*9880d681SAndroid Build Coastguard Worker bits<5> dst; 879*9880d681SAndroid Build Coastguard Worker bits<2> src1; 880*9880d681SAndroid Build Coastguard Worker bits<5> src2; 881*9880d681SAndroid Build Coastguard Worker bits<5> src3; 882*9880d681SAndroid Build Coastguard Worker 883*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b000111101, opc{0}, 1, src3{4-0} }; 884*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 1, src2{4-0}, 0, src1{1-0}, dst{4-0} }; 885*9880d681SAndroid Build Coastguard Worker} 886*9880d681SAndroid Build Coastguard Worker 887*9880d681SAndroid Build Coastguard Workerclass V6_vswap_enc : Enc_COPROC_VX_4op_q<0>; 888*9880d681SAndroid Build Coastguard Workerclass V6_vmux_enc : Enc_COPROC_VX_4op_q<1>; 889*9880d681SAndroid Build Coastguard Worker 890*9880d681SAndroid Build Coastguard Workerclass Enc_X_2op<bits<16> opc> : OpcodeHexagon { 891*9880d681SAndroid Build Coastguard Worker bits<5> dst; 892*9880d681SAndroid Build Coastguard Worker bits<5> src1; 893*9880d681SAndroid Build Coastguard Worker 894*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { opc{15-5}, src1{4-0} }; 895*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { opc{4-3}, 0b0000, opc{2-0}, dst{4-0} }; 896*9880d681SAndroid Build Coastguard Worker} 897*9880d681SAndroid Build Coastguard Worker 898*9880d681SAndroid Build Coastguard Workerclass V6_lvsplatw_enc : Enc_X_2op<0b0001100110100001>; 899*9880d681SAndroid Build Coastguard Workerclass V6_vinsertwr_enc : Enc_X_2op<0b0001100110110001>; 900*9880d681SAndroid Build Coastguard Workerclass S6_vsplatrbp_enc : Enc_X_2op<0b1000010001000100>; 901*9880d681SAndroid Build Coastguard Worker 902*9880d681SAndroid Build Coastguard Worker 903*9880d681SAndroid Build Coastguard Workerclass Enc_CR_2op_r<bits<12> opc> : OpcodeHexagon { 904*9880d681SAndroid Build Coastguard Worker bits<2> dst; 905*9880d681SAndroid Build Coastguard Worker bits<5> src1; 906*9880d681SAndroid Build Coastguard Worker 907*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { opc{11}, 0, opc{10-7}, 0, opc{6-3}, src1{4-0} }; 908*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { opc{2}, 0b000000, opc{1}, 0b000, opc{0}, dst{1-0} }; 909*9880d681SAndroid Build Coastguard Worker} 910*9880d681SAndroid Build Coastguard Worker 911*9880d681SAndroid Build Coastguard Workerclass V6_pred_scalar2_enc : Enc_CR_2op_r<0b001101101011>; 912*9880d681SAndroid Build Coastguard Workerclass Y5_l2locka_enc : Enc_CR_2op_r<0b110000111100>; 913*9880d681SAndroid Build Coastguard Worker 914*9880d681SAndroid Build Coastguard Workerclass Enc_S_3op_i6<bits<9> opc> : OpcodeHexagon { 915*9880d681SAndroid Build Coastguard Worker bits<5> dst; 916*9880d681SAndroid Build Coastguard Worker bits<5> src1; 917*9880d681SAndroid Build Coastguard Worker bits<6> src2; 918*9880d681SAndroid Build Coastguard Worker 919*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b1000, opc{8-6}, 0, opc{5-3}, src1{4-0} }; 920*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { src2{5-0}, opc{2-0}, dst{4-0} }; 921*9880d681SAndroid Build Coastguard Worker} 922*9880d681SAndroid Build Coastguard Worker 923*9880d681SAndroid Build Coastguard Workerclass S6_rol_i_p_enc : Enc_S_3op_i6<0b000000011>; 924*9880d681SAndroid Build Coastguard Workerclass S6_rol_i_p_nac_enc : Enc_S_3op_i6<0b001000011>; 925*9880d681SAndroid Build Coastguard Workerclass S6_rol_i_p_acc_enc : Enc_S_3op_i6<0b001000111>; 926*9880d681SAndroid Build Coastguard Workerclass S6_rol_i_p_and_enc : Enc_S_3op_i6<0b001010011>; 927*9880d681SAndroid Build Coastguard Workerclass S6_rol_i_p_or_enc : Enc_S_3op_i6<0b001010111>; 928*9880d681SAndroid Build Coastguard Workerclass S6_rol_i_p_xacc_enc : Enc_S_3op_i6<0b001100011>; 929*9880d681SAndroid Build Coastguard Worker 930*9880d681SAndroid Build Coastguard Workerclass Enc_X_3op_r<bits<15> opc> : OpcodeHexagon { 931*9880d681SAndroid Build Coastguard Worker bits<5> dst; 932*9880d681SAndroid Build Coastguard Worker bits<5> src1; 933*9880d681SAndroid Build Coastguard Worker bits<5> src2; 934*9880d681SAndroid Build Coastguard Worker 935*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { opc{14-4}, src1{4-0} }; 936*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { opc{3}, src2{4-0}, opc{2-0}, dst{4-0} }; 937*9880d681SAndroid Build Coastguard Worker} 938*9880d681SAndroid Build Coastguard Worker 939*9880d681SAndroid Build Coastguard Workerclass S6_rol_i_r_enc : Enc_X_3op_r<0b100011000000011>; 940*9880d681SAndroid Build Coastguard Workerclass S6_rol_i_r_nac_enc : Enc_X_3op_r<0b100011100000011>; 941*9880d681SAndroid Build Coastguard Workerclass S6_rol_i_r_acc_enc : Enc_X_3op_r<0b100011100000111>; 942*9880d681SAndroid Build Coastguard Workerclass S6_rol_i_r_and_enc : Enc_X_3op_r<0b100011100100011>; 943*9880d681SAndroid Build Coastguard Workerclass S6_rol_i_r_or_enc : Enc_X_3op_r<0b100011100100111>; 944*9880d681SAndroid Build Coastguard Workerclass S6_rol_i_r_xacc_enc : Enc_X_3op_r<0b100011101000011>; 945*9880d681SAndroid Build Coastguard Workerclass S6_vtrunehb_ppp_enc : Enc_X_3op_r<0b110000011000011>; 946*9880d681SAndroid Build Coastguard Workerclass S6_vtrunohb_ppp_enc : Enc_X_3op_r<0b110000011000101>; 947*9880d681SAndroid Build Coastguard Worker 948*9880d681SAndroid Build Coastguard Workerclass Enc_no_operands<bits<25> opc> : OpcodeHexagon { 949*9880d681SAndroid Build Coastguard Worker 950*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { opc{24-10}, 0 }; 951*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { opc{9-7}, 0b000, opc{6-0}, 0 }; 952*9880d681SAndroid Build Coastguard Worker} 953*9880d681SAndroid Build Coastguard Worker 954*9880d681SAndroid Build Coastguard Workerclass Y5_l2gunlock_enc : Enc_no_operands<0b1010100000100000010000000>; 955*9880d681SAndroid Build Coastguard Workerclass Y5_l2gclean_enc : Enc_no_operands<0b1010100000100000100000000>; 956*9880d681SAndroid Build Coastguard Workerclass Y5_l2gcleaninv_enc : Enc_no_operands<0b1010100000100000110000000>; 957*9880d681SAndroid Build Coastguard Workerclass V6_vhist_enc : Enc_no_operands<0b0001111000000001001000000>; 958*9880d681SAndroid Build Coastguard Worker 959*9880d681SAndroid Build Coastguard Workerclass Enc_J_jumpr<bits<13> opc> : OpcodeHexagon { 960*9880d681SAndroid Build Coastguard Worker bits<5> src1; 961*9880d681SAndroid Build Coastguard Worker 962*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { opc{12-6}, 0, opc{5-3}, src1{4-0} }; 963*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0b00, opc{2}, 0b0000, opc{1-0}, 0b00000 }; 964*9880d681SAndroid Build Coastguard Worker} 965*9880d681SAndroid Build Coastguard Worker 966*9880d681SAndroid Build Coastguard Workerclass Y5_l2unlocka_enc : Enc_J_jumpr<0b1010011011000>; 967*9880d681SAndroid Build Coastguard Workerclass Y2_l2cleaninvidx_enc : Enc_J_jumpr<0b1010100011000>; 968*9880d681SAndroid Build Coastguard Worker 969*9880d681SAndroid Build Coastguard Workerclass Enc_ST_l2gclean_pa<bits<2> opc> : OpcodeHexagon { 970*9880d681SAndroid Build Coastguard Worker bits<5> src1; 971*9880d681SAndroid Build Coastguard Worker 972*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b101001101, opc{1-0}, 0b00000 }; 973*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0, src1{4-0}, 0b00000000 }; 974*9880d681SAndroid Build Coastguard Worker} 975*9880d681SAndroid Build Coastguard Worker 976*9880d681SAndroid Build Coastguard Workerclass Y6_l2gcleanpa_enc : Enc_ST_l2gclean_pa<0b01>; 977*9880d681SAndroid Build Coastguard Workerclass Y6_l2gcleaninvpa_enc : Enc_ST_l2gclean_pa<0b10>; 978*9880d681SAndroid Build Coastguard Worker 979*9880d681SAndroid Build Coastguard Workerclass A5_ACS_enc : OpcodeHexagon { 980*9880d681SAndroid Build Coastguard Worker bits<5> dst1; 981*9880d681SAndroid Build Coastguard Worker bits<2> dst2; 982*9880d681SAndroid Build Coastguard Worker bits<5> src1; 983*9880d681SAndroid Build Coastguard Worker bits<5> src2; 984*9880d681SAndroid Build Coastguard Worker 985*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b11101010101, src1{4-0} }; 986*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0, src2{4-0}, 0, dst2{1-0}, dst1{4-0} }; 987*9880d681SAndroid Build Coastguard Worker} 988*9880d681SAndroid Build Coastguard Worker 989*9880d681SAndroid Build Coastguard Workerclass Enc_X_4op_r<bits<8> opc> : OpcodeHexagon { 990*9880d681SAndroid Build Coastguard Worker bits<5> dst; 991*9880d681SAndroid Build Coastguard Worker bits<5> src1; 992*9880d681SAndroid Build Coastguard Worker bits<5> src2; 993*9880d681SAndroid Build Coastguard Worker bits<2> src3; 994*9880d681SAndroid Build Coastguard Worker 995*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b11, opc{7}, 0, opc{6-5}, 1, opc{4-1}, src1{4-0} }; 996*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0, src2{4-0}, opc{0}, src3{1-0}, dst{4-0} }; 997*9880d681SAndroid Build Coastguard Worker} 998*9880d681SAndroid Build Coastguard Worker 999*9880d681SAndroid Build Coastguard Workerclass S2_vsplicerb_enc : Enc_X_4op_r<0b00001000>; 1000*9880d681SAndroid Build Coastguard Workerclass S2_cabacencbin_enc : Enc_X_4op_r<0b00001010>; 1001*9880d681SAndroid Build Coastguard Workerclass F2_sffma_sc_enc : Enc_X_4op_r<0b11110111>; 1002*9880d681SAndroid Build Coastguard Worker 1003*9880d681SAndroid Build Coastguard Workerclass V6_vhistq_enc : OpcodeHexagon { 1004*9880d681SAndroid Build Coastguard Worker bits<2> src1; 1005*9880d681SAndroid Build Coastguard Worker 1006*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b00011110, src1{1-0}, 0b000010 }; 1007*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0b10000010000000 }; 1008*9880d681SAndroid Build Coastguard Worker} 1009*9880d681SAndroid Build Coastguard Worker 1010*9880d681SAndroid Build Coastguard Worker// TODO: Change script to generate dst1 instead of dst. 1011*9880d681SAndroid Build Coastguard Workerclass A6_vminub_RdP_enc : OpcodeHexagon { 1012*9880d681SAndroid Build Coastguard Worker bits<5> dst1; 1013*9880d681SAndroid Build Coastguard Worker bits<2> dst2; 1014*9880d681SAndroid Build Coastguard Worker bits<5> src1; 1015*9880d681SAndroid Build Coastguard Worker bits<5> src2; 1016*9880d681SAndroid Build Coastguard Worker 1017*9880d681SAndroid Build Coastguard Worker let Inst{31-16} = { 0b11101010111, src2{4-0} }; 1018*9880d681SAndroid Build Coastguard Worker let Inst{13-0} = { 0, src1{4-0}, 0, dst2{1-0}, dst1{4-0} }; 1019*9880d681SAndroid Build Coastguard Worker} 1020