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));
452 InstCombinerImpl &IC) {
479 uint64_t NewIdx = IC.getDataLayout().isBigEndian()
491 NewIdx = IC.getDataLayout().isBigEndian() ? (NewIdx - IdxOfs)
500 Value *BitCast = IC.Builder.CreateBitCast(VecOp, BitCastTo);
501 return ExtractElementInst::Create(BitCast, IC.Builder.getInt32(NewIdx));
1067 InstCombinerImpl &IC, Instruction *CxtI) {
1087 if (!canEvaluateZExtd(I->getOperand(0), Ty, BitsToClear, IC, CxtI) ||
1088 !canEvaluateZExtd(I->getOperand(1), Ty, Tmp, IC, CxtI))
1100 if (IC.MaskedValueIsZero(I->getOperand(1),
1119 if (!canEvaluateZExtd(I->getOperand(0), Ty, BitsToClear, IC, CxtI))
1132 if (!canEvaluateZExtd(I->getOperand(0), Ty, BitsToClear, IC, CxtI))
1143 if (!canEvaluateZExtd(I->getOperand(1), Ty, Tmp, IC, CxtI) ||
1144 !canEvaluateZExtd(I->getOperand(2), Ty, BitsToClear, IC, CxtI) ||
1156 if (!canEvaluateZExtd(PN->getIncomingValue(0), Ty, BitsToClear, IC, CxtI))
1159 if (!canEvaluateZExtd(PN->getIncomingValue(i), Ty, Tmp, IC, CxtI) ||
1704 static bool isKnownExactCastIntToFP(CastInst &I, InstCombinerImpl &IC) {
1741 KnownBits SrcKnown = IC.computeKnownBits(Src, 0, &I);
1996 static Instruction *foldFPtoI(Instruction &FI, InstCombiner &IC) {
2002 IC.getSimplifyQuery().getWithInstruction(&FI));
2004 return IC.replaceInstUsesWith(FI, ConstantInt::getNullValue(FI.getType()));
2152 InstCombinerImpl &IC) {
2170 InVal = IC.Builder.CreateBitCast(InVal, SrcTy);
2173 bool IsBigEndian = IC.getDataLayout().isBigEndian();
2354 InstCombinerImpl &IC) {
2366 IC.getDataLayout().isBigEndian()))
2376 Result = IC.Builder.CreateInsertElement(Result, Elements[i],
2377 IC.Builder.getInt32(i));
2388 InstCombinerImpl &IC) {
2400 auto *NewBC = IC.Builder.CreateBitCast(VecOp, NewVecType, "bc");