Skip to content

vector.addcarryui

← vector dialect

Lanewise unsigned integer addition returning width-wrapped sums and an i1 carry vector. Each carry lane is set exactly when its mathematical sum does not fit in the source element width.

Operation contract

Property Value
Semantic phase executable
Traits Pure, Elementwise, DistributionTransfer, SafeToSpeculate

Signature

Kind Name Type Cardinality Description
Operand lhs vector required —
Operand rhs vector required —
Result sum vector required —
Result carry vector required —

Verification constraints

  • HasIntegerElement(sum)
  • HasI1Element(carry)
  • SameKind(sum, carry)
  • SameShape(lhs, rhs, sum, carry)
  • SameType(lhs, rhs, sum)

Examples

%sum, %carry = vector.addcarryui %lhs, %rhs : vector<8xi32> -> vector<8xi1>