diff options
author | Jason Gross <jgross@mit.edu> | 2017-11-12 20:37:52 -0500 |
---|---|---|
committer | Jason Gross <jgross@mit.edu> | 2017-11-12 20:37:52 -0500 |
commit | 3441856432d451a3d5e807bea7d6e7c500942c12 (patch) | |
tree | 338ba4e518452daeaead9301fe06dc6ebe5040a6 /src/Specific/solinas64_2e166m5_4limbs | |
parent | e5efbf51add38c90d7bbdde6d1887762fa1ecc8f (diff) |
Update display logs and c files
Diffstat (limited to 'src/Specific/solinas64_2e166m5_4limbs')
-rw-r--r-- | src/Specific/solinas64_2e166m5_4limbs/feadd.c | 15 | ||||
-rw-r--r-- | src/Specific/solinas64_2e166m5_4limbs/feaddDisplay.log | 7 | ||||
-rw-r--r-- | src/Specific/solinas64_2e166m5_4limbs/femul.c | 36 | ||||
-rw-r--r-- | src/Specific/solinas64_2e166m5_4limbs/femulDisplay.log | 28 | ||||
-rw-r--r-- | src/Specific/solinas64_2e166m5_4limbs/fesquare.c | 32 | ||||
-rw-r--r-- | src/Specific/solinas64_2e166m5_4limbs/fesquareDisplay.log | 28 | ||||
-rw-r--r-- | src/Specific/solinas64_2e166m5_4limbs/fesub.c | 15 | ||||
-rw-r--r-- | src/Specific/solinas64_2e166m5_4limbs/fesubDisplay.log | 7 | ||||
-rw-r--r-- | src/Specific/solinas64_2e166m5_4limbs/freeze.c | 24 | ||||
-rw-r--r-- | src/Specific/solinas64_2e166m5_4limbs/freezeDisplay.log | 20 |
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) |