Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:ICmpInst

99   ICmpInst::Predicate NewPred;
278 ICmpInst::ICMP_SLE:ICmpInst::ICMP_ULE), Lo, Hi))->getZExtValue() &&
287 ICmpInst::Predicate pred = (isSigned ?
288 ICmpInst::ICMP_SLT : ICmpInst::ICMP_ULT);
305 ICmpInst::Predicate pred = (isSigned ?
306 ICmpInst::ICMP_SGT : ICmpInst::ICMP_UGT);
429 ICmpInst::Predicate SCC)
434 bool icmp_eq = (SCC == ICmpInst::ICMP_EQ);
498 static bool decomposeBitTestICmp(const ICmpInst *I, ICmpInst::Predicate &Pred,
501 if (I->getPredicate() == ICmpInst::ICMP_SLT)
507 Pred = ICmpInst::ICMP_NE;
513 if (I->getPredicate() == ICmpInst::ICMP_SGT)
519 Pred = ICmpInst::ICMP_EQ;
534 ICmpInst *LHS, ICmpInst *RHS,
535 ICmpInst::Predicate &LHSCC,
536 ICmpInst::Predicate &RHSCC) {
567 if (!ICmpInst::isEquality(LHSCC))
592 if (!ICmpInst::isEquality(RHSCC))
625 static Value* foldLogOpOfMaskedICmps(ICmpInst *LHS, ICmpInst *RHS,
626 ICmpInst::Predicate NEWCC,
629 ICmpInst::Predicate LHSCC = LHS->getPredicate(), RHSCC = RHS->getPredicate();
633 assert(ICmpInst::isEquality(LHSCC) && ICmpInst::isEquality(RHSCC) &&
636 if (NEWCC == ICmpInst::ICMP_NE)
704 Value *InstCombiner::FoldAndOfICmps(ICmpInst *LHS, ICmpInst *RHS) {
705 ICmpInst::Predicate LHSCC = LHS->getPredicate(), RHSCC = RHS->getPredicate();
722 if (Value *V = foldLogOpOfMaskedICmps(LHS, RHS, ICmpInst::ICMP_EQ, Builder))
734 if (LHSCC == ICmpInst::ICMP_ULT &&
741 if (LHSCC == ICmpInst::ICMP_EQ && LHSCst->isZero()) {
750 if (LHSCC == ICmpInst::ICMP_EQ && LHSCC == RHSCC &&
787 if (LHSCC == ICmpInst::ICMP_UGE || LHSCC == ICmpInst::ICMP_ULE ||
788 RHSCC == ICmpInst::ICMP_UGE || RHSCC == ICmpInst::ICMP_ULE ||
789 LHSCC == ICmpInst::ICMP_SGE || LHSCC == ICmpInst::ICMP_SLE ||
790 RHSCC == ICmpInst::ICMP_SGE || RHSCC == ICmpInst::ICMP_SLE)
810 (ICmpInst::isEquality(LHSCC) &&
832 case ICmpInst::ICMP_EQ:
835 case ICmpInst::ICMP_NE: // (X == 13 & X != 15) -> X == 13
836 case ICmpInst::ICMP_ULT: // (X == 13 & X < 15) -> X == 13
837 case ICmpInst::ICMP_SLT: // (X == 13 & X < 15) -> X == 13
840 case ICmpInst::ICMP_NE:
843 case ICmpInst::ICMP_ULT:
847 case ICmpInst::ICMP_SLT:
851 case ICmpInst::ICMP_EQ: // (X != 13 & X == 15) -> X == 15
852 case ICmpInst::ICMP_UGT: // (X != 13 & X u> 15) -> X u> 15
853 case ICmpInst::ICMP_SGT: // (X != 13 & X s> 15) -> X s> 15
855 case ICmpInst::ICMP_NE:
864 case ICmpInst::ICMP_ULT:
867 case ICmpInst::ICMP_EQ: // (X u< 13 & X == 15) -> false
868 case ICmpInst::ICMP_UGT: // (X u< 13 & X u> 15) -> false
870 case ICmpInst::ICMP_SGT: // (X u< 13 & X s> 15) -> no change
872 case ICmpInst::ICMP_NE: // (X u< 13 & X != 15) -> X u< 13
873 case ICmpInst::ICMP_ULT: // (X u< 13 & X u< 15) -> X u< 13
875 case ICmpInst::ICMP_SLT: // (X u< 13 & X s< 15) -> no change
879 case ICmpInst::ICMP_SLT:
882 case ICmpInst::ICMP_UGT: // (X s< 13 & X u> 15) -> no change
884 case ICmpInst::ICMP_NE: // (X s< 13 & X != 15) -> X < 13
885 case ICmpInst::ICMP_SLT: // (X s< 13 & X s< 15) -> X < 13
887 case ICmpInst::ICMP_ULT: // (X s< 13 & X u< 15) -> no change
891 case ICmpInst::ICMP_UGT:
894 case ICmpInst::ICMP_EQ: // (X u> 13 & X == 15) -> X == 15
895 case ICmpInst::ICMP_UGT: // (X u> 13 & X u> 15) -> X u> 15
897 case ICmpInst::ICMP_SGT: // (X u> 13 & X s> 15) -> no change
899 case ICmpInst::ICMP_NE:
903 case ICmpInst::ICMP_ULT: // (X u> 13 & X u< 15) -> (X-14) <u 1
905 case ICmpInst::ICMP_SLT: // (X u> 13 & X s< 15) -> no change
909 case ICmpInst::ICMP_SGT:
912 case ICmpInst::ICMP_EQ: // (X s> 13 & X == 15) -> X == 15
913 case ICmpInst::ICMP_SGT: // (X s> 13 & X s> 15) -> X s> 15
915 case ICmpInst::ICMP_UGT: // (X s> 13 & X u> 15) -> no change
917 case ICmpInst::ICMP_NE:
921 case ICmpInst::ICMP_SLT: // (X s> 13 & X s< 15) -> (X-14) s< 1
923 case ICmpInst::ICMP_ULT: // (X s> 13 & X u< 15) -> no change
1190 if (ICmpInst *RHS = dyn_cast<ICmpInst>(Op1))
1191 if (ICmpInst *LHS = dyn_cast<ICmpInst>(Op0))
1220 if (ICmpInst *RHS = dyn_cast<ICmpInst>(Op1COp))
1221 if (ICmpInst *LHS = dyn_cast<ICmpInst>(Op0COp))
1459 Value *InstCombiner::FoldOrOfICmps(ICmpInst *LHS, ICmpInst *RHS) {
1460 ICmpInst::Predicate LHSCC = LHS->getPredicate(), RHSCC = RHS->getPredicate();
1478 if (Value *V = foldLogOpOfMaskedICmps(LHS, RHS, ICmpInst::ICMP_NE, Builder))
1489 if (LHSCC == ICmpInst::ICMP_NE && LHSCst->isZero()) {
1497 if (LHSCC == ICmpInst::ICMP_ULT && RHSCC == ICmpInst::ICMP_EQ) {
1509 if (LHSCC == ICmpInst::ICMP_UGE || LHSCC == ICmpInst::ICMP_ULE ||
1510 RHSCC == ICmpInst::ICMP_UGE || RHSCC == ICmpInst::ICMP_ULE ||
1511 LHSCC == ICmpInst::ICMP_SGE || LHSCC == ICmpInst::ICMP_SLE ||
1512 RHSCC == ICmpInst::ICMP_SGE || RHSCC == ICmpInst::ICMP_SLE)
1522 (ICmpInst::isEquality(LHSCC) &&
1544 case ICmpInst::ICMP_EQ:
1547 case ICmpInst::ICMP_EQ:
1565 return Builder->CreateICmp(ICmpInst::ICMP_EQ, And, LHSCst);
1570 case ICmpInst::ICMP_UGT: // (X == 13 | X u> 14) -> no change
1571 case ICmpInst::ICMP_SGT: // (X == 13 | X s> 14) -> no change
1573 case ICmpInst::ICMP_NE: // (X == 13 | X != 15) -> X != 15
1574 case ICmpInst::ICMP_ULT: // (X == 13 | X u< 15) -> X u< 15
1575 case ICmpInst::ICMP_SLT: // (X == 13 | X s< 15) -> X s< 15
1579 case ICmpInst::ICMP_NE:
1582 case ICmpInst::ICMP_EQ: // (X != 13 | X == 15) -> X != 13
1583 case ICmpInst::ICMP_UGT: // (X != 13 | X u> 15) -> X != 13
1584 case ICmpInst::ICMP_SGT: // (X != 13 | X s> 15) -> X != 13
1586 case ICmpInst::ICMP_NE: // (X != 13 | X != 15) -> true
1587 case ICmpInst::ICMP_ULT: // (X != 13 | X u< 15) -> true
1588 case ICmpInst
1591 case ICmpInst::ICMP_ULT:
1594 case ICmpInst::ICMP_EQ: // (X u< 13 | X == 14) -> no change
1596 case ICmpInst::ICMP_UGT: // (X u< 13 | X u> 15) -> (X-13) u> 2
1602 case ICmpInst::ICMP_SGT: // (X u< 13 | X s> 15) -> no change
1604 case ICmpInst::ICMP_NE: // (X u< 13 | X != 15) -> X != 15
1605 case ICmpInst::ICMP_ULT: // (X u< 13 | X u< 15) -> X u< 15
1607 case ICmpInst::ICMP_SLT: // (X u< 13 | X s< 15) -> no change
1611 case ICmpInst::ICMP_SLT:
1614 case ICmpInst::ICMP_EQ: // (X s< 13 | X == 14) -> no change
1616 case ICmpInst::ICMP_SGT: // (X s< 13 | X s> 15) -> (X-13) s> 2
1622 case ICmpInst::ICMP_UGT: // (X s< 13 | X u> 15) -> no change
1624 case ICmpInst::ICMP_NE: // (X s< 13 | X != 15) -> X != 15
1625 case ICmpInst::ICMP_SLT: // (X s< 13 | X s< 15) -> X s< 15
1627 case ICmpInst::ICMP_ULT: // (X s< 13 | X u< 15) -> no change
1631 case ICmpInst::ICMP_UGT:
1634 case ICmpInst::ICMP_EQ: // (X u> 13 | X == 15) -> X u> 13
1635 case ICmpInst::ICMP_UGT: // (X u> 13 | X u> 15) -> X u> 13
1637 case ICmpInst::ICMP_SGT: // (X u> 13 | X s> 15) -> no change
1639 case ICmpInst::ICMP_NE: // (X u> 13 | X != 15) -> true
1640 case ICmpInst::ICMP_ULT: // (X u> 13 | X u< 15) -> true
1642 case ICmpInst::ICMP_SLT: // (X u> 13 | X s< 15) -> no change
1646 case ICmpInst::ICMP_SGT:
1649 case ICmpInst::ICMP_EQ: // (X s> 13 | X == 15) -> X > 13
1650 case ICmpInst::ICMP_SGT: // (X s> 13 | X s> 15) -> X > 13
1652 case ICmpInst::ICMP_UGT: // (X s> 13 | X u> 15) -> no change
1654 case ICmpInst::ICMP_NE: // (X s> 13 | X != 15) -> true
1655 case ICmpInst::ICMP_SLT: // (X s> 13 | X s< 15) -> true
1657 case ICmpInst::ICMP_ULT: // (X s> 13 | X u< 15) -> no change
2009 if (ICmpInst *RHS = dyn_cast<ICmpInst>(I.getOperand(1)))
2010 if (ICmpInst *LHS = dyn_cast<ICmpInst>(I.getOperand(0)))
2029 if ((!isa<ICmpInst>(Op0COp) || !isa<ICmpInst>(Op1COp)) &&
2040 if (ICmpInst *RHS = dyn_cast<ICmpInst>(Op1COp))
2041 if (ICmpInst *LHS = dyn_cast<ICmpInst>(Op0COp))
2319 if (ICmpInst *RHS = dyn_cast<ICmpInst>(I.getOperand(1)))
2320 if (ICmpInst *LHS = dyn_cast<ICmpInst>(I.getOperand(0)))