Lines Matching defs:Split
571 VectorSplit Split;
572 Split.VecTy = dyn_cast<FixedVectorType>(Ty);
573 if (!Split.VecTy)
576 unsigned NumElems = Split.VecTy->getNumElements();
577 Type *ElemTy = Split.VecTy->getElementType();
581 Split.NumPacked = 1;
582 Split.NumFragments = NumElems;
583 Split.SplitTy = ElemTy;
585 Split.NumPacked = ScalarizeMinBits / ElemTy->getScalarSizeInBits();
586 if (Split.NumPacked >= NumElems)
589 Split.NumFragments = divideCeil(NumElems, Split.NumPacked);
590 Split.SplitTy = FixedVectorType::get(ElemTy, Split.NumPacked);
592 unsigned RemainderElems = NumElems % Split.NumPacked;
594 Split.RemainderTy = FixedVectorType::get(ElemTy, RemainderElems);
596 Split.RemainderTy = ElemTy;
599 return Split;
623 // Scalarize one-operand instruction I, using Split(Builder, X, Name)
626 bool ScalarizerVisitor::splitUnary(Instruction &I, const Splitter &Split) {
646 Res[Frag] = Split(Builder, Op[Frag], I.getName() + ".i" + Twine(Frag));
651 // Scalarize two-operand instruction I, using Split(Builder, X, Y, Name)
654 bool ScalarizerVisitor::splitBinary(Instruction &I, const Splitter &Split) {
678 Res[Frag] = Split(Builder, Op0, Op1, I.getName() + ".i" + Twine(Frag));