Lines Matching defs:And
801 Value *And = Builder.CreateAnd(Op, Pow2);
802 return Builder.CreateICmp(Pred, And, Op);
823 /// And X is checking that some bit in that same mask is zero.
838 assert(CxtI.getOpcode() == Instruction::And);
892 // And the other icmp needs to be decomposable into a bit test.
1310 return Builder.CreateBinOp(IsAnd ? Instruction::And : Instruction::Or, Cmp0,
1593 case Instruction::And:
1657 assert((Opcode == Instruction::And || Opcode == Instruction::Or) &&
1668 FCmpInst::Predicate NanPred = Opcode == Instruction::And ? FCmpInst::FCMP_ORD
1698 assert((Opcode == Instruction::And || Opcode == Instruction::Or) &&
1703 (Opcode == Instruction::And) ? Instruction::Or : Instruction::And;
1882 assert(I.getOpcode() == Instruction::And);
1949 Instruction *InstCombinerImpl::narrowMaskedBinOp(BinaryOperator &And) {
1955 Value *Op0 = And.getOperand(0), *Op1 = And.getOperand(1);
1968 Type *Ty = And.getType();
1988 /// Try folding relatively complex patterns for both And and Or operations
1989 /// with all And and Or swapped.
1993 assert(Opcode == Instruction::And || Opcode == Instruction::Or);
1997 (Opcode == Instruction::And) ? Instruction::Or : Instruction::And;
2183 case Instruction::And:
2353 Instruction::BinaryOps Opcode = IsAnd ? Instruction::And : Instruction::Or;
2441 Value *And = Builder.CreateAnd(X, Op1);
2442 And->takeName(Op0);
2443 return BinaryOperator::CreateXor(And, NewC);
2455 Value *And = Builder.CreateAnd(X, ConstantInt::get(Ty, Together ^ *C));
2456 And->takeName(Op0);
2457 return BinaryOperator::CreateOr(And, ConstantInt::get(Ty, Together));
2523 Value *And = Builder.CreateAnd(BinOp, TruncC);
2524 return new ZExtInst(And, Ty);
3788 Instruction *And;
3790 match(Op0, m_Not(m_CombineAnd(m_Instruction(And),
3792 return BinaryOperator::CreateNot(Builder.CreateAnd(And, B));
3794 match(Op0, m_Not(m_CombineAnd(m_Instruction(And),
3796 return BinaryOperator::CreateNot(Builder.CreateAnd(And, A));
4214 if (Value *AndICmp = simplifyBinOp(Instruction::And, LHS, RHS, SQ)) {
4401 match(&I, m_LogicalAnd()) ? Instruction::Or : Instruction::And;
4408 // And can the operands be adapted?
4441 match(&I, m_LogicalAnd()) ? Instruction::Or : Instruction::And;
4457 // And can our users be adapted?
4733 Value *And = Builder.CreateAnd(
4736 And, Constant::mergeUndefsWith(ConstantExpr::getXor(C1, C2), C1));
4742 Value *And = Builder.CreateAnd(X, ConstantExpr::getNot(C2));
4743 return BinaryOperator::CreateXor(And, ConstantExpr::getNot(C1));