LLVM 24.0.0git
llvm::slpvectorizer::NarrowedLeafInfo Struct Reference

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

ValueV
unsigned Shift
APInt Mask

Detailed Description

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 346 of file SLPUtils.h.

Constructor & Destructor Documentation

◆ NarrowedLeafInfo()

llvm::slpvectorizer::NarrowedLeafInfo::NarrowedLeafInfo ( Value * V,
unsigned Shift,
APInt Mask )
inline

Definition at line 347 of file SLPUtils.h.

References Mask, llvm::move(), Shift, and V.

Member Data Documentation

◆ Mask

APInt llvm::slpvectorizer::NarrowedLeafInfo::Mask

Definition at line 352 of file SLPUtils.h.

Referenced by NarrowedLeafInfo().

◆ Shift

unsigned llvm::slpvectorizer::NarrowedLeafInfo::Shift

Definition at line 351 of file SLPUtils.h.

Referenced by NarrowedLeafInfo().

◆ V

Value* llvm::slpvectorizer::NarrowedLeafInfo::V

Definition at line 350 of file SLPUtils.h.

Referenced by NarrowedLeafInfo().


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