aboutsummaryrefslogtreecommitdiffstats
path: root/kvx/SelectOpproof.v
diff options
context:
space:
mode:
authorDavid Monniaux <David.Monniaux@univ-grenoble-alpes.fr>2021-09-27 14:18:59 +0200
committerDavid Monniaux <David.Monniaux@univ-grenoble-alpes.fr>2021-09-27 14:18:59 +0200
commit475d590db4877d0eddbba675d0c54343f4d04ccf (patch)
tree9880c4f3b2e0561fa42abd9babb585753c3d834c /kvx/SelectOpproof.v
parent2789e6179af061381f5b18a268adb562b28bcb8e (diff)
downloadcompcert-kvx-475d590db4877d0eddbba675d0c54343f4d04ccf.tar.gz
compcert-kvx-475d590db4877d0eddbba675d0c54343f4d04ccf.zip
recognize insf (missing one case)
Diffstat (limited to 'kvx/SelectOpproof.v')
-rw-r--r--kvx/SelectOpproof.v23
1 files changed, 23 insertions, 0 deletions
diff --git a/kvx/SelectOpproof.v b/kvx/SelectOpproof.v
index 45aa3343..392e1077 100644
--- a/kvx/SelectOpproof.v
+++ b/kvx/SelectOpproof.v
@@ -788,6 +788,29 @@ Proof.
* apply DEFAULT.
+ apply DEFAULT.
- set (zstop := (int_highest_bit mask)).
+ set (zstart := (Int.unsigned start)).
+ destruct (is_bitfield _ _) eqn:Risbitfield.
+ + destruct (and_dec _ _) as [[Rmask Rnmask] | ].
+ * simpl in H6.
+ injection H6.
+ clear H6.
+ intro. subst y. subst x.
+ TrivialExists.
+ rewrite Val.or_commut.
+ simpl. f_equal.
+ unfold insf.
+ rewrite Risbitfield.
+ rewrite Rmask.
+ rewrite Rnmask.
+ simpl.
+ unfold bitfield_mask.
+ subst v1.
+ subst zstart.
+ rewrite Int.repr_unsigned.
+ reflexivity.
+ * apply DEFAULT.
+ + apply DEFAULT.
+ - set (zstop := (int_highest_bit mask)).
set (zstart := 0).
destruct (is_bitfield _ _) eqn:Risbitfield.
+ destruct (and_dec _ _) as [[Rmask Rnmask] | ].