Skip to content

vector.dot8i4

vector dialect

Treat each i32 source lane as a little-endian pack of eight 4-bit integer fields, multiply corresponding packed fields using the signedness template, and add the eight-product sum into the matching i32 accumulator lane. This is a packed-storage register dot: use vector.bitpack<4> when starting from unpacked byte lanes. The semantics match AMDGPU sdot8/udot8/sudot8 with clamp disabled.

Operation contract

Property Value
Semantic phase executable
Traits Pure

Signature

Kind Name Type Cardinality Description
Operand lhs vector required i32 lanes holding packed lhs 4-bit fields.
Operand rhs vector required i32 lanes holding packed rhs 4-bit fields.
Operand acc vector required i32 accumulator lanes updated by each packed eight-lane dot product.
Result result vector required Updated i32 accumulator lanes.
Attribute kind enum IntegerDot8I4Kind required

Verification constraints

  • HasI32Element(lhs)
  • SameType(lhs, rhs, acc, result)

Examples

%r = vector.dot8i4<s4s4> %lhs, %rhs, %acc : vector<4xi32>
%r = vector.dot8i4<u4s4> %lhs, %rhs, %acc : vector<[%N]xi32>