Lines Matching defs:Or

813 /// Or
817 /// Or
826 /// Or
1310 return Builder.CreateBinOp(IsAnd ? Instruction::And : Instruction::Or, Cmp0,
1596 case Instruction::Or:
1657 assert((Opcode == Instruction::And || Opcode == Instruction::Or) &&
1698 assert((Opcode == Instruction::And || Opcode == Instruction::Or) &&
1703 (Opcode == Instruction::And) ? Instruction::Or : Instruction::And;
1908 assert(I.getOpcode() == Instruction::Or);
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;
2032 return (Opcode == Instruction::Or)
2042 return (Opcode == Instruction::Or)
2065 if (Opcode == Instruction::Or && Op0->hasOneUse() &&
2072 Value *Or = cast<BinaryOperator>(X)->getOperand(0);
2073 return BinaryOperator::CreateNot(Builder.CreateAnd(Or, Y));
2104 return (Opcode == Instruction::Or)
2188 case Instruction::Or:
2353 Instruction::BinaryOps Opcode = IsAnd ? Instruction::And : Instruction::Or;
2497 case Instruction::Or:
2879 InstCombinerImpl::convertOrOfShiftsToFunnelShift(Instruction &Or) {
2882 assert(Or.getOpcode() == BinaryOperator::Or && "Expecting or instruction");
2884 unsigned Width = Or.getType()->getScalarSizeInBits();
2887 if (!match(Or.getOperand(0), m_Instruction(Or0)) ||
2888 !match(Or.getOperand(1), m_Instruction(Or1)))
2939 KnownBits KnownL = computeKnownBits(L, /*Depth*/ 0, &Or);
3032 !match(Y, m_Specific(ZextHigh)) || !DT.dominates(U, &Or))
3058 static Instruction *matchFunnelShift(Instruction &Or, InstCombinerImpl &IC) {
3059 if (auto Opt = IC.convertOrOfShiftsToFunnelShift(Or)) {
3062 Intrinsic::getOrInsertDeclaration(Or.getModule(), IID, Or.getType());
3070 static Instruction *matchOrConcat(Instruction &Or,
3072 assert(Or.getOpcode() == Instruction::Or && "bswap requires an 'or'");
3073 Value *Op0 = Or.getOperand(0), *Op1 = Or.getOperand(1);
3074 Type *Ty = Or.getType();
3532 assert(I.getOpcode() == Instruction::Or &&
3638 Value *Or = Builder.CreateOr(X, Y);
3639 return BinaryOperator::CreateXor(Or, ConstantInt::get(Ty, *CV));
3696 Value *Or = Builder.CreateOr(X, *C2 | *C3, "bitfield");
3698 return BinaryOperator::CreateAnd(Or, C01);
4211 if (Value *OrICmp = simplifyBinOp(Instruction::Or, LHS, RHS, SQ)) {
4401 match(&I, m_LogicalAnd()) ? Instruction::Or : Instruction::And;
4441 match(&I, m_LogicalAnd()) ? Instruction::Or : Instruction::And;
4747 Value *Or = Builder.CreateOr(X, ConstantExpr::getNot(C2));
4748 return BinaryOperator::CreateXor(Or, ConstantExpr::getNot(C1));