vector.dotf
← vector dialect
Compute a same-element floating-point dot product with an explicit scalar accumulator. Semantics are equivalent to accumulating scalar.fmaf(lhs_lane, rhs_lane, acc) over lanes in logical lane order; use vector.mulf followed by vector.reduce when separately rounded products and additions are required. The source vectors must have the same shape and element type, and the init/result scalar type matches that element type. Zero-lane inputs return init. Optional fastmath flags carry the same floating-point permissions as scalar arithmetic, including reassociation of the fused dot terms.
Operation contract
| Property |
Value |
| Semantic phase |
— |
| Traits |
Pure |
| Target contracts |
vector.contraction |
Signature
| Kind |
Name |
Type |
Cardinality |
Description |
| Operand |
lhs |
vector |
required |
Floating-point source lanes. |
| Operand |
rhs |
vector |
required |
Floating-point source lanes. |
| Operand |
init |
scalar |
required |
Scalar accumulator seed. |
| Result |
result |
scalar |
required |
Scalar dot-product accumulator result. |
| Attribute |
fastmath |
flags FastMathFlags |
optional |
— |
Verification constraints
HasFloatElement(lhs)
SameShape(lhs, rhs)
SameType(init, result)
SameElementType(lhs, rhs, init)
Examples
%r = vector.dotf %lhs, %rhs, %acc : vector<16xf32>, vector<16xf32>, f32
%r = vector.dotf<reassoc|contract> %lhs, %rhs, %acc : vector<16xf32>, vector<16xf32>, f32