Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:Builder

62 static Value *generateMinMaxSelectPattern(InstCombiner::BuilderTy *Builder,
67 return Builder->CreateSelect(Builder->CreateICmp(Pred, A, B), A, B);
141 Value *NewSI = Builder->CreateSelect(SI.getCondition(), TI->getOperand(0),
181 Value *NewSI = Builder->CreateSelect(SI.getCondition(), OtherOpT,
229 Value *NewSel = Builder->CreateSelect(SI.getCondition(), OOp, C);
264 Value *NewSel = Builder->CreateSelect(SI.getCondition(), C, OOp);
300 InstCombiner::BuilderTy *Builder) {
331 V = Builder->CreateZExtOrTrunc(V, Y->getType());
332 V = Builder->CreateShl(V, C2Log - C1Log);
334 V = Builder->CreateLShr(V, C1Log - C2Log);
335 V = Builder->CreateZExtOrTrunc(V, Y->getType());
337 V = Builder->CreateZExtOrTrunc(V, Y->getType());
342 V = Builder->CreateXor(V, *C2);
344 return Builder->CreateOr(V, Y);
360 InstCombiner::BuilderTy *Builder) {
391 IRBuilder<> Builder(II);
396 Builder.Insert(NewI);
397 return Builder.CreateZExtOrTrunc(NewI, ValueOnZero->getType());
518 Value *AShr = Builder->CreateAShr(CmpLHS, Ty->getBitWidth()-1);
522 return ReplaceInstUsesWith(SI, Builder->CreateOr(AShr, C1));
524 Value *And = Builder->CreateAnd(AShr, C2->getValue()-C1->getValue());
525 return ReplaceInstUsesWith(SI, Builder->CreateAdd(And, C1));
573 V = Builder->CreateAnd(X, ~(*Y));
577 V = Builder->CreateAnd(X, ~(*Y));
581 V = Builder->CreateOr(X, *Y);
585 V = Builder->CreateOr(X, *Y);
592 if (Value *V = foldSelectICmpAndOr(SI, TrueVal, FalseVal, Builder))
595 if (Value *V = foldSelectCttzCtlz(ICI, TrueVal, FalseVal, Builder))
698 Value *NewSI = Builder->CreateSelect(
735 NotA = Builder->CreateNot(A);
737 NotB = Builder->CreateNot(B);
739 NotC = Builder->CreateNot(C);
742 Builder, getInverseMinMaxSelectPattern(SPF1), NotA, NotB);
743 Value *NewOuter = Builder->CreateNot(generateMinMaxSelectPattern(
744 Builder, getInverseMinMaxSelectPattern(SPF2), NewInner, NotC));
757 InstCombiner::BuilderTy *Builder) {
783 TrueVal = ConstantInt::get(Builder->getContext(),
785 FalseVal = ConstantInt::get(Builder->getContext(),
807 Value *V = Builder->CreateZExtOrTrunc(LHS, SI.getType());
809 V = Builder->CreateShl(V, ValZeros - AndZeros);
811 V = Builder->CreateLShr(V, AndZeros - ValZeros);
818 V = Builder->CreateXor(V, ValC);
822 V = Builder->CreateAdd(V, Offset);
842 Value *NotCond = Builder->CreateNot(CondVal, "not."+CondVal->getName());
851 Value *NotCond = Builder->CreateNot(CondVal, "not."+CondVal->getName());
883 Value *NotCond = Builder->CreateNot(CondVal, "not."+CondVal->getName());
889 Value *NotCond = Builder->CreateNot(CondVal, "not."+CondVal->getName());
893 if (Value *V = foldSelectICmpAnd(SI, TrueValC, FalseValC, Builder))
932 IRBuilder<>::FastMathFlagGuard FMFG(*Builder);
933 Builder->SetFastMathFlags(FCI->getFastMathFlags());
934 Value *NewCond = Builder->CreateFCmp(InvPred, TrueVal, FalseVal,
975 IRBuilder<>::FastMathFlagGuard FMFG(*Builder);
976 Builder->SetFastMathFlags(FCI->getFastMathFlags());
977 Value *NewCond = Builder->CreateFCmp(InvPred, FalseVal, TrueVal,
1031 NegVal = Builder->CreateFNeg(SubOp->getOperand(1));
1038 NegVal = Builder->CreateNeg(SubOp->getOperand(1));
1046 Builder->CreateSelect(CondVal, NewTrueOp,
1081 Cmp = Builder->CreateICmp(Pred, LHS, RHS);
1083 IRBuilder<>::FastMathFlagGuard FMFG(*Builder);
1085 Builder->SetFastMathFlags(FMF);
1086 Cmp = Builder->CreateFCmp(Pred, LHS, RHS);
1089 Value *NewSI = Builder->CreateCast(CastOp,
1090 Builder->CreateSelect(Cmp, LHS, RHS),
1128 Value *NewLHS = Builder->CreateNot(LHS);
1129 Value *NewRHS = Builder->CreateNot(RHS);
1131 ? Builder->CreateICmpSLT(NewLHS, NewRHS)
1132 : Builder->CreateICmpULT(NewLHS, NewRHS);
1134 Builder->CreateNot(Builder->CreateSelect(NewCmp, NewLHS, NewRHS));
1165 Value *And = Builder->CreateAnd(CondVal, TrueSI->getCondition());
1183 Value *Or = Builder->CreateOr(CondVal, FalseSI->getCondition());