aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c/SelectOpproof.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-04-29 14:10:47 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-04-29 14:10:47 +0200
commit9dadf82c52a9ad11b31b21986bc88a108b845d0b (patch)
tree273b8ed951b7bb7bda27d59357f6ab78846ad33c /mppa_k1c/SelectOpproof.v
parent76a75a7fa3d4f8a81868a00af99c449f1ce519b9 (diff)
downloadcompcert-kvx-9dadf82c52a9ad11b31b21986bc88a108b845d0b.tar.gz
compcert-kvx-9dadf82c52a9ad11b31b21986bc88a108b845d0b.zip
float of int = float of long o long of int
Diffstat (limited to 'mppa_k1c/SelectOpproof.v')
-rw-r--r--mppa_k1c/SelectOpproof.v19
1 files changed, 16 insertions, 3 deletions
diff --git a/mppa_k1c/SelectOpproof.v b/mppa_k1c/SelectOpproof.v
index e07bc51c..6fa93fd8 100644
--- a/mppa_k1c/SelectOpproof.v
+++ b/mppa_k1c/SelectOpproof.v
@@ -1180,9 +1180,22 @@ Theorem eval_floatofint:
Val.floatofint x = Some y ->
exists v, eval_expr ge sp e m le (floatofint a) v /\ Val.lessdef y v.
Proof.
- intros until y; unfold floatofint. case (floatofint_match a); intros.
- InvEval. simpl in H0. TrivialExists.
- TrivialExists.
+ intros.
+ unfold floatofint.
+ destruct (floatofint_match a).
+ - InvEval.
+ TrivialExists.
+ - InvEval.
+ TrivialExists.
+ constructor. econstructor. constructor. eassumption. constructor.
+ simpl. f_equal. constructor.
+ simpl.
+ destruct x; simpl; trivial.
+ f_equal.
+ inv H0.
+ f_equal.
+ rewrite Float.of_int_of_long.
+ reflexivity.
Qed.
Theorem eval_intofsingle: