aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jade Philipoom <jadep@google.com>2018-02-19 11:38:52 +0100
committerGravatar Jason Gross <jasongross9@gmail.com>2018-02-23 13:06:33 -0500
commit0c62a62f81f349dcafa37b38fabb5beac5432a89 (patch)
tree84083d64b5347bc6a7e49cd7a931f47635953ef9 /src
parent91a366c5572e53e5f51603d7604a015fb58a4284 (diff)
fixed inlining of opaque pairs as per Jason's recommendation
Diffstat (limited to 'src')
-rw-r--r--src/Experiments/SimplyTypedArithmetic.v46
1 files changed, 11 insertions, 35 deletions
diff --git a/src/Experiments/SimplyTypedArithmetic.v b/src/Experiments/SimplyTypedArithmetic.v
index 07e76bfcc..0761b653c 100644
--- a/src/Experiments/SimplyTypedArithmetic.v
+++ b/src/Experiments/SimplyTypedArithmetic.v
@@ -3124,7 +3124,7 @@ Module Compilers.
=> @interp_let_in
_ B b
(fun b => f (inr (a, b))))
- | inl e => f (inl e)
+ | inl e => partial.expr.reflect (expr_let y := e in partial.expr.reify (f (inl (Var y))))%expr
end
| type.type_primitive _ as t
=> fun (x : expr t + type.interp t) (f : expr t + type.interp t -> value var tC)
@@ -5251,42 +5251,18 @@ Print Montgomery256.montred256.
(Z.mul_split @@
(115792089237316195423570985008687907853269984665640564039457584007913129639936, fst @@ v,
115792089210356248768974548684794254293921932838497980611635986753331132366849)) in
- expr_let v1 := Z.zselect @@
- (snd @@
- (Z.add_with_get_carry @@
- (115792089237316195423570985008687907853269984665640564039457584007913129639936,
- snd @@
- (Z.add_get_carry @@
- (115792089237316195423570985008687907853269984665640564039457584007913129639936, fst @@ v,
- fst @@
- (Z.mul_split @@
- (115792089237316195423570985008687907853269984665640564039457584007913129639936, v0,
- 115792089210356248762697446949407573530086143415290314195533631308867097853951)))), snd @@ v,
- snd @@
- (Z.mul_split @@
- (115792089237316195423570985008687907853269984665640564039457584007913129639936, v0,
- 115792089210356248762697446949407573530086143415290314195533631308867097853951)))), 0,
+ expr_let v1 := Z.mul_split @@
+ (115792089237316195423570985008687907853269984665640564039457584007913129639936, v0,
115792089210356248762697446949407573530086143415290314195533631308867097853951) in
- expr_let v2 := fst @@
- (Z.sub_get_borrow @@
- (115792089237316195423570985008687907853269984665640564039457584007913129639936,
- fst @@
- (Z.add_with_get_carry @@
- (115792089237316195423570985008687907853269984665640564039457584007913129639936,
- snd @@
- (Z.add_get_carry @@
- (115792089237316195423570985008687907853269984665640564039457584007913129639936, fst @@ v,
- fst @@
- (Z.mul_split @@
- (115792089237316195423570985008687907853269984665640564039457584007913129639936, v0,
- 115792089210356248762697446949407573530086143415290314195533631308867097853951)))), snd @@ v,
- snd @@
- (Z.mul_split @@
- (115792089237316195423570985008687907853269984665640564039457584007913129639936, v0,
- 115792089210356248762697446949407573530086143415290314195533631308867097853951)))), v1)) in
- Z.add_modulo @@ (v2, 0, 115792089210356248762697446949407573530086143415290314195533631308867097853951))%expr)
+ expr_let v2 := Z.add_get_carry @@
+ (115792089237316195423570985008687907853269984665640564039457584007913129639936, fst @@ v, fst @@ v1) in
+ expr_let v3 := Z.add_with_get_carry @@
+ (115792089237316195423570985008687907853269984665640564039457584007913129639936, snd @@ v2, snd @@ v, snd @@ v1) in
+ expr_let v4 := Z.zselect @@ (snd @@ v3, 0, 115792089210356248762697446949407573530086143415290314195533631308867097853951) in
+ expr_let v5 := fst @@
+ (Z.sub_get_borrow @@ (115792089237316195423570985008687907853269984665640564039457584007913129639936, fst @@ v3, v4)) in
+ Z.add_modulo @@ (v5, 0, 115792089210356248762697446949407573530086143415290314195533631308867097853951))%expr)
: Z * Z -> Z
-
*)
(* with named constants *)