buffer.assume.alignment
← buffer dialect
Refine existing buffer roots with an explicit minimum byte alignment contract. The result preserves the same storage identity, extent, memory-space, alias, and nullability facts while strengthening the root base alignment fact.
Operation contract
| Property |
Value |
| Semantic phase |
executable |
| Traits |
Pure, FactIdentity |
Signature
| Kind |
Name |
Type |
Cardinality |
Description |
| Operand |
buffers |
buffer |
variadic |
Buffer roots to refine. |
| Result |
results |
buffer |
variadic |
Same buffer roots with refined alignment. |
| Attribute |
minimum_alignment |
i64 |
required |
Minimum byte alignment guaranteed for each root storage base. |
Verification constraints
VariadicValuesMatch(buffers, results)
Examples
%aligned = buffer.assume.alignment %buffer {minimum_alignment = 16} : buffer
%lhs_a, %rhs_a = buffer.assume.alignment %lhs, %rhs {minimum_alignment = 16} : buffer, buffer