diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-03-26 19:59:04 +0100 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-03-26 19:59:04 +0100 |
commit | 0a708569d1fe213305c731cfa32fd6a41f5811e3 (patch) | |
tree | 2ba291924ae1f4c465c2740e57deb784bd37f772 /mppa_k1c/SelectOp.vp | |
parent | 464a6b67e374440c22b6abcbca938f84fbf13871 (diff) | |
download | compcert-kvx-0a708569d1fe213305c731cfa32fd6a41f5811e3.tar.gz compcert-kvx-0a708569d1fe213305c731cfa32fd6a41f5811e3.zip |
some progress
Diffstat (limited to 'mppa_k1c/SelectOp.vp')
-rw-r--r-- | mppa_k1c/SelectOp.vp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/mppa_k1c/SelectOp.vp b/mppa_k1c/SelectOp.vp index 2a07afc4..8f188f7e 100644 --- a/mppa_k1c/SelectOp.vp +++ b/mppa_k1c/SelectOp.vp @@ -300,14 +300,13 @@ Nondetfunction or (e1: expr) (e2: expr) := else Eop Oor (e1:::e2:::Enil) | (Eop Onot (t1:::Enil)), t2 => Eop Oorn (t1:::t2:::Enil) | t1, (Eop Onot (t2:::Enil)) => Eop Oorn (t2:::t1:::Enil) - | (Eop Oand ((Eop Osub ((Eop (Ocmp (Ccomp Ceq)) - (y1:::(Eop (Ointconst zero1) Enil):::Enil)):::(Eop (Ointconst one1) Enil):::Enil)):::v1:::Enil)), - (Eop Oand ((Eop Oneg ((Eop (Ocmp (Ccomp Ceq)) - (y0:::(Eop (Ointconst zero0) Enil):::Enil)):::Enil)):::v0:::Enil)) => + | (Eop Oand ((Eop Oneg ((Eop (Ocmp (Ccomp Ceq)) + (y0:::(Eop (Ointconst zero0) Enil):::Enil)):::Enil)):::v0:::Enil)), + (Eop Oand ((Eop Oneg ((Eop (Ocmp (Ccomp Cne)) + (y1:::(Eop (Ointconst zero1) Enil):::Enil)):::Enil)):::v1:::Enil)) => if same_expr_pure y0 y1 && Int.eq zero0 Int.zero && Int.eq zero1 Int.zero - && Int.eq one1 Int.one then Eop Oselect (v0:::v1:::y0:::Enil) else Eop Oor (e1:::e2:::Enil) | _, _ => Eop Oor (e1:::e2:::Enil) |