diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-05-06 14:13:33 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-05-06 14:13:33 +0200 |
commit | b679621ac631ac2783bfd391042d30c120b5a220 (patch) | |
tree | de3e28069e67dcf4d3c8ea0badd325b09bde1c29 /aarch64 | |
parent | 9bb82668364d31dfff19b1d926fb5aebabae7a31 (diff) | |
download | compcert-kvx-b679621ac631ac2783bfd391042d30c120b5a220.tar.gz compcert-kvx-b679621ac631ac2783bfd391042d30c120b5a220.zip |
make Aarch64 muladd depend on the option
Diffstat (limited to 'aarch64')
-rw-r--r-- | aarch64/SelectOp.vp | 8 | ||||
-rw-r--r-- | aarch64/SelectOpproof.v | 6 |
2 files changed, 10 insertions, 4 deletions
diff --git a/aarch64/SelectOp.vp b/aarch64/SelectOp.vp index f9e5a1c4..67575fdb 100644 --- a/aarch64/SelectOp.vp +++ b/aarch64/SelectOp.vp @@ -56,9 +56,13 @@ Nondetfunction add (e1: expr) (e2: expr) := | t1, Eop (Oshift s a) (t2:::Enil) ?? arith_shift s => Eop (Oaddshift s a) (t1 ::: t2 ::: Enil) | Eop Omul (t1:::t2:::Enil), t3 => - Eop Omuladd (t3:::t1:::t2:::Enil) + if Compopts.optim_madd tt + then Eop Omuladd (t3:::t1:::t2:::Enil) + else Eop Oadd (e1:::e2:::Enil) | t1, Eop Omul (t2:::t3:::Enil) => - Eop Omuladd (t1:::t2:::t3:::Enil) + if Compopts.optim_madd tt + then Eop Omuladd (t1:::t2:::t3:::Enil) + else Eop Oadd (e1:::e2:::Enil) | _, _ => Eop Oadd (e1:::e2:::Enil) end. diff --git a/aarch64/SelectOpproof.v b/aarch64/SelectOpproof.v index 54c6a9fd..3379cbd8 100644 --- a/aarch64/SelectOpproof.v +++ b/aarch64/SelectOpproof.v @@ -161,8 +161,10 @@ Proof. - rewrite <- Val.add_assoc. apply eval_addimm. EvalOp. - rewrite Val.add_commut. TrivialExists. - TrivialExists. -- rewrite Val.add_commut. TrivialExists. -- TrivialExists. +- destruct (Compopts.optim_madd tt). + + rewrite Val.add_commut. TrivialExists. + + TrivialExists. +- destruct (Compopts.optim_madd tt); TrivialExists. - TrivialExists. Qed. |