(** Float comparisons. *)

Lemma floatcomp_correct:
forall cmp (r1 r2: freg) k rs m,
exists rs',
exec_straight ge fn (floatcomp cmp r1 r2 k) rs m k rs' m
/\ rs'#(reg_of_crbit (fst (crbit_for_fcmp cmp))) =
(if snd (crbit_for_fcmp cmp)
then Val.cmpf cmp rs#r1 rs#r2
else Val.notbool (Val.cmpf cmp rs#r1 rs#r2))
/\ forall r',
r' <> PC -> r' <> CR0_0 -> r' <> CR0_1 ->
r' <> CR0_2 -> r' <> CR0_3 -> rs'#r' = rs#r'.