ΒΆ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:460

Parameters

llvm::Instruction* I
bool MatchBSwaps
bool MatchBitReversals
SmallVectorImpl<llvm::Instruction*>& InsertedInsts