Module IR.Binop
type t=|PlusA of Typ.ikind optionarithmetic +
|PlusPIpointer + integer
|MinusA of Typ.ikind optionarithmetic -
|MinusPIpointer - integer
|MinusPPpointer - pointer
|Mult of Typ.ikind option*
|Div/
|Mod%
|Shiftltshift left
|Shiftrtshift right
|Lt< (arithmetic comparison)
|Gt> (arithmetic comparison)
|Le<= (arithmetic comparison)
|Ge>= (arithmetic comparison)
|Eq== (arithmetic comparison)
|Ne!= (arithmetic comparison)
|BAndbitwise and
|BXorexclusive-or
|BOrinclusive-or
|LAndlogical and. Does not always evaluate both operands.
|LOrlogical or. Does not always evaluate both operands.
Binary operations
val str : IStdlib.Pp.env -> t -> stringval equal : t -> t -> boolval injective : t -> boolThis function returns true if the operation is injective wrt. each argument: op(e,-) and op(-, e) is injective for all e. The return value false means "don't know".
val is_zero_runit : t -> boolThis function returns true if 0 is the right unit of
binop. The return value false means "don't know".