Lines Matching full:builder

67   llvm::CallInst *CI = CGF.Builder.CreateCall(IA, {Addr});  in emitPPCLoadReserveIntrinsic()
80 // return Builder.CreateFDiv(EmitScalarExpr(E->getArg(0)), in EmitPPCBuiltinExpr()
85 // return Builder.CreateFDiv(Op0, Op1, "swdiv") in EmitPPCBuiltinExpr()
111 FieldValue = Builder.CreateInBoundsGEP(STy, SysConf, Idxs); in EmitPPCBuiltinExpr()
112 FieldValue = Builder.CreateAlignedLoad(Int32Ty, FieldValue, in EmitPPCBuiltinExpr()
121 Builder.CreateCall(Func, {ConstantInt::get(Int32Ty, FieldIdx)}); in EmitPPCBuiltinExpr()
127 FieldValue = Builder.CreateAnd(FieldValue, Mask); in EmitPPCBuiltinExpr()
135 return Builder.CreateICmp( in EmitPPCBuiltinExpr()
177 Value *TheCall = Builder.CreateCall(F, {Op0}, "cpu_is"); in EmitPPCBuiltinExpr()
178 return Builder.CreateICmpEQ(TheCall, in EmitPPCBuiltinExpr()
210 return Builder.getFalse(); in EmitPPCBuiltinExpr()
213 Value *TheCall = Builder.CreateCall(F, {Op0}, "cpu_supports"); in EmitPPCBuiltinExpr()
215 Builder.CreateAnd(TheCall, llvm::ConstantInt::get(Int32Ty, BitMask)); in EmitPPCBuiltinExpr()
216 return Builder.CreateICmpNE(Mask, llvm::Constant::getNullValue(Int32Ty)); in EmitPPCBuiltinExpr()
225 return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::readcyclecounter)); in EmitPPCBuiltinExpr()
247 Ops[0] = Builder.CreateGEP(Int8Ty, Ops[1], Ops[0]); in EmitPPCBuiltinExpr()
294 return Builder.CreateCall(F, Ops, ""); in EmitPPCBuiltinExpr()
316 Ops[1] = Builder.CreateGEP(Int8Ty, Ops[2], Ops[1]); in EmitPPCBuiltinExpr()
357 return Builder.CreateCall(F, Ops, ""); in EmitPPCBuiltinExpr()
372 Builder.CreateLoad(Address(Op0, ResTy, CharUnits::fromQuantity(1))); in EmitPPCBuiltinExpr()
380 return Builder.CreateShuffleVector(LD, LD, RevMask); in EmitPPCBuiltinExpr()
387 Value *HiMem = Builder.CreateGEP( in EmitPPCBuiltinExpr()
389 Value *LoLd = Builder.CreateCall(Lvx, Op0, "ld.lo"); in EmitPPCBuiltinExpr()
390 Value *HiLd = Builder.CreateCall(Lvx, HiMem, "ld.hi"); in EmitPPCBuiltinExpr()
391 Value *Mask1 = Builder.CreateCall(Lvs, Op0, "mask1"); in EmitPPCBuiltinExpr()
395 Value *AllElts = Builder.CreateCall(Vperm, {Op0, Op1, Mask1}, "shuffle1"); in EmitPPCBuiltinExpr()
405 return Builder.CreateShuffleVector(Builder.CreateBitCast(AllElts, ResTy), in EmitPPCBuiltinExpr()
410 Consts.push_back(Builder.getInt8(NumBytes + Idx)); in EmitPPCBuiltinExpr()
412 return Builder.CreateBitCast( in EmitPPCBuiltinExpr()
413 Builder.CreateCall(Vperm, {Zero, AllElts, Mask2}, "shuffle2"), ResTy); in EmitPPCBuiltinExpr()
430 StVec = Builder.CreateShuffleVector(Op2, Op2, RevMask); in EmitPPCBuiltinExpr()
432 return Builder.CreateStore( in EmitPPCBuiltinExpr()
457 Value *Vec = Builder.CreateBitCast( in EmitPPCBuiltinExpr()
460 Builder.CreateGEP(Int8Ty, Op0, ConstantInt::get(Int64Ty, Offset)); in EmitPPCBuiltinExpr()
461 Value *Elt = Builder.CreateExtractElement(Vec, EltNo); in EmitPPCBuiltinExpr()
464 Elt = Builder.CreateCall(F, Elt); in EmitPPCBuiltinExpr()
466 return Builder.CreateStore( in EmitPPCBuiltinExpr()
501 if (Builder.getIsFPConstrained()) { in EmitPPCBuiltinExpr()
504 return Builder.CreateConstrainedFPCall(F, X); in EmitPPCBuiltinExpr()
507 return Builder.CreateCall(F, X); in EmitPPCBuiltinExpr()
517 Value *Undef = ConstantInt::get(Builder.getInt1Ty(), false); in EmitPPCBuiltinExpr()
519 return Builder.CreateCall(F, {X, Undef}); in EmitPPCBuiltinExpr()
527 Value *Undef = ConstantInt::get(Builder.getInt1Ty(), false); in EmitPPCBuiltinExpr()
529 return Builder.CreateCall(F, {X, Undef}); in EmitPPCBuiltinExpr()
585 ? Builder.CreateBitCast(Op0, llvm::FixedVectorType::get(Int32Ty, 4)) in EmitPPCBuiltinExpr()
586 : Builder.CreateBitCast(Op0, in EmitPPCBuiltinExpr()
588 return Builder.CreateBitCast( in EmitPPCBuiltinExpr()
589 Builder.CreateCall(CGM.getIntrinsic(ID), {Op0, Op1, Op2}), ResultType); in EmitPPCBuiltinExpr()
596 Op0 = Builder.CreateBitCast(Op0, llvm::FixedVectorType::get(Int128Ty, 1)); in EmitPPCBuiltinExpr()
597 Op1 = Builder.CreateBitCast(Op1, llvm::FixedVectorType::get(Int128Ty, 1)); in EmitPPCBuiltinExpr()
599 return Builder.CreateAdd(Op0, Op1, "vadduqm"); in EmitPPCBuiltinExpr()
601 return Builder.CreateSub(Op0, Op1, "vsubuqm"); in EmitPPCBuiltinExpr()
610 Ops.push_back(Builder.CreateBitCast(Op0, V1I128Ty)); in EmitPPCBuiltinExpr()
611 Ops.push_back(Builder.CreateBitCast(Op1, V1I128Ty)); in EmitPPCBuiltinExpr()
615 return Builder.CreateCall(CGM.getIntrinsic(ID), Ops, ""); in EmitPPCBuiltinExpr()
627 Ops.push_back(Builder.CreateBitCast(Op0, V1I128Ty)); in EmitPPCBuiltinExpr()
628 Ops.push_back(Builder.CreateBitCast(Op1, V1I128Ty)); in EmitPPCBuiltinExpr()
629 Ops.push_back(Builder.CreateBitCast(Op2, V1I128Ty)); in EmitPPCBuiltinExpr()
646 return Builder.CreateCall(CGM.getIntrinsic(ID), Ops, ""); in EmitPPCBuiltinExpr()
659 Op2 = Builder.CreateZExt(Op2, Int64Ty); in EmitPPCBuiltinExpr()
660 Value *Shift = Builder.CreateCall(F, {Op0, Op0, Op2}); in EmitPPCBuiltinExpr()
661 return Builder.CreateOr(Builder.CreateAnd(Shift, Op3), in EmitPPCBuiltinExpr()
662 Builder.CreateAnd(Op1, Builder.CreateNot(Op3))); in EmitPPCBuiltinExpr()
664 return Builder.CreateCall( in EmitPPCBuiltinExpr()
674 return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::ppc_rlwnm), in EmitPPCBuiltinExpr()
682 Value *Tmp = Builder.CreateCall(F, Op0); in EmitPPCBuiltinExpr()
685 Value *Result = Builder.CreateAnd(Tmp, llvm::ConstantInt::get(ArgType, 1)); in EmitPPCBuiltinExpr()
687 Result = Builder.CreateIntCast(Result, ResultType, /*isSigned*/true, in EmitPPCBuiltinExpr()
697 return Builder.CreateCall(F, {Op0, Op1}, "cmpb"); in EmitPPCBuiltinExpr()
715 Value *ArgOneLo = Builder.CreateTrunc(Op0, Int32Ty); in EmitPPCBuiltinExpr()
716 Value *ArgTwoLo = Builder.CreateTrunc(Op1, Int32Ty); in EmitPPCBuiltinExpr()
719 Builder.CreateTrunc(Builder.CreateLShr(Op0, ShiftAmt), Int32Ty); in EmitPPCBuiltinExpr()
721 Builder.CreateTrunc(Builder.CreateLShr(Op1, ShiftAmt), Int32Ty); in EmitPPCBuiltinExpr()
722 Value *ResLo = Builder.CreateZExt( in EmitPPCBuiltinExpr()
723 Builder.CreateCall(F, {ArgOneLo, ArgTwoLo}, "cmpb"), Int64Ty); in EmitPPCBuiltinExpr()
724 Value *ResHiShift = Builder.CreateZExt( in EmitPPCBuiltinExpr()
725 Builder.CreateCall(F, {ArgOneHi, ArgTwoHi}, "cmpb"), Int64Ty); in EmitPPCBuiltinExpr()
726 Value *ResHi = Builder.CreateShl(ResHiShift, ShiftAmt); in EmitPPCBuiltinExpr()
727 return Builder.CreateOr(ResLo, ResHi); in EmitPPCBuiltinExpr()
737 return Builder.CreateCall(F, {X, Y}); in EmitPPCBuiltinExpr()
754 ID = Builder.getIsFPConstrained() in EmitPPCBuiltinExpr()
759 ID = Builder.getIsFPConstrained() in EmitPPCBuiltinExpr()
764 ID = Builder.getIsFPConstrained() in EmitPPCBuiltinExpr()
769 ID = Builder.getIsFPConstrained() in EmitPPCBuiltinExpr()
774 ID = Builder.getIsFPConstrained() in EmitPPCBuiltinExpr()
778 return Builder.getIsFPConstrained() ? Builder.CreateConstrainedFPCall(F, X) in EmitPPCBuiltinExpr()
779 : Builder.CreateCall(F, X); in EmitPPCBuiltinExpr()
788 return Builder.CreateCall(F, X); in EmitPPCBuiltinExpr()
796 FastMathFlags FMF = Builder.getFastMathFlags(); in EmitPPCBuiltinExpr()
797 Builder.getFastMathFlags().setFast(); in EmitPPCBuiltinExpr()
804 Value *FDiv = Builder.CreateFDiv(X, Y, "recipdiv"); in EmitPPCBuiltinExpr()
805 Builder.getFastMathFlags() &= (FMF); in EmitPPCBuiltinExpr()
810 Value *FDiv = Builder.CreateFDiv(One, Builder.CreateCall(F, X), "rsqrt"); in EmitPPCBuiltinExpr()
811 Builder.getFastMathFlags() &= (FMF); in EmitPPCBuiltinExpr()
832 Value *ShiftAmt = Builder.CreateIntCast(Op1, Ty, false); in EmitPPCBuiltinExpr()
834 Value *Rotate = Builder.CreateCall(F, {Op0, Op0, ShiftAmt}); in EmitPPCBuiltinExpr()
835 return Builder.CreateAnd(Rotate, Op2); in EmitPPCBuiltinExpr()
840 Value *LoadIntrinsic = Builder.CreateCall(F, {Op0}); in EmitPPCBuiltinExpr()
841 return Builder.CreateTrunc(LoadIntrinsic, Int16Ty); in EmitPPCBuiltinExpr()
859 if (Builder.getIsFPConstrained()) in EmitPPCBuiltinExpr()
866 if (Builder.getIsFPConstrained()) in EmitPPCBuiltinExpr()
867 return Builder.CreateConstrainedFPCall(F, {X, Y, Z}); in EmitPPCBuiltinExpr()
869 return Builder.CreateCall(F, {X, Y, Z}); in EmitPPCBuiltinExpr()
872 if (Builder.getIsFPConstrained()) in EmitPPCBuiltinExpr()
873 return Builder.CreateFNeg( in EmitPPCBuiltinExpr()
874 Builder.CreateConstrainedFPCall(F, {X, Y, Z}), "neg"); in EmitPPCBuiltinExpr()
876 return Builder.CreateFNeg(Builder.CreateCall(F, {X, Y, Z}), "neg"); in EmitPPCBuiltinExpr()
879 if (Builder.getIsFPConstrained()) in EmitPPCBuiltinExpr()
880 return Builder.CreateConstrainedFPCall( in EmitPPCBuiltinExpr()
881 F, {X, Y, Builder.CreateFNeg(Z, "neg")}); in EmitPPCBuiltinExpr()
883 return Builder.CreateCall(F, {X, Y, Builder.CreateFNeg(Z, "neg")}); in EmitPPCBuiltinExpr()
888 if (Builder.getIsFPConstrained()) in EmitPPCBuiltinExpr()
889 return Builder.CreateFNeg( in EmitPPCBuiltinExpr()
890 Builder.CreateConstrainedFPCall( in EmitPPCBuiltinExpr()
891 F, {X, Y, Builder.CreateFNeg(Z, "neg")}), in EmitPPCBuiltinExpr()
894 return Builder.CreateCall( in EmitPPCBuiltinExpr()
924 Op1 = Builder.CreateBitCast(Op1, llvm::FixedVectorType::get(Int64Ty, 2)); in EmitPPCBuiltinExpr()
928 Op0 = Builder.CreateBitCast(Op0, llvm::FixedVectorType::get(Int64Ty, 2)); in EmitPPCBuiltinExpr()
929 Op0 = Builder.CreateShuffleVector(Op0, Op0, {1, 0}); in EmitPPCBuiltinExpr()
936 Op0 = Builder.CreateBitCast(Op0, llvm::FixedVectorType::get(Int32Ty, 4)); in EmitPPCBuiltinExpr()
938 return Builder.CreateCall(F, {Op0, Op1, Op2}); in EmitPPCBuiltinExpr()
947 Op0 = Builder.CreateBitCast(Op0, llvm::FixedVectorType::get(Int64Ty, 2)); in EmitPPCBuiltinExpr()
963 Value *Call = Builder.CreateCall(F, {Op0, Op1}); in EmitPPCBuiltinExpr()
966 Builder.CreateShuffleVector(Call, Call, {1, 0}); in EmitPPCBuiltinExpr()
970 return Builder.CreateCall(F, {Op0, Op1}); in EmitPPCBuiltinExpr()
982 Op0 = Builder.CreateBitCast(Op0, llvm::FixedVectorType::get(Int64Ty, 2)); in EmitPPCBuiltinExpr()
983 Op1 = Builder.CreateBitCast(Op1, llvm::FixedVectorType::get(Int64Ty, 2)); in EmitPPCBuiltinExpr()
992 Value *ShuffleCall = Builder.CreateShuffleVector(Op0, Op1, ShuffleElts); in EmitPPCBuiltinExpr()
995 return Builder.CreateBitCast(ShuffleCall, RetTy); in EmitPPCBuiltinExpr()
1005 Op0 = Builder.CreateBitCast(Op0, llvm::FixedVectorType::get(Int32Ty, 4)); in EmitPPCBuiltinExpr()
1006 Op1 = Builder.CreateBitCast(Op1, llvm::FixedVectorType::get(Int32Ty, 4)); in EmitPPCBuiltinExpr()
1030 Value *ShuffleCall = Builder.CreateShuffleVector(Op0, Op1, ShuffleElts); in EmitPPCBuiltinExpr()
1033 return Builder.CreateBitCast(ShuffleCall, RetTy); in EmitPPCBuiltinExpr()
1042 Value *Res = Builder.CreateInsertElement( in EmitPPCBuiltinExpr()
1044 Res = Builder.CreateInsertElement(Res, Op1, in EmitPPCBuiltinExpr()
1046 return Builder.CreateBitCast(Res, ConvertType(E->getType())); in EmitPPCBuiltinExpr()
1053 Value *Unpacked = Builder.CreateBitCast( in EmitPPCBuiltinExpr()
1060 return Builder.CreateExtractElement(Unpacked, Index); in EmitPPCBuiltinExpr()
1066 Value *Op1 = Builder.CreateSExt(EmitScalarExpr(E->getArg(1)), Int32Ty); in EmitPPCBuiltinExpr()
1067 return Builder.CreateCall(F, {Op0, Op1}); in EmitPPCBuiltinExpr()
1102 Value *Vec = Builder.CreateLoad(Addr); in EmitPPCBuiltinExpr()
1103 Value *Call = Builder.CreateCall(F, {Vec}); in EmitPPCBuiltinExpr()
1107 Value *Vec = Builder.CreateExtractValue(Call, i); in EmitPPCBuiltinExpr()
1109 Value *GEP = Builder.CreateInBoundsGEP(VTy, Ptr, Index); in EmitPPCBuiltinExpr()
1110 Builder.CreateAlignedStore(Vec, GEP, MaybeAlign(16)); in EmitPPCBuiltinExpr()
1140 Ops[0] = Builder.CreateGEP(Int8Ty, Ops[1], Ops[0]); in EmitPPCBuiltinExpr()
1142 Ops[1] = Builder.CreateGEP(Int8Ty, Ops[2], Ops[1]); in EmitPPCBuiltinExpr()
1146 return Builder.CreateCall(F, Ops, ""); in EmitPPCBuiltinExpr()
1151 Value *Acc = Builder.CreateLoad(Addr); in EmitPPCBuiltinExpr()
1157 Value *Call = Builder.CreateCall(F, CallOps); in EmitPPCBuiltinExpr()
1158 return Builder.CreateAlignedStore(Call, Ops[0], MaybeAlign()); in EmitPPCBuiltinExpr()
1165 Value *OldVal = Builder.CreateLoad(OldValAddr); in EmitPPCBuiltinExpr()
1180 Builder.CreateStore(LoadedVal, OldValAddr); in EmitPPCBuiltinExpr()
1181 return Builder.CreateZExt(Pair.second, Builder.getInt32Ty()); in EmitPPCBuiltinExpr()
1215 return Builder.CreateCall(F, {Op0}); in EmitPPCBuiltinExpr()
1224 return Builder.CreateCall(F, {Op0, Op1}); in EmitPPCBuiltinExpr()
1230 return Builder.CreateCall(F, {ArgValue}, "popcntb"); in EmitPPCBuiltinExpr()
1237 Value *Cast = Builder.CreateUIToFP(Op1, DoubleTy); in EmitPPCBuiltinExpr()
1239 return Builder.CreateCall(F, {Op0, Cast}, ""); in EmitPPCBuiltinExpr()
1246 FastMathFlags FMF = Builder.getFastMathFlags(); in EmitPPCBuiltinExpr()
1247 Builder.getFastMathFlags().setFast(); in EmitPPCBuiltinExpr()
1248 Value *FDiv = Builder.CreateFDiv(Op0, Op1, "swdiv_nochk"); in EmitPPCBuiltinExpr()
1249 Builder.getFastMathFlags() &= (FMF); in EmitPPCBuiltinExpr()
1290 return Builder.CreateCall( in EmitPPCBuiltinExpr()
1299 return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::ppc_maxfe), in EmitPPCBuiltinExpr()
1307 return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::ppc_maxfl), in EmitPPCBuiltinExpr()
1315 return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::ppc_maxfs), in EmitPPCBuiltinExpr()
1323 return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::ppc_minfe), in EmitPPCBuiltinExpr()
1331 return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::ppc_minfl), in EmitPPCBuiltinExpr()
1339 return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::ppc_minfs), in EmitPPCBuiltinExpr()
1346 return Builder.CreateFDiv(Op0, Op1, "swdiv"); in EmitPPCBuiltinExpr()
1349 return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::ppc_setrnd), in EmitPPCBuiltinExpr()
1352 return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::ppc_readflm)); in EmitPPCBuiltinExpr()