[#llvm-MCInstrAnalysis-isZeroIdiom] = xref:llvm.adoc[llvm]::xref:llvm/MCInstrAnalysis.adoc[MCInstrAnalysis]::isZeroIdiom :relfileprefix: ../../ :mrdocs: Returns true if MI is a dependency breaking zero‐idiom for the given subtarget. == Synopsis Declared in `<llvm/MC/MCInstrAnalysis.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- virtual bool isZeroIdiom( xref:llvm/MCInst.adoc[MCInst] const& MI, xref:llvm/APInt.adoc[APInt]& Mask, unsigned int CPUID) const; ---- == Description Mask is used to identify input operands that have their dependency broken. Each bit of the mask is associated with a specific input operand. Bits associated with explicit input operands are laid out first in the mask; implicit operands come after explicit operands. Dependencies are broken only for operands that have their corresponding bit set. Operands that have their bit cleared, or that don't have a corresponding bit in the mask don't have their dependency broken. Note that Mask may not be big enough to describe all operands. The assumption for operands that don't have a correspondent bit in the mask is that those are still data dependent. The only exception to the rule is for when Mask has all zeroes. A zero mask means: dependencies are broken for all explicit register operands. == Return Value True if `MI` is a dependency‐breaking zero‐idiom for `CPUID.` == Parameters [cols="1,4"] |=== | Name| Description | *MI* | ‐ Instruction to test as a zero‐idiom. | *Mask* | ‐ [out]Operand mask identifying broken dependencies. | *CPUID* | ‐ Subtarget identifier selecting dependency rules. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#