• Home
  • Raw
  • Download

Lines Matching refs:ICmpInst

73   ICmpInst::Predicate NewPred;  in getNewICmpValue()
293 ICmpInst::ICMP_SLE:ICmpInst::ICMP_ULE), Lo, Hi))->getZExtValue() && in InsertRangeTest()
302 ICmpInst::Predicate pred = (isSigned ? in InsertRangeTest()
303 ICmpInst::ICMP_SLT : ICmpInst::ICMP_ULT); in InsertRangeTest()
320 ICmpInst::Predicate pred = (isSigned ? in InsertRangeTest()
321 ICmpInst::ICMP_SGT : ICmpInst::ICMP_UGT); in InsertRangeTest()
443 ICmpInst::Predicate SCC) in getTypeOfMaskedICmp()
448 bool icmp_eq = (SCC == ICmpInst::ICMP_EQ); in getTypeOfMaskedICmp()
530 static bool decomposeBitTestICmp(const ICmpInst *I, ICmpInst::Predicate &Pred, in decomposeBitTestICmp()
539 case ICmpInst::ICMP_SLT: in decomposeBitTestICmp()
544 Pred = ICmpInst::ICMP_NE; in decomposeBitTestICmp()
546 case ICmpInst::ICMP_SGT: in decomposeBitTestICmp()
551 Pred = ICmpInst::ICMP_EQ; in decomposeBitTestICmp()
553 case ICmpInst::ICMP_ULT: in decomposeBitTestICmp()
558 Pred = ICmpInst::ICMP_EQ; in decomposeBitTestICmp()
560 case ICmpInst::ICMP_UGT: in decomposeBitTestICmp()
565 Pred = ICmpInst::ICMP_NE; in decomposeBitTestICmp()
580 ICmpInst *LHS, ICmpInst *RHS, in foldLogOpOfMaskedICmpsHelper()
581 ICmpInst::Predicate &LHSCC, in foldLogOpOfMaskedICmpsHelper()
582 ICmpInst::Predicate &RHSCC) { in foldLogOpOfMaskedICmpsHelper()
621 if (!ICmpInst::isEquality(LHSCC)) in foldLogOpOfMaskedICmpsHelper()
653 if (!ICmpInst::isEquality(RHSCC)) in foldLogOpOfMaskedICmpsHelper()
691 static Value *foldLogOpOfMaskedICmps(ICmpInst *LHS, ICmpInst *RHS, bool IsAnd, in foldLogOpOfMaskedICmps()
694 ICmpInst::Predicate LHSCC = LHS->getPredicate(), RHSCC = RHS->getPredicate(); in foldLogOpOfMaskedICmps()
698 assert(ICmpInst::isEquality(LHSCC) && ICmpInst::isEquality(RHSCC) && in foldLogOpOfMaskedICmps()
713 ICmpInst::Predicate NewCC = IsAnd ? ICmpInst::ICMP_EQ : ICmpInst::ICMP_NE; in foldLogOpOfMaskedICmps()
815 Value *InstCombiner::simplifyRangeCheck(ICmpInst *Cmp0, ICmpInst *Cmp1, in simplifyRangeCheck()
823 ICmpInst::Predicate Pred0 = (Inverted ? Cmp0->getInversePredicate() : in simplifyRangeCheck()
827 if (!((Pred0 == ICmpInst::ICMP_SGT && RangeStart->isMinusOne()) || in simplifyRangeCheck()
828 (Pred0 == ICmpInst::ICMP_SGE && RangeStart->isZero()))) in simplifyRangeCheck()
831 ICmpInst::Predicate Pred1 = (Inverted ? Cmp1->getInversePredicate() : in simplifyRangeCheck()
842 Pred1 = ICmpInst::getSwappedPredicate(Pred1); in simplifyRangeCheck()
848 ICmpInst::Predicate NewPred; in simplifyRangeCheck()
850 case ICmpInst::ICMP_SLT: NewPred = ICmpInst::ICMP_ULT; break; in simplifyRangeCheck()
851 case ICmpInst::ICMP_SLE: NewPred = ICmpInst::ICMP_ULE; break; in simplifyRangeCheck()
862 NewPred = ICmpInst::getInversePredicate(NewPred); in simplifyRangeCheck()
868 Value *InstCombiner::FoldAndOfICmps(ICmpInst *LHS, ICmpInst *RHS) { in FoldAndOfICmps()
869 ICmpInst::Predicate LHSCC = LHS->getPredicate(), RHSCC = RHS->getPredicate(); in FoldAndOfICmps()
907 if ((LHSCC == ICmpInst::ICMP_ULT && LHSCst->getValue().isPowerOf2()) || in FoldAndOfICmps()
908 (LHSCC == ICmpInst::ICMP_EQ && LHSCst->isZero())) { in FoldAndOfICmps()
917 if (LHSCC == ICmpInst::ICMP_EQ && LHSCC == RHSCC && in FoldAndOfICmps()
954 if (LHSCC == ICmpInst::ICMP_UGE || LHSCC == ICmpInst::ICMP_ULE || in FoldAndOfICmps()
955 RHSCC == ICmpInst::ICMP_UGE || RHSCC == ICmpInst::ICMP_ULE || in FoldAndOfICmps()
956 LHSCC == ICmpInst::ICMP_SGE || LHSCC == ICmpInst::ICMP_SLE || in FoldAndOfICmps()
957 RHSCC == ICmpInst::ICMP_SGE || RHSCC == ICmpInst::ICMP_SLE) in FoldAndOfICmps()
967 (ICmpInst::isEquality(LHSCC) && in FoldAndOfICmps()
989 case ICmpInst::ICMP_EQ: in FoldAndOfICmps()
992 case ICmpInst::ICMP_NE: // (X == 13 & X != 15) -> X == 13 in FoldAndOfICmps()
993 case ICmpInst::ICMP_ULT: // (X == 13 & X < 15) -> X == 13 in FoldAndOfICmps()
994 case ICmpInst::ICMP_SLT: // (X == 13 & X < 15) -> X == 13 in FoldAndOfICmps()
997 case ICmpInst::ICMP_NE: in FoldAndOfICmps()
1000 case ICmpInst::ICMP_ULT: in FoldAndOfICmps()
1006 case ICmpInst::ICMP_SLT: in FoldAndOfICmps()
1010 case ICmpInst::ICMP_EQ: // (X != 13 & X == 15) -> X == 15 in FoldAndOfICmps()
1011 case ICmpInst::ICMP_UGT: // (X != 13 & X u> 15) -> X u> 15 in FoldAndOfICmps()
1012 case ICmpInst::ICMP_SGT: // (X != 13 & X s> 15) -> X s> 15 in FoldAndOfICmps()
1014 case ICmpInst::ICMP_NE: in FoldAndOfICmps()
1028 case ICmpInst::ICMP_ULT: in FoldAndOfICmps()
1031 case ICmpInst::ICMP_EQ: // (X u< 13 & X == 15) -> false in FoldAndOfICmps()
1032 case ICmpInst::ICMP_UGT: // (X u< 13 & X u> 15) -> false in FoldAndOfICmps()
1034 case ICmpInst::ICMP_SGT: // (X u< 13 & X s> 15) -> no change in FoldAndOfICmps()
1036 case ICmpInst::ICMP_NE: // (X u< 13 & X != 15) -> X u< 13 in FoldAndOfICmps()
1037 case ICmpInst::ICMP_ULT: // (X u< 13 & X u< 15) -> X u< 13 in FoldAndOfICmps()
1039 case ICmpInst::ICMP_SLT: // (X u< 13 & X s< 15) -> no change in FoldAndOfICmps()
1043 case ICmpInst::ICMP_SLT: in FoldAndOfICmps()
1046 case ICmpInst::ICMP_UGT: // (X s< 13 & X u> 15) -> no change in FoldAndOfICmps()
1048 case ICmpInst::ICMP_NE: // (X s< 13 & X != 15) -> X < 13 in FoldAndOfICmps()
1049 case ICmpInst::ICMP_SLT: // (X s< 13 & X s< 15) -> X < 13 in FoldAndOfICmps()
1051 case ICmpInst::ICMP_ULT: // (X s< 13 & X u< 15) -> no change in FoldAndOfICmps()
1055 case ICmpInst::ICMP_UGT: in FoldAndOfICmps()
1058 case ICmpInst::ICMP_EQ: // (X u> 13 & X == 15) -> X == 15 in FoldAndOfICmps()
1059 case ICmpInst::ICMP_UGT: // (X u> 13 & X u> 15) -> X u> 15 in FoldAndOfICmps()
1061 case ICmpInst::ICMP_SGT: // (X u> 13 & X s> 15) -> no change in FoldAndOfICmps()
1063 case ICmpInst::ICMP_NE: in FoldAndOfICmps()
1067 case ICmpInst::ICMP_ULT: // (X u> 13 & X u< 15) -> (X-14) <u 1 in FoldAndOfICmps()
1069 case ICmpInst::ICMP_SLT: // (X u> 13 & X s< 15) -> no change in FoldAndOfICmps()
1073 case ICmpInst::ICMP_SGT: in FoldAndOfICmps()
1076 case ICmpInst::ICMP_EQ: // (X s> 13 & X == 15) -> X == 15 in FoldAndOfICmps()
1077 case ICmpInst::ICMP_SGT: // (X s> 13 & X s> 15) -> X s> 15 in FoldAndOfICmps()
1079 case ICmpInst::ICMP_UGT: // (X s> 13 & X u> 15) -> no change in FoldAndOfICmps()
1081 case ICmpInst::ICMP_NE: in FoldAndOfICmps()
1085 case ICmpInst::ICMP_SLT: // (X s> 13 & X s< 15) -> (X-14) s< 1 in FoldAndOfICmps()
1087 case ICmpInst::ICMP_ULT: // (X s> 13 & X u< 15) -> no change in FoldAndOfICmps()
1243 if ((!isa<ICmpInst>(Cast0Src) || !isa<ICmpInst>(Cast1Src)) && in foldCastedBitwiseLogic()
1257 ICmpInst *ICmp0 = dyn_cast<ICmpInst>(Cast0Src); in foldCastedBitwiseLogic()
1258 ICmpInst *ICmp1 = dyn_cast<ICmpInst>(Cast1Src); in foldCastedBitwiseLogic()
1512 ICmpInst *LHS = dyn_cast<ICmpInst>(Op0); in visitAnd()
1513 ICmpInst *RHS = dyn_cast<ICmpInst>(Op1); in visitAnd()
1522 if (auto *Cmp = dyn_cast<ICmpInst>(X)) in visitAnd()
1525 if (auto *Cmp = dyn_cast<ICmpInst>(Y)) in visitAnd()
1530 if (auto *Cmp = dyn_cast<ICmpInst>(X)) in visitAnd()
1533 if (auto *Cmp = dyn_cast<ICmpInst>(Y)) in visitAnd()
1679 Value *InstCombiner::FoldOrOfICmps(ICmpInst *LHS, ICmpInst *RHS, in FoldOrOfICmps()
1681 ICmpInst::Predicate LHSCC = LHS->getPredicate(), RHSCC = RHS->getPredicate(); in FoldOrOfICmps()
1688 if (LHS->getPredicate() == ICmpInst::ICMP_EQ && LHSCst && LHSCst->isZero() && in FoldOrOfICmps()
1689 RHS->getPredicate() == ICmpInst::ICMP_EQ && RHSCst && RHSCst->isZero()) { in FoldOrOfICmps()
1716 return Builder->CreateICmp(ICmpInst::ICMP_NE, Masked, Mask); in FoldOrOfICmps()
1731 if ((LHSCC == ICmpInst::ICMP_ULT || LHSCC == ICmpInst::ICMP_ULE) && in FoldOrOfICmps()
1799 if (LHSCC == ICmpInst::ICMP_EQ && LHSCst && LHSCst->isZero()) { in FoldOrOfICmps()
1801 if (RHSCC == ICmpInst::ICMP_ULT && Val == RHS->getOperand(1)) in FoldOrOfICmps()
1803 else if (RHSCC == ICmpInst::ICMP_UGT && Val == Val2) in FoldOrOfICmps()
1808 else if (RHSCC == ICmpInst::ICMP_EQ && RHSCst && RHSCst->isZero()) { in FoldOrOfICmps()
1810 if (LHSCC == ICmpInst::ICMP_ULT && Val2 == LHS->getOperand(1)) in FoldOrOfICmps()
1812 else if (LHSCC == ICmpInst::ICMP_UGT && Val2 == Val) in FoldOrOfICmps()
1817 ICmpInst::ICMP_UGE, in FoldOrOfICmps()
1834 if (LHSCC == ICmpInst::ICMP_NE && LHSCst->isZero()) { in FoldOrOfICmps()
1842 if (LHSCC == ICmpInst::ICMP_ULT && RHSCC == ICmpInst::ICMP_EQ) { in FoldOrOfICmps()
1854 if (LHSCC == ICmpInst::ICMP_UGE || LHSCC == ICmpInst::ICMP_ULE || in FoldOrOfICmps()
1855 RHSCC == ICmpInst::ICMP_UGE || RHSCC == ICmpInst::ICMP_ULE || in FoldOrOfICmps()
1856 LHSCC == ICmpInst::ICMP_SGE || LHSCC == ICmpInst::ICMP_SLE || in FoldOrOfICmps()
1857 RHSCC == ICmpInst::ICMP_SGE || RHSCC == ICmpInst::ICMP_SLE) in FoldOrOfICmps()
1867 (ICmpInst::isEquality(LHSCC) && in FoldOrOfICmps()
1889 case ICmpInst::ICMP_EQ: in FoldOrOfICmps()
1892 case ICmpInst::ICMP_EQ: in FoldOrOfICmps()
1902 return Builder->CreateICmp(ICmpInst::ICMP_EQ, Or, RHSCst); in FoldOrOfICmps()
1915 case ICmpInst::ICMP_UGT: // (X == 13 | X u> 14) -> no change in FoldOrOfICmps()
1916 case ICmpInst::ICMP_SGT: // (X == 13 | X s> 14) -> no change in FoldOrOfICmps()
1918 case ICmpInst::ICMP_NE: // (X == 13 | X != 15) -> X != 15 in FoldOrOfICmps()
1919 case ICmpInst::ICMP_ULT: // (X == 13 | X u< 15) -> X u< 15 in FoldOrOfICmps()
1920 case ICmpInst::ICMP_SLT: // (X == 13 | X s< 15) -> X s< 15 in FoldOrOfICmps()
1924 case ICmpInst::ICMP_NE: in FoldOrOfICmps()
1927 case ICmpInst::ICMP_EQ: // (X != 13 | X == 15) -> X != 13 in FoldOrOfICmps()
1928 case ICmpInst::ICMP_UGT: // (X != 13 | X u> 15) -> X != 13 in FoldOrOfICmps()
1929 case ICmpInst::ICMP_SGT: // (X != 13 | X s> 15) -> X != 13 in FoldOrOfICmps()
1931 case ICmpInst::ICMP_NE: // (X != 13 | X != 15) -> true in FoldOrOfICmps()
1932 case ICmpInst::ICMP_ULT: // (X != 13 | X u< 15) -> true in FoldOrOfICmps()
1933 case ICmpInst::ICMP_SLT: // (X != 13 | X s< 15) -> true in FoldOrOfICmps()
1936 case ICmpInst::ICMP_ULT: in FoldOrOfICmps()
1939 case ICmpInst::ICMP_EQ: // (X u< 13 | X == 14) -> no change in FoldOrOfICmps()
1941 case ICmpInst::ICMP_UGT: // (X u< 13 | X u> 15) -> (X-13) u> 2 in FoldOrOfICmps()
1947 case ICmpInst::ICMP_SGT: // (X u< 13 | X s> 15) -> no change in FoldOrOfICmps()
1949 case ICmpInst::ICMP_NE: // (X u< 13 | X != 15) -> X != 15 in FoldOrOfICmps()
1950 case ICmpInst::ICMP_ULT: // (X u< 13 | X u< 15) -> X u< 15 in FoldOrOfICmps()
1952 case ICmpInst::ICMP_SLT: // (X u< 13 | X s< 15) -> no change in FoldOrOfICmps()
1956 case ICmpInst::ICMP_SLT: in FoldOrOfICmps()
1959 case ICmpInst::ICMP_EQ: // (X s< 13 | X == 14) -> no change in FoldOrOfICmps()
1961 case ICmpInst::ICMP_SGT: // (X s< 13 | X s> 15) -> (X-13) s> 2 in FoldOrOfICmps()
1967 case ICmpInst::ICMP_UGT: // (X s< 13 | X u> 15) -> no change in FoldOrOfICmps()
1969 case ICmpInst::ICMP_NE: // (X s< 13 | X != 15) -> X != 15 in FoldOrOfICmps()
1970 case ICmpInst::ICMP_SLT: // (X s< 13 | X s< 15) -> X s< 15 in FoldOrOfICmps()
1972 case ICmpInst::ICMP_ULT: // (X s< 13 | X u< 15) -> no change in FoldOrOfICmps()
1976 case ICmpInst::ICMP_UGT: in FoldOrOfICmps()
1979 case ICmpInst::ICMP_EQ: // (X u> 13 | X == 15) -> X u> 13 in FoldOrOfICmps()
1980 case ICmpInst::ICMP_UGT: // (X u> 13 | X u> 15) -> X u> 13 in FoldOrOfICmps()
1982 case ICmpInst::ICMP_SGT: // (X u> 13 | X s> 15) -> no change in FoldOrOfICmps()
1984 case ICmpInst::ICMP_NE: // (X u> 13 | X != 15) -> true in FoldOrOfICmps()
1985 case ICmpInst::ICMP_ULT: // (X u> 13 | X u< 15) -> true in FoldOrOfICmps()
1987 case ICmpInst::ICMP_SLT: // (X u> 13 | X s< 15) -> no change in FoldOrOfICmps()
1991 case ICmpInst::ICMP_SGT: in FoldOrOfICmps()
1994 case ICmpInst::ICMP_EQ: // (X s> 13 | X == 15) -> X > 13 in FoldOrOfICmps()
1995 case ICmpInst::ICMP_SGT: // (X s> 13 | X s> 15) -> X > 13 in FoldOrOfICmps()
1997 case ICmpInst::ICMP_UGT: // (X s> 13 | X u> 15) -> no change in FoldOrOfICmps()
1999 case ICmpInst::ICMP_NE: // (X s> 13 | X != 15) -> true in FoldOrOfICmps()
2000 case ICmpInst::ICMP_SLT: // (X s> 13 | X s< 15) -> true in FoldOrOfICmps()
2002 case ICmpInst::ICMP_ULT: // (X s> 13 | X u< 15) -> no change in FoldOrOfICmps()
2402 ICmpInst *LHS = dyn_cast<ICmpInst>(Op0); in visitOr()
2403 ICmpInst *RHS = dyn_cast<ICmpInst>(Op1); in visitOr()
2412 if (auto *Cmp = dyn_cast<ICmpInst>(X)) in visitOr()
2415 if (auto *Cmp = dyn_cast<ICmpInst>(Y)) in visitOr()
2420 if (auto *Cmp = dyn_cast<ICmpInst>(X)) in visitOr()
2423 if (auto *Cmp = dyn_cast<ICmpInst>(Y)) in visitOr()
2753 if (ICmpInst *RHS = dyn_cast<ICmpInst>(I.getOperand(1))) in visitXor()
2754 if (ICmpInst *LHS = dyn_cast<ICmpInst>(I.getOperand(0))) in visitXor()