diff options
author | David Monniaux <David.Monniaux@univ-grenoble-alpes.fr> | 2021-09-27 14:55:33 +0200 |
---|---|---|
committer | David Monniaux <David.Monniaux@univ-grenoble-alpes.fr> | 2021-09-27 14:55:33 +0200 |
commit | a2c2d9e37cacd7c09401025ed5cf5e8afd7b88c0 (patch) | |
tree | 855c3c46bc90092e455db95c64e8a6cb033e4bdf /kvx/SelectOpproof.v | |
parent | 5136fedb48f4d60f6acec881aa64b59d3aac2a91 (diff) | |
download | compcert-kvx-a2c2d9e37cacd7c09401025ed5cf5e8afd7b88c0.tar.gz compcert-kvx-a2c2d9e37cacd7c09401025ed5cf5e8afd7b88c0.zip |
more cases detected
Diffstat (limited to 'kvx/SelectOpproof.v')
-rw-r--r-- | kvx/SelectOpproof.v | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/kvx/SelectOpproof.v b/kvx/SelectOpproof.v index 392e1077..1d9f3f91 100644 --- a/kvx/SelectOpproof.v +++ b/kvx/SelectOpproof.v @@ -840,7 +840,39 @@ Proof. simpl. lia. * apply DEFAULT. - + apply DEFAULT. + + clear Risbitfield. + clear zstop. + set (zstop := (int_highest_bit nmask)). + destruct (is_bitfield _ _) eqn:Risbitfield. + ++ destruct (and_dec _ _) as [[Rmask Rnmask] | ]. + * subst y. subst x. + TrivialExists. simpl. f_equal. + rewrite Val.or_commut. + unfold insf. + rewrite Risbitfield. + rewrite Rmask. + rewrite Rnmask. + simpl. + unfold bitfield_mask. + subst zstart. + rewrite (Val.or_commut (Val.and v0 _)). + rewrite (Val.or_commut (Val.and v0 _)). + destruct v1; simpl; trivial. + unfold Int.ltu, Int.iwordsize, Int.zwordsize. + rewrite Int.unsigned_repr. + ** rewrite Int.unsigned_repr. + *** simpl. + rewrite Int.shl_zero. + reflexivity. + *** simpl. + unfold Int.max_unsigned, Int.modulus. + simpl. + lia. + ** unfold Int.max_unsigned, Int.modulus. + simpl. + lia. + * apply DEFAULT. + ++ apply DEFAULT. - apply DEFAULT. Qed. |