aboutsummaryrefslogtreecommitdiff
path: root/src/Specific/solinas64_2e166m5_4limbs
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-11-12 20:37:52 -0500
committerGravatar Jason Gross <jgross@mit.edu>2017-11-12 20:37:52 -0500
commit3441856432d451a3d5e807bea7d6e7c500942c12 (patch)
tree338ba4e518452daeaead9301fe06dc6ebe5040a6 /src/Specific/solinas64_2e166m5_4limbs
parente5efbf51add38c90d7bbdde6d1887762fa1ecc8f (diff)
Update display logs and c files
Diffstat (limited to 'src/Specific/solinas64_2e166m5_4limbs')
-rw-r--r--src/Specific/solinas64_2e166m5_4limbs/feadd.c15
-rw-r--r--src/Specific/solinas64_2e166m5_4limbs/feaddDisplay.log7
-rw-r--r--src/Specific/solinas64_2e166m5_4limbs/femul.c36
-rw-r--r--src/Specific/solinas64_2e166m5_4limbs/femulDisplay.log28
-rw-r--r--src/Specific/solinas64_2e166m5_4limbs/fesquare.c32
-rw-r--r--src/Specific/solinas64_2e166m5_4limbs/fesquareDisplay.log28
-rw-r--r--src/Specific/solinas64_2e166m5_4limbs/fesub.c15
-rw-r--r--src/Specific/solinas64_2e166m5_4limbs/fesubDisplay.log7
-rw-r--r--src/Specific/solinas64_2e166m5_4limbs/freeze.c24
-rw-r--r--src/Specific/solinas64_2e166m5_4limbs/freezeDisplay.log20
10 files changed, 212 insertions, 0 deletions
diff --git a/src/Specific/solinas64_2e166m5_4limbs/feadd.c b/src/Specific/solinas64_2e166m5_4limbs/feadd.c
new file mode 100644
index 000000000..d304c298a
--- /dev/null
+++ b/src/Specific/solinas64_2e166m5_4limbs/feadd.c
@@ -0,0 +1,15 @@
+static void feadd(uint64_t out[4], const uint64_t in1[4], const uint64_t in2[4]) {
+ { const uint64_t x8 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x14 = in2[3];
+ { const uint64_t x15 = in2[2];
+ { const uint64_t x13 = in2[1];
+ { const uint64_t x11 = in2[0];
+ out[0] = (x5 + x11);
+ out[1] = (x7 + x13);
+ out[2] = (x9 + x15);
+ out[3] = (x8 + x14);
+ }}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e166m5_4limbs/feaddDisplay.log b/src/Specific/solinas64_2e166m5_4limbs/feaddDisplay.log
new file mode 100644
index 000000000..d42ef91c3
--- /dev/null
+++ b/src/Specific/solinas64_2e166m5_4limbs/feaddDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x8, x9, x7, x5, (x14, x15, x13, x11))%core,
+ ((x8 + x14), (x9 + x15), (x7 + x13), (x5 + x11)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e166m5_4limbs/femul.c b/src/Specific/solinas64_2e166m5_4limbs/femul.c
new file mode 100644
index 000000000..e67a4208e
--- /dev/null
+++ b/src/Specific/solinas64_2e166m5_4limbs/femul.c
@@ -0,0 +1,36 @@
+static void femul(uint64_t out[4], const uint64_t in1[4], const uint64_t in2[4]) {
+ { const uint64_t x8 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x14 = in2[3];
+ { const uint64_t x15 = in2[2];
+ { const uint64_t x13 = in2[1];
+ { const uint64_t x11 = in2[0];
+ { uint128_t x16 = (((uint128_t)x5 * x14) + (((uint128_t)x7 * x15) + (((uint128_t)x9 * x13) + ((uint128_t)x8 * x11))));
+ { uint128_t x17 = ((((uint128_t)x5 * x15) + ((0x2 * ((uint128_t)x7 * x13)) + ((uint128_t)x9 * x11))) + (0x5 * (0x2 * ((uint128_t)x8 * x14))));
+ { uint128_t x18 = ((((uint128_t)x5 * x13) + ((uint128_t)x7 * x11)) + (0x5 * (((uint128_t)x9 * x14) + ((uint128_t)x8 * x15))));
+ { uint128_t x19 = (((uint128_t)x5 * x11) + (0x5 * ((0x2 * ((uint128_t)x7 * x14)) + (((uint128_t)x9 * x15) + (0x2 * ((uint128_t)x8 * x13))))));
+ { uint64_t x20 = (uint64_t) (x19 >> 0x2a);
+ { uint64_t x21 = ((uint64_t)x19 & 0x3ffffffffff);
+ { uint128_t x22 = (x20 + x18);
+ { uint64_t x23 = (uint64_t) (x22 >> 0x29);
+ { uint64_t x24 = ((uint64_t)x22 & 0x1ffffffffff);
+ { uint128_t x25 = (x23 + x17);
+ { uint64_t x26 = (uint64_t) (x25 >> 0x2a);
+ { uint64_t x27 = ((uint64_t)x25 & 0x3ffffffffff);
+ { uint128_t x28 = (x26 + x16);
+ { uint64_t x29 = (uint64_t) (x28 >> 0x29);
+ { uint64_t x30 = ((uint64_t)x28 & 0x1ffffffffff);
+ { uint64_t x31 = (x21 + (0x5 * x29));
+ { uint64_t x32 = (x31 >> 0x2a);
+ { uint64_t x33 = (x31 & 0x3ffffffffff);
+ { uint64_t x34 = (x32 + x24);
+ { uint64_t x35 = (x34 >> 0x29);
+ { uint64_t x36 = (x34 & 0x1ffffffffff);
+ out[0] = x33;
+ out[1] = x36;
+ out[2] = (x35 + x27);
+ out[3] = x30;
+ }}}}}}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e166m5_4limbs/femulDisplay.log b/src/Specific/solinas64_2e166m5_4limbs/femulDisplay.log
new file mode 100644
index 000000000..72130bf4c
--- /dev/null
+++ b/src/Specific/solinas64_2e166m5_4limbs/femulDisplay.log
@@ -0,0 +1,28 @@
+λ x x0 : word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x8, x9, x7, x5, (x14, x15, x13, x11))%core,
+ uint128_t x16 = (((uint128_t)x5 * x14) + (((uint128_t)x7 * x15) + (((uint128_t)x9 * x13) + ((uint128_t)x8 * x11))));
+ uint128_t x17 = ((((uint128_t)x5 * x15) + ((0x2 * ((uint128_t)x7 * x13)) + ((uint128_t)x9 * x11))) + (0x5 * (0x2 * ((uint128_t)x8 * x14))));
+ uint128_t x18 = ((((uint128_t)x5 * x13) + ((uint128_t)x7 * x11)) + (0x5 * (((uint128_t)x9 * x14) + ((uint128_t)x8 * x15))));
+ uint128_t x19 = (((uint128_t)x5 * x11) + (0x5 * ((0x2 * ((uint128_t)x7 * x14)) + (((uint128_t)x9 * x15) + (0x2 * ((uint128_t)x8 * x13))))));
+ uint64_t x20 = (uint64_t) (x19 >> 0x2a);
+ uint64_t x21 = ((uint64_t)x19 & 0x3ffffffffff);
+ uint128_t x22 = (x20 + x18);
+ uint64_t x23 = (uint64_t) (x22 >> 0x29);
+ uint64_t x24 = ((uint64_t)x22 & 0x1ffffffffff);
+ uint128_t x25 = (x23 + x17);
+ uint64_t x26 = (uint64_t) (x25 >> 0x2a);
+ uint64_t x27 = ((uint64_t)x25 & 0x3ffffffffff);
+ uint128_t x28 = (x26 + x16);
+ uint64_t x29 = (uint64_t) (x28 >> 0x29);
+ uint64_t x30 = ((uint64_t)x28 & 0x1ffffffffff);
+ uint64_t x31 = (x21 + (0x5 * x29));
+ uint64_t x32 = (x31 >> 0x2a);
+ uint64_t x33 = (x31 & 0x3ffffffffff);
+ uint64_t x34 = (x32 + x24);
+ uint64_t x35 = (x34 >> 0x29);
+ uint64_t x36 = (x34 & 0x1ffffffffff);
+ return (Return x30, (x35 + x27), Return x36, Return x33))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e166m5_4limbs/fesquare.c b/src/Specific/solinas64_2e166m5_4limbs/fesquare.c
new file mode 100644
index 000000000..b122963ff
--- /dev/null
+++ b/src/Specific/solinas64_2e166m5_4limbs/fesquare.c
@@ -0,0 +1,32 @@
+static void fesquare(uint64_t out[4], const uint64_t in1[4]) {
+ { const uint64_t x5 = in1[3];
+ { const uint64_t x6 = in1[2];
+ { const uint64_t x4 = in1[1];
+ { const uint64_t x2 = in1[0];
+ { uint128_t x7 = (((uint128_t)x2 * x5) + (((uint128_t)x4 * x6) + (((uint128_t)x6 * x4) + ((uint128_t)x5 * x2))));
+ { uint128_t x8 = ((((uint128_t)x2 * x6) + ((0x2 * ((uint128_t)x4 * x4)) + ((uint128_t)x6 * x2))) + (0x5 * (0x2 * ((uint128_t)x5 * x5))));
+ { uint128_t x9 = ((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + (0x5 * (((uint128_t)x6 * x5) + ((uint128_t)x5 * x6))));
+ { uint128_t x10 = (((uint128_t)x2 * x2) + (0x5 * ((0x2 * ((uint128_t)x4 * x5)) + (((uint128_t)x6 * x6) + (0x2 * ((uint128_t)x5 * x4))))));
+ { uint64_t x11 = (uint64_t) (x10 >> 0x2a);
+ { uint64_t x12 = ((uint64_t)x10 & 0x3ffffffffff);
+ { uint128_t x13 = (x11 + x9);
+ { uint64_t x14 = (uint64_t) (x13 >> 0x29);
+ { uint64_t x15 = ((uint64_t)x13 & 0x1ffffffffff);
+ { uint128_t x16 = (x14 + x8);
+ { uint64_t x17 = (uint64_t) (x16 >> 0x2a);
+ { uint64_t x18 = ((uint64_t)x16 & 0x3ffffffffff);
+ { uint128_t x19 = (x17 + x7);
+ { uint64_t x20 = (uint64_t) (x19 >> 0x29);
+ { uint64_t x21 = ((uint64_t)x19 & 0x1ffffffffff);
+ { uint64_t x22 = (x12 + (0x5 * x20));
+ { uint64_t x23 = (x22 >> 0x2a);
+ { uint64_t x24 = (x22 & 0x3ffffffffff);
+ { uint64_t x25 = (x23 + x15);
+ { uint64_t x26 = (x25 >> 0x29);
+ { uint64_t x27 = (x25 & 0x1ffffffffff);
+ out[0] = x24;
+ out[1] = x27;
+ out[2] = (x26 + x18);
+ out[3] = x21;
+ }}}}}}}}}}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e166m5_4limbs/fesquareDisplay.log b/src/Specific/solinas64_2e166m5_4limbs/fesquareDisplay.log
new file mode 100644
index 000000000..812ab2270
--- /dev/null
+++ b/src/Specific/solinas64_2e166m5_4limbs/fesquareDisplay.log
@@ -0,0 +1,28 @@
+λ x : word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x5, x6, x4, x2)%core,
+ uint128_t x7 = (((uint128_t)x2 * x5) + (((uint128_t)x4 * x6) + (((uint128_t)x6 * x4) + ((uint128_t)x5 * x2))));
+ uint128_t x8 = ((((uint128_t)x2 * x6) + ((0x2 * ((uint128_t)x4 * x4)) + ((uint128_t)x6 * x2))) + (0x5 * (0x2 * ((uint128_t)x5 * x5))));
+ uint128_t x9 = ((((uint128_t)x2 * x4) + ((uint128_t)x4 * x2)) + (0x5 * (((uint128_t)x6 * x5) + ((uint128_t)x5 * x6))));
+ uint128_t x10 = (((uint128_t)x2 * x2) + (0x5 * ((0x2 * ((uint128_t)x4 * x5)) + (((uint128_t)x6 * x6) + (0x2 * ((uint128_t)x5 * x4))))));
+ uint64_t x11 = (uint64_t) (x10 >> 0x2a);
+ uint64_t x12 = ((uint64_t)x10 & 0x3ffffffffff);
+ uint128_t x13 = (x11 + x9);
+ uint64_t x14 = (uint64_t) (x13 >> 0x29);
+ uint64_t x15 = ((uint64_t)x13 & 0x1ffffffffff);
+ uint128_t x16 = (x14 + x8);
+ uint64_t x17 = (uint64_t) (x16 >> 0x2a);
+ uint64_t x18 = ((uint64_t)x16 & 0x3ffffffffff);
+ uint128_t x19 = (x17 + x7);
+ uint64_t x20 = (uint64_t) (x19 >> 0x29);
+ uint64_t x21 = ((uint64_t)x19 & 0x1ffffffffff);
+ uint64_t x22 = (x12 + (0x5 * x20));
+ uint64_t x23 = (x22 >> 0x2a);
+ uint64_t x24 = (x22 & 0x3ffffffffff);
+ uint64_t x25 = (x23 + x15);
+ uint64_t x26 = (x25 >> 0x29);
+ uint64_t x27 = (x25 & 0x1ffffffffff);
+ return (Return x21, (x26 + x18), Return x27, Return x24))
+x
+ : word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e166m5_4limbs/fesub.c b/src/Specific/solinas64_2e166m5_4limbs/fesub.c
new file mode 100644
index 000000000..a261e6c5e
--- /dev/null
+++ b/src/Specific/solinas64_2e166m5_4limbs/fesub.c
@@ -0,0 +1,15 @@
+static void fesub(uint64_t out[4], const uint64_t in1[4], const uint64_t in2[4]) {
+ { const uint64_t x8 = in1[3];
+ { const uint64_t x9 = in1[2];
+ { const uint64_t x7 = in1[1];
+ { const uint64_t x5 = in1[0];
+ { const uint64_t x14 = in2[3];
+ { const uint64_t x15 = in2[2];
+ { const uint64_t x13 = in2[1];
+ { const uint64_t x11 = in2[0];
+ out[0] = ((Const 8796093022198 + x5) - x11);
+ out[1] = ((0x3fffffffffe + x7) - x13);
+ out[2] = ((0x7fffffffffe + x9) - x15);
+ out[3] = ((0x3fffffffffe + x8) - x14);
+ }}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e166m5_4limbs/fesubDisplay.log b/src/Specific/solinas64_2e166m5_4limbs/fesubDisplay.log
new file mode 100644
index 000000000..ff4bb8bf3
--- /dev/null
+++ b/src/Specific/solinas64_2e166m5_4limbs/fesubDisplay.log
@@ -0,0 +1,7 @@
+λ x x0 : word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x8, x9, x7, x5, (x14, x15, x13, x11))%core,
+ (((0x3fffffffffe + x8) - x14), ((0x7fffffffffe + x9) - x15), ((0x3fffffffffe + x7) - x13), ((Const 8796093022198 + x5) - x11)))
+(x, x0)%core
+ : word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t)
diff --git a/src/Specific/solinas64_2e166m5_4limbs/freeze.c b/src/Specific/solinas64_2e166m5_4limbs/freeze.c
new file mode 100644
index 000000000..d977b09c8
--- /dev/null
+++ b/src/Specific/solinas64_2e166m5_4limbs/freeze.c
@@ -0,0 +1,24 @@
+static void freeze(uint64_t out[4], const uint64_t in1[4]) {
+ { const uint64_t x5 = in1[3];
+ { const uint64_t x6 = in1[2];
+ { const uint64_t x4 = in1[1];
+ { const uint64_t x2 = in1[0];
+ { uint64_t x8, uint8_t x9 = Op (Syntax.SubWithGetBorrow 42 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x3fffffffffb);
+ { uint64_t x11, uint8_t x12 = Op (Syntax.SubWithGetBorrow 41 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x9, Return x4, 0x1ffffffffff);
+ { uint64_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 42 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x12, Return x6, 0x3ffffffffff);
+ { uint64_t x17, uint8_t x18 = Op (Syntax.SubWithGetBorrow 41 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x15, Return x5, 0x1ffffffffff);
+ { uint64_t x19 = cmovznz64(x18, 0x0, 0xffffffffffffffffL);
+ { uint64_t x20 = (x19 & 0x3fffffffffb);
+ { uint64_t x22, uint8_t x23 = Op (Syntax.AddWithGetCarry 42 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x8, Return x20);
+ { uint64_t x24 = (x19 & 0x1ffffffffff);
+ { uint64_t x26, uint8_t x27 = Op (Syntax.AddWithGetCarry 41 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x23, Return x11, Return x24);
+ { uint64_t x28 = (x19 & 0x3ffffffffff);
+ { uint64_t x30, uint8_t x31 = Op (Syntax.AddWithGetCarry 42 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x27, Return x14, Return x28);
+ { uint64_t x32 = (x19 & 0x1ffffffffff);
+ { uint64_t x34, uint8_t _ = Op (Syntax.AddWithGetCarry 41 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x31, Return x17, Return x32);
+ out[0] = x22;
+ out[1] = x26;
+ out[2] = x30;
+ out[3] = x34;
+ }}}}}}}}}}}}}}}}}
+}
diff --git a/src/Specific/solinas64_2e166m5_4limbs/freezeDisplay.log b/src/Specific/solinas64_2e166m5_4limbs/freezeDisplay.log
new file mode 100644
index 000000000..4bd7ef98e
--- /dev/null
+++ b/src/Specific/solinas64_2e166m5_4limbs/freezeDisplay.log
@@ -0,0 +1,20 @@
+λ x : word64 * word64 * word64 * word64,
+Interp-η
+(λ var : Syntax.base_type → Type,
+ λ '(x5, x6, x4, x2)%core,
+ uint64_t x8, uint8_t x9 = Op (Syntax.SubWithGetBorrow 42 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0x3fffffffffb);
+ uint64_t x11, uint8_t x12 = Op (Syntax.SubWithGetBorrow 41 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x9, Return x4, 0x1ffffffffff);
+ uint64_t x14, uint8_t x15 = Op (Syntax.SubWithGetBorrow 42 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x12, Return x6, 0x3ffffffffff);
+ uint64_t x17, uint8_t x18 = Op (Syntax.SubWithGetBorrow 41 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x15, Return x5, 0x1ffffffffff);
+ uint64_t x19 = cmovznz64(x18, 0x0, 0xffffffffffffffffL);
+ uint64_t x20 = (x19 & 0x3fffffffffb);
+ uint64_t x22, uint8_t x23 = Op (Syntax.AddWithGetCarry 42 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x8, Return x20);
+ uint64_t x24 = (x19 & 0x1ffffffffff);
+ uint64_t x26, uint8_t x27 = Op (Syntax.AddWithGetCarry 41 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x23, Return x11, Return x24);
+ uint64_t x28 = (x19 & 0x3ffffffffff);
+ uint64_t x30, uint8_t x31 = Op (Syntax.AddWithGetCarry 42 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x27, Return x14, Return x28);
+ uint64_t x32 = (x19 & 0x1ffffffffff);
+ uint64_t x34, uint8_t _ = Op (Syntax.AddWithGetCarry 41 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x31, Return x17, Return x32);
+ (Return x34, Return x30, Return x26, Return x22))
+x
+ : word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t)