Skip to content

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