ΒΆbool recognizeBSwapOrBitReverseIdiom(
llvm::Instruction* I,
bool MatchBSwaps,
bool MatchBitReversals,
SmallVectorImpl<llvm::Instruction*>&
InsertedInsts)
bool recognizeBSwapOrBitReverseIdiom(
llvm::Instruction* I,
bool MatchBSwaps,
bool MatchBitReversals,
SmallVectorImpl<llvm::Instruction*>&
InsertedInsts)
Description
Try to match a bswap or bitreverse idiom. If an idiom is matched, an intrinsic call is inserted before \c I. Any added instructions are returned in \c InsertedInsts. They will all have been added to a basic block. A bitreverse idiom normally requires around 2*BW nodes to be searched (where BW is the bitwidth of the integer type). A bswap idiom requires anywhere up to BW / 4 nodes to be searched, so is significantly faster. This function returns true on a successful match or false otherwise.
Declared at: llvm/include/llvm/Transforms/Utils/Local.h:510
Parameters
- llvm::Instruction* I
- bool MatchBSwaps
- bool MatchBitReversals
- SmallVectorImpl<llvm::Instruction*>& InsertedInsts