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

Description of a bitfield packing of vector lanes into a scalar value: every lane contributes a disjoint contiguous byte field of the result. More...

#include "Transforms/Vectorize/SLPVectorizer/SLPUtils.h"

Public Member Functions

bool needsShift () const
 True if any lane needs a right shift to align its field content.

Public Attributes

unsigned FieldWidth = 0
SmallVector< unsigned, 8 > LaneOfField
 Lane covering each field, NoLane if the field is always zero.
SmallVector< uint64_t, 8 > LShrAmts
 Per-lane right-shift amounts bringing the field content to the low bits.

Static Public Attributes

static constexpr unsigned NoLane = std::numeric_limits<unsigned>::max()

Detailed Description

Description of a bitfield packing of vector lanes into a scalar value: every lane contributes a disjoint contiguous byte field of the result.

Definition at line 424 of file SLPUtils.h.

Member Function Documentation

◆ needsShift()

bool llvm::slpvectorizer::BitPackInfo::needsShift ( ) const
inline

True if any lane needs a right shift to align its field content.

Definition at line 433 of file SLPUtils.h.

References A(), llvm::any_of(), LShrAmts, and uint64_t.

Member Data Documentation

◆ FieldWidth

unsigned llvm::slpvectorizer::BitPackInfo::FieldWidth = 0

Definition at line 426 of file SLPUtils.h.

◆ LaneOfField

SmallVector<unsigned, 8> llvm::slpvectorizer::BitPackInfo::LaneOfField

Lane covering each field, NoLane if the field is always zero.

Definition at line 428 of file SLPUtils.h.

◆ LShrAmts

SmallVector<uint64_t, 8> llvm::slpvectorizer::BitPackInfo::LShrAmts

Per-lane right-shift amounts bringing the field content to the low bits.

Definition at line 430 of file SLPUtils.h.

Referenced by llvm::slpvectorizer::computeBitPackInfo(), and needsShift().

◆ NoLane

unsigned llvm::slpvectorizer::BitPackInfo::NoLane = std::numeric_limits<unsigned>::max()
staticconstexpr

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