Lines Matching refs:Vt
1205 SDValue Vt = Op.getOperand(1);
1209 // For i8 vectors Vs = (a0, a1, ...), Vt = (b0, b1, ...),
1210 // V6_vmpybv Vs, Vt produces a pair of i16 vectors Hi:Lo,
1215 SDValue M = getInstr(MpyOpc, dl, ExtTy, {Vs, Vt}, DAG);
1230 return getInstr(Hexagon::V6_vmpyih, dl, ResTy, {Vs, Vt}, DAG);
1233 // T0 = V6_vmpyiowh Vs, Vt
1235 // T2 = V6_vmpyiewuh_acc T1, Vs, Vt
1237 SDValue T0 = getInstr(Hexagon::V6_vmpyiowh, dl, ResTy, {Vs, Vt}, DAG);
1240 {T1, Vs, Vt}, DAG);
1259 SDValue Vt = Op.getOperand(1);
1263 // For i8 vectors Vs = (a0, a1, ...), Vt = (b0, b1, ...),
1264 // V6_vmpybv Vs, Vt produces a pair of i16 vectors Hi:Lo,
1273 SDValue M = getInstr(MpyOpc, dl, ExtTy, {Vs, Vt}, DAG);
1289 // mulhs(Vs,Vt) =
1290 // = [(Hi(Vs)*2^16 + Lo(Vs)) *s (Hi(Vt)*2^16 + Lo(Vt))] >> 32
1291 // = [Hi(Vs)*2^16 *s Hi(Vt)*2^16 + Hi(Vs) *su Lo(Vt)*2^16
1292 // + Lo(Vs) *us (Hi(Vt)*2^16 + Lo(Vt))] >> 32
1293 // = [Hi(Vs) *s Hi(Vt)*2^32 + Hi(Vs) *su Lo(Vt)*2^16
1294 // + Lo(Vs) *us Vt] >> 32
1295 // The low half of Lo(Vs)*Lo(Vt) will be discarded (it's not added to
1298 // = [Hi(Vs) *s Hi(Vt)*2^16 + Hi(Vs)*su Lo(Vt) + Lo(Vs)*Vt >> 16] >> 16
1299 // = [Hi(Vs) *s Hi(Vt)*2^16 + Hi(Vs)*su Lo(Vt) + V6_vmpyewuh(Vs,Vt)] >> 16
1301 // = [Vs'*s Hi(Vt)*2^16 + Vs' *su Lo(Vt) + V6_vmpyewuh(Vt,Vs)] >> 16
1302 // = Vs'*s Hi(Vt) + (V6_vmpyiewuh(Vs',Vt) + V6_vmpyewuh(Vt,Vs)) >> 16
1303 SDValue T0 = getInstr(Hexagon::V6_vmpyewuh, dl, ResTy, {Vt, Vs}, DAG);
1307 {T0, S0, Vt}, DAG);
1310 // Get Vs'*Hi(Vt):
1311 SDValue T2 = getInstr(Hexagon::V6_vmpyiowh, dl, ResTy, {S0, Vt}, DAG);
1330 // LoVec = Vs.uh[2i] * Vt.uh[2i],
1331 // HiVec = Vs.uh[2i+1] * Vt.uh[2i+1]
1332 SDValue T0 = getInstr(Hexagon::V6_vmpyuhv, dl, PairTy, {Vs, Vt}, DAG);
1337 // Swap low and high halves in Vt, and do the halfword multiplication
1338 // to get products Vs.uh[2i] * Vt.uh[2i+1] and Vs.uh[2i+1] * Vt.uh[2i].
1339 SDValue D0 = getInstr(Hexagon::V6_vdelta, dl, ResTy, {Vt, P}, DAG);
1341 // T2 has mixed products of halfwords: Lo(Vt)*Hi(Vs) and Hi(Vt)*Lo(Vs).