LLVM
15.0.0git
|
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 | |
Value * | Root = nullptr |
APInt | Mask |
bool | MatchAndChain |
bool | FoundAnd1 = false |
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 206 of file AggressiveInstCombine.cpp.
|
inline |
Definition at line 212 of file AggressiveInstCombine.cpp.
bool MaskOps::FoundAnd1 = false |
Definition at line 210 of file AggressiveInstCombine.cpp.
Referenced by foldAnyOrAllBitsSet(), and matchAndOrChain().
APInt MaskOps::Mask |
Definition at line 208 of file AggressiveInstCombine.cpp.
Referenced by foldAnyOrAllBitsSet(), and matchAndOrChain().
bool MaskOps::MatchAndChain |
Definition at line 209 of file AggressiveInstCombine.cpp.
Referenced by matchAndOrChain().
Value* MaskOps::Root = nullptr |
Definition at line 207 of file AggressiveInstCombine.cpp.
Referenced by foldAnyOrAllBitsSet(), and matchAndOrChain().