Lines Matching defs:Builder
142 /// \p Builder
149 Value *convertEVLToMask(IRBuilder<> &Builder, Value *EVLParam,
163 Value *expandPredicationInBinaryOperator(IRBuilder<> &Builder,
167 Value *expandPredicationToIntCall(IRBuilder<> &Builder, VPIntrinsic &PI);
170 Value *expandPredicationToFPCall(IRBuilder<> &Builder, VPIntrinsic &PI,
174 Value *expandPredicationInReduction(IRBuilder<> &Builder,
178 Value *expandPredicationToCastIntrinsic(IRBuilder<> &Builder,
182 Value *expandPredicationInMemoryIntrinsic(IRBuilder<> &Builder,
186 Value *expandPredicationInComparison(IRBuilder<> &Builder,
208 Value *CachingVPExpander::convertEVLToMask(IRBuilder<> &Builder,
214 Type *BoolVecTy = VectorType::get(Builder.getInt1Ty(), ElemCount);
216 Value *ConstZero = Builder.getInt32(0);
217 return Builder.CreateIntrinsic(Intrinsic::get_active_lane_mask,
225 Value *VLSplat = Builder.CreateVectorSplat(NumElems, EVLParam);
226 Value *IdxVec = Builder.CreateStepVector(VectorType::get(LaneTy, ElemCount));
227 return Builder.CreateICmp(CmpInst::ICMP_ULT, IdxVec, VLSplat);
231 CachingVPExpander::expandPredicationInBinaryOperator(IRBuilder<> &Builder,
257 Op1 = Builder.CreateSelect(Mask, Op1, SafeDivisor);
261 Value *NewBinOp = Builder.CreateBinOp(OC, Op0, Op1, VPI.getName());
267 Value *CachingVPExpander::expandPredicationToIntCall(IRBuilder<> &Builder,
276 Value *NewOp = Builder.CreateIntrinsic(FID.value(), {VPI.getType()}, Argument,
283 IRBuilder<> &Builder, VPIntrinsic &VPI, unsigned UnpredicatedIntrinsicID) {
296 Value *NewOp = Builder.CreateIntrinsic(
314 Builder.CreateConstrainedFPCall(Fn, {Op0, Op1, Op2}, VPI.getName());
316 NewOp = Builder.CreateCall(Fn, {Op0, Op1, Op2}, VPI.getName());
335 CachingVPExpander::expandPredicationInReduction(IRBuilder<> &Builder,
346 auto *NeutralVector = Builder.CreateVectorSplat(
348 RedOp = Builder.CreateSelect(Mask, RedOp, NeutralVector);
365 Reduction = Builder.CreateUnaryIntrinsic(RedID, RedOp);
367 Builder.CreateBinOp((Instruction::BinaryOps)Opc, Reduction, Start);
380 Reduction = Builder.CreateUnaryIntrinsic(RedID, RedOp);
382 Reduction = Builder.CreateBinaryIntrinsic(ScalarID, Reduction, Start);
386 Reduction = Builder.CreateFAddReduce(Start, RedOp);
389 Reduction = Builder.CreateFMulReduce(Start, RedOp);
397 Value *CachingVPExpander::expandPredicationToCastIntrinsic(IRBuilder<> &Builder,
403 Builder.CreateCast(Instruction::CastOps(CastOpcode), VPI.getOperand(0),
411 CachingVPExpander::expandPredicationInMemoryIntrinsic(IRBuilder<> &Builder,
431 Builder.CreateStore(DataParam, PtrParam, /*IsVolatile*/ false);
436 NewMemoryInst = Builder.CreateMaskedStore(
443 Builder.CreateLoad(VPI.getType(), PtrParam, /*IsVolatile*/ false);
448 NewMemoryInst = Builder.CreateMaskedLoad(
455 NewMemoryInst = Builder.CreateMaskedScatter(
462 NewMemoryInst = Builder.CreateMaskedGather(
475 Value *CachingVPExpander::expandPredicationInComparison(IRBuilder<> &Builder,
487 auto *NewCmp = Builder.CreateCmp(Pred, Op0, Op1);
508 IRBuilder<> Builder(VPI.getParent(), VPI.getIterator());
509 Value *FactorConst = Builder.getInt32(StaticElemCount.getKnownMinValue());
510 Value *VScale = Builder.CreateIntrinsic(Intrinsic::vscale, Int32Ty, {},
512 MaxEVL = Builder.CreateMul(VScale, FactorConst, "scalable_size",
524 IRBuilder<> Builder(&VPI);
541 Value *VLMask = convertEVLToMask(Builder, OldEVLParam, ElemCount);
542 Value *NewMaskParam = Builder.CreateAnd(VLMask, OldMaskParam);
557 IRBuilder<> Builder(&VPI);
563 return expandPredicationInBinaryOperator(Builder, VPI);
566 return expandPredicationInReduction(Builder, *VPRI);
569 return expandPredicationInComparison(Builder, *VPCmp);
572 return expandPredicationToCastIntrinsic(Builder, VPI);
579 Value *NewNegOp = Builder.CreateFNeg(VPI.getOperand(0), VPI.getName());
599 return expandPredicationToIntCall(Builder, VPI);
608 return expandPredicationToFPCall(Builder, VPI,
614 return expandPredicationInMemoryIntrinsic(Builder, VPI);
618 if (Value *Call = expandPredicationToFPCall(Builder, VPI, *CID))