Lines Matching defs:Or
791 /// Or
795 /// Or
804 /// Or
1261 return Builder.CreateBinOp(IsAnd ? Instruction::And : Instruction::Or, Cmp0,
1552 case Instruction::Or:
1613 assert((Opcode == Instruction::And || Opcode == Instruction::Or) &&
1658 assert((Opcode == Instruction::And || Opcode == Instruction::Or) &&
1663 (Opcode == Instruction::And) ? Instruction::Or : Instruction::And;
1869 assert(I.getOpcode() == Instruction::Or);
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;
1993 return (Opcode == Instruction::Or)
2003 return (Opcode == Instruction::Or)
2026 if (Opcode == Instruction::Or && Op0->hasOneUse() &&
2033 Value *Or = cast<BinaryOperator>(X)->getOperand(0);
2034 return BinaryOperator::CreateNot(Builder.CreateAnd(Or, Y));
2065 return (Opcode == Instruction::Or)
2149 case Instruction::Or:
2436 case Instruction::Or:
2849 InstCombinerImpl::convertOrOfShiftsToFunnelShift(Instruction &Or) {
2852 assert(Or.getOpcode() == BinaryOperator::Or && "Expecting or instruction");
2854 unsigned Width = Or.getType()->getScalarSizeInBits();
2857 if (!match(Or.getOperand(0), m_Instruction(Or0)) ||
2858 !match(Or.getOperand(1), m_Instruction(Or1)))
2909 KnownBits KnownL = computeKnownBits(L, /*Depth*/ 0, &Or);
3002 !match(Y, m_Specific(ZextHigh)) || !DT.dominates(U, &Or))
3028 static Instruction *matchFunnelShift(Instruction &Or, InstCombinerImpl &IC) {
3029 if (auto Opt = IC.convertOrOfShiftsToFunnelShift(Or)) {
3031 Function *F = Intrinsic::getDeclaration(Or.getModule(), IID, Or.getType());
3039 static Instruction *matchOrConcat(Instruction &Or,
3041 assert(Or.getOpcode() == Instruction::Or && "bswap requires an 'or'");
3042 Value *Op0 = Or.getOperand(0), *Op1 = Or.getOperand(1);
3043 Type *Ty = Or.getType();
3070 Function *F = Intrinsic::getDeclaration(Or.getModule(), id, Ty);
3479 assert(I.getOpcode() == Instruction::Or &&
3574 Value *Or = Builder.CreateOr(X, Y);
3575 return BinaryOperator::CreateXor(Or, ConstantInt::get(Ty, *CV));
3632 Value *Or = Builder.CreateOr(X, *C2 | *C3, "bitfield");
3634 return BinaryOperator::CreateAnd(Or, C01);
4181 if (Value *OrICmp = simplifyBinOp(Instruction::Or, LHS, RHS, SQ)) {
4371 match(&I, m_LogicalAnd()) ? Instruction::Or : Instruction::And;
4411 match(&I, m_LogicalAnd()) ? Instruction::Or : Instruction::And;
4706 Value *Or = Builder.CreateOr(X, ConstantExpr::getNot(C2));
4707 return BinaryOperator::CreateXor(Or, ConstantExpr::getNot(C1));