reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Analysis/InstructionSimplify.cpp
 5240   const SimplifyQuery Q = SQ.CxtI ? SQ : SQ.getWithInstruction(I);
 5243   switch (I->getOpcode()) {
 5245     Result = ConstantFoldInstruction(I, Q.DL, Q.TLI);
 5248     Result = SimplifyFNegInst(I->getOperand(0), I->getFastMathFlags(), Q);
 5248     Result = SimplifyFNegInst(I->getOperand(0), I->getFastMathFlags(), Q);
 5251     Result = SimplifyFAddInst(I->getOperand(0), I->getOperand(1),
 5251     Result = SimplifyFAddInst(I->getOperand(0), I->getOperand(1),
 5252                               I->getFastMathFlags(), Q);
 5256         SimplifyAddInst(I->getOperand(0), I->getOperand(1),
 5256         SimplifyAddInst(I->getOperand(0), I->getOperand(1),
 5257                         Q.IIQ.hasNoSignedWrap(cast<BinaryOperator>(I)),
 5258                         Q.IIQ.hasNoUnsignedWrap(cast<BinaryOperator>(I)), Q);
 5261     Result = SimplifyFSubInst(I->getOperand(0), I->getOperand(1),
 5261     Result = SimplifyFSubInst(I->getOperand(0), I->getOperand(1),
 5262                               I->getFastMathFlags(), Q);
 5266         SimplifySubInst(I->getOperand(0), I->getOperand(1),
 5266         SimplifySubInst(I->getOperand(0), I->getOperand(1),
 5267                         Q.IIQ.hasNoSignedWrap(cast<BinaryOperator>(I)),
 5268                         Q.IIQ.hasNoUnsignedWrap(cast<BinaryOperator>(I)), Q);
 5271     Result = SimplifyFMulInst(I->getOperand(0), I->getOperand(1),
 5271     Result = SimplifyFMulInst(I->getOperand(0), I->getOperand(1),
 5272                               I->getFastMathFlags(), Q);
 5275     Result = SimplifyMulInst(I->getOperand(0), I->getOperand(1), Q);
 5275     Result = SimplifyMulInst(I->getOperand(0), I->getOperand(1), Q);
 5278     Result = SimplifySDivInst(I->getOperand(0), I->getOperand(1), Q);
 5278     Result = SimplifySDivInst(I->getOperand(0), I->getOperand(1), Q);
 5281     Result = SimplifyUDivInst(I->getOperand(0), I->getOperand(1), Q);
 5281     Result = SimplifyUDivInst(I->getOperand(0), I->getOperand(1), Q);
 5284     Result = SimplifyFDivInst(I->getOperand(0), I->getOperand(1),
 5284     Result = SimplifyFDivInst(I->getOperand(0), I->getOperand(1),
 5285                               I->getFastMathFlags(), Q);
 5288     Result = SimplifySRemInst(I->getOperand(0), I->getOperand(1), Q);
 5288     Result = SimplifySRemInst(I->getOperand(0), I->getOperand(1), Q);
 5291     Result = SimplifyURemInst(I->getOperand(0), I->getOperand(1), Q);
 5291     Result = SimplifyURemInst(I->getOperand(0), I->getOperand(1), Q);
 5294     Result = SimplifyFRemInst(I->getOperand(0), I->getOperand(1),
 5294     Result = SimplifyFRemInst(I->getOperand(0), I->getOperand(1),
 5295                               I->getFastMathFlags(), Q);
 5299         SimplifyShlInst(I->getOperand(0), I->getOperand(1),
 5299         SimplifyShlInst(I->getOperand(0), I->getOperand(1),
 5300                         Q.IIQ.hasNoSignedWrap(cast<BinaryOperator>(I)),
 5301                         Q.IIQ.hasNoUnsignedWrap(cast<BinaryOperator>(I)), Q);
 5304     Result = SimplifyLShrInst(I->getOperand(0), I->getOperand(1),
 5304     Result = SimplifyLShrInst(I->getOperand(0), I->getOperand(1),
 5305                               Q.IIQ.isExact(cast<BinaryOperator>(I)), Q);
 5308     Result = SimplifyAShrInst(I->getOperand(0), I->getOperand(1),
 5308     Result = SimplifyAShrInst(I->getOperand(0), I->getOperand(1),
 5309                               Q.IIQ.isExact(cast<BinaryOperator>(I)), Q);
 5312     Result = SimplifyAndInst(I->getOperand(0), I->getOperand(1), Q);
 5312     Result = SimplifyAndInst(I->getOperand(0), I->getOperand(1), Q);
 5315     Result = SimplifyOrInst(I->getOperand(0), I->getOperand(1), Q);
 5315     Result = SimplifyOrInst(I->getOperand(0), I->getOperand(1), Q);
 5318     Result = SimplifyXorInst(I->getOperand(0), I->getOperand(1), Q);
 5318     Result = SimplifyXorInst(I->getOperand(0), I->getOperand(1), Q);
 5321     Result = SimplifyICmpInst(cast<ICmpInst>(I)->getPredicate(),
 5322                               I->getOperand(0), I->getOperand(1), Q);
 5322                               I->getOperand(0), I->getOperand(1), Q);
 5326         SimplifyFCmpInst(cast<FCmpInst>(I)->getPredicate(), I->getOperand(0),
 5326         SimplifyFCmpInst(cast<FCmpInst>(I)->getPredicate(), I->getOperand(0),
 5327                          I->getOperand(1), I->getFastMathFlags(), Q);
 5327                          I->getOperand(1), I->getFastMathFlags(), Q);
 5330     Result = SimplifySelectInst(I->getOperand(0), I->getOperand(1),
 5330     Result = SimplifySelectInst(I->getOperand(0), I->getOperand(1),
 5331                                 I->getOperand(2), Q);
 5334     SmallVector<Value *, 8> Ops(I->op_begin(), I->op_end());
 5334     SmallVector<Value *, 8> Ops(I->op_begin(), I->op_end());
 5335     Result = SimplifyGEPInst(cast<GetElementPtrInst>(I)->getSourceElementType(),
 5340     InsertValueInst *IV = cast<InsertValueInst>(I);
 5347     auto *IE = cast<InsertElementInst>(I);
 5353     auto *EVI = cast<ExtractValueInst>(I);
 5359     auto *EEI = cast<ExtractElementInst>(I);
 5365     auto *SVI = cast<ShuffleVectorInst>(I);
 5371     Result = SimplifyPHINode(cast<PHINode>(I), Q);
 5374     Result = SimplifyCall(cast<CallInst>(I), Q);
 5381         SimplifyCastInst(I->getOpcode(), I->getOperand(0), I->getType(), Q);
 5381         SimplifyCastInst(I->getOpcode(), I->getOperand(0), I->getType(), Q);
 5381         SimplifyCastInst(I->getOpcode(), I->getOperand(0), I->getType(), Q);
 5391   if (!Result && I->getType()->isIntOrIntVectorTy()) {
 5392     KnownBits Known = computeKnownBits(I, Q.DL, /*Depth*/ 0, Q.AC, I, Q.DT, ORE);
 5392     KnownBits Known = computeKnownBits(I, Q.DL, /*Depth*/ 0, Q.AC, I, Q.DT, ORE);
 5394       Result = ConstantInt::get(I->getType(), Known.getConstant());
 5400   return Result == I ? UndefValue::get(I->getType()) : Result;
 5400   return Result == I ? UndefValue::get(I->getType()) : Result;