|
LLVM 24.0.0git
|
Narrow reduction leaf: the value, the shift applied after widening and the mask applied in the narrow type before widening, clearing the bits the absorbed narrow shls shift out and applying the absorbed narrow and-masks. More...
#include "Transforms/Vectorize/SLPVectorizer/SLPUtils.h"
Public Member Functions | |
| NarrowedLeafInfo (Value *V, unsigned Shift, APInt Mask) | |
Public Attributes | |
| Value * | V = nullptr |
| unsigned | Shift = 0 |
| APInt | Mask |
| bool | Disjoint = true |
| Set to false, if the or chain is not disjoint. | |
Narrow reduction leaf: the value, the shift applied after widening and the mask applied in the narrow type before widening, clearing the bits the absorbed narrow shls shift out and applying the absorbed narrow and-masks.
Lossless narrow shls contribute their known-zero bits to the mask so matching lanes can form a splat. All-ones mask means nothing was absorbed and no 'and' is needed.
Definition at line 443 of file SLPUtils.h.
|
inline |
Definition at line 444 of file SLPUtils.h.
References Mask, llvm::move(), Shift, and V.
| bool llvm::slpvectorizer::NarrowedLeafInfo::Disjoint = true |
Set to false, if the or chain is not disjoint.
Definition at line 451 of file SLPUtils.h.
| APInt llvm::slpvectorizer::NarrowedLeafInfo::Mask |
Definition at line 449 of file SLPUtils.h.
Referenced by NarrowedLeafInfo().
| unsigned llvm::slpvectorizer::NarrowedLeafInfo::Shift = 0 |
Definition at line 448 of file SLPUtils.h.
Referenced by NarrowedLeafInfo().
| Value* llvm::slpvectorizer::NarrowedLeafInfo::V = nullptr |
Definition at line 447 of file SLPUtils.h.
Referenced by NarrowedLeafInfo().