From 0fb9f7904cfbda8bf485eef9f0b8901350b6861e Mon Sep 17 00:00:00 2001 From: Jason Gross Date: Mon, 13 Nov 2017 19:07:21 -0500 Subject: Update display logs and c files --- .../montgomery64_2e450m2e225m1_8limbs/fenz.c | 19 ++++++++ .../fenzDisplay.log | 14 ++++++ src/Specific/montgomery64_2e511m187_8limbs/feadd.c | 52 ++++++++++++++++++++++ .../montgomery64_2e511m187_8limbs/feaddDisplay.log | 32 +++++++++++++ src/Specific/montgomery64_2e511m187_8limbs/fenz.c | 19 ++++++++ .../montgomery64_2e511m187_8limbs/fenzDisplay.log | 14 ++++++ src/Specific/montgomery64_2e512m569_8limbs/feadd.c | 52 ++++++++++++++++++++++ .../montgomery64_2e512m569_8limbs/feaddDisplay.log | 32 +++++++++++++ src/Specific/montgomery64_2e512m569_8limbs/fenz.c | 19 ++++++++ .../montgomery64_2e512m569_8limbs/fenzDisplay.log | 14 ++++++ 10 files changed, 267 insertions(+) create mode 100644 src/Specific/montgomery64_2e450m2e225m1_8limbs/fenz.c create mode 100644 src/Specific/montgomery64_2e450m2e225m1_8limbs/fenzDisplay.log create mode 100644 src/Specific/montgomery64_2e511m187_8limbs/feadd.c create mode 100644 src/Specific/montgomery64_2e511m187_8limbs/feaddDisplay.log create mode 100644 src/Specific/montgomery64_2e511m187_8limbs/fenz.c create mode 100644 src/Specific/montgomery64_2e511m187_8limbs/fenzDisplay.log create mode 100644 src/Specific/montgomery64_2e512m569_8limbs/feadd.c create mode 100644 src/Specific/montgomery64_2e512m569_8limbs/feaddDisplay.log create mode 100644 src/Specific/montgomery64_2e512m569_8limbs/fenz.c create mode 100644 src/Specific/montgomery64_2e512m569_8limbs/fenzDisplay.log (limited to 'src/Specific') diff --git a/src/Specific/montgomery64_2e450m2e225m1_8limbs/fenz.c b/src/Specific/montgomery64_2e450m2e225m1_8limbs/fenz.c new file mode 100644 index 000000000..a07b0df9c --- /dev/null +++ b/src/Specific/montgomery64_2e450m2e225m1_8limbs/fenz.c @@ -0,0 +1,19 @@ +static void fenz(ReturnType uint64_t out[1], const uint64_t in1[8]) { + { const uint64_t x13 = in1[7]; + { const uint64_t x14 = in1[6]; + { const uint64_t x12 = in1[5]; + { const uint64_t x10 = in1[4]; + { const uint64_t x8 = in1[3]; + { const uint64_t x6 = in1[2]; + { const uint64_t x4 = in1[1]; + { const uint64_t x2 = in1[0]; + { uint64_t x15 = (x14 | x13); + { uint64_t x16 = (x12 | x15); + { uint64_t x17 = (x10 | x16); + { uint64_t x18 = (x8 | x17); + { uint64_t x19 = (x6 | x18); + { uint64_t x20 = (x4 | x19); + { uint64_t x21 = (x2 | x20); + out[0] = x21; + }}}}}}}}}}}}}}} +} diff --git a/src/Specific/montgomery64_2e450m2e225m1_8limbs/fenzDisplay.log b/src/Specific/montgomery64_2e450m2e225m1_8limbs/fenzDisplay.log new file mode 100644 index 000000000..a05fc22ab --- /dev/null +++ b/src/Specific/montgomery64_2e450m2e225m1_8limbs/fenzDisplay.log @@ -0,0 +1,14 @@ +λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64, +Interp-η +(λ var : Syntax.base_type → Type, + λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core, + uint64_t x15 = (x14 | x13); + uint64_t x16 = (x12 | x15); + uint64_t x17 = (x10 | x16); + uint64_t x18 = (x8 | x17); + uint64_t x19 = (x6 | x18); + uint64_t x20 = (x4 | x19); + uint64_t x21 = (x2 | x20); + return x21) +x + : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType uint64_t diff --git a/src/Specific/montgomery64_2e511m187_8limbs/feadd.c b/src/Specific/montgomery64_2e511m187_8limbs/feadd.c new file mode 100644 index 000000000..ef4b7bc6d --- /dev/null +++ b/src/Specific/montgomery64_2e511m187_8limbs/feadd.c @@ -0,0 +1,52 @@ +static void feadd(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) { + { const uint64_t x16 = in1[7]; + { const uint64_t x17 = in1[6]; + { const uint64_t x15 = in1[5]; + { const uint64_t x13 = in1[4]; + { const uint64_t x11 = in1[3]; + { const uint64_t x9 = in1[2]; + { const uint64_t x7 = in1[1]; + { const uint64_t x5 = in1[0]; + { const uint64_t x30 = in2[7]; + { const uint64_t x31 = in2[6]; + { const uint64_t x29 = in2[5]; + { const uint64_t x27 = in2[4]; + { const uint64_t x25 = in2[3]; + { const uint64_t x23 = in2[2]; + { const uint64_t x21 = in2[1]; + { const uint64_t x19 = in2[0]; + { uint64_t x33; uint8_t x34 = _addcarryx_u64(0x0, x5, x19, &x33); + { uint64_t x36; uint8_t x37 = _addcarryx_u64(x34, x7, x21, &x36); + { uint64_t x39; uint8_t x40 = _addcarryx_u64(x37, x9, x23, &x39); + { uint64_t x42; uint8_t x43 = _addcarryx_u64(x40, x11, x25, &x42); + { uint64_t x45; uint8_t x46 = _addcarryx_u64(x43, x13, x27, &x45); + { uint64_t x48; uint8_t x49 = _addcarryx_u64(x46, x15, x29, &x48); + { uint64_t x51; uint8_t x52 = _addcarryx_u64(x49, x17, x31, &x51); + { uint64_t x54; uint8_t x55 = _addcarryx_u64(x52, x16, x30, &x54); + { uint64_t x57; uint8_t x58 = _subborrow_u64(0x0, x33, 0xffffffffffffff45L, &x57); + { uint64_t x60; uint8_t x61 = _subborrow_u64(x58, x36, 0xffffffffffffffffL, &x60); + { uint64_t x63; uint8_t x64 = _subborrow_u64(x61, x39, 0xffffffffffffffffL, &x63); + { uint64_t x66; uint8_t x67 = _subborrow_u64(x64, x42, 0xffffffffffffffffL, &x66); + { uint64_t x69; uint8_t x70 = _subborrow_u64(x67, x45, 0xffffffffffffffffL, &x69); + { uint64_t x72; uint8_t x73 = _subborrow_u64(x70, x48, 0xffffffffffffffffL, &x72); + { uint64_t x75; uint8_t x76 = _subborrow_u64(x73, x51, 0xffffffffffffffffL, &x75); + { uint64_t x78; uint8_t x79 = _subborrow_u64(x76, x54, 0x7fffffffffffffffL, &x78); + { uint64_t _; uint8_t x82 = _subborrow_u64(x79, x55, 0x0, &_); + { uint64_t x83 = cmovznz64(x82, x78, x54); + { uint64_t x84 = cmovznz64(x82, x75, x51); + { uint64_t x85 = cmovznz64(x82, x72, x48); + { uint64_t x86 = cmovznz64(x82, x69, x45); + { uint64_t x87 = cmovznz64(x82, x66, x42); + { uint64_t x88 = cmovznz64(x82, x63, x39); + { uint64_t x89 = cmovznz64(x82, x60, x36); + { uint64_t x90 = cmovznz64(x82, x57, x33); + out[0] = x90; + out[1] = x89; + out[2] = x88; + out[3] = x87; + out[4] = x86; + out[5] = x85; + out[6] = x84; + out[7] = x83; + }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} +} diff --git a/src/Specific/montgomery64_2e511m187_8limbs/feaddDisplay.log b/src/Specific/montgomery64_2e511m187_8limbs/feaddDisplay.log new file mode 100644 index 000000000..88beaff82 --- /dev/null +++ b/src/Specific/montgomery64_2e511m187_8limbs/feaddDisplay.log @@ -0,0 +1,32 @@ +λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64, +Interp-η +(λ var : Syntax.base_type → Type, + λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core, + uint64_t x33, uint8_t x34 = addcarryx_u64(0x0, x5, x19); + uint64_t x36, uint8_t x37 = addcarryx_u64(x34, x7, x21); + uint64_t x39, uint8_t x40 = addcarryx_u64(x37, x9, x23); + uint64_t x42, uint8_t x43 = addcarryx_u64(x40, x11, x25); + uint64_t x45, uint8_t x46 = addcarryx_u64(x43, x13, x27); + uint64_t x48, uint8_t x49 = addcarryx_u64(x46, x15, x29); + uint64_t x51, uint8_t x52 = addcarryx_u64(x49, x17, x31); + uint64_t x54, uint8_t x55 = addcarryx_u64(x52, x16, x30); + uint64_t x57, uint8_t x58 = subborrow_u64(0x0, x33, 0xffffffffffffff45L); + uint64_t x60, uint8_t x61 = subborrow_u64(x58, x36, 0xffffffffffffffffL); + uint64_t x63, uint8_t x64 = subborrow_u64(x61, x39, 0xffffffffffffffffL); + uint64_t x66, uint8_t x67 = subborrow_u64(x64, x42, 0xffffffffffffffffL); + uint64_t x69, uint8_t x70 = subborrow_u64(x67, x45, 0xffffffffffffffffL); + uint64_t x72, uint8_t x73 = subborrow_u64(x70, x48, 0xffffffffffffffffL); + uint64_t x75, uint8_t x76 = subborrow_u64(x73, x51, 0xffffffffffffffffL); + uint64_t x78, uint8_t x79 = subborrow_u64(x76, x54, 0x7fffffffffffffffL); + uint64_t _, uint8_t x82 = subborrow_u64(x79, x55, 0x0); + uint64_t x83 = cmovznz64(x82, x78, x54); + uint64_t x84 = cmovznz64(x82, x75, x51); + uint64_t x85 = cmovznz64(x82, x72, x48); + uint64_t x86 = cmovznz64(x82, x69, x45); + uint64_t x87 = cmovznz64(x82, x66, x42); + uint64_t x88 = cmovznz64(x82, x63, x39); + uint64_t x89 = cmovznz64(x82, x60, x36); + uint64_t x90 = cmovznz64(x82, x57, x33); + return (x83, x84, x85, x86, x87, x88, x89, x90)) +(x, x0)%core + : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t) diff --git a/src/Specific/montgomery64_2e511m187_8limbs/fenz.c b/src/Specific/montgomery64_2e511m187_8limbs/fenz.c new file mode 100644 index 000000000..a07b0df9c --- /dev/null +++ b/src/Specific/montgomery64_2e511m187_8limbs/fenz.c @@ -0,0 +1,19 @@ +static void fenz(ReturnType uint64_t out[1], const uint64_t in1[8]) { + { const uint64_t x13 = in1[7]; + { const uint64_t x14 = in1[6]; + { const uint64_t x12 = in1[5]; + { const uint64_t x10 = in1[4]; + { const uint64_t x8 = in1[3]; + { const uint64_t x6 = in1[2]; + { const uint64_t x4 = in1[1]; + { const uint64_t x2 = in1[0]; + { uint64_t x15 = (x14 | x13); + { uint64_t x16 = (x12 | x15); + { uint64_t x17 = (x10 | x16); + { uint64_t x18 = (x8 | x17); + { uint64_t x19 = (x6 | x18); + { uint64_t x20 = (x4 | x19); + { uint64_t x21 = (x2 | x20); + out[0] = x21; + }}}}}}}}}}}}}}} +} diff --git a/src/Specific/montgomery64_2e511m187_8limbs/fenzDisplay.log b/src/Specific/montgomery64_2e511m187_8limbs/fenzDisplay.log new file mode 100644 index 000000000..a05fc22ab --- /dev/null +++ b/src/Specific/montgomery64_2e511m187_8limbs/fenzDisplay.log @@ -0,0 +1,14 @@ +λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64, +Interp-η +(λ var : Syntax.base_type → Type, + λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core, + uint64_t x15 = (x14 | x13); + uint64_t x16 = (x12 | x15); + uint64_t x17 = (x10 | x16); + uint64_t x18 = (x8 | x17); + uint64_t x19 = (x6 | x18); + uint64_t x20 = (x4 | x19); + uint64_t x21 = (x2 | x20); + return x21) +x + : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType uint64_t diff --git a/src/Specific/montgomery64_2e512m569_8limbs/feadd.c b/src/Specific/montgomery64_2e512m569_8limbs/feadd.c new file mode 100644 index 000000000..5ef15f5f9 --- /dev/null +++ b/src/Specific/montgomery64_2e512m569_8limbs/feadd.c @@ -0,0 +1,52 @@ +static void feadd(uint64_t out[8], const uint64_t in1[8], const uint64_t in2[8]) { + { const uint64_t x16 = in1[7]; + { const uint64_t x17 = in1[6]; + { const uint64_t x15 = in1[5]; + { const uint64_t x13 = in1[4]; + { const uint64_t x11 = in1[3]; + { const uint64_t x9 = in1[2]; + { const uint64_t x7 = in1[1]; + { const uint64_t x5 = in1[0]; + { const uint64_t x30 = in2[7]; + { const uint64_t x31 = in2[6]; + { const uint64_t x29 = in2[5]; + { const uint64_t x27 = in2[4]; + { const uint64_t x25 = in2[3]; + { const uint64_t x23 = in2[2]; + { const uint64_t x21 = in2[1]; + { const uint64_t x19 = in2[0]; + { uint64_t x33; uint8_t x34 = _addcarryx_u64(0x0, x5, x19, &x33); + { uint64_t x36; uint8_t x37 = _addcarryx_u64(x34, x7, x21, &x36); + { uint64_t x39; uint8_t x40 = _addcarryx_u64(x37, x9, x23, &x39); + { uint64_t x42; uint8_t x43 = _addcarryx_u64(x40, x11, x25, &x42); + { uint64_t x45; uint8_t x46 = _addcarryx_u64(x43, x13, x27, &x45); + { uint64_t x48; uint8_t x49 = _addcarryx_u64(x46, x15, x29, &x48); + { uint64_t x51; uint8_t x52 = _addcarryx_u64(x49, x17, x31, &x51); + { uint64_t x54; uint8_t x55 = _addcarryx_u64(x52, x16, x30, &x54); + { uint64_t x57; uint8_t x58 = _subborrow_u64(0x0, x33, 0xfffffffffffffdc7L, &x57); + { uint64_t x60; uint8_t x61 = _subborrow_u64(x58, x36, 0xffffffffffffffffL, &x60); + { uint64_t x63; uint8_t x64 = _subborrow_u64(x61, x39, 0xffffffffffffffffL, &x63); + { uint64_t x66; uint8_t x67 = _subborrow_u64(x64, x42, 0xffffffffffffffffL, &x66); + { uint64_t x69; uint8_t x70 = _subborrow_u64(x67, x45, 0xffffffffffffffffL, &x69); + { uint64_t x72; uint8_t x73 = _subborrow_u64(x70, x48, 0xffffffffffffffffL, &x72); + { uint64_t x75; uint8_t x76 = _subborrow_u64(x73, x51, 0xffffffffffffffffL, &x75); + { uint64_t x78; uint8_t x79 = _subborrow_u64(x76, x54, 0xffffffffffffffffL, &x78); + { uint64_t _; uint8_t x82 = _subborrow_u64(x79, x55, 0x0, &_); + { uint64_t x83 = cmovznz64(x82, x78, x54); + { uint64_t x84 = cmovznz64(x82, x75, x51); + { uint64_t x85 = cmovznz64(x82, x72, x48); + { uint64_t x86 = cmovznz64(x82, x69, x45); + { uint64_t x87 = cmovznz64(x82, x66, x42); + { uint64_t x88 = cmovznz64(x82, x63, x39); + { uint64_t x89 = cmovznz64(x82, x60, x36); + { uint64_t x90 = cmovznz64(x82, x57, x33); + out[0] = x90; + out[1] = x89; + out[2] = x88; + out[3] = x87; + out[4] = x86; + out[5] = x85; + out[6] = x84; + out[7] = x83; + }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} +} diff --git a/src/Specific/montgomery64_2e512m569_8limbs/feaddDisplay.log b/src/Specific/montgomery64_2e512m569_8limbs/feaddDisplay.log new file mode 100644 index 000000000..75c6272df --- /dev/null +++ b/src/Specific/montgomery64_2e512m569_8limbs/feaddDisplay.log @@ -0,0 +1,32 @@ +λ x x0 : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64, +Interp-η +(λ var : Syntax.base_type → Type, + λ '(x16, x17, x15, x13, x11, x9, x7, x5, (x30, x31, x29, x27, x25, x23, x21, x19))%core, + uint64_t x33, uint8_t x34 = addcarryx_u64(0x0, x5, x19); + uint64_t x36, uint8_t x37 = addcarryx_u64(x34, x7, x21); + uint64_t x39, uint8_t x40 = addcarryx_u64(x37, x9, x23); + uint64_t x42, uint8_t x43 = addcarryx_u64(x40, x11, x25); + uint64_t x45, uint8_t x46 = addcarryx_u64(x43, x13, x27); + uint64_t x48, uint8_t x49 = addcarryx_u64(x46, x15, x29); + uint64_t x51, uint8_t x52 = addcarryx_u64(x49, x17, x31); + uint64_t x54, uint8_t x55 = addcarryx_u64(x52, x16, x30); + uint64_t x57, uint8_t x58 = subborrow_u64(0x0, x33, 0xfffffffffffffdc7L); + uint64_t x60, uint8_t x61 = subborrow_u64(x58, x36, 0xffffffffffffffffL); + uint64_t x63, uint8_t x64 = subborrow_u64(x61, x39, 0xffffffffffffffffL); + uint64_t x66, uint8_t x67 = subborrow_u64(x64, x42, 0xffffffffffffffffL); + uint64_t x69, uint8_t x70 = subborrow_u64(x67, x45, 0xffffffffffffffffL); + uint64_t x72, uint8_t x73 = subborrow_u64(x70, x48, 0xffffffffffffffffL); + uint64_t x75, uint8_t x76 = subborrow_u64(x73, x51, 0xffffffffffffffffL); + uint64_t x78, uint8_t x79 = subborrow_u64(x76, x54, 0xffffffffffffffffL); + uint64_t _, uint8_t x82 = subborrow_u64(x79, x55, 0x0); + uint64_t x83 = cmovznz64(x82, x78, x54); + uint64_t x84 = cmovznz64(x82, x75, x51); + uint64_t x85 = cmovznz64(x82, x72, x48); + uint64_t x86 = cmovznz64(x82, x69, x45); + uint64_t x87 = cmovznz64(x82, x66, x42); + uint64_t x88 = cmovznz64(x82, x63, x39); + uint64_t x89 = cmovznz64(x82, x60, x36); + uint64_t x90 = cmovznz64(x82, x57, x33); + return (x83, x84, x85, x86, x87, x88, x89, x90)) +(x, x0)%core + : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t * uint64_t) diff --git a/src/Specific/montgomery64_2e512m569_8limbs/fenz.c b/src/Specific/montgomery64_2e512m569_8limbs/fenz.c new file mode 100644 index 000000000..a07b0df9c --- /dev/null +++ b/src/Specific/montgomery64_2e512m569_8limbs/fenz.c @@ -0,0 +1,19 @@ +static void fenz(ReturnType uint64_t out[1], const uint64_t in1[8]) { + { const uint64_t x13 = in1[7]; + { const uint64_t x14 = in1[6]; + { const uint64_t x12 = in1[5]; + { const uint64_t x10 = in1[4]; + { const uint64_t x8 = in1[3]; + { const uint64_t x6 = in1[2]; + { const uint64_t x4 = in1[1]; + { const uint64_t x2 = in1[0]; + { uint64_t x15 = (x14 | x13); + { uint64_t x16 = (x12 | x15); + { uint64_t x17 = (x10 | x16); + { uint64_t x18 = (x8 | x17); + { uint64_t x19 = (x6 | x18); + { uint64_t x20 = (x4 | x19); + { uint64_t x21 = (x2 | x20); + out[0] = x21; + }}}}}}}}}}}}}}} +} diff --git a/src/Specific/montgomery64_2e512m569_8limbs/fenzDisplay.log b/src/Specific/montgomery64_2e512m569_8limbs/fenzDisplay.log new file mode 100644 index 000000000..a05fc22ab --- /dev/null +++ b/src/Specific/montgomery64_2e512m569_8limbs/fenzDisplay.log @@ -0,0 +1,14 @@ +λ x : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64, +Interp-η +(λ var : Syntax.base_type → Type, + λ '(x13, x14, x12, x10, x8, x6, x4, x2)%core, + uint64_t x15 = (x14 | x13); + uint64_t x16 = (x12 | x15); + uint64_t x17 = (x10 | x16); + uint64_t x18 = (x8 | x17); + uint64_t x19 = (x6 | x18); + uint64_t x20 = (x4 | x19); + uint64_t x21 = (x2 | x20); + return x21) +x + : word64 * word64 * word64 * word64 * word64 * word64 * word64 * word64 → ReturnType uint64_t -- cgit v1.2.3