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

References

lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
 2799   assert(I.getOpcode() == Instruction::Xor && I.getOperand(0) == LHS &&
 2802   if (predicatesFoldable(LHS->getPredicate(), RHS->getPredicate())) {
 2803     if (LHS->getOperand(0) == RHS->getOperand(1) &&
 2804         LHS->getOperand(1) == RHS->getOperand(0))
 2805       LHS->swapOperands();
 2806     if (LHS->getOperand(0) == RHS->getOperand(0) &&
 2807         LHS->getOperand(1) == RHS->getOperand(1)) {
 2809       Value *Op0 = LHS->getOperand(0), *Op1 = LHS->getOperand(1);
 2809       Value *Op0 = LHS->getOperand(0), *Op1 = LHS->getOperand(1);
 2810       unsigned Code = getICmpCode(LHS) ^ getICmpCode(RHS);
 2811       bool IsSigned = LHS->isSigned() || RHS->isSigned();
 2819   ICmpInst::Predicate PredL = LHS->getPredicate(), PredR = RHS->getPredicate();
 2820   Value *LHS0 = LHS->getOperand(0), *LHS1 = LHS->getOperand(1);
 2820   Value *LHS0 = LHS->getOperand(0), *LHS1 = LHS->getOperand(1);
 2822   if ((LHS->hasOneUse() || RHS->hasOneUse()) &&
 2851   if (Value *OrICmp = SimplifyBinOp(Instruction::Or, LHS, RHS, SQ)) {
 2854     if (Value *AndICmp = SimplifyBinOp(Instruction::And, LHS, RHS, SQ)) {
 2857       if (OrICmp == LHS && AndICmp == RHS) {
 2859         X = LHS;
 2862       if (OrICmp == RHS && AndICmp == LHS) {
 2865         Y = LHS;
 2885         return Builder.CreateAnd(LHS, RHS);