Section CONSTRUCTORS.
Variable ge: genv.
Variable fn: function.
(** Properties of comparisons. *)
(** Loading a constant. *)
(** Add integer immediate. *)
(** And integer immediate. *)
(** Or integer immediate. *)
(** Xor integer immediate. *)
(** Rotate and mask. *)
(** Load int64 constant. *)
(** Alternate load int64 immediate *)
(** Add int64 immediate. *)
(** Or int64 immediate. *)
(** Xor int64 immediate. *)
(** And int64 immediate. *)

Lemma andimm64_correct:
forall r1 r2 n k rs m,
r2 <> GPR0 ->
exists rs',
exec_straight ge fn (andimm64 r1 r2 n k) rs m  k rs' m
/\ rs'#r1 = Val.andl rs#r2 (Vlong n)
/\ forall r': preg, r' <> r1 -> r' <> GPR12 -> important_preg r' = true  -> rs'#r' = rs#r'.