Module Sarek_codegen.Sarek_ir_int_range

Interval arithmetic on int32 values (specs/f16-narrowing-barrier.md §2.1). A range contains every value an int32 expression can take; an operation that may wrap gives full.

type range = {
  1. lo : int;
  2. hi : int;
}
val full : range

Every int32 value.

val point : int -> range
val join_range : range -> range -> range
val binop_range : Sarek_ir_types.binop -> range -> range -> range
val unop_range : Sarek_ir_types.unop -> range -> range