Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:Or

285   /// is true or false for.  This triggers on things like "abbbbc"[i] == 'b'.
292 // comparison is true for element 'i'. If there are 64 elements or less in
310 // Find out if the comparison would be true or false for the i'th element.
328 // Otherwise, we know if the comparison is true or false for this element,
397 // If the comparison is only true for one or two elements, emit direct
417 // If the comparison is only false for one or two elements, emit direct
652 // and both GEPs have only constant indices or just one use, then fold
724 // Only lower this if the icmp is the only user of the GEP or if we expect
759 // so the values can never be equal. Similarly for all other "or equals"
813 // results than (x /s C1) <u C2 or (x /u C1) <s C2 or even
855 // -1 if overflowed off the bottom end, or +1 if overflowed off the top end.
1078 // If this is a comparison that tests the signbit (X < 0) or (x > -1),
1152 // have its sign bit set or if it is an equality comparison.
1242 // result is always true or false now.
1319 case Instruction::Or: {
1324 // Simplify icmp eq (or (ptrtoint P), (ptrtoint Q)), 0
1543 // checked. If there is an overflow on the low or high side, remember
1629 // If the first operand is (add|sub|and|or|xor|rem) with a constant, and
1653 // Replace ((add A, B) != 0) with (A != -B) if A or B is
1654 // efficiently invertible, or if the add has just this one use.
1692 case Instruction::Or:
1693 // If bits are being or'd in that are not present in the constant we
1876 // All the cases that fold to true or false will have already been handled
2186 // they are truncation or binary AND. Change them to use result of
2297 // FIXME: we may want to go through inttoptrs or bitcasts.
2347 // comparing -val or val with non-zero is the same as just comparing val
2448 // If we have an icmp le or icmp ge instruction, turn it into the
2449 // appropriate icmp lt or icmp gt instruction. This allows us to rely on
2479 // by checking whether bits are known to be zero or one in the input.
2542 // or turn "((1 << x)&7) == 0" into "x > 2".
2587 // or turn "((1 << x)&7) != 0" into "x < 3".
2717 // part of a minimum or maximum operation. If so, refrain from doing
2762 // constant folded and the select turned into a bitwise or.
2772 // which will usually simplify) or this is the only user of the
2809 // If we can optimize a 'icmp GEP, P' or 'icmp P, GEP', do so now.
2852 // with a constant or another cast from the same type.
2873 // Analyze the case when either Op0 or Op1 is an add instruction.
2874 // Op0 = A + B (or A and B are null); Op1 = C + D (or C and D are null).
2881 // icmp (X+Y), X -> icmp Y, 0 for equalities or if there is no overflow.
2886 // icmp X, (X+Y) -> icmp 0, Y for equalities or if there is no overflow.
2891 // icmp (X+Y), (X+Z) -> icmp Y, Z for equalities or if there is no overflow.
2968 // Analyze the case when either Op0 or Op1 is a sub instruction.
2969 // Op0 = A - B (or A and B are null); Op1 = C - D (or C and D are null).
2976 // icmp (X-Y), X -> icmp 0, Y for equalities or if there is no overflow.
2980 // icmp X, (X-Y) -> icmp Y, 0 for equalities or if there is no overflow.
2984 // icmp (Y-X), (Z-X) -> icmp Y, Z for equalities or if there is no overflow.
2990 // icmp (X-Y), (X-Z) -> icmp Z, Y for equalities or if there is no overflow.
3356 // Now we know that the APFloat is a normal number, zero or inf.
3412 // Okay, now we know that the FP constant fits in the range [SMIN, SMAX] or
3513 case FCmpInst::FCMP_ULT: // True if unordered or less than
3514 case FCmpInst::FCMP_UGT: // True if unordered or greater than
3515 case FCmpInst::FCMP_UNE: // True if unordered or not equal
3523 case FCmpInst::FCMP_OGE: // True if ordered and greater than or equal
3524 case FCmpInst::FCMP_OLE: // True if ordered and less than or equal