Lines Matching defs:IC

267 static bool canEvaluateTruncated(Value *V, Type *Ty, InstCombinerImpl &IC,
284 return canEvaluateTruncated(I->getOperand(0), Ty, IC, CxtI) &&
285 canEvaluateTruncated(I->getOperand(1), Ty, IC, CxtI);
296 if (IC.MaskedValueIsZero(I->getOperand(0), Mask, 0, I) &&
297 IC.MaskedValueIsZero(I->getOperand(1), Mask, 0, I)) {
298 return canEvaluateTruncated(I->getOperand(0), Ty, IC, I) &&
299 canEvaluateTruncated(I->getOperand(1), Ty, IC, I);
308 llvm::computeKnownBits(I->getOperand(1), IC.getDataLayout());
310 return canEvaluateTruncated(I->getOperand(0), Ty, IC, CxtI) &&
311 canEvaluateTruncated(I->getOperand(1), Ty, IC, CxtI);
323 llvm::computeKnownBits(I->getOperand(1), IC.getDataLayout());
326 IC.MaskedValueIsZero(I->getOperand(0), ShiftedBits, 0, CxtI)) {
327 return canEvaluateTruncated(I->getOperand(0), Ty, IC, CxtI) &&
328 canEvaluateTruncated(I->getOperand(1), Ty, IC, CxtI);
341 llvm::computeKnownBits(I->getOperand(1), IC.getDataLayout());
344 ShiftedBits < IC.ComputeNumSignBits(I->getOperand(0), 0, CxtI))
345 return canEvaluateTruncated(I->getOperand(0), Ty, IC, CxtI) &&
346 canEvaluateTruncated(I->getOperand(1), Ty, IC, CxtI);
359 return canEvaluateTruncated(SI->getTrueValue(), Ty, IC, CxtI) &&
360 canEvaluateTruncated(SI->getFalseValue(), Ty, IC, CxtI);
368 if (!canEvaluateTruncated(IncValue, Ty, IC, CxtI))
385 return canEvaluateTruncated(I->getOperand(0), Ty, IC, CxtI) &&
386 canEvaluateTruncated(I->getOperand(1), Ty, IC, CxtI);
402 InstCombinerImpl &IC) {
429 VecInput = IC.Builder.CreateBitCast(VecInput, VecType, "bc");
433 if (IC.getDataLayout().isBigEndian())
436 return ExtractElementInst::Create(VecInput, IC.Builder.getInt32(Elt));
1026 InstCombinerImpl &IC, Instruction *CxtI) {
1046 if (!canEvaluateZExtd(I->getOperand(0), Ty, BitsToClear, IC, CxtI) ||
1047 !canEvaluateZExtd(I->getOperand(1), Ty, Tmp, IC, CxtI))
1059 if (IC.MaskedValueIsZero(I->getOperand(1),
1078 if (!canEvaluateZExtd(I->getOperand(0), Ty, BitsToClear, IC, CxtI))
1091 if (!canEvaluateZExtd(I->getOperand(0), Ty, BitsToClear, IC, CxtI))
1102 if (!canEvaluateZExtd(I->getOperand(1), Ty, Tmp, IC, CxtI) ||
1103 !canEvaluateZExtd(I->getOperand(2), Ty, BitsToClear, IC, CxtI) ||
1115 if (!canEvaluateZExtd(PN->getIncomingValue(0), Ty, BitsToClear, IC, CxtI))
1118 if (!canEvaluateZExtd(PN->getIncomingValue(i), Ty, Tmp, IC, CxtI) ||
1663 static bool isKnownExactCastIntToFP(CastInst &I, InstCombinerImpl &IC) {
1700 KnownBits SrcKnown = IC.computeKnownBits(Src, 0, &I);
1954 static Instruction *foldFPtoI(Instruction &FI, InstCombiner &IC) {
1960 IC.getSimplifyQuery().getWithInstruction(&FI));
1962 return IC.replaceInstUsesWith(FI, ConstantInt::getNullValue(FI.getType()));
2113 InstCombinerImpl &IC) {
2131 InVal = IC.Builder.CreateBitCast(InVal, SrcTy);
2134 bool IsBigEndian = IC.getDataLayout().isBigEndian();
2315 InstCombinerImpl &IC) {
2322 IC.getDataLayout().isBigEndian()))
2332 Result = IC.Builder.CreateInsertElement(Result, Elements[i],
2333 IC.Builder.getInt32(i));
2344 InstCombinerImpl &IC) {
2356 auto *NewBC = IC.Builder.CreateBitCast(VecOp, NewVecType, "bc");