LLVM 20.0.0git
Public Member Functions | Public Attributes | List of all members
MaskOps Struct Reference

This is used by foldAnyOrAllBitsSet() to capture a source value (Root) and the bit indexes (Mask) needed by a masked compare. More...

Public Member Functions

 MaskOps (unsigned BitWidth, bool MatchAnds)
 

Public Attributes

ValueRoot = nullptr
 
APInt Mask
 
bool MatchAndChain
 
bool FoundAnd1 = false
 

Detailed Description

This is used by foldAnyOrAllBitsSet() to capture a source value (Root) and the bit indexes (Mask) needed by a masked compare.

If we're matching a chain of 'and' ops, then we also need to capture the fact that we saw an "and X, 1", so that's an extra return value for that case.

Definition at line 184 of file AggressiveInstCombine.cpp.

Constructor & Destructor Documentation

◆ MaskOps()

MaskOps::MaskOps ( unsigned  BitWidth,
bool  MatchAnds 
)
inline

Definition at line 190 of file AggressiveInstCombine.cpp.

Member Data Documentation

◆ FoundAnd1

bool MaskOps::FoundAnd1 = false

Definition at line 188 of file AggressiveInstCombine.cpp.

Referenced by foldAnyOrAllBitsSet(), and matchAndOrChain().

◆ Mask

APInt MaskOps::Mask

Definition at line 186 of file AggressiveInstCombine.cpp.

Referenced by foldAnyOrAllBitsSet(), and matchAndOrChain().

◆ MatchAndChain

bool MaskOps::MatchAndChain

Definition at line 187 of file AggressiveInstCombine.cpp.

Referenced by matchAndOrChain().

◆ Root

Value* MaskOps::Root = nullptr

Definition at line 185 of file AggressiveInstCombine.cpp.

Referenced by foldAnyOrAllBitsSet(), and matchAndOrChain().


The documentation for this struct was generated from the following file: