Matchers for GlobalISel SSA MachineInstr patterns.
Types
Name |
Description |
Matches an integer constant with all bits set, regardless of width. |
|
Empty And combinator that always matches. |
|
Matches any immediate operand. |
|
Matcher for a fixed binary generic opcode such as G_ADD or G_SUB. |
|
Matcher for a binary generic opcode supplied at construction time. |
|
Matcher that binds an immediate operand's value. |
|
Matcher that requires a register to have a specific LLT. |
|
Matcher for a classify‐style opcode such as G_IS_FPCLASS. |
|
Matcher for generic compare opcodes such as G_ICMP and G_FCMP. |
|
Matcher that binds an integer constant of type ConstT. |
|
Matcher that binds raw bits from a G_CONSTANT or G_FCONSTANT. |
|
Matcher for an integer constant with look‐through, binding value and vreg. |
|
Matcher for an FP constant with look‐through, binding value and vreg. |
|
Matcher for an FP constant or FP splat, binding value and defining vreg. |
|
Matches an FP constant whose value satisfies the given predicate. |
|
Matcher that binds the frame index from a G_FRAME_INDEX. |
|
Binds the defining instruction of a register if it is a Class. |
|
Matcher for a GIntrinsic with a fixed intrinsic ID and argument patterns. |
|
Matcher for an integer constant or constant splat, binding the value. |
|
Matcher for a G_IMPLICIT_DEF defining instruction. |
|
Matcher for a load of type Class with optional instruction/MMO binding. |
|
Optional trailing operand that binds a matched instruction's MI flags. |
|
Optional trailing operand that binds a load's MachineMemOperand. |
|
Matcher that requires a register to have exactly one non‐debug use. |
|
Matcher that requires a register to have exactly one use. |
|
Empty Or combinator that never matches. |
|
Matcher for G_SHUFFLE_VECTOR with source and mask bindings. |
|
Matcher for a specific constant value. |
|
Matcher for a specific constant or constant splat. |
|
Matcher for a specific constant splat. |
|
Matcher for a specific immediate operand value. |
|
Matcher for a specific register. |
|
Matcher for an opcode with one source register and one immediate operand. |
|
Matcher for a ternary generic opcode with three operand sub‐patterns. |
|
Matcher for a unary generic opcode with one source sub‐pattern. |
|
Helper that stores a matched value into an output reference. |
|
Matcher that binds a matched value into an output reference. |
|
Helper that compares a previously bound value to a candidate. |
|
Matcher that compares against a value bound earlier in the expression. |
|
Matcher that accepts any register operand. |
Functions
Name |
Description |
Matches an integer constant with all bits set. |
|
Matches the integer constant with all bits set (64‐bit APInt form). |
|
Matches a binary opcode with the given operand sub‐patterns. |
|
Matches a commutative binary opcode with the given operand sub‐patterns. |
|
Matches a COPY of |
|
Matches a register equal to a value bound earlier in the same expression. |
|
Matches a type equal to a value bound earlier in the same expression. |
|
Binds the matched FP class test to |
|
Matches a G_ASHR (arithmetic right‐shift) with the given operand sub‐patterns. |
|
Matches a G_ADD with the given operand sub‐patterns. |
|
Matches a G_ADD or a disjoint G_OR (add‐like forms). |
|
Matches a G_AND (bitwise and) with the given operand sub‐patterns. |
|
Matches a G_ANYEXT of |
|
|
|
|
|
Matches a G_BITCAST of |
|
|
|
Matches a G_BUILD_VECTOR_TRUNC with two source sub‐patterns. |
|
Binds a G_CONCAT_VECTORS defining instruction. |
|
|
|
Matches a literal G_CONSTANT or G_FCONSTANT, binding raw bits to |
|
Matches an integer constant with look‐through, binding value and vreg. |
|
Matches a G_OR that is marked disjoint. |
|
Matches a G_FADD (floating‐point add) with the given operand sub‐patterns. |
|
Matches a G_FCMP with the given predicate and operand sub‐patterns. |
|
|
|
Matches an FP constant or FP splat, binding value and defining vreg. |
|
Matches a G_FFLOOR of |
|
Matches a G_FMUL (floating‐point multiply) with the given operand sub‐patterns. |
|
Matches a G_FNEG of |
|
Matches a G_FPEXT of |
|
Matches a G_FPTRUNC of |
|
Matches a G_FSQRT of |
|
Matches a G_FSUB (floating‐point subtract) with the given operand sub‐patterns. |
|
Matches a G_FABS of |
|
Matches a G_FRAME_INDEX, binding its frame index to |
|
Matches a G_ICMP with the given predicate and operand sub‐patterns. |
|
Matches a G_SELECT with the given condition and operand sub‐patterns. |
|
Matches a G_IMPLICIT_DEF. |
|
Matches a G_INSERT_VECTOR_ELT with the given operand sub‐patterns. |
|
Matches a G_INTTOPTR of |
|
|
|
Matches a G_IS_FPCLASS test against a value and class mask. |
|
Matches a G_LSHR (logical right‐shift) with the given operand sub‐patterns. |
|
|
|
Matches a G_MUL (integer multiply) with the given operand sub‐patterns. |
|
Matches a G_OR with the given operand sub‐patterns. |
|
|
|
Matches a G_PTRTOINT of |
|
Matches a G_SEXT of |
|
|
|
Matches a G_SMAX (signed maximum) with the given operand sub‐patterns. |
|
Matches a G_SMIN (signed minimum) with the given operand sub‐patterns. |
|
Matches a G_SHL (left‐shift) with the given operand sub‐patterns. |
|
Matches a G_SHUFFLE_VECTOR, binding sources and mask. |
|
|
|
Matches a G_TRUNC of |
|
Matches a G_UMAX (unsigned maximum) with the given operand sub‐patterns. |
|
Matches a G_UMIN (unsigned minimum) with the given operand sub‐patterns. |
|
Binds a G_UNMERGE_VALUES defining instruction. |
|
Binds a G_VSCALE defining instruction. |
|
Matches a G_XOR (bitwise xor) with the given operand sub‐patterns. |
|
Matches a G_ZEXT of |
|
|
|
|
|
Binds an immediate operand's value to |
|
Wrap |
|
|
|
Wrap |
|
Matches a register negated by a G_SUB from zero. |
|
Matches a register bitwise‐not'ed by a G_XOR against all‐ones. |
|
Matches |
|
Matches |
|
Matches a floating‐point positive zero. |
|
|
|
|
|
Matches a constant equal to |
|
Matches |
|
Matches a constant splat of |
|
Matches an immediate operand equal to |
|
Matches a register only if it equals |
|
Matches a register whose LLT equals |
|
Binds the matched register's LLT to |
|
Convenience matchers for specific integer values. |
|
Match only if every sub‐pattern in |
|
Match if any sub‐pattern in |
|
Matches a G_FCMP, including commuted operand order. |
|
Matches a G_ICMP, including commuted operand order. |
|
|
|
|
|
|
Created with MrDocs