reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1724 if (Value *V = SimplifyAndInst(I.getOperand(0), I.getOperand(1), 1724 if (Value *V = SimplifyAndInst(I.getOperand(0), I.getOperand(1), 1725 SQ.getWithInstruction(&I))) 1726 return replaceInstUsesWith(I, V); 1728 if (SimplifyAssociativeOrCommutative(I)) 1729 return &I; 1731 if (Instruction *X = foldVectorBinop(I)) 1736 if (SimplifyDemandedInstructionBits(I)) 1737 return &I; 1740 if (Instruction *Xor = foldAndToXor(I, Builder)) 1744 if (Value *V = SimplifyUsingDistributiveLaws(I)) 1745 return replaceInstUsesWith(I, V); 1747 if (Value *V = SimplifyBSwap(I, Builder)) 1748 return replaceInstUsesWith(I, V); 1750 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); 1750 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); 1758 Value *IsZero = Builder.CreateICmpEQ(X, ConstantInt::get(I.getType(), 0)); 1759 return new ZExtInst(IsZero, I.getType()); 1765 Constant *NewC = ConstantInt::get(I.getType(), *C & *XorC); 1780 Value *And = Builder.CreateAnd(X, ConstantInt::get(I.getType(), 1783 return BinaryOperator::CreateOr(And, ConstantInt::get(I.getType(), 1792 if (MaskedValueIsZero(X, NotAndMask, 0, &I)) { 1798 if (!isa<Constant>(Y) && MaskedValueIsZero(Y, NotAndMask, 0, &I)) { 1840 return new ZExtInst(And, I.getType()); 1846 if (Instruction *Res = OptAndOp(Op0I, Op0CI, AndRHS, I)) 1859 Value *NewCast = Builder.CreateTrunc(X, I.getType(), "and.shrunk"); 1860 Constant *C3 = ConstantExpr::getTrunc(YC, I.getType()); 1867 if (Instruction *Z = narrowMaskedBinOp(I)) 1870 if (Instruction *FoldedLogic = foldBinOpIntoSelectOrPhi(I)) 1873 if (Instruction *DeMorgan = matchDeMorgansLaws(I, Builder)) 1918 if (Value *Res = foldAndOfICmps(LHS, RHS, I)) 1919 return replaceInstUsesWith(I, Res); 1926 if (Value *Res = foldAndOfICmps(LHS, Cmp, I)) 1927 return replaceInstUsesWith(I, Builder.CreateAnd(Res, Y)); 1929 if (Value *Res = foldAndOfICmps(LHS, Cmp, I)) 1930 return replaceInstUsesWith(I, Builder.CreateAnd(Res, X)); 1934 if (Value *Res = foldAndOfICmps(Cmp, RHS, I)) 1935 return replaceInstUsesWith(I, Builder.CreateAnd(Res, Y)); 1937 if (Value *Res = foldAndOfICmps(Cmp, RHS, I)) 1938 return replaceInstUsesWith(I, Builder.CreateAnd(Res, X)); 1942 if (FCmpInst *LHS = dyn_cast<FCmpInst>(I.getOperand(0))) 1943 if (FCmpInst *RHS = dyn_cast<FCmpInst>(I.getOperand(1))) 1945 return replaceInstUsesWith(I, Res); 1947 if (Instruction *FoldedFCmps = reassociateFCmps(I, Builder)) 1950 if (Instruction *CastedAnd = foldCastedBitwiseLogic(I)) 1957 return SelectInst::Create(A, Op1, Constant::getNullValue(I.getType())); 1960 return SelectInst::Create(A, Op0, Constant::getNullValue(I.getType())); 1966 Type *Ty = I.getType(); 1967 if (match(&I, m_c_And(m_OneUse(m_AShr(m_NSWSub(m_Value(Y), m_Value(X)),