buffer.compare
← buffer dialect
Lexicographically compare equal-length ranges as unsigned bytes and return canonical i32 -1, 0, or +1. A zero byte length returns zero and performs no byte access.
Operation contract
| Property |
Value |
| Semantic phase |
executable |
| Memory effects |
read lhs, read rhs |
Signature
| Kind |
Name |
Type |
Cardinality |
Description |
| Operand |
lhs |
buffer |
required |
Left buffer root. |
| Operand |
lhs_offset |
offset |
required |
Left byte offset. |
| Operand |
rhs |
buffer |
required |
Right buffer root. |
| Operand |
rhs_offset |
offset |
required |
Right byte offset. |
| Operand |
byte_length |
offset |
required |
Number of bytes to compare. |
| Result |
order |
i32 |
required |
Canonical signed ordering result. |
Examples
%order = buffer.compare %lhs[%lhs_offset], %rhs[%rhs_offset], %byte_length