Lines Matching defs:Builder

77   IRBuilder<> Builder(Orig);
84 Value *Sum = Builder.CreateExtractElement(X, static_cast<uint64_t>(0));
90 Sum = Builder.CreateFAdd(Sum, StartValue);
95 Value *Elt = Builder.CreateExtractElement(X, I);
97 Sum = Builder.CreateFAdd(Sum, Elt);
99 Sum = Builder.CreateAdd(Sum, Elt);
107 IRBuilder<> Builder(Orig);
116 auto *V = Builder.CreateSub(Zero, X);
117 return Builder.CreateIntrinsic(Ty, Intrinsic::smax, {X, V}, nullptr,
130 IRBuilder<> Builder(Orig);
132 Value *op0_x = Builder.CreateExtractElement(op0, (uint64_t)0, "x0");
133 Value *op0_y = Builder.CreateExtractElement(op0, 1, "x1");
134 Value *op0_z = Builder.CreateExtractElement(op0, 2, "x2");
136 Value *op1_x = Builder.CreateExtractElement(op1, (uint64_t)0, "y0");
137 Value *op1_y = Builder.CreateExtractElement(op1, 1, "y1");
138 Value *op1_z = Builder.CreateExtractElement(op1, 2, "y2");
141 Value *xy = Builder.CreateFMul(x0, y1);
142 Value *yx = Builder.CreateFMul(y0, x1);
143 return Builder.CreateFSub(xy, yx, Orig->getName());
151 cross = Builder.CreateInsertElement(cross, yz_zy, (uint64_t)0);
152 cross = Builder.CreateInsertElement(cross, zx_xz, 1);
153 cross = Builder.CreateInsertElement(cross, xy_yx, 2);
165 IRBuilder<> Builder(Orig);
188 return Builder.CreateIntrinsic(ATy->getScalarType(), DotIntrinsic,
211 IRBuilder<> Builder(Orig);
221 Value *Elt0 = Builder.CreateExtractElement(A, (uint64_t)0);
222 Value *Elt1 = Builder.CreateExtractElement(B, (uint64_t)0);
223 Result = Builder.CreateMul(Elt0, Elt1);
225 Elt0 = Builder.CreateExtractElement(A, I);
226 Elt1 = Builder.CreateExtractElement(B, I);
227 Result = Builder.CreateIntrinsic(Result->getType(), MadIntrinsic,
236 IRBuilder<> Builder(Orig);
245 Value *NewX = Builder.CreateFMul(Log2eConst, X);
247 Builder.CreateIntrinsic(Ty, Intrinsic::exp2, {NewX}, nullptr, "dx.exp2");
256 IRBuilder<> Builder(Orig);
260 auto ApplyOp = [&Builder](Intrinsic::ID IntrinsicId, Value *Result,
263 return Builder.CreateOr(Result, Elt);
265 return Builder.CreateAnd(Result, Elt);
271 ? Builder.CreateFCmpUNE(X, ConstantFP::get(EltTy, 0))
272 : Builder.CreateICmpNE(X, ConstantInt::get(EltTy, 0));
277 ? Builder.CreateFCmpUNE(
281 : Builder.CreateICmpNE(
285 Result = Builder.CreateExtractElement(Cond, (uint64_t)0);
287 Value *Elt = Builder.CreateExtractElement(Cond, I);
298 IRBuilder<> Builder(Orig);
299 auto *V = Builder.CreateFSub(Y, X);
300 V = Builder.CreateFMul(S, V);
301 return Builder.CreateFAdd(X, V, "dx.lerp");
307 IRBuilder<> Builder(Orig);
317 Builder.CreateIntrinsic(Ty, Intrinsic::log2, {X}, nullptr, "elt.log2");
320 return Builder.CreateFMul(Ln2Const, Log2Call);
332 IRBuilder<> Builder(Orig);
342 return Builder.CreateFDiv(X, X);
356 Value *Multiplicand = Builder.CreateIntrinsic(EltTy, Intrinsic::dx_rsqrt,
361 Builder.CreateVectorSplat(XVec->getNumElements(), Multiplicand);
362 return Builder.CreateFMul(X, MultiplicandVec);
369 IRBuilder<> Builder(Orig);
370 Builder.setFastMathFlags(Orig->getFastMathFlags());
372 Value *Tan = Builder.CreateFDiv(Y, X);
375 Builder.CreateIntrinsic(Ty, Intrinsic::atan, {Tan}, nullptr, "Elt.Atan");
384 Value *AtanAddPi = Builder.CreateFAdd(Atan, Pi);
385 Value *AtanSubPi = Builder.CreateFSub(Atan, Pi);
389 Value *XLt0 = Builder.CreateFCmpOLT(X, Zero);
390 Value *XEq0 = Builder.CreateFCmpOEQ(X, Zero);
391 Value *YGe0 = Builder.CreateFCmpOGE(Y, Zero);
392 Value *YLt0 = Builder.CreateFCmpOLT(Y, Zero);
395 Value *XLt0AndYGe0 = Builder.CreateAnd(XLt0, YGe0);
396 Result = Builder.CreateSelect(XLt0AndYGe0, AtanAddPi, Result);
399 Value *XLt0AndYLt0 = Builder.CreateAnd(XLt0, YLt0);
400 Result = Builder.CreateSelect(XLt0AndYLt0, AtanSubPi, Result);
403 Value *XEq0AndYLt0 = Builder.CreateAnd(XEq0, YLt0);
404 Result = Builder.CreateSelect(XEq0AndYLt0, NegHalfPi, Result);
407 Value *XEq0AndYGe0 = Builder.CreateAnd(XEq0, YGe0);
408 Result = Builder.CreateSelect(XEq0AndYGe0, HalfPi, Result);
418 IRBuilder<> Builder(Orig);
421 Builder.CreateIntrinsic(Ty, Intrinsic::log2, {X}, nullptr, "elt.log2");
422 auto *Mul = Builder.CreateFMul(Log2Call, Y);
424 Builder.CreateIntrinsic(Ty, Intrinsic::exp2, {Mul}, nullptr, "elt.exp2");
435 IRBuilder<> Builder(Orig);
439 Value *Cond = Builder.CreateFCmpOLT(Y, X);
449 return Builder.CreateSelect(Cond, Zero, One);
455 IRBuilder<> Builder(Orig);
457 return Builder.CreateFMul(X, PiOver180);
484 IRBuilder<> Builder(Orig);
485 auto *MaxCall = Builder.CreateIntrinsic(Ty, getMaxForClamp(ClampIntrinsic),
487 return Builder.CreateIntrinsic(Ty, getMinForClamp(ClampIntrinsic),
494 IRBuilder<> Builder(Orig);
496 return Builder.CreateFMul(X, DegreesRatio);
506 IRBuilder<> Builder(Orig);
511 GT = Builder.CreateFCmpOLT(Zero, X);
512 LT = Builder.CreateFCmpOLT(X, Zero);
515 GT = Builder.CreateICmpSLT(Zero, X);
516 LT = Builder.CreateICmpSLT(X, Zero);
519 Value *ZextGT = Builder.CreateZExt(GT, RetTy);
520 Value *ZextLT = Builder.CreateZExt(LT, RetTy);
522 return Builder.CreateSub(ZextGT, ZextLT);