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

References

lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
 2967   if (Value *V = SimplifyXorInst(I.getOperand(0), I.getOperand(1),
 2967   if (Value *V = SimplifyXorInst(I.getOperand(0), I.getOperand(1),
 2968                                  SQ.getWithInstruction(&I)))
 2969     return replaceInstUsesWith(I, V);
 2971   if (SimplifyAssociativeOrCommutative(I))
 2972     return &I;
 2974   if (Instruction *X = foldVectorBinop(I))
 2977   if (Instruction *NewXor = foldXorToXor(I, Builder))
 2981   if (Value *V = SimplifyUsingDistributiveLaws(I))
 2982     return replaceInstUsesWith(I, V);
 2986   if (SimplifyDemandedInstructionBits(I))
 2987     return &I;
 2989   if (Value *V = SimplifyBSwap(I, Builder))
 2990     return replaceInstUsesWith(I, V);
 2992   Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
 2992   Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
 2999   if (match(&I, m_c_Xor(m_c_And(m_Not(m_Value(M)), m_Value()),
 3010   if (match(&I, m_Not(m_OneUse(m_c_And(m_Not(m_Value(X)), m_Value(Y)))))) {
 3016   if (match(&I, m_Not(m_OneUse(m_c_Or(m_Not(m_Value(X)), m_Value(Y)))))) {
 3021   if (Instruction *Xor = visitMaskedMerge(I, Builder))
 3026   if (match(&I, m_Not(m_BinOp(NotVal)))) {
 3092   if (match(&I, m_Not(m_OneUse(m_Cmp(Pred, m_Value(), m_Value()))))) {
 3094     return replaceInstUsesWith(I, Op0);
 3104         Constant *NewC = ConstantInt::get(I.getType(), *C + *RHSC);
 3109         Constant *NewC = ConstantInt::get(I.getType(), *C + *RHSC);
 3115           MaskedValueIsZero(X, *C, 0, &I)) {
 3116         Constant *NewC = ConstantInt::get(I.getType(), *C ^ *RHSC);
 3118         I.setOperand(0, X);
 3119         I.setOperand(1, NewC);
 3120         return &I;
 3144             cast<Instruction>(Opnd0)->setDebugLoc(I.getDebugLoc());
 3154   if (Instruction *FoldedLogic = foldBinOpIntoSelectOrPhi(I))
 3181   if (match(&I, m_c_Xor(m_OneUse(m_Xor(m_Value(A), m_Value(B))),
 3187   if (match(&I, m_c_Xor(m_OneUse(m_Xor(m_Value(A), m_Value(B))),
 3207   if (auto *LHS = dyn_cast<ICmpInst>(I.getOperand(0)))
 3208     if (auto *RHS = dyn_cast<ICmpInst>(I.getOperand(1)))
 3209       if (Value *V = foldXorOfICmps(LHS, RHS, I))
 3210         return replaceInstUsesWith(I, V);
 3212   if (Instruction *CastedXor = foldCastedBitwiseLogic(I))
 3224   Type *Ty = I.getType();
 3284   if (Instruction *NewXor = sinkNotIntoXor(I, Builder))