[#llvm-getShuffleDemandedElts] = xref:llvm.adoc[llvm]::getShuffleDemandedElts :relfileprefix: ../ :mrdocs: Map a shuffle's demanded outputs to demanded elements of its operands. == Synopsis Declared in `<llvm/Analysis/VectorUtils.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool getShuffleDemandedElts( int SrcWidth, xref:llvm/ArrayRef-08.adoc[ArrayRef<int>] Mask, xref:llvm/APInt.adoc[APInt] const& DemandedElts, xref:llvm/APInt.adoc[APInt]& DemandedLHS, xref:llvm/APInt.adoc[APInt]& DemandedRHS, bool AllowUndefElts = false); ---- == Description Transform a shuffle mask's output demanded element mask into demanded element masks for the 2 operands, returns false if the mask isn't valid. Both `DemandedLHS` and `DemandedRHS` are initialised to [SrcWidth]. `AllowUndefElts` permits "‐1" indices to be treated as undef. == Return Value True if the mask is valid and the demanded operands were computed. == Parameters [cols="1,4"] |=== | Name| Description | *SrcWidth* | Number of elements in each shuffle operand. | *Mask* | Shuffle mask being analyzed. | *DemandedElts* | Demanded elements of the shuffle result. | *DemandedLHS* | Output demanded elements of the left operand. | *DemandedRHS* | Output demanded elements of the right operand. | *AllowUndefElts* | Whether ‐1 mask indices may be treated as undef. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#