Lines Matching full:vb

973     OpRef concats(OpRef Va, OpRef Vb, ResultStack &Results);
974 OpRef funnels(OpRef Va, OpRef Vb, int Amount, ResultStack &Results);
976 OpRef packs(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results,
978 OpRef packp(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results,
980 OpRef vmuxs(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb,
982 OpRef vmuxp(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb,
986 OpRef shuffs2(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results);
988 OpRef shuffp2(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results);
991 OpRef contracting(ShuffleMask SM, OpRef Va, OpRef Vb, ResultStack &Results);
997 SDValue Va, SDValue Vb, SDNode *N);
1231 OpRef HvxSelector::funnels(OpRef Va, OpRef Vb, int Amount, in funnels() argument
1241 return Vb; in funnels()
1250 std::swap(Va, Vb); in funnels()
1255 Results.push(Hexagon::V6_valignbi, Ty, {Vb, Va, A}); in funnels()
1258 Results.push(Hexagon::V6_vlalignbi, Ty, {Vb, Va, A}); in funnels()
1262 Results.push(Hexagon::V6_valignb, Ty, {Vb, Va, OpRef::res(-1)}); in funnels()
1267 // Va, Vb are single vectors. If SM only uses two vector halves from Va/Vb,
1270 OpRef HvxSelector::packs(ShuffleMask SM, OpRef Va, OpRef Vb, in packs() argument
1274 if (!Va.isValid() || !Vb.isValid()) in packs()
1277 if (Vb.isUndef()) { in packs()
1284 return Vb; in packs()
1289 OpRef Inp[2] = {Va, Vb}; in packs()
1331 // distinct entries!), the segments 1 and 3 of Va/Vb will be packaged into in packs()
1389 // Va = AB, Vb = CD in packs()
1404 auto Vs = (Seg0 == 0 || Seg0 == 1) ? std::make_pair(Vb, Va) // AC or BD in packs()
1405 : std::make_pair(Va, Vb); // CA or DB in packs()
1415 // V = V6_vmux Q, (Va, Vb) or (Vb, Va) in packs()
1418 auto Vs = (Seg0 == 0) ? std::make_pair(Va, Vb) // AD in packs()
1419 : std::make_pair(Vb, Va); // CB in packs()
1432 // Check if the arguments can be packed by valign(Va,Vb) or valign(Vb,Va). in packs()
1439 // valign(Lo=Va,Hi=Vb) won't work. Try swapping Va/Vb. in packs()
1445 std::swap(Va, Vb); in packs()
1454 Va = Vb; in packs()
1455 Vb = OpRef::undef(Ty); in packs()
1458 OpRef RetVal = valign(Va, Vb, ShiftR, Ty, Results); in packs()
1471 // Note: since this is using the original mask, Va and Vb must not have been in packs()
1475 // If elements picked from Va and Vb have all different (source) indexes in packs()
1495 return vmuxs(MuxBytes, Va, Vb, Results); in packs()
1500 // Va, Vb are vector pairs. If SM only uses two single vectors from Va/Vb,
1503 OpRef HvxSelector::packp(ShuffleMask SM, OpRef Va, OpRef Vb, in packp() argument
1518 OpRef Inp[2] = { Va, Vb }; in packp()
1540 OpRef HvxSelector::vmuxs(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb, in vmuxs() argument
1549 Results.push(Hexagon::V6_vmux, ByteTy, {OpRef::res(-1), Vb, Va}); in vmuxs()
1553 OpRef HvxSelector::vmuxp(ArrayRef<uint8_t> Bytes, OpRef Va, OpRef Vb, in vmuxp() argument
1557 OpRef L = vmuxs(Bytes.take_front(S), OpRef::lo(Va), OpRef::lo(Vb), Results); in vmuxp()
1558 OpRef H = vmuxs(Bytes.drop_front(S), OpRef::hi(Va), OpRef::hi(Vb), Results); in vmuxp()
1605 OpRef HvxSelector::shuffs2(ShuffleMask SM, OpRef Va, OpRef Vb, in shuffs2() argument
1611 OpRef C = contracting(SM, Va, Vb, Results); in shuffs2()
1617 OpRef P = packs(SM, Va, Vb, Results, PackedMask); in shuffs2()
1628 OpRef R = shuffs1(ShuffleMask(MaskR), Vb, Results); in shuffs2()
1683 OpRef HvxSelector::shuffp2(ShuffleMask SM, OpRef Va, OpRef Vb, in shuffp2() argument
1691 OpRef P = packp(SM, Va, Vb, Results, PackedMask); in shuffp2()
1699 OpRef R = shuffp1(ShuffleMask(MaskR), Vb, Results); in shuffp2()
1847 MVT ResTy, SDValue Va, SDValue Vb, in scalarizeShuffle() argument
1882 Vec = Vb; in scalarizeShuffle()
2071 OpRef HvxSelector::contracting(ShuffleMask SM, OpRef Va, OpRef Vb, in contracting() argument
2074 if (!Va.isValid() || !Vb.isValid()) in contracting()
2090 OpRef Funnel = funnels(Va, Vb, *Dist, Results); in contracting()
2120 Results.push(Opcodes[i], SingleTy, {Vb, Va}); in contracting()
2136 Results.push(Opcodes[i], SingleTy, {Vb, Va}); in contracting()
2158 Results.push(Hexagon::V6_vdealvdd, PairTy, {Vb, Va, OpRef::res(-1)}); in contracting()
2168 Results.push(Hexagon::V6_vdealb4w, SingleTy, {Vb, Va}); in contracting()
2610 // Vd = vector_shuffle Va, Vb, Mask in selectShuffle()
2642 OpRef Vb = OpRef::undef(ResTy); in selectShuffle() local
2650 Vb = OpRef::res(Results.top()); in selectShuffle()
2653 OpRef Res = !HavePairs ? shuffs2(ShuffleMask(Mask), Va, Vb, Results) in selectShuffle()
2654 : shuffp2(ShuffleMask(Mask), Va, Vb, Results); in selectShuffle()