Lines Matching defs:And
739 Value *And = Builder.CreateAnd(Op, Pow2);
740 return Builder.CreateICmp(Pred, And, Op);
801 /// And X is checking that some bit in that same mask is zero.
816 assert(CxtI.getOpcode() == Instruction::And);
866 // And the other icmp needs to be decomposable into a bit test.
1261 return Builder.CreateBinOp(IsAnd ? Instruction::And : Instruction::Or, Cmp0,
1549 case Instruction::And:
1613 assert((Opcode == Instruction::And || Opcode == Instruction::Or) &&
1625 FCmpInst::Predicate NanPred = Opcode == Instruction::And ? FCmpInst::FCMP_ORD
1658 assert((Opcode == Instruction::And || Opcode == Instruction::Or) &&
1663 (Opcode == Instruction::And) ? Instruction::Or : Instruction::And;
1843 assert(I.getOpcode() == Instruction::And);
1910 Instruction *InstCombinerImpl::narrowMaskedBinOp(BinaryOperator &And) {
1916 Value *Op0 = And.getOperand(0), *Op1 = And.getOperand(1);
1929 Type *Ty = And.getType();
1949 /// Try folding relatively complex patterns for both And and Or operations
1950 /// with all And and Or swapped.
1954 assert(Opcode == Instruction::And || Opcode == Instruction::Or);
1958 (Opcode == Instruction::And) ? Instruction::Or : Instruction::And;
2144 case Instruction::And:
2380 Value *And = Builder.CreateAnd(X, Op1);
2381 And->takeName(Op0);
2382 return BinaryOperator::CreateXor(And, NewC);
2394 Value *And = Builder.CreateAnd(X, ConstantInt::get(Ty, Together ^ *C));
2395 And->takeName(Op0);
2396 return BinaryOperator::CreateOr(And, ConstantInt::get(Ty, Together));
2462 Value *And = Builder.CreateAnd(BinOp, TruncC);
2463 return new ZExtInst(And, Ty);
3724 Instruction *And;
3726 match(Op0, m_Not(m_CombineAnd(m_Instruction(And),
3728 return BinaryOperator::CreateNot(Builder.CreateAnd(And, B));
3730 match(Op0, m_Not(m_CombineAnd(m_Instruction(And),
3732 return BinaryOperator::CreateNot(Builder.CreateAnd(And, A));
4184 if (Value *AndICmp = simplifyBinOp(Instruction::And, LHS, RHS, SQ)) {
4371 match(&I, m_LogicalAnd()) ? Instruction::Or : Instruction::And;
4378 // And can the operands be adapted?
4411 match(&I, m_LogicalAnd()) ? Instruction::Or : Instruction::And;
4427 // And can our users be adapted?
4692 Value *And = Builder.CreateAnd(
4695 And, Constant::mergeUndefsWith(ConstantExpr::getXor(C1, C2), C1));
4701 Value *And = Builder.CreateAnd(X, ConstantExpr::getNot(C2));
4702 return BinaryOperator::CreateXor(And, ConstantExpr::getNot(C1));