Lines Matching refs:Builder
249 Value* expandDivRem24(IRBuilder<> &Builder, BinaryOperator &I,
253 Value *expandDivRem24Impl(IRBuilder<> &Builder, BinaryOperator &I,
258 Value* expandDivRem32(IRBuilder<> &Builder, BinaryOperator &I,
261 Value *shrinkDivRem64(IRBuilder<> &Builder, BinaryOperator &I,
276 Value *applyFractPat(IRBuilder<> &Builder, Value *FractArg);
281 Value *optimizeWithRsq(IRBuilder<> &Builder, Value *Num, Value *Den,
285 Value *optimizeWithRcp(IRBuilder<> &Builder, Value *Num, Value *Den,
287 Value *optimizeWithFDivFast(IRBuilder<> &Builder, Value *Num, Value *Den,
290 Value *visitFDivElement(IRBuilder<> &Builder, Value *Num, Value *Den,
295 std::pair<Value *, Value *> getFrexpResults(IRBuilder<> &Builder,
298 Value *emitRcpIEEE1ULP(IRBuilder<> &Builder, Value *Src,
300 Value *emitFrexpDiv(IRBuilder<> &Builder, Value *LHS, Value *RHS,
302 Value *emitSqrtIEEE2ULP(IRBuilder<> &Builder, Value *Src,
475 IRBuilder<> Builder(&I); in promoteUniformOpToI32() local
476 Builder.SetCurrentDebugLocation(I.getDebugLoc()); in promoteUniformOpToI32()
478 Type *I32Ty = getI32Ty(Builder, I.getType()); in promoteUniformOpToI32()
485 ExtOp0 = Builder.CreateSExt(I.getOperand(0), I32Ty); in promoteUniformOpToI32()
486 ExtOp1 = Builder.CreateSExt(I.getOperand(1), I32Ty); in promoteUniformOpToI32()
488 ExtOp0 = Builder.CreateZExt(I.getOperand(0), I32Ty); in promoteUniformOpToI32()
489 ExtOp1 = Builder.CreateZExt(I.getOperand(1), I32Ty); in promoteUniformOpToI32()
492 ExtRes = Builder.CreateBinOp(I.getOpcode(), ExtOp0, ExtOp1); in promoteUniformOpToI32()
504 TruncRes = Builder.CreateTrunc(ExtRes, I.getType()); in promoteUniformOpToI32()
516 IRBuilder<> Builder(&I); in promoteUniformOpToI32() local
517 Builder.SetCurrentDebugLocation(I.getDebugLoc()); in promoteUniformOpToI32()
519 Type *I32Ty = getI32Ty(Builder, I.getOperand(0)->getType()); in promoteUniformOpToI32()
525 ExtOp0 = Builder.CreateSExt(I.getOperand(0), I32Ty); in promoteUniformOpToI32()
526 ExtOp1 = Builder.CreateSExt(I.getOperand(1), I32Ty); in promoteUniformOpToI32()
528 ExtOp0 = Builder.CreateZExt(I.getOperand(0), I32Ty); in promoteUniformOpToI32()
529 ExtOp1 = Builder.CreateZExt(I.getOperand(1), I32Ty); in promoteUniformOpToI32()
531 NewICmp = Builder.CreateICmp(I.getPredicate(), ExtOp0, ExtOp1); in promoteUniformOpToI32()
543 IRBuilder<> Builder(&I); in promoteUniformOpToI32() local
544 Builder.SetCurrentDebugLocation(I.getDebugLoc()); in promoteUniformOpToI32()
546 Type *I32Ty = getI32Ty(Builder, I.getType()); in promoteUniformOpToI32()
553 ExtOp1 = Builder.CreateSExt(I.getOperand(1), I32Ty); in promoteUniformOpToI32()
554 ExtOp2 = Builder.CreateSExt(I.getOperand(2), I32Ty); in promoteUniformOpToI32()
556 ExtOp1 = Builder.CreateZExt(I.getOperand(1), I32Ty); in promoteUniformOpToI32()
557 ExtOp2 = Builder.CreateZExt(I.getOperand(2), I32Ty); in promoteUniformOpToI32()
559 ExtRes = Builder.CreateSelect(I.getOperand(0), ExtOp1, ExtOp2); in promoteUniformOpToI32()
560 TruncRes = Builder.CreateTrunc(ExtRes, I.getType()); in promoteUniformOpToI32()
575 IRBuilder<> Builder(&I); in promoteUniformBitreverseToI32() local
576 Builder.SetCurrentDebugLocation(I.getDebugLoc()); in promoteUniformBitreverseToI32()
578 Type *I32Ty = getI32Ty(Builder, I.getType()); in promoteUniformBitreverseToI32()
581 Value *ExtOp = Builder.CreateZExt(I.getOperand(0), I32Ty); in promoteUniformBitreverseToI32()
582 Value *ExtRes = Builder.CreateCall(I32, { ExtOp }); in promoteUniformBitreverseToI32()
584 Builder.CreateLShr(ExtRes, 32 - getBaseElementBitWidth(I.getType())); in promoteUniformBitreverseToI32()
586 Builder.CreateTrunc(LShrOp, I.getType()); in promoteUniformBitreverseToI32()
602 static void extractValues(IRBuilder<> &Builder, in extractValues() argument
611 Values.push_back(Builder.CreateExtractElement(V, I)); in extractValues()
614 static Value *insertValues(IRBuilder<> &Builder, in insertValues() argument
624 NewVal = Builder.CreateInsertElement(NewVal, Values[I], I); in insertValues()
644 IRBuilder<> Builder(&I); in replaceMulWithMul24() local
645 Builder.SetCurrentDebugLocation(I.getDebugLoc()); in replaceMulWithMul24()
664 extractValues(Builder, LHSVals, LHS); in replaceMulWithMul24()
665 extractValues(Builder, RHSVals, RHS); in replaceMulWithMul24()
667 IntegerType *I32Ty = Builder.getInt32Ty(); in replaceMulWithMul24()
668 IntegerType *IntrinTy = Size > 32 ? Builder.getInt64Ty() : I32Ty; in replaceMulWithMul24()
672 Value *LHS = IsSigned ? Builder.CreateSExtOrTrunc(LHSVals[I], I32Ty) in replaceMulWithMul24()
673 : Builder.CreateZExtOrTrunc(LHSVals[I], I32Ty); in replaceMulWithMul24()
674 Value *RHS = IsSigned ? Builder.CreateSExtOrTrunc(RHSVals[I], I32Ty) in replaceMulWithMul24()
675 : Builder.CreateZExtOrTrunc(RHSVals[I], I32Ty); in replaceMulWithMul24()
678 Value *Result = Builder.CreateIntrinsic(ID, {IntrinTy}, {LHS, RHS}); in replaceMulWithMul24()
679 Result = IsSigned ? Builder.CreateSExtOrTrunc(Result, DstTy) in replaceMulWithMul24()
680 : Builder.CreateZExtOrTrunc(Result, DstTy); in replaceMulWithMul24()
684 Value *NewVal = insertValues(Builder, Ty, ResultVals); in replaceMulWithMul24()
752 IRBuilder<> Builder(&BO); in foldBinOpIntoSelect() local
753 Builder.SetCurrentDebugLocation(BO.getDebugLoc()); in foldBinOpIntoSelect()
755 Builder.setFastMathFlags(FPOp->getFastMathFlags()); in foldBinOpIntoSelect()
757 Value *NewSelect = Builder.CreateSelect(Sel->getCondition(), in foldBinOpIntoSelect()
769 AMDGPUCodeGenPrepareImpl::getFrexpResults(IRBuilder<> &Builder, in getFrexpResults() argument
772 Value *Frexp = Builder.CreateIntrinsic(Intrinsic::frexp, in getFrexpResults()
773 {Ty, Builder.getInt32Ty()}, Src); in getFrexpResults()
774 Value *FrexpMant = Builder.CreateExtractValue(Frexp, {0}); in getFrexpResults()
782 ? Builder.CreateIntrinsic(Intrinsic::amdgcn_frexp_exp, in getFrexpResults()
783 {Builder.getInt32Ty(), Ty}, Src) in getFrexpResults()
784 : Builder.CreateExtractValue(Frexp, {1}); in getFrexpResults()
789 Value *AMDGPUCodeGenPrepareImpl::emitRcpIEEE1ULP(IRBuilder<> &Builder, in emitRcpIEEE1ULP() argument
795 Src = Builder.CreateFNeg(Src); in emitRcpIEEE1ULP()
806 auto [FrexpMant, FrexpExp] = getFrexpResults(Builder, Src); in emitRcpIEEE1ULP()
807 Value *ScaleFactor = Builder.CreateNeg(FrexpExp); in emitRcpIEEE1ULP()
808 Value *Rcp = Builder.CreateUnaryIntrinsic(Intrinsic::amdgcn_rcp, FrexpMant); in emitRcpIEEE1ULP()
809 return Builder.CreateCall(getLdexpF32(), {Rcp, ScaleFactor}); in emitRcpIEEE1ULP()
813 Value *AMDGPUCodeGenPrepareImpl::emitFrexpDiv(IRBuilder<> &Builder, Value *LHS, in emitFrexpDiv() argument
825 auto [FrexpMantRHS, FrexpExpRHS] = getFrexpResults(Builder, RHS); in emitFrexpDiv()
828 Builder.CreateUnaryIntrinsic(Intrinsic::amdgcn_rcp, FrexpMantRHS); in emitFrexpDiv()
830 auto [FrexpMantLHS, FrexpExpLHS] = getFrexpResults(Builder, LHS); in emitFrexpDiv()
831 Value *Mul = Builder.CreateFMul(FrexpMantLHS, Rcp); in emitFrexpDiv()
835 Value *ExpDiff = Builder.CreateSub(FrexpExpLHS, FrexpExpRHS); in emitFrexpDiv()
836 return Builder.CreateCall(getLdexpF32(), {Mul, ExpDiff}); in emitFrexpDiv()
840 Value *AMDGPUCodeGenPrepareImpl::emitSqrtIEEE2ULP(IRBuilder<> &Builder, in emitSqrtIEEE2ULP() argument
847 Builder.CreateFCmpOLT(Src, ConstantFP::get(Ty, SmallestNormal)); in emitSqrtIEEE2ULP()
849 ConstantInt *Zero = Builder.getInt32(0); in emitSqrtIEEE2ULP()
851 Builder.CreateSelect(NeedScale, Builder.getInt32(32), Zero); in emitSqrtIEEE2ULP()
853 Value *Scaled = Builder.CreateCall(getLdexpF32(), {Src, InputScaleFactor}); in emitSqrtIEEE2ULP()
855 Value *Sqrt = Builder.CreateCall(getSqrtF32(), Scaled); in emitSqrtIEEE2ULP()
858 Builder.CreateSelect(NeedScale, Builder.getInt32(-16), Zero); in emitSqrtIEEE2ULP()
859 return Builder.CreateCall(getLdexpF32(), {Sqrt, OutputScaleFactor}); in emitSqrtIEEE2ULP()
863 static Value *emitRsqIEEE1ULP(IRBuilder<> &Builder, Value *Src, in emitRsqIEEE1ULP() argument
874 Builder.CreateFCmpOLT(Src, ConstantFP::get(Ty, SmallestNormal)); in emitRsqIEEE1ULP()
880 Value *InputScaleFactor = Builder.CreateSelect(NeedScale, InputScale, One); in emitRsqIEEE1ULP()
882 Value *ScaledInput = Builder.CreateFMul(Src, InputScaleFactor); in emitRsqIEEE1ULP()
883 Value *Rsq = Builder.CreateUnaryIntrinsic(Intrinsic::amdgcn_rsq, ScaledInput); in emitRsqIEEE1ULP()
884 Value *OutputScaleFactor = Builder.CreateSelect( in emitRsqIEEE1ULP()
887 return Builder.CreateFMul(Rsq, OutputScaleFactor); in emitRsqIEEE1ULP()
903 IRBuilder<> &Builder, Value *Num, Value *Den, const FastMathFlags DivFMF, in optimizeWithRsq() argument
922 IRBuilder<>::FastMathFlagGuard Guard(Builder); in optimizeWithRsq()
923 Builder.setFastMathFlags(DivFMF | SqrtFMF); in optimizeWithRsq()
927 Value *Result = Builder.CreateUnaryIntrinsic(Intrinsic::amdgcn_rsq, Den); in optimizeWithRsq()
929 return IsNegative ? Builder.CreateFNeg(Result) : Result; in optimizeWithRsq()
932 return emitRsqIEEE1ULP(Builder, Den, IsNegative); in optimizeWithRsq()
945 AMDGPUCodeGenPrepareImpl::optimizeWithRcp(IRBuilder<> &Builder, Value *Num, in optimizeWithRcp() argument
962 Src = Builder.CreateFNeg(Src); in optimizeWithRcp()
975 return Builder.CreateUnaryIntrinsic(Intrinsic::amdgcn_rcp, Src); in optimizeWithRcp()
980 return emitRcpIEEE1ULP(Builder, Src, IsNegative); in optimizeWithRcp()
990 Value *Recip = Builder.CreateUnaryIntrinsic(Intrinsic::amdgcn_rcp, Den); in optimizeWithRcp()
991 return Builder.CreateFMul(Num, Recip); in optimizeWithRcp()
994 Value *Recip = emitRcpIEEE1ULP(Builder, Den, false); in optimizeWithRcp()
995 return Builder.CreateFMul(Num, Recip); in optimizeWithRcp()
1009 IRBuilder<> &Builder, Value *Num, Value *Den, float ReqdAccuracy) const { in optimizeWithFDivFast() argument
1030 return Builder.CreateIntrinsic(Intrinsic::amdgcn_fdiv_fast, {}, {Num, Den}); in optimizeWithFDivFast()
1034 IRBuilder<> &Builder, Value *Num, Value *Den, FastMathFlags DivFMF, in visitFDivElement() argument
1039 optimizeWithRsq(Builder, Num, RsqOp, DivFMF, SqrtFMF, FDivInst); in visitFDivElement()
1044 Value *Rcp = optimizeWithRcp(Builder, Num, Den, DivFMF, FDivInst); in visitFDivElement()
1052 Value *FDivFast = optimizeWithFDivFast(Builder, Num, Den, ReqdDivAccuracy); in visitFDivElement()
1056 return emitFrexpDiv(Builder, Num, Den, DivFMF); in visitFDivElement()
1121 IRBuilder<> Builder(FDiv.getParent(), std::next(FDiv.getIterator())); in visitFDiv() local
1122 Builder.setFastMathFlags(DivFMF); in visitFDiv()
1123 Builder.SetCurrentDebugLocation(FDiv.getDebugLoc()); in visitFDiv()
1128 extractValues(Builder, NumVals, Num); in visitFDiv()
1129 extractValues(Builder, DenVals, Den); in visitFDiv()
1132 extractValues(Builder, RsqDenVals, RsqOp); in visitFDiv()
1141 visitFDivElement(Builder, NumElt, DenElt, DivFMF, SqrtFMF, RsqDenElt, in visitFDiv()
1148 NewElt = Builder.CreateFDiv(NumElt, DenElt); in visitFDiv()
1156 Value *NewVal = insertValues(Builder, FDiv.getType(), ResultVals); in visitFDiv()
1172 static std::pair<Value*, Value*> getMul64(IRBuilder<> &Builder, in getMul64() argument
1174 Type *I32Ty = Builder.getInt32Ty(); in getMul64()
1175 Type *I64Ty = Builder.getInt64Ty(); in getMul64()
1177 Value *LHS_EXT64 = Builder.CreateZExt(LHS, I64Ty); in getMul64()
1178 Value *RHS_EXT64 = Builder.CreateZExt(RHS, I64Ty); in getMul64()
1179 Value *MUL64 = Builder.CreateMul(LHS_EXT64, RHS_EXT64); in getMul64()
1180 Value *Lo = Builder.CreateTrunc(MUL64, I32Ty); in getMul64()
1181 Value *Hi = Builder.CreateLShr(MUL64, Builder.getInt64(32)); in getMul64()
1182 Hi = Builder.CreateTrunc(Hi, I32Ty); in getMul64()
1186 static Value* getMulHu(IRBuilder<> &Builder, Value *LHS, Value *RHS) { in getMulHu() argument
1187 return getMul64(Builder, LHS, RHS).second; in getMulHu()
1214 Value *AMDGPUCodeGenPrepareImpl::expandDivRem24(IRBuilder<> &Builder, in expandDivRem24() argument
1224 return expandDivRem24Impl(Builder, I, Num, Den, DivBits, IsDiv, IsSigned); in expandDivRem24()
1228 IRBuilder<> &Builder, BinaryOperator &I, Value *Num, Value *Den, in expandDivRem24Impl() argument
1230 Type *I32Ty = Builder.getInt32Ty(); in expandDivRem24Impl()
1231 Num = Builder.CreateTrunc(Num, I32Ty); in expandDivRem24Impl()
1232 Den = Builder.CreateTrunc(Den, I32Ty); in expandDivRem24Impl()
1234 Type *F32Ty = Builder.getFloatTy(); in expandDivRem24Impl()
1235 ConstantInt *One = Builder.getInt32(1); in expandDivRem24Impl()
1240 JQ = Builder.CreateXor(Num, Den); in expandDivRem24Impl()
1243 JQ = Builder.CreateAShr(JQ, Builder.getInt32(30)); in expandDivRem24Impl()
1246 JQ = Builder.CreateOr(JQ, One); in expandDivRem24Impl()
1256 Value *FA = IsSigned ? Builder.CreateSIToFP(IA, F32Ty) in expandDivRem24Impl()
1257 : Builder.CreateUIToFP(IA, F32Ty); in expandDivRem24Impl()
1260 Value *FB = IsSigned ? Builder.CreateSIToFP(IB,F32Ty) in expandDivRem24Impl()
1261 : Builder.CreateUIToFP(IB,F32Ty); in expandDivRem24Impl()
1264 Builder.getFloatTy()); in expandDivRem24Impl()
1265 Value *RCP = Builder.CreateCall(RcpDecl, { FB }); in expandDivRem24Impl()
1266 Value *FQM = Builder.CreateFMul(FA, RCP); in expandDivRem24Impl()
1269 CallInst *FQ = Builder.CreateUnaryIntrinsic(Intrinsic::trunc, FQM); in expandDivRem24Impl()
1270 FQ->copyFastMathFlags(Builder.getFastMathFlags()); in expandDivRem24Impl()
1273 Value *FQNeg = Builder.CreateFNeg(FQ); in expandDivRem24Impl()
1279 Value *FR = Builder.CreateIntrinsic(FMAD, in expandDivRem24Impl()
1283 Value *IQ = IsSigned ? Builder.CreateFPToSI(FQ, I32Ty) in expandDivRem24Impl()
1284 : Builder.CreateFPToUI(FQ, I32Ty); in expandDivRem24Impl()
1287 FR = Builder.CreateUnaryIntrinsic(Intrinsic::fabs, FR, FQ); in expandDivRem24Impl()
1290 FB = Builder.CreateUnaryIntrinsic(Intrinsic::fabs, FB, FQ); in expandDivRem24Impl()
1293 Value *CV = Builder.CreateFCmpOGE(FR, FB); in expandDivRem24Impl()
1296 JQ = Builder.CreateSelect(CV, JQ, Builder.getInt32(0)); in expandDivRem24Impl()
1299 Value *Div = Builder.CreateAdd(IQ, JQ); in expandDivRem24Impl()
1304 Value *Rem = Builder.CreateMul(Div, Den); in expandDivRem24Impl()
1305 Res = Builder.CreateSub(Num, Rem); in expandDivRem24Impl()
1313 Res = Builder.CreateShl(Res, InRegBits); in expandDivRem24Impl()
1314 Res = Builder.CreateAShr(Res, InRegBits); in expandDivRem24Impl()
1317 = Builder.getInt32((UINT64_C(1) << DivBits) - 1); in expandDivRem24Impl()
1318 Res = Builder.CreateAnd(Res, TruncMask); in expandDivRem24Impl()
1362 static Value *getSign32(Value *V, IRBuilder<> &Builder, const DataLayout *DL) { in getSign32() argument
1369 return Builder.CreateAShr(V, Builder.getInt32(31)); in getSign32()
1372 Value *AMDGPUCodeGenPrepareImpl::expandDivRem32(IRBuilder<> &Builder, in expandDivRem32() argument
1381 Builder.setFastMathFlags(FMF); in expandDivRem32()
1390 Type *I32Ty = Builder.getInt32Ty(); in expandDivRem32()
1391 Type *F32Ty = Builder.getFloatTy(); in expandDivRem32()
1395 X = Builder.CreateSExtOrTrunc(X, I32Ty); in expandDivRem32()
1396 Y = Builder.CreateSExtOrTrunc(Y, I32Ty); in expandDivRem32()
1398 X = Builder.CreateZExtOrTrunc(X, I32Ty); in expandDivRem32()
1399 Y = Builder.CreateZExtOrTrunc(Y, I32Ty); in expandDivRem32()
1403 if (Value *Res = expandDivRem24(Builder, I, X, Y, IsDiv, IsSigned)) { in expandDivRem32()
1404 return IsSigned ? Builder.CreateSExtOrTrunc(Res, Ty) : in expandDivRem32()
1405 Builder.CreateZExtOrTrunc(Res, Ty); in expandDivRem32()
1408 ConstantInt *Zero = Builder.getInt32(0); in expandDivRem32()
1409 ConstantInt *One = Builder.getInt32(1); in expandDivRem32()
1413 Value *SignX = getSign32(X, Builder, DL); in expandDivRem32()
1414 Value *SignY = getSign32(Y, Builder, DL); in expandDivRem32()
1416 Sign = IsDiv ? Builder.CreateXor(SignX, SignY) : SignX; in expandDivRem32()
1418 X = Builder.CreateAdd(X, SignX); in expandDivRem32()
1419 Y = Builder.CreateAdd(Y, SignY); in expandDivRem32()
1421 X = Builder.CreateXor(X, SignX); in expandDivRem32()
1422 Y = Builder.CreateXor(Y, SignY); in expandDivRem32()
1457 Value *FloatY = Builder.CreateUIToFP(Y, F32Ty); in expandDivRem32()
1459 Value *RcpY = Builder.CreateCall(Rcp, {FloatY}); in expandDivRem32()
1461 Value *ScaledY = Builder.CreateFMul(RcpY, Scale); in expandDivRem32()
1462 Value *Z = Builder.CreateFPToUI(ScaledY, I32Ty); in expandDivRem32()
1465 Value *NegY = Builder.CreateSub(Zero, Y); in expandDivRem32()
1466 Value *NegYZ = Builder.CreateMul(NegY, Z); in expandDivRem32()
1467 Z = Builder.CreateAdd(Z, getMulHu(Builder, Z, NegYZ)); in expandDivRem32()
1470 Value *Q = getMulHu(Builder, X, Z); in expandDivRem32()
1471 Value *R = Builder.CreateSub(X, Builder.CreateMul(Q, Y)); in expandDivRem32()
1474 Value *Cond = Builder.CreateICmpUGE(R, Y); in expandDivRem32()
1476 Q = Builder.CreateSelect(Cond, Builder.CreateAdd(Q, One), Q); in expandDivRem32()
1477 R = Builder.CreateSelect(Cond, Builder.CreateSub(R, Y), R); in expandDivRem32()
1480 Cond = Builder.CreateICmpUGE(R, Y); in expandDivRem32()
1483 Res = Builder.CreateSelect(Cond, Builder.CreateAdd(Q, One), Q); in expandDivRem32()
1485 Res = Builder.CreateSelect(Cond, Builder.CreateSub(R, Y), R); in expandDivRem32()
1488 Res = Builder.CreateXor(Res, Sign); in expandDivRem32()
1489 Res = Builder.CreateSub(Res, Sign); in expandDivRem32()
1490 Res = Builder.CreateSExtOrTrunc(Res, Ty); in expandDivRem32()
1492 Res = Builder.CreateZExtOrTrunc(Res, Ty); in expandDivRem32()
1497 Value *AMDGPUCodeGenPrepareImpl::shrinkDivRem64(IRBuilder<> &Builder, in shrinkDivRem64() argument
1514 Narrowed = expandDivRem24Impl(Builder, I, Num, Den, NumDivBits, in shrinkDivRem64()
1517 Narrowed = expandDivRem32(Builder, I, Num, Den); in shrinkDivRem64()
1521 return IsSigned ? Builder.CreateSExt(Narrowed, Num->getType()) : in shrinkDivRem64()
1522 Builder.CreateZExt(Narrowed, Num->getType()); in shrinkDivRem64()
1569 IRBuilder<> Builder(&I); in visitBinaryOperator() local
1570 Builder.SetCurrentDebugLocation(I.getDebugLoc()); in visitBinaryOperator()
1576 Value *NumEltN = Builder.CreateExtractElement(Num, N); in visitBinaryOperator()
1577 Value *DenEltN = Builder.CreateExtractElement(Den, N); in visitBinaryOperator()
1581 NewElt = expandDivRem32(Builder, I, NumEltN, DenEltN); in visitBinaryOperator()
1583 NewElt = Builder.CreateBinOp(Opc, NumEltN, DenEltN); in visitBinaryOperator()
1587 NewElt = shrinkDivRem64(Builder, I, NumEltN, DenEltN); in visitBinaryOperator()
1592 NewElt = Builder.CreateBinOp(Opc, NumEltN, DenEltN); in visitBinaryOperator()
1600 NewDiv = Builder.CreateInsertElement(NewDiv, NewElt, N); in visitBinaryOperator()
1604 NewDiv = expandDivRem32(Builder, I, Num, Den); in visitBinaryOperator()
1606 NewDiv = shrinkDivRem64(Builder, I, Num, Den); in visitBinaryOperator()
1638 IRBuilder<> Builder(&I); in visitLoadInst() local
1639 Builder.SetCurrentDebugLocation(I.getDebugLoc()); in visitLoadInst()
1641 Type *I32Ty = Builder.getInt32Ty(); in visitLoadInst()
1642 LoadInst *WidenLoad = Builder.CreateLoad(I32Ty, I.getPointerOperand()); in visitLoadInst()
1666 Type *IntNTy = Builder.getIntNTy(TySize); in visitLoadInst()
1667 Value *ValTrunc = Builder.CreateTrunc(WidenLoad, IntNTy); in visitLoadInst()
1668 Value *ValOrig = Builder.CreateBitCast(ValTrunc, I.getType()); in visitLoadInst()
1708 IRBuilder<> Builder(&I); in visitSelectInst() local
1709 Builder.setFastMathFlags(FPOp->getFastMathFlags()); in visitSelectInst()
1718 Fract = applyFractPat(Builder, CmpVal); in visitSelectInst()
1722 Fract = applyFractPat(Builder, CmpVal); in visitSelectInst()
2159 Value *AMDGPUCodeGenPrepareImpl::applyFractPat(IRBuilder<> &Builder, in applyFractPat() argument
2162 extractValues(Builder, FractVals, FractArg); in applyFractPat()
2169 Builder.CreateIntrinsic(Intrinsic::amdgcn_fract, {Ty}, {FractVals[I]}); in applyFractPat()
2172 return insertValues(Builder, FractArg->getType(), ResultVals); in applyFractPat()
2186 IRBuilder<> Builder(&I); in visitMinNum() local
2189 Builder.setFastMathFlags(FMF); in visitMinNum()
2191 Value *Fract = applyFractPat(Builder, FractArg); in visitMinNum()
2244 IRBuilder<> Builder(&Sqrt); in visitSqrt() local
2246 extractValues(Builder, SrcVals, SrcVal); in visitSqrt()
2251 ResultVals[I] = Builder.CreateCall(getSqrtF32(), SrcVals[I]); in visitSqrt()
2253 ResultVals[I] = emitSqrtIEEE2ULP(Builder, SrcVals[I], SqrtFMF); in visitSqrt()
2256 Value *NewSqrt = insertValues(Builder, Sqrt.getType(), ResultVals); in visitSqrt()