Home | History | Annotate | Download | only in InstCombine

Lines Matching full:bswap

1378 /// capable of providing pieces of a bswap.  The subexpression provides pieces
1379 /// of a bswap if it is proven that each of the non-zero bytes in the output of
1383 /// of the bswap result and that all other bytes are zero. This expression is
1403 // If this is an or instruction, it may be an inner node of the bswap.
1474 // the input value to the bswap. Some observations: 1) if more than one byte
1492 // together, which isn't a bswap (unless it's an or of the same bits).
1499 /// MatchBSwap - Given an OR instruction, check to see if this is a bswap idiom.
1500 /// If so, insert the new bswap intrinsic and return it.
1506 return nullptr; // Can only bswap pairs of bytes. Can't do vectors.
1513 // Try to find all the pieces corresponding to the bswap.
1527 Function *F = Intrinsic::getDeclaration(M, Intrinsic::bswap, ITy);
1963 // (A | B) | C and A | (B | C) -> bswap if possible.
1964 // (A >> B) | (C << D) and (A << B) | (B >> C) -> bswap if possible.
1969 if (Instruction *BSwap = MatchBSwap(I))
1970 return BSwap;