Compute the demanded elements mask of horizontal binary operations.

Synopsis

Declared in <llvm/Analysis/VectorUtils.h>

void
getHorizDemandedEltsForFirstOperand(
    unsigned int VectorBitWidth,
    APInt const& DemandedElts,
    APInt& DemandedLHS,
    APInt& DemandedRHS);

Description

A horizontal operation combines two adjacent elements in a vector operand. This function returns a mask for the elements that correspond to the first operand of this horizontal combination. For example, for two vectors [X1, X2, X3, X4]and [Y1, Y2, Y3, Y4], the resulting mask can include the elements X1, X3, Y1, and Y3. To get the other operands, simply shift the result of this function to the left by 1.

Parameters

Name

Description

VectorBitWidth

the total bit width of the vector

DemandedElts

the demanded elements mask for the operation

DemandedLHS

the demanded elements mask for the left operand

DemandedRHS

the demanded elements mask for the right operand

Created with MrDocs