5628 lines
187 KiB
C
5628 lines
187 KiB
C
/* Autogenerated: '../fiat-crypto/src/ExtractionOCaml/word_by_word_montgomery' --static --use-value-barrier --inline-internal np521 64 0x01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409 mul add opp from_montgomery to_montgomery one msat divstep_precomp divstep to_bytes from_bytes selectznz */
|
|
/* curve description: np521 */
|
|
/* machine_wordsize = 64 (from "64") */
|
|
/* requested operations: mul, add, opp, from_montgomery, to_montgomery, one, msat, divstep_precomp, divstep, to_bytes, from_bytes, selectznz */
|
|
/* m = 0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409 (from "0x01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409") */
|
|
/* */
|
|
/* NOTE: In addition to the bounds specified above each function, all */
|
|
/* functions synthesized for this Montgomery arithmetic require the */
|
|
/* input to be strictly less than the prime modulus (m), and also */
|
|
/* require the input to be in the unique saturated representation. */
|
|
/* All functions also ensure that these two properties are true of */
|
|
/* return values. */
|
|
/* */
|
|
/* Computed values: */
|
|
/* eval z = z[0] + (z[1] << 64) + (z[2] << 128) + (z[3] << 192) + (z[4] << 256) + (z[5] << 0x140) + (z[6] << 0x180) + (z[7] << 0x1c0) + (z[8] << 2^9) */
|
|
/* bytes_eval z = z[0] + (z[1] << 8) + (z[2] << 16) + (z[3] << 24) + (z[4] << 32) + (z[5] << 40) + (z[6] << 48) + (z[7] << 56) + (z[8] << 64) + (z[9] << 72) + (z[10] << 80) + (z[11] << 88) + (z[12] << 96) + (z[13] << 104) + (z[14] << 112) + (z[15] << 120) + (z[16] << 128) + (z[17] << 136) + (z[18] << 144) + (z[19] << 152) + (z[20] << 160) + (z[21] << 168) + (z[22] << 176) + (z[23] << 184) + (z[24] << 192) + (z[25] << 200) + (z[26] << 208) + (z[27] << 216) + (z[28] << 224) + (z[29] << 232) + (z[30] << 240) + (z[31] << 248) + (z[32] << 256) + (z[33] << 0x108) + (z[34] << 0x110) + (z[35] << 0x118) + (z[36] << 0x120) + (z[37] << 0x128) + (z[38] << 0x130) + (z[39] << 0x138) + (z[40] << 0x140) + (z[41] << 0x148) + (z[42] << 0x150) + (z[43] << 0x158) + (z[44] << 0x160) + (z[45] << 0x168) + (z[46] << 0x170) + (z[47] << 0x178) + (z[48] << 0x180) + (z[49] << 0x188) + (z[50] << 0x190) + (z[51] << 0x198) + (z[52] << 0x1a0) + (z[53] << 0x1a8) + (z[54] << 0x1b0) + (z[55] << 0x1b8) + (z[56] << 0x1c0) + (z[57] << 0x1c8) + (z[58] << 0x1d0) + (z[59] << 0x1d8) + (z[60] << 0x1e0) + (z[61] << 0x1e8) + (z[62] << 0x1f0) + (z[63] << 0x1f8) + (z[64] << 2^9) + (z[65] << 0x208) */
|
|
/* twos_complement_eval z = let x1 := z[0] + (z[1] << 64) + (z[2] << 128) + (z[3] << 192) + (z[4] << 256) + (z[5] << 0x140) + (z[6] << 0x180) + (z[7] << 0x1c0) + (z[8] << 2^9) in */
|
|
/* if x1 & (2^576-1) < 2^575 then x1 & (2^576-1) else (x1 & (2^576-1)) - 2^576 */
|
|
|
|
#include <stdint.h>
|
|
typedef unsigned char fiat_np521_uint1;
|
|
typedef signed char fiat_np521_int1;
|
|
#if defined(__GNUC__) || defined(__clang__)
|
|
# define FIAT_NP521_FIAT_EXTENSION __extension__
|
|
# define FIAT_NP521_FIAT_INLINE __inline__
|
|
#else
|
|
# define FIAT_NP521_FIAT_EXTENSION
|
|
# define FIAT_NP521_FIAT_INLINE
|
|
#endif
|
|
|
|
FIAT_NP521_FIAT_EXTENSION typedef signed __int128 fiat_np521_int128;
|
|
FIAT_NP521_FIAT_EXTENSION typedef unsigned __int128 fiat_np521_uint128;
|
|
|
|
/* The type fiat_np521_montgomery_domain_field_element is a field element in the Montgomery domain. */
|
|
/* Bounds: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] */
|
|
typedef uint64_t fiat_np521_montgomery_domain_field_element[9];
|
|
|
|
/* The type fiat_np521_non_montgomery_domain_field_element is a field element NOT in the Montgomery domain. */
|
|
/* Bounds: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] */
|
|
typedef uint64_t fiat_np521_non_montgomery_domain_field_element[9];
|
|
|
|
#if (-1 & 3) != 3
|
|
#error "This code only works on a two's complement system"
|
|
#endif
|
|
|
|
#if !defined(FIAT_NP521_NO_ASM) && (defined(__GNUC__) || defined(__clang__))
|
|
static __inline__ uint64_t fiat_np521_value_barrier_u64(uint64_t a) {
|
|
__asm__("" : "+r"(a) : /* no inputs */);
|
|
return a;
|
|
}
|
|
#else
|
|
# define fiat_np521_value_barrier_u64(x) (x)
|
|
#endif
|
|
|
|
|
|
/*
|
|
* The function fiat_np521_addcarryx_u64 is an addition with carry.
|
|
*
|
|
* Postconditions:
|
|
* out1 = (arg1 + arg2 + arg3) mod 2^64
|
|
* out2 = ⌊(arg1 + arg2 + arg3) / 2^64⌋
|
|
*
|
|
* Input Bounds:
|
|
* arg1: [0x0 ~> 0x1]
|
|
* arg2: [0x0 ~> 0xffffffffffffffff]
|
|
* arg3: [0x0 ~> 0xffffffffffffffff]
|
|
* Output Bounds:
|
|
* out1: [0x0 ~> 0xffffffffffffffff]
|
|
* out2: [0x0 ~> 0x1]
|
|
*/
|
|
static FIAT_NP521_FIAT_INLINE void fiat_np521_addcarryx_u64(uint64_t* out1, fiat_np521_uint1* out2, fiat_np521_uint1 arg1, uint64_t arg2, uint64_t arg3) {
|
|
fiat_np521_uint128 x1;
|
|
uint64_t x2;
|
|
fiat_np521_uint1 x3;
|
|
x1 = ((arg1 + (fiat_np521_uint128)arg2) + arg3);
|
|
x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff));
|
|
x3 = (fiat_np521_uint1)(x1 >> 64);
|
|
*out1 = x2;
|
|
*out2 = x3;
|
|
}
|
|
|
|
/*
|
|
* The function fiat_np521_subborrowx_u64 is a subtraction with borrow.
|
|
*
|
|
* Postconditions:
|
|
* out1 = (-arg1 + arg2 + -arg3) mod 2^64
|
|
* out2 = -⌊(-arg1 + arg2 + -arg3) / 2^64⌋
|
|
*
|
|
* Input Bounds:
|
|
* arg1: [0x0 ~> 0x1]
|
|
* arg2: [0x0 ~> 0xffffffffffffffff]
|
|
* arg3: [0x0 ~> 0xffffffffffffffff]
|
|
* Output Bounds:
|
|
* out1: [0x0 ~> 0xffffffffffffffff]
|
|
* out2: [0x0 ~> 0x1]
|
|
*/
|
|
static FIAT_NP521_FIAT_INLINE void fiat_np521_subborrowx_u64(uint64_t* out1, fiat_np521_uint1* out2, fiat_np521_uint1 arg1, uint64_t arg2, uint64_t arg3) {
|
|
fiat_np521_int128 x1;
|
|
fiat_np521_int1 x2;
|
|
uint64_t x3;
|
|
x1 = ((arg2 - (fiat_np521_int128)arg1) - arg3);
|
|
x2 = (fiat_np521_int1)(x1 >> 64);
|
|
x3 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff));
|
|
*out1 = x3;
|
|
*out2 = (fiat_np521_uint1)(0x0 - x2);
|
|
}
|
|
|
|
/*
|
|
* The function fiat_np521_mulx_u64 is a multiplication, returning the full double-width result.
|
|
*
|
|
* Postconditions:
|
|
* out1 = (arg1 * arg2) mod 2^64
|
|
* out2 = ⌊arg1 * arg2 / 2^64⌋
|
|
*
|
|
* Input Bounds:
|
|
* arg1: [0x0 ~> 0xffffffffffffffff]
|
|
* arg2: [0x0 ~> 0xffffffffffffffff]
|
|
* Output Bounds:
|
|
* out1: [0x0 ~> 0xffffffffffffffff]
|
|
* out2: [0x0 ~> 0xffffffffffffffff]
|
|
*/
|
|
static FIAT_NP521_FIAT_INLINE void fiat_np521_mulx_u64(uint64_t* out1, uint64_t* out2, uint64_t arg1, uint64_t arg2) {
|
|
fiat_np521_uint128 x1;
|
|
uint64_t x2;
|
|
uint64_t x3;
|
|
x1 = ((fiat_np521_uint128)arg1 * arg2);
|
|
x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff));
|
|
x3 = (uint64_t)(x1 >> 64);
|
|
*out1 = x2;
|
|
*out2 = x3;
|
|
}
|
|
|
|
/*
|
|
* The function fiat_np521_cmovznz_u64 is a single-word conditional move.
|
|
*
|
|
* Postconditions:
|
|
* out1 = (if arg1 = 0 then arg2 else arg3)
|
|
*
|
|
* Input Bounds:
|
|
* arg1: [0x0 ~> 0x1]
|
|
* arg2: [0x0 ~> 0xffffffffffffffff]
|
|
* arg3: [0x0 ~> 0xffffffffffffffff]
|
|
* Output Bounds:
|
|
* out1: [0x0 ~> 0xffffffffffffffff]
|
|
*/
|
|
static FIAT_NP521_FIAT_INLINE void fiat_np521_cmovznz_u64(uint64_t* out1, fiat_np521_uint1 arg1, uint64_t arg2, uint64_t arg3) {
|
|
fiat_np521_uint1 x1;
|
|
uint64_t x2;
|
|
uint64_t x3;
|
|
x1 = (!(!arg1));
|
|
x2 = ((fiat_np521_int1)(0x0 - x1) & UINT64_C(0xffffffffffffffff));
|
|
x3 = ((fiat_np521_value_barrier_u64(x2) & arg3) | (fiat_np521_value_barrier_u64((~x2)) & arg2));
|
|
*out1 = x3;
|
|
}
|
|
|
|
/*
|
|
* The function fiat_np521_mul multiplies two field elements in the Montgomery domain.
|
|
*
|
|
* Preconditions:
|
|
* 0 ≤ eval arg1 < m
|
|
* 0 ≤ eval arg2 < m
|
|
* Postconditions:
|
|
* eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m
|
|
* 0 ≤ eval out1 < m
|
|
*
|
|
*/
|
|
static void fiat_np521_mul(fiat_np521_montgomery_domain_field_element out1, const fiat_np521_montgomery_domain_field_element arg1, const fiat_np521_montgomery_domain_field_element arg2) {
|
|
uint64_t x1;
|
|
uint64_t x2;
|
|
uint64_t x3;
|
|
uint64_t x4;
|
|
uint64_t x5;
|
|
uint64_t x6;
|
|
uint64_t x7;
|
|
uint64_t x8;
|
|
uint64_t x9;
|
|
uint64_t x10;
|
|
uint64_t x11;
|
|
uint64_t x12;
|
|
uint64_t x13;
|
|
uint64_t x14;
|
|
uint64_t x15;
|
|
uint64_t x16;
|
|
uint64_t x17;
|
|
uint64_t x18;
|
|
uint64_t x19;
|
|
uint64_t x20;
|
|
uint64_t x21;
|
|
uint64_t x22;
|
|
uint64_t x23;
|
|
uint64_t x24;
|
|
uint64_t x25;
|
|
uint64_t x26;
|
|
uint64_t x27;
|
|
uint64_t x28;
|
|
fiat_np521_uint1 x29;
|
|
uint64_t x30;
|
|
fiat_np521_uint1 x31;
|
|
uint64_t x32;
|
|
fiat_np521_uint1 x33;
|
|
uint64_t x34;
|
|
fiat_np521_uint1 x35;
|
|
uint64_t x36;
|
|
fiat_np521_uint1 x37;
|
|
uint64_t x38;
|
|
fiat_np521_uint1 x39;
|
|
uint64_t x40;
|
|
fiat_np521_uint1 x41;
|
|
uint64_t x42;
|
|
fiat_np521_uint1 x43;
|
|
uint64_t x44;
|
|
uint64_t x45;
|
|
uint64_t x46;
|
|
uint64_t x47;
|
|
uint64_t x48;
|
|
uint64_t x49;
|
|
uint64_t x50;
|
|
uint64_t x51;
|
|
uint64_t x52;
|
|
uint64_t x53;
|
|
uint64_t x54;
|
|
uint64_t x55;
|
|
uint64_t x56;
|
|
uint64_t x57;
|
|
uint64_t x58;
|
|
uint64_t x59;
|
|
uint64_t x60;
|
|
uint64_t x61;
|
|
uint64_t x62;
|
|
uint64_t x63;
|
|
uint64_t x64;
|
|
uint64_t x65;
|
|
fiat_np521_uint1 x66;
|
|
uint64_t x67;
|
|
fiat_np521_uint1 x68;
|
|
uint64_t x69;
|
|
fiat_np521_uint1 x70;
|
|
uint64_t x71;
|
|
fiat_np521_uint1 x72;
|
|
uint64_t x73;
|
|
fiat_np521_uint1 x74;
|
|
uint64_t x75;
|
|
fiat_np521_uint1 x76;
|
|
uint64_t x77;
|
|
fiat_np521_uint1 x78;
|
|
uint64_t x79;
|
|
fiat_np521_uint1 x80;
|
|
uint64_t x81;
|
|
uint64_t x82;
|
|
fiat_np521_uint1 x83;
|
|
uint64_t x84;
|
|
fiat_np521_uint1 x85;
|
|
uint64_t x86;
|
|
fiat_np521_uint1 x87;
|
|
uint64_t x88;
|
|
fiat_np521_uint1 x89;
|
|
uint64_t x90;
|
|
fiat_np521_uint1 x91;
|
|
uint64_t x92;
|
|
fiat_np521_uint1 x93;
|
|
uint64_t x94;
|
|
fiat_np521_uint1 x95;
|
|
uint64_t x96;
|
|
fiat_np521_uint1 x97;
|
|
uint64_t x98;
|
|
fiat_np521_uint1 x99;
|
|
uint64_t x100;
|
|
fiat_np521_uint1 x101;
|
|
uint64_t x102;
|
|
uint64_t x103;
|
|
uint64_t x104;
|
|
uint64_t x105;
|
|
uint64_t x106;
|
|
uint64_t x107;
|
|
uint64_t x108;
|
|
uint64_t x109;
|
|
uint64_t x110;
|
|
uint64_t x111;
|
|
uint64_t x112;
|
|
uint64_t x113;
|
|
uint64_t x114;
|
|
uint64_t x115;
|
|
uint64_t x116;
|
|
uint64_t x117;
|
|
uint64_t x118;
|
|
uint64_t x119;
|
|
uint64_t x120;
|
|
fiat_np521_uint1 x121;
|
|
uint64_t x122;
|
|
fiat_np521_uint1 x123;
|
|
uint64_t x124;
|
|
fiat_np521_uint1 x125;
|
|
uint64_t x126;
|
|
fiat_np521_uint1 x127;
|
|
uint64_t x128;
|
|
fiat_np521_uint1 x129;
|
|
uint64_t x130;
|
|
fiat_np521_uint1 x131;
|
|
uint64_t x132;
|
|
fiat_np521_uint1 x133;
|
|
uint64_t x134;
|
|
fiat_np521_uint1 x135;
|
|
uint64_t x136;
|
|
uint64_t x137;
|
|
fiat_np521_uint1 x138;
|
|
uint64_t x139;
|
|
fiat_np521_uint1 x140;
|
|
uint64_t x141;
|
|
fiat_np521_uint1 x142;
|
|
uint64_t x143;
|
|
fiat_np521_uint1 x144;
|
|
uint64_t x145;
|
|
fiat_np521_uint1 x146;
|
|
uint64_t x147;
|
|
fiat_np521_uint1 x148;
|
|
uint64_t x149;
|
|
fiat_np521_uint1 x150;
|
|
uint64_t x151;
|
|
fiat_np521_uint1 x152;
|
|
uint64_t x153;
|
|
fiat_np521_uint1 x154;
|
|
uint64_t x155;
|
|
fiat_np521_uint1 x156;
|
|
uint64_t x157;
|
|
uint64_t x158;
|
|
uint64_t x159;
|
|
uint64_t x160;
|
|
uint64_t x161;
|
|
uint64_t x162;
|
|
uint64_t x163;
|
|
uint64_t x164;
|
|
uint64_t x165;
|
|
uint64_t x166;
|
|
uint64_t x167;
|
|
uint64_t x168;
|
|
uint64_t x169;
|
|
uint64_t x170;
|
|
uint64_t x171;
|
|
uint64_t x172;
|
|
uint64_t x173;
|
|
uint64_t x174;
|
|
uint64_t x175;
|
|
uint64_t x176;
|
|
uint64_t x177;
|
|
fiat_np521_uint1 x178;
|
|
uint64_t x179;
|
|
fiat_np521_uint1 x180;
|
|
uint64_t x181;
|
|
fiat_np521_uint1 x182;
|
|
uint64_t x183;
|
|
fiat_np521_uint1 x184;
|
|
uint64_t x185;
|
|
fiat_np521_uint1 x186;
|
|
uint64_t x187;
|
|
fiat_np521_uint1 x188;
|
|
uint64_t x189;
|
|
fiat_np521_uint1 x190;
|
|
uint64_t x191;
|
|
fiat_np521_uint1 x192;
|
|
uint64_t x193;
|
|
uint64_t x194;
|
|
fiat_np521_uint1 x195;
|
|
uint64_t x196;
|
|
fiat_np521_uint1 x197;
|
|
uint64_t x198;
|
|
fiat_np521_uint1 x199;
|
|
uint64_t x200;
|
|
fiat_np521_uint1 x201;
|
|
uint64_t x202;
|
|
fiat_np521_uint1 x203;
|
|
uint64_t x204;
|
|
fiat_np521_uint1 x205;
|
|
uint64_t x206;
|
|
fiat_np521_uint1 x207;
|
|
uint64_t x208;
|
|
fiat_np521_uint1 x209;
|
|
uint64_t x210;
|
|
fiat_np521_uint1 x211;
|
|
uint64_t x212;
|
|
fiat_np521_uint1 x213;
|
|
uint64_t x214;
|
|
uint64_t x215;
|
|
uint64_t x216;
|
|
uint64_t x217;
|
|
uint64_t x218;
|
|
uint64_t x219;
|
|
uint64_t x220;
|
|
uint64_t x221;
|
|
uint64_t x222;
|
|
uint64_t x223;
|
|
uint64_t x224;
|
|
uint64_t x225;
|
|
uint64_t x226;
|
|
uint64_t x227;
|
|
uint64_t x228;
|
|
uint64_t x229;
|
|
uint64_t x230;
|
|
uint64_t x231;
|
|
uint64_t x232;
|
|
uint64_t x233;
|
|
fiat_np521_uint1 x234;
|
|
uint64_t x235;
|
|
fiat_np521_uint1 x236;
|
|
uint64_t x237;
|
|
fiat_np521_uint1 x238;
|
|
uint64_t x239;
|
|
fiat_np521_uint1 x240;
|
|
uint64_t x241;
|
|
fiat_np521_uint1 x242;
|
|
uint64_t x243;
|
|
fiat_np521_uint1 x244;
|
|
uint64_t x245;
|
|
fiat_np521_uint1 x246;
|
|
uint64_t x247;
|
|
fiat_np521_uint1 x248;
|
|
uint64_t x249;
|
|
uint64_t x250;
|
|
fiat_np521_uint1 x251;
|
|
uint64_t x252;
|
|
fiat_np521_uint1 x253;
|
|
uint64_t x254;
|
|
fiat_np521_uint1 x255;
|
|
uint64_t x256;
|
|
fiat_np521_uint1 x257;
|
|
uint64_t x258;
|
|
fiat_np521_uint1 x259;
|
|
uint64_t x260;
|
|
fiat_np521_uint1 x261;
|
|
uint64_t x262;
|
|
fiat_np521_uint1 x263;
|
|
uint64_t x264;
|
|
fiat_np521_uint1 x265;
|
|
uint64_t x266;
|
|
fiat_np521_uint1 x267;
|
|
uint64_t x268;
|
|
fiat_np521_uint1 x269;
|
|
uint64_t x270;
|
|
uint64_t x271;
|
|
uint64_t x272;
|
|
uint64_t x273;
|
|
uint64_t x274;
|
|
uint64_t x275;
|
|
uint64_t x276;
|
|
uint64_t x277;
|
|
uint64_t x278;
|
|
uint64_t x279;
|
|
uint64_t x280;
|
|
uint64_t x281;
|
|
uint64_t x282;
|
|
uint64_t x283;
|
|
uint64_t x284;
|
|
uint64_t x285;
|
|
uint64_t x286;
|
|
uint64_t x287;
|
|
uint64_t x288;
|
|
uint64_t x289;
|
|
uint64_t x290;
|
|
fiat_np521_uint1 x291;
|
|
uint64_t x292;
|
|
fiat_np521_uint1 x293;
|
|
uint64_t x294;
|
|
fiat_np521_uint1 x295;
|
|
uint64_t x296;
|
|
fiat_np521_uint1 x297;
|
|
uint64_t x298;
|
|
fiat_np521_uint1 x299;
|
|
uint64_t x300;
|
|
fiat_np521_uint1 x301;
|
|
uint64_t x302;
|
|
fiat_np521_uint1 x303;
|
|
uint64_t x304;
|
|
fiat_np521_uint1 x305;
|
|
uint64_t x306;
|
|
uint64_t x307;
|
|
fiat_np521_uint1 x308;
|
|
uint64_t x309;
|
|
fiat_np521_uint1 x310;
|
|
uint64_t x311;
|
|
fiat_np521_uint1 x312;
|
|
uint64_t x313;
|
|
fiat_np521_uint1 x314;
|
|
uint64_t x315;
|
|
fiat_np521_uint1 x316;
|
|
uint64_t x317;
|
|
fiat_np521_uint1 x318;
|
|
uint64_t x319;
|
|
fiat_np521_uint1 x320;
|
|
uint64_t x321;
|
|
fiat_np521_uint1 x322;
|
|
uint64_t x323;
|
|
fiat_np521_uint1 x324;
|
|
uint64_t x325;
|
|
fiat_np521_uint1 x326;
|
|
uint64_t x327;
|
|
uint64_t x328;
|
|
uint64_t x329;
|
|
uint64_t x330;
|
|
uint64_t x331;
|
|
uint64_t x332;
|
|
uint64_t x333;
|
|
uint64_t x334;
|
|
uint64_t x335;
|
|
uint64_t x336;
|
|
uint64_t x337;
|
|
uint64_t x338;
|
|
uint64_t x339;
|
|
uint64_t x340;
|
|
uint64_t x341;
|
|
uint64_t x342;
|
|
uint64_t x343;
|
|
uint64_t x344;
|
|
uint64_t x345;
|
|
uint64_t x346;
|
|
fiat_np521_uint1 x347;
|
|
uint64_t x348;
|
|
fiat_np521_uint1 x349;
|
|
uint64_t x350;
|
|
fiat_np521_uint1 x351;
|
|
uint64_t x352;
|
|
fiat_np521_uint1 x353;
|
|
uint64_t x354;
|
|
fiat_np521_uint1 x355;
|
|
uint64_t x356;
|
|
fiat_np521_uint1 x357;
|
|
uint64_t x358;
|
|
fiat_np521_uint1 x359;
|
|
uint64_t x360;
|
|
fiat_np521_uint1 x361;
|
|
uint64_t x362;
|
|
uint64_t x363;
|
|
fiat_np521_uint1 x364;
|
|
uint64_t x365;
|
|
fiat_np521_uint1 x366;
|
|
uint64_t x367;
|
|
fiat_np521_uint1 x368;
|
|
uint64_t x369;
|
|
fiat_np521_uint1 x370;
|
|
uint64_t x371;
|
|
fiat_np521_uint1 x372;
|
|
uint64_t x373;
|
|
fiat_np521_uint1 x374;
|
|
uint64_t x375;
|
|
fiat_np521_uint1 x376;
|
|
uint64_t x377;
|
|
fiat_np521_uint1 x378;
|
|
uint64_t x379;
|
|
fiat_np521_uint1 x380;
|
|
uint64_t x381;
|
|
fiat_np521_uint1 x382;
|
|
uint64_t x383;
|
|
uint64_t x384;
|
|
uint64_t x385;
|
|
uint64_t x386;
|
|
uint64_t x387;
|
|
uint64_t x388;
|
|
uint64_t x389;
|
|
uint64_t x390;
|
|
uint64_t x391;
|
|
uint64_t x392;
|
|
uint64_t x393;
|
|
uint64_t x394;
|
|
uint64_t x395;
|
|
uint64_t x396;
|
|
uint64_t x397;
|
|
uint64_t x398;
|
|
uint64_t x399;
|
|
uint64_t x400;
|
|
uint64_t x401;
|
|
uint64_t x402;
|
|
uint64_t x403;
|
|
fiat_np521_uint1 x404;
|
|
uint64_t x405;
|
|
fiat_np521_uint1 x406;
|
|
uint64_t x407;
|
|
fiat_np521_uint1 x408;
|
|
uint64_t x409;
|
|
fiat_np521_uint1 x410;
|
|
uint64_t x411;
|
|
fiat_np521_uint1 x412;
|
|
uint64_t x413;
|
|
fiat_np521_uint1 x414;
|
|
uint64_t x415;
|
|
fiat_np521_uint1 x416;
|
|
uint64_t x417;
|
|
fiat_np521_uint1 x418;
|
|
uint64_t x419;
|
|
uint64_t x420;
|
|
fiat_np521_uint1 x421;
|
|
uint64_t x422;
|
|
fiat_np521_uint1 x423;
|
|
uint64_t x424;
|
|
fiat_np521_uint1 x425;
|
|
uint64_t x426;
|
|
fiat_np521_uint1 x427;
|
|
uint64_t x428;
|
|
fiat_np521_uint1 x429;
|
|
uint64_t x430;
|
|
fiat_np521_uint1 x431;
|
|
uint64_t x432;
|
|
fiat_np521_uint1 x433;
|
|
uint64_t x434;
|
|
fiat_np521_uint1 x435;
|
|
uint64_t x436;
|
|
fiat_np521_uint1 x437;
|
|
uint64_t x438;
|
|
fiat_np521_uint1 x439;
|
|
uint64_t x440;
|
|
uint64_t x441;
|
|
uint64_t x442;
|
|
uint64_t x443;
|
|
uint64_t x444;
|
|
uint64_t x445;
|
|
uint64_t x446;
|
|
uint64_t x447;
|
|
uint64_t x448;
|
|
uint64_t x449;
|
|
uint64_t x450;
|
|
uint64_t x451;
|
|
uint64_t x452;
|
|
uint64_t x453;
|
|
uint64_t x454;
|
|
uint64_t x455;
|
|
uint64_t x456;
|
|
uint64_t x457;
|
|
uint64_t x458;
|
|
uint64_t x459;
|
|
fiat_np521_uint1 x460;
|
|
uint64_t x461;
|
|
fiat_np521_uint1 x462;
|
|
uint64_t x463;
|
|
fiat_np521_uint1 x464;
|
|
uint64_t x465;
|
|
fiat_np521_uint1 x466;
|
|
uint64_t x467;
|
|
fiat_np521_uint1 x468;
|
|
uint64_t x469;
|
|
fiat_np521_uint1 x470;
|
|
uint64_t x471;
|
|
fiat_np521_uint1 x472;
|
|
uint64_t x473;
|
|
fiat_np521_uint1 x474;
|
|
uint64_t x475;
|
|
uint64_t x476;
|
|
fiat_np521_uint1 x477;
|
|
uint64_t x478;
|
|
fiat_np521_uint1 x479;
|
|
uint64_t x480;
|
|
fiat_np521_uint1 x481;
|
|
uint64_t x482;
|
|
fiat_np521_uint1 x483;
|
|
uint64_t x484;
|
|
fiat_np521_uint1 x485;
|
|
uint64_t x486;
|
|
fiat_np521_uint1 x487;
|
|
uint64_t x488;
|
|
fiat_np521_uint1 x489;
|
|
uint64_t x490;
|
|
fiat_np521_uint1 x491;
|
|
uint64_t x492;
|
|
fiat_np521_uint1 x493;
|
|
uint64_t x494;
|
|
fiat_np521_uint1 x495;
|
|
uint64_t x496;
|
|
uint64_t x497;
|
|
uint64_t x498;
|
|
uint64_t x499;
|
|
uint64_t x500;
|
|
uint64_t x501;
|
|
uint64_t x502;
|
|
uint64_t x503;
|
|
uint64_t x504;
|
|
uint64_t x505;
|
|
uint64_t x506;
|
|
uint64_t x507;
|
|
uint64_t x508;
|
|
uint64_t x509;
|
|
uint64_t x510;
|
|
uint64_t x511;
|
|
uint64_t x512;
|
|
uint64_t x513;
|
|
uint64_t x514;
|
|
uint64_t x515;
|
|
uint64_t x516;
|
|
fiat_np521_uint1 x517;
|
|
uint64_t x518;
|
|
fiat_np521_uint1 x519;
|
|
uint64_t x520;
|
|
fiat_np521_uint1 x521;
|
|
uint64_t x522;
|
|
fiat_np521_uint1 x523;
|
|
uint64_t x524;
|
|
fiat_np521_uint1 x525;
|
|
uint64_t x526;
|
|
fiat_np521_uint1 x527;
|
|
uint64_t x528;
|
|
fiat_np521_uint1 x529;
|
|
uint64_t x530;
|
|
fiat_np521_uint1 x531;
|
|
uint64_t x532;
|
|
uint64_t x533;
|
|
fiat_np521_uint1 x534;
|
|
uint64_t x535;
|
|
fiat_np521_uint1 x536;
|
|
uint64_t x537;
|
|
fiat_np521_uint1 x538;
|
|
uint64_t x539;
|
|
fiat_np521_uint1 x540;
|
|
uint64_t x541;
|
|
fiat_np521_uint1 x542;
|
|
uint64_t x543;
|
|
fiat_np521_uint1 x544;
|
|
uint64_t x545;
|
|
fiat_np521_uint1 x546;
|
|
uint64_t x547;
|
|
fiat_np521_uint1 x548;
|
|
uint64_t x549;
|
|
fiat_np521_uint1 x550;
|
|
uint64_t x551;
|
|
fiat_np521_uint1 x552;
|
|
uint64_t x553;
|
|
uint64_t x554;
|
|
uint64_t x555;
|
|
uint64_t x556;
|
|
uint64_t x557;
|
|
uint64_t x558;
|
|
uint64_t x559;
|
|
uint64_t x560;
|
|
uint64_t x561;
|
|
uint64_t x562;
|
|
uint64_t x563;
|
|
uint64_t x564;
|
|
uint64_t x565;
|
|
uint64_t x566;
|
|
uint64_t x567;
|
|
uint64_t x568;
|
|
uint64_t x569;
|
|
uint64_t x570;
|
|
uint64_t x571;
|
|
uint64_t x572;
|
|
fiat_np521_uint1 x573;
|
|
uint64_t x574;
|
|
fiat_np521_uint1 x575;
|
|
uint64_t x576;
|
|
fiat_np521_uint1 x577;
|
|
uint64_t x578;
|
|
fiat_np521_uint1 x579;
|
|
uint64_t x580;
|
|
fiat_np521_uint1 x581;
|
|
uint64_t x582;
|
|
fiat_np521_uint1 x583;
|
|
uint64_t x584;
|
|
fiat_np521_uint1 x585;
|
|
uint64_t x586;
|
|
fiat_np521_uint1 x587;
|
|
uint64_t x588;
|
|
uint64_t x589;
|
|
fiat_np521_uint1 x590;
|
|
uint64_t x591;
|
|
fiat_np521_uint1 x592;
|
|
uint64_t x593;
|
|
fiat_np521_uint1 x594;
|
|
uint64_t x595;
|
|
fiat_np521_uint1 x596;
|
|
uint64_t x597;
|
|
fiat_np521_uint1 x598;
|
|
uint64_t x599;
|
|
fiat_np521_uint1 x600;
|
|
uint64_t x601;
|
|
fiat_np521_uint1 x602;
|
|
uint64_t x603;
|
|
fiat_np521_uint1 x604;
|
|
uint64_t x605;
|
|
fiat_np521_uint1 x606;
|
|
uint64_t x607;
|
|
fiat_np521_uint1 x608;
|
|
uint64_t x609;
|
|
uint64_t x610;
|
|
uint64_t x611;
|
|
uint64_t x612;
|
|
uint64_t x613;
|
|
uint64_t x614;
|
|
uint64_t x615;
|
|
uint64_t x616;
|
|
uint64_t x617;
|
|
uint64_t x618;
|
|
uint64_t x619;
|
|
uint64_t x620;
|
|
uint64_t x621;
|
|
uint64_t x622;
|
|
uint64_t x623;
|
|
uint64_t x624;
|
|
uint64_t x625;
|
|
uint64_t x626;
|
|
uint64_t x627;
|
|
uint64_t x628;
|
|
uint64_t x629;
|
|
fiat_np521_uint1 x630;
|
|
uint64_t x631;
|
|
fiat_np521_uint1 x632;
|
|
uint64_t x633;
|
|
fiat_np521_uint1 x634;
|
|
uint64_t x635;
|
|
fiat_np521_uint1 x636;
|
|
uint64_t x637;
|
|
fiat_np521_uint1 x638;
|
|
uint64_t x639;
|
|
fiat_np521_uint1 x640;
|
|
uint64_t x641;
|
|
fiat_np521_uint1 x642;
|
|
uint64_t x643;
|
|
fiat_np521_uint1 x644;
|
|
uint64_t x645;
|
|
uint64_t x646;
|
|
fiat_np521_uint1 x647;
|
|
uint64_t x648;
|
|
fiat_np521_uint1 x649;
|
|
uint64_t x650;
|
|
fiat_np521_uint1 x651;
|
|
uint64_t x652;
|
|
fiat_np521_uint1 x653;
|
|
uint64_t x654;
|
|
fiat_np521_uint1 x655;
|
|
uint64_t x656;
|
|
fiat_np521_uint1 x657;
|
|
uint64_t x658;
|
|
fiat_np521_uint1 x659;
|
|
uint64_t x660;
|
|
fiat_np521_uint1 x661;
|
|
uint64_t x662;
|
|
fiat_np521_uint1 x663;
|
|
uint64_t x664;
|
|
fiat_np521_uint1 x665;
|
|
uint64_t x666;
|
|
uint64_t x667;
|
|
uint64_t x668;
|
|
uint64_t x669;
|
|
uint64_t x670;
|
|
uint64_t x671;
|
|
uint64_t x672;
|
|
uint64_t x673;
|
|
uint64_t x674;
|
|
uint64_t x675;
|
|
uint64_t x676;
|
|
uint64_t x677;
|
|
uint64_t x678;
|
|
uint64_t x679;
|
|
uint64_t x680;
|
|
uint64_t x681;
|
|
uint64_t x682;
|
|
uint64_t x683;
|
|
uint64_t x684;
|
|
uint64_t x685;
|
|
fiat_np521_uint1 x686;
|
|
uint64_t x687;
|
|
fiat_np521_uint1 x688;
|
|
uint64_t x689;
|
|
fiat_np521_uint1 x690;
|
|
uint64_t x691;
|
|
fiat_np521_uint1 x692;
|
|
uint64_t x693;
|
|
fiat_np521_uint1 x694;
|
|
uint64_t x695;
|
|
fiat_np521_uint1 x696;
|
|
uint64_t x697;
|
|
fiat_np521_uint1 x698;
|
|
uint64_t x699;
|
|
fiat_np521_uint1 x700;
|
|
uint64_t x701;
|
|
uint64_t x702;
|
|
fiat_np521_uint1 x703;
|
|
uint64_t x704;
|
|
fiat_np521_uint1 x705;
|
|
uint64_t x706;
|
|
fiat_np521_uint1 x707;
|
|
uint64_t x708;
|
|
fiat_np521_uint1 x709;
|
|
uint64_t x710;
|
|
fiat_np521_uint1 x711;
|
|
uint64_t x712;
|
|
fiat_np521_uint1 x713;
|
|
uint64_t x714;
|
|
fiat_np521_uint1 x715;
|
|
uint64_t x716;
|
|
fiat_np521_uint1 x717;
|
|
uint64_t x718;
|
|
fiat_np521_uint1 x719;
|
|
uint64_t x720;
|
|
fiat_np521_uint1 x721;
|
|
uint64_t x722;
|
|
uint64_t x723;
|
|
uint64_t x724;
|
|
uint64_t x725;
|
|
uint64_t x726;
|
|
uint64_t x727;
|
|
uint64_t x728;
|
|
uint64_t x729;
|
|
uint64_t x730;
|
|
uint64_t x731;
|
|
uint64_t x732;
|
|
uint64_t x733;
|
|
uint64_t x734;
|
|
uint64_t x735;
|
|
uint64_t x736;
|
|
uint64_t x737;
|
|
uint64_t x738;
|
|
uint64_t x739;
|
|
uint64_t x740;
|
|
uint64_t x741;
|
|
uint64_t x742;
|
|
fiat_np521_uint1 x743;
|
|
uint64_t x744;
|
|
fiat_np521_uint1 x745;
|
|
uint64_t x746;
|
|
fiat_np521_uint1 x747;
|
|
uint64_t x748;
|
|
fiat_np521_uint1 x749;
|
|
uint64_t x750;
|
|
fiat_np521_uint1 x751;
|
|
uint64_t x752;
|
|
fiat_np521_uint1 x753;
|
|
uint64_t x754;
|
|
fiat_np521_uint1 x755;
|
|
uint64_t x756;
|
|
fiat_np521_uint1 x757;
|
|
uint64_t x758;
|
|
uint64_t x759;
|
|
fiat_np521_uint1 x760;
|
|
uint64_t x761;
|
|
fiat_np521_uint1 x762;
|
|
uint64_t x763;
|
|
fiat_np521_uint1 x764;
|
|
uint64_t x765;
|
|
fiat_np521_uint1 x766;
|
|
uint64_t x767;
|
|
fiat_np521_uint1 x768;
|
|
uint64_t x769;
|
|
fiat_np521_uint1 x770;
|
|
uint64_t x771;
|
|
fiat_np521_uint1 x772;
|
|
uint64_t x773;
|
|
fiat_np521_uint1 x774;
|
|
uint64_t x775;
|
|
fiat_np521_uint1 x776;
|
|
uint64_t x777;
|
|
fiat_np521_uint1 x778;
|
|
uint64_t x779;
|
|
uint64_t x780;
|
|
uint64_t x781;
|
|
uint64_t x782;
|
|
uint64_t x783;
|
|
uint64_t x784;
|
|
uint64_t x785;
|
|
uint64_t x786;
|
|
uint64_t x787;
|
|
uint64_t x788;
|
|
uint64_t x789;
|
|
uint64_t x790;
|
|
uint64_t x791;
|
|
uint64_t x792;
|
|
uint64_t x793;
|
|
uint64_t x794;
|
|
uint64_t x795;
|
|
uint64_t x796;
|
|
uint64_t x797;
|
|
uint64_t x798;
|
|
fiat_np521_uint1 x799;
|
|
uint64_t x800;
|
|
fiat_np521_uint1 x801;
|
|
uint64_t x802;
|
|
fiat_np521_uint1 x803;
|
|
uint64_t x804;
|
|
fiat_np521_uint1 x805;
|
|
uint64_t x806;
|
|
fiat_np521_uint1 x807;
|
|
uint64_t x808;
|
|
fiat_np521_uint1 x809;
|
|
uint64_t x810;
|
|
fiat_np521_uint1 x811;
|
|
uint64_t x812;
|
|
fiat_np521_uint1 x813;
|
|
uint64_t x814;
|
|
uint64_t x815;
|
|
fiat_np521_uint1 x816;
|
|
uint64_t x817;
|
|
fiat_np521_uint1 x818;
|
|
uint64_t x819;
|
|
fiat_np521_uint1 x820;
|
|
uint64_t x821;
|
|
fiat_np521_uint1 x822;
|
|
uint64_t x823;
|
|
fiat_np521_uint1 x824;
|
|
uint64_t x825;
|
|
fiat_np521_uint1 x826;
|
|
uint64_t x827;
|
|
fiat_np521_uint1 x828;
|
|
uint64_t x829;
|
|
fiat_np521_uint1 x830;
|
|
uint64_t x831;
|
|
fiat_np521_uint1 x832;
|
|
uint64_t x833;
|
|
fiat_np521_uint1 x834;
|
|
uint64_t x835;
|
|
uint64_t x836;
|
|
uint64_t x837;
|
|
uint64_t x838;
|
|
uint64_t x839;
|
|
uint64_t x840;
|
|
uint64_t x841;
|
|
uint64_t x842;
|
|
uint64_t x843;
|
|
uint64_t x844;
|
|
uint64_t x845;
|
|
uint64_t x846;
|
|
uint64_t x847;
|
|
uint64_t x848;
|
|
uint64_t x849;
|
|
uint64_t x850;
|
|
uint64_t x851;
|
|
uint64_t x852;
|
|
uint64_t x853;
|
|
uint64_t x854;
|
|
uint64_t x855;
|
|
fiat_np521_uint1 x856;
|
|
uint64_t x857;
|
|
fiat_np521_uint1 x858;
|
|
uint64_t x859;
|
|
fiat_np521_uint1 x860;
|
|
uint64_t x861;
|
|
fiat_np521_uint1 x862;
|
|
uint64_t x863;
|
|
fiat_np521_uint1 x864;
|
|
uint64_t x865;
|
|
fiat_np521_uint1 x866;
|
|
uint64_t x867;
|
|
fiat_np521_uint1 x868;
|
|
uint64_t x869;
|
|
fiat_np521_uint1 x870;
|
|
uint64_t x871;
|
|
uint64_t x872;
|
|
fiat_np521_uint1 x873;
|
|
uint64_t x874;
|
|
fiat_np521_uint1 x875;
|
|
uint64_t x876;
|
|
fiat_np521_uint1 x877;
|
|
uint64_t x878;
|
|
fiat_np521_uint1 x879;
|
|
uint64_t x880;
|
|
fiat_np521_uint1 x881;
|
|
uint64_t x882;
|
|
fiat_np521_uint1 x883;
|
|
uint64_t x884;
|
|
fiat_np521_uint1 x885;
|
|
uint64_t x886;
|
|
fiat_np521_uint1 x887;
|
|
uint64_t x888;
|
|
fiat_np521_uint1 x889;
|
|
uint64_t x890;
|
|
fiat_np521_uint1 x891;
|
|
uint64_t x892;
|
|
uint64_t x893;
|
|
uint64_t x894;
|
|
uint64_t x895;
|
|
uint64_t x896;
|
|
uint64_t x897;
|
|
uint64_t x898;
|
|
uint64_t x899;
|
|
uint64_t x900;
|
|
uint64_t x901;
|
|
uint64_t x902;
|
|
uint64_t x903;
|
|
uint64_t x904;
|
|
uint64_t x905;
|
|
uint64_t x906;
|
|
uint64_t x907;
|
|
uint64_t x908;
|
|
uint64_t x909;
|
|
uint64_t x910;
|
|
uint64_t x911;
|
|
fiat_np521_uint1 x912;
|
|
uint64_t x913;
|
|
fiat_np521_uint1 x914;
|
|
uint64_t x915;
|
|
fiat_np521_uint1 x916;
|
|
uint64_t x917;
|
|
fiat_np521_uint1 x918;
|
|
uint64_t x919;
|
|
fiat_np521_uint1 x920;
|
|
uint64_t x921;
|
|
fiat_np521_uint1 x922;
|
|
uint64_t x923;
|
|
fiat_np521_uint1 x924;
|
|
uint64_t x925;
|
|
fiat_np521_uint1 x926;
|
|
uint64_t x927;
|
|
uint64_t x928;
|
|
fiat_np521_uint1 x929;
|
|
uint64_t x930;
|
|
fiat_np521_uint1 x931;
|
|
uint64_t x932;
|
|
fiat_np521_uint1 x933;
|
|
uint64_t x934;
|
|
fiat_np521_uint1 x935;
|
|
uint64_t x936;
|
|
fiat_np521_uint1 x937;
|
|
uint64_t x938;
|
|
fiat_np521_uint1 x939;
|
|
uint64_t x940;
|
|
fiat_np521_uint1 x941;
|
|
uint64_t x942;
|
|
fiat_np521_uint1 x943;
|
|
uint64_t x944;
|
|
fiat_np521_uint1 x945;
|
|
uint64_t x946;
|
|
fiat_np521_uint1 x947;
|
|
uint64_t x948;
|
|
uint64_t x949;
|
|
uint64_t x950;
|
|
uint64_t x951;
|
|
uint64_t x952;
|
|
uint64_t x953;
|
|
uint64_t x954;
|
|
uint64_t x955;
|
|
uint64_t x956;
|
|
uint64_t x957;
|
|
uint64_t x958;
|
|
uint64_t x959;
|
|
uint64_t x960;
|
|
uint64_t x961;
|
|
uint64_t x962;
|
|
uint64_t x963;
|
|
uint64_t x964;
|
|
uint64_t x965;
|
|
uint64_t x966;
|
|
uint64_t x967;
|
|
uint64_t x968;
|
|
fiat_np521_uint1 x969;
|
|
uint64_t x970;
|
|
fiat_np521_uint1 x971;
|
|
uint64_t x972;
|
|
fiat_np521_uint1 x973;
|
|
uint64_t x974;
|
|
fiat_np521_uint1 x975;
|
|
uint64_t x976;
|
|
fiat_np521_uint1 x977;
|
|
uint64_t x978;
|
|
fiat_np521_uint1 x979;
|
|
uint64_t x980;
|
|
fiat_np521_uint1 x981;
|
|
uint64_t x982;
|
|
fiat_np521_uint1 x983;
|
|
uint64_t x984;
|
|
uint64_t x985;
|
|
fiat_np521_uint1 x986;
|
|
uint64_t x987;
|
|
fiat_np521_uint1 x988;
|
|
uint64_t x989;
|
|
fiat_np521_uint1 x990;
|
|
uint64_t x991;
|
|
fiat_np521_uint1 x992;
|
|
uint64_t x993;
|
|
fiat_np521_uint1 x994;
|
|
uint64_t x995;
|
|
fiat_np521_uint1 x996;
|
|
uint64_t x997;
|
|
fiat_np521_uint1 x998;
|
|
uint64_t x999;
|
|
fiat_np521_uint1 x1000;
|
|
uint64_t x1001;
|
|
fiat_np521_uint1 x1002;
|
|
uint64_t x1003;
|
|
fiat_np521_uint1 x1004;
|
|
uint64_t x1005;
|
|
uint64_t x1006;
|
|
fiat_np521_uint1 x1007;
|
|
uint64_t x1008;
|
|
fiat_np521_uint1 x1009;
|
|
uint64_t x1010;
|
|
fiat_np521_uint1 x1011;
|
|
uint64_t x1012;
|
|
fiat_np521_uint1 x1013;
|
|
uint64_t x1014;
|
|
fiat_np521_uint1 x1015;
|
|
uint64_t x1016;
|
|
fiat_np521_uint1 x1017;
|
|
uint64_t x1018;
|
|
fiat_np521_uint1 x1019;
|
|
uint64_t x1020;
|
|
fiat_np521_uint1 x1021;
|
|
uint64_t x1022;
|
|
fiat_np521_uint1 x1023;
|
|
uint64_t x1024;
|
|
fiat_np521_uint1 x1025;
|
|
uint64_t x1026;
|
|
uint64_t x1027;
|
|
uint64_t x1028;
|
|
uint64_t x1029;
|
|
uint64_t x1030;
|
|
uint64_t x1031;
|
|
uint64_t x1032;
|
|
uint64_t x1033;
|
|
uint64_t x1034;
|
|
x1 = (arg1[1]);
|
|
x2 = (arg1[2]);
|
|
x3 = (arg1[3]);
|
|
x4 = (arg1[4]);
|
|
x5 = (arg1[5]);
|
|
x6 = (arg1[6]);
|
|
x7 = (arg1[7]);
|
|
x8 = (arg1[8]);
|
|
x9 = (arg1[0]);
|
|
fiat_np521_mulx_u64(&x10, &x11, x9, (arg2[8]));
|
|
fiat_np521_mulx_u64(&x12, &x13, x9, (arg2[7]));
|
|
fiat_np521_mulx_u64(&x14, &x15, x9, (arg2[6]));
|
|
fiat_np521_mulx_u64(&x16, &x17, x9, (arg2[5]));
|
|
fiat_np521_mulx_u64(&x18, &x19, x9, (arg2[4]));
|
|
fiat_np521_mulx_u64(&x20, &x21, x9, (arg2[3]));
|
|
fiat_np521_mulx_u64(&x22, &x23, x9, (arg2[2]));
|
|
fiat_np521_mulx_u64(&x24, &x25, x9, (arg2[1]));
|
|
fiat_np521_mulx_u64(&x26, &x27, x9, (arg2[0]));
|
|
fiat_np521_addcarryx_u64(&x28, &x29, 0x0, x27, x24);
|
|
fiat_np521_addcarryx_u64(&x30, &x31, x29, x25, x22);
|
|
fiat_np521_addcarryx_u64(&x32, &x33, x31, x23, x20);
|
|
fiat_np521_addcarryx_u64(&x34, &x35, x33, x21, x18);
|
|
fiat_np521_addcarryx_u64(&x36, &x37, x35, x19, x16);
|
|
fiat_np521_addcarryx_u64(&x38, &x39, x37, x17, x14);
|
|
fiat_np521_addcarryx_u64(&x40, &x41, x39, x15, x12);
|
|
fiat_np521_addcarryx_u64(&x42, &x43, x41, x13, x10);
|
|
x44 = (x43 + x11);
|
|
fiat_np521_mulx_u64(&x45, &x46, x26, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x47, &x48, x45, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x49, &x50, x45, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x51, &x52, x45, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x53, &x54, x45, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x55, &x56, x45, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x57, &x58, x45, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x59, &x60, x45, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x61, &x62, x45, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x63, &x64, x45, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x65, &x66, 0x0, x64, x61);
|
|
fiat_np521_addcarryx_u64(&x67, &x68, x66, x62, x59);
|
|
fiat_np521_addcarryx_u64(&x69, &x70, x68, x60, x57);
|
|
fiat_np521_addcarryx_u64(&x71, &x72, x70, x58, x55);
|
|
fiat_np521_addcarryx_u64(&x73, &x74, x72, x56, x53);
|
|
fiat_np521_addcarryx_u64(&x75, &x76, x74, x54, x51);
|
|
fiat_np521_addcarryx_u64(&x77, &x78, x76, x52, x49);
|
|
fiat_np521_addcarryx_u64(&x79, &x80, x78, x50, x47);
|
|
x81 = (x80 + x48);
|
|
fiat_np521_addcarryx_u64(&x82, &x83, 0x0, x26, x63);
|
|
fiat_np521_addcarryx_u64(&x84, &x85, x83, x28, x65);
|
|
fiat_np521_addcarryx_u64(&x86, &x87, x85, x30, x67);
|
|
fiat_np521_addcarryx_u64(&x88, &x89, x87, x32, x69);
|
|
fiat_np521_addcarryx_u64(&x90, &x91, x89, x34, x71);
|
|
fiat_np521_addcarryx_u64(&x92, &x93, x91, x36, x73);
|
|
fiat_np521_addcarryx_u64(&x94, &x95, x93, x38, x75);
|
|
fiat_np521_addcarryx_u64(&x96, &x97, x95, x40, x77);
|
|
fiat_np521_addcarryx_u64(&x98, &x99, x97, x42, x79);
|
|
fiat_np521_addcarryx_u64(&x100, &x101, x99, x44, x81);
|
|
fiat_np521_mulx_u64(&x102, &x103, x1, (arg2[8]));
|
|
fiat_np521_mulx_u64(&x104, &x105, x1, (arg2[7]));
|
|
fiat_np521_mulx_u64(&x106, &x107, x1, (arg2[6]));
|
|
fiat_np521_mulx_u64(&x108, &x109, x1, (arg2[5]));
|
|
fiat_np521_mulx_u64(&x110, &x111, x1, (arg2[4]));
|
|
fiat_np521_mulx_u64(&x112, &x113, x1, (arg2[3]));
|
|
fiat_np521_mulx_u64(&x114, &x115, x1, (arg2[2]));
|
|
fiat_np521_mulx_u64(&x116, &x117, x1, (arg2[1]));
|
|
fiat_np521_mulx_u64(&x118, &x119, x1, (arg2[0]));
|
|
fiat_np521_addcarryx_u64(&x120, &x121, 0x0, x119, x116);
|
|
fiat_np521_addcarryx_u64(&x122, &x123, x121, x117, x114);
|
|
fiat_np521_addcarryx_u64(&x124, &x125, x123, x115, x112);
|
|
fiat_np521_addcarryx_u64(&x126, &x127, x125, x113, x110);
|
|
fiat_np521_addcarryx_u64(&x128, &x129, x127, x111, x108);
|
|
fiat_np521_addcarryx_u64(&x130, &x131, x129, x109, x106);
|
|
fiat_np521_addcarryx_u64(&x132, &x133, x131, x107, x104);
|
|
fiat_np521_addcarryx_u64(&x134, &x135, x133, x105, x102);
|
|
x136 = (x135 + x103);
|
|
fiat_np521_addcarryx_u64(&x137, &x138, 0x0, x84, x118);
|
|
fiat_np521_addcarryx_u64(&x139, &x140, x138, x86, x120);
|
|
fiat_np521_addcarryx_u64(&x141, &x142, x140, x88, x122);
|
|
fiat_np521_addcarryx_u64(&x143, &x144, x142, x90, x124);
|
|
fiat_np521_addcarryx_u64(&x145, &x146, x144, x92, x126);
|
|
fiat_np521_addcarryx_u64(&x147, &x148, x146, x94, x128);
|
|
fiat_np521_addcarryx_u64(&x149, &x150, x148, x96, x130);
|
|
fiat_np521_addcarryx_u64(&x151, &x152, x150, x98, x132);
|
|
fiat_np521_addcarryx_u64(&x153, &x154, x152, x100, x134);
|
|
fiat_np521_addcarryx_u64(&x155, &x156, x154, x101, x136);
|
|
fiat_np521_mulx_u64(&x157, &x158, x137, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x159, &x160, x157, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x161, &x162, x157, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x163, &x164, x157, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x165, &x166, x157, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x167, &x168, x157, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x169, &x170, x157, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x171, &x172, x157, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x173, &x174, x157, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x175, &x176, x157, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x177, &x178, 0x0, x176, x173);
|
|
fiat_np521_addcarryx_u64(&x179, &x180, x178, x174, x171);
|
|
fiat_np521_addcarryx_u64(&x181, &x182, x180, x172, x169);
|
|
fiat_np521_addcarryx_u64(&x183, &x184, x182, x170, x167);
|
|
fiat_np521_addcarryx_u64(&x185, &x186, x184, x168, x165);
|
|
fiat_np521_addcarryx_u64(&x187, &x188, x186, x166, x163);
|
|
fiat_np521_addcarryx_u64(&x189, &x190, x188, x164, x161);
|
|
fiat_np521_addcarryx_u64(&x191, &x192, x190, x162, x159);
|
|
x193 = (x192 + x160);
|
|
fiat_np521_addcarryx_u64(&x194, &x195, 0x0, x137, x175);
|
|
fiat_np521_addcarryx_u64(&x196, &x197, x195, x139, x177);
|
|
fiat_np521_addcarryx_u64(&x198, &x199, x197, x141, x179);
|
|
fiat_np521_addcarryx_u64(&x200, &x201, x199, x143, x181);
|
|
fiat_np521_addcarryx_u64(&x202, &x203, x201, x145, x183);
|
|
fiat_np521_addcarryx_u64(&x204, &x205, x203, x147, x185);
|
|
fiat_np521_addcarryx_u64(&x206, &x207, x205, x149, x187);
|
|
fiat_np521_addcarryx_u64(&x208, &x209, x207, x151, x189);
|
|
fiat_np521_addcarryx_u64(&x210, &x211, x209, x153, x191);
|
|
fiat_np521_addcarryx_u64(&x212, &x213, x211, x155, x193);
|
|
x214 = ((uint64_t)x213 + x156);
|
|
fiat_np521_mulx_u64(&x215, &x216, x2, (arg2[8]));
|
|
fiat_np521_mulx_u64(&x217, &x218, x2, (arg2[7]));
|
|
fiat_np521_mulx_u64(&x219, &x220, x2, (arg2[6]));
|
|
fiat_np521_mulx_u64(&x221, &x222, x2, (arg2[5]));
|
|
fiat_np521_mulx_u64(&x223, &x224, x2, (arg2[4]));
|
|
fiat_np521_mulx_u64(&x225, &x226, x2, (arg2[3]));
|
|
fiat_np521_mulx_u64(&x227, &x228, x2, (arg2[2]));
|
|
fiat_np521_mulx_u64(&x229, &x230, x2, (arg2[1]));
|
|
fiat_np521_mulx_u64(&x231, &x232, x2, (arg2[0]));
|
|
fiat_np521_addcarryx_u64(&x233, &x234, 0x0, x232, x229);
|
|
fiat_np521_addcarryx_u64(&x235, &x236, x234, x230, x227);
|
|
fiat_np521_addcarryx_u64(&x237, &x238, x236, x228, x225);
|
|
fiat_np521_addcarryx_u64(&x239, &x240, x238, x226, x223);
|
|
fiat_np521_addcarryx_u64(&x241, &x242, x240, x224, x221);
|
|
fiat_np521_addcarryx_u64(&x243, &x244, x242, x222, x219);
|
|
fiat_np521_addcarryx_u64(&x245, &x246, x244, x220, x217);
|
|
fiat_np521_addcarryx_u64(&x247, &x248, x246, x218, x215);
|
|
x249 = (x248 + x216);
|
|
fiat_np521_addcarryx_u64(&x250, &x251, 0x0, x196, x231);
|
|
fiat_np521_addcarryx_u64(&x252, &x253, x251, x198, x233);
|
|
fiat_np521_addcarryx_u64(&x254, &x255, x253, x200, x235);
|
|
fiat_np521_addcarryx_u64(&x256, &x257, x255, x202, x237);
|
|
fiat_np521_addcarryx_u64(&x258, &x259, x257, x204, x239);
|
|
fiat_np521_addcarryx_u64(&x260, &x261, x259, x206, x241);
|
|
fiat_np521_addcarryx_u64(&x262, &x263, x261, x208, x243);
|
|
fiat_np521_addcarryx_u64(&x264, &x265, x263, x210, x245);
|
|
fiat_np521_addcarryx_u64(&x266, &x267, x265, x212, x247);
|
|
fiat_np521_addcarryx_u64(&x268, &x269, x267, x214, x249);
|
|
fiat_np521_mulx_u64(&x270, &x271, x250, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x272, &x273, x270, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x274, &x275, x270, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x276, &x277, x270, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x278, &x279, x270, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x280, &x281, x270, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x282, &x283, x270, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x284, &x285, x270, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x286, &x287, x270, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x288, &x289, x270, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x290, &x291, 0x0, x289, x286);
|
|
fiat_np521_addcarryx_u64(&x292, &x293, x291, x287, x284);
|
|
fiat_np521_addcarryx_u64(&x294, &x295, x293, x285, x282);
|
|
fiat_np521_addcarryx_u64(&x296, &x297, x295, x283, x280);
|
|
fiat_np521_addcarryx_u64(&x298, &x299, x297, x281, x278);
|
|
fiat_np521_addcarryx_u64(&x300, &x301, x299, x279, x276);
|
|
fiat_np521_addcarryx_u64(&x302, &x303, x301, x277, x274);
|
|
fiat_np521_addcarryx_u64(&x304, &x305, x303, x275, x272);
|
|
x306 = (x305 + x273);
|
|
fiat_np521_addcarryx_u64(&x307, &x308, 0x0, x250, x288);
|
|
fiat_np521_addcarryx_u64(&x309, &x310, x308, x252, x290);
|
|
fiat_np521_addcarryx_u64(&x311, &x312, x310, x254, x292);
|
|
fiat_np521_addcarryx_u64(&x313, &x314, x312, x256, x294);
|
|
fiat_np521_addcarryx_u64(&x315, &x316, x314, x258, x296);
|
|
fiat_np521_addcarryx_u64(&x317, &x318, x316, x260, x298);
|
|
fiat_np521_addcarryx_u64(&x319, &x320, x318, x262, x300);
|
|
fiat_np521_addcarryx_u64(&x321, &x322, x320, x264, x302);
|
|
fiat_np521_addcarryx_u64(&x323, &x324, x322, x266, x304);
|
|
fiat_np521_addcarryx_u64(&x325, &x326, x324, x268, x306);
|
|
x327 = ((uint64_t)x326 + x269);
|
|
fiat_np521_mulx_u64(&x328, &x329, x3, (arg2[8]));
|
|
fiat_np521_mulx_u64(&x330, &x331, x3, (arg2[7]));
|
|
fiat_np521_mulx_u64(&x332, &x333, x3, (arg2[6]));
|
|
fiat_np521_mulx_u64(&x334, &x335, x3, (arg2[5]));
|
|
fiat_np521_mulx_u64(&x336, &x337, x3, (arg2[4]));
|
|
fiat_np521_mulx_u64(&x338, &x339, x3, (arg2[3]));
|
|
fiat_np521_mulx_u64(&x340, &x341, x3, (arg2[2]));
|
|
fiat_np521_mulx_u64(&x342, &x343, x3, (arg2[1]));
|
|
fiat_np521_mulx_u64(&x344, &x345, x3, (arg2[0]));
|
|
fiat_np521_addcarryx_u64(&x346, &x347, 0x0, x345, x342);
|
|
fiat_np521_addcarryx_u64(&x348, &x349, x347, x343, x340);
|
|
fiat_np521_addcarryx_u64(&x350, &x351, x349, x341, x338);
|
|
fiat_np521_addcarryx_u64(&x352, &x353, x351, x339, x336);
|
|
fiat_np521_addcarryx_u64(&x354, &x355, x353, x337, x334);
|
|
fiat_np521_addcarryx_u64(&x356, &x357, x355, x335, x332);
|
|
fiat_np521_addcarryx_u64(&x358, &x359, x357, x333, x330);
|
|
fiat_np521_addcarryx_u64(&x360, &x361, x359, x331, x328);
|
|
x362 = (x361 + x329);
|
|
fiat_np521_addcarryx_u64(&x363, &x364, 0x0, x309, x344);
|
|
fiat_np521_addcarryx_u64(&x365, &x366, x364, x311, x346);
|
|
fiat_np521_addcarryx_u64(&x367, &x368, x366, x313, x348);
|
|
fiat_np521_addcarryx_u64(&x369, &x370, x368, x315, x350);
|
|
fiat_np521_addcarryx_u64(&x371, &x372, x370, x317, x352);
|
|
fiat_np521_addcarryx_u64(&x373, &x374, x372, x319, x354);
|
|
fiat_np521_addcarryx_u64(&x375, &x376, x374, x321, x356);
|
|
fiat_np521_addcarryx_u64(&x377, &x378, x376, x323, x358);
|
|
fiat_np521_addcarryx_u64(&x379, &x380, x378, x325, x360);
|
|
fiat_np521_addcarryx_u64(&x381, &x382, x380, x327, x362);
|
|
fiat_np521_mulx_u64(&x383, &x384, x363, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x385, &x386, x383, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x387, &x388, x383, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x389, &x390, x383, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x391, &x392, x383, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x393, &x394, x383, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x395, &x396, x383, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x397, &x398, x383, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x399, &x400, x383, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x401, &x402, x383, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x403, &x404, 0x0, x402, x399);
|
|
fiat_np521_addcarryx_u64(&x405, &x406, x404, x400, x397);
|
|
fiat_np521_addcarryx_u64(&x407, &x408, x406, x398, x395);
|
|
fiat_np521_addcarryx_u64(&x409, &x410, x408, x396, x393);
|
|
fiat_np521_addcarryx_u64(&x411, &x412, x410, x394, x391);
|
|
fiat_np521_addcarryx_u64(&x413, &x414, x412, x392, x389);
|
|
fiat_np521_addcarryx_u64(&x415, &x416, x414, x390, x387);
|
|
fiat_np521_addcarryx_u64(&x417, &x418, x416, x388, x385);
|
|
x419 = (x418 + x386);
|
|
fiat_np521_addcarryx_u64(&x420, &x421, 0x0, x363, x401);
|
|
fiat_np521_addcarryx_u64(&x422, &x423, x421, x365, x403);
|
|
fiat_np521_addcarryx_u64(&x424, &x425, x423, x367, x405);
|
|
fiat_np521_addcarryx_u64(&x426, &x427, x425, x369, x407);
|
|
fiat_np521_addcarryx_u64(&x428, &x429, x427, x371, x409);
|
|
fiat_np521_addcarryx_u64(&x430, &x431, x429, x373, x411);
|
|
fiat_np521_addcarryx_u64(&x432, &x433, x431, x375, x413);
|
|
fiat_np521_addcarryx_u64(&x434, &x435, x433, x377, x415);
|
|
fiat_np521_addcarryx_u64(&x436, &x437, x435, x379, x417);
|
|
fiat_np521_addcarryx_u64(&x438, &x439, x437, x381, x419);
|
|
x440 = ((uint64_t)x439 + x382);
|
|
fiat_np521_mulx_u64(&x441, &x442, x4, (arg2[8]));
|
|
fiat_np521_mulx_u64(&x443, &x444, x4, (arg2[7]));
|
|
fiat_np521_mulx_u64(&x445, &x446, x4, (arg2[6]));
|
|
fiat_np521_mulx_u64(&x447, &x448, x4, (arg2[5]));
|
|
fiat_np521_mulx_u64(&x449, &x450, x4, (arg2[4]));
|
|
fiat_np521_mulx_u64(&x451, &x452, x4, (arg2[3]));
|
|
fiat_np521_mulx_u64(&x453, &x454, x4, (arg2[2]));
|
|
fiat_np521_mulx_u64(&x455, &x456, x4, (arg2[1]));
|
|
fiat_np521_mulx_u64(&x457, &x458, x4, (arg2[0]));
|
|
fiat_np521_addcarryx_u64(&x459, &x460, 0x0, x458, x455);
|
|
fiat_np521_addcarryx_u64(&x461, &x462, x460, x456, x453);
|
|
fiat_np521_addcarryx_u64(&x463, &x464, x462, x454, x451);
|
|
fiat_np521_addcarryx_u64(&x465, &x466, x464, x452, x449);
|
|
fiat_np521_addcarryx_u64(&x467, &x468, x466, x450, x447);
|
|
fiat_np521_addcarryx_u64(&x469, &x470, x468, x448, x445);
|
|
fiat_np521_addcarryx_u64(&x471, &x472, x470, x446, x443);
|
|
fiat_np521_addcarryx_u64(&x473, &x474, x472, x444, x441);
|
|
x475 = (x474 + x442);
|
|
fiat_np521_addcarryx_u64(&x476, &x477, 0x0, x422, x457);
|
|
fiat_np521_addcarryx_u64(&x478, &x479, x477, x424, x459);
|
|
fiat_np521_addcarryx_u64(&x480, &x481, x479, x426, x461);
|
|
fiat_np521_addcarryx_u64(&x482, &x483, x481, x428, x463);
|
|
fiat_np521_addcarryx_u64(&x484, &x485, x483, x430, x465);
|
|
fiat_np521_addcarryx_u64(&x486, &x487, x485, x432, x467);
|
|
fiat_np521_addcarryx_u64(&x488, &x489, x487, x434, x469);
|
|
fiat_np521_addcarryx_u64(&x490, &x491, x489, x436, x471);
|
|
fiat_np521_addcarryx_u64(&x492, &x493, x491, x438, x473);
|
|
fiat_np521_addcarryx_u64(&x494, &x495, x493, x440, x475);
|
|
fiat_np521_mulx_u64(&x496, &x497, x476, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x498, &x499, x496, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x500, &x501, x496, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x502, &x503, x496, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x504, &x505, x496, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x506, &x507, x496, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x508, &x509, x496, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x510, &x511, x496, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x512, &x513, x496, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x514, &x515, x496, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x516, &x517, 0x0, x515, x512);
|
|
fiat_np521_addcarryx_u64(&x518, &x519, x517, x513, x510);
|
|
fiat_np521_addcarryx_u64(&x520, &x521, x519, x511, x508);
|
|
fiat_np521_addcarryx_u64(&x522, &x523, x521, x509, x506);
|
|
fiat_np521_addcarryx_u64(&x524, &x525, x523, x507, x504);
|
|
fiat_np521_addcarryx_u64(&x526, &x527, x525, x505, x502);
|
|
fiat_np521_addcarryx_u64(&x528, &x529, x527, x503, x500);
|
|
fiat_np521_addcarryx_u64(&x530, &x531, x529, x501, x498);
|
|
x532 = (x531 + x499);
|
|
fiat_np521_addcarryx_u64(&x533, &x534, 0x0, x476, x514);
|
|
fiat_np521_addcarryx_u64(&x535, &x536, x534, x478, x516);
|
|
fiat_np521_addcarryx_u64(&x537, &x538, x536, x480, x518);
|
|
fiat_np521_addcarryx_u64(&x539, &x540, x538, x482, x520);
|
|
fiat_np521_addcarryx_u64(&x541, &x542, x540, x484, x522);
|
|
fiat_np521_addcarryx_u64(&x543, &x544, x542, x486, x524);
|
|
fiat_np521_addcarryx_u64(&x545, &x546, x544, x488, x526);
|
|
fiat_np521_addcarryx_u64(&x547, &x548, x546, x490, x528);
|
|
fiat_np521_addcarryx_u64(&x549, &x550, x548, x492, x530);
|
|
fiat_np521_addcarryx_u64(&x551, &x552, x550, x494, x532);
|
|
x553 = ((uint64_t)x552 + x495);
|
|
fiat_np521_mulx_u64(&x554, &x555, x5, (arg2[8]));
|
|
fiat_np521_mulx_u64(&x556, &x557, x5, (arg2[7]));
|
|
fiat_np521_mulx_u64(&x558, &x559, x5, (arg2[6]));
|
|
fiat_np521_mulx_u64(&x560, &x561, x5, (arg2[5]));
|
|
fiat_np521_mulx_u64(&x562, &x563, x5, (arg2[4]));
|
|
fiat_np521_mulx_u64(&x564, &x565, x5, (arg2[3]));
|
|
fiat_np521_mulx_u64(&x566, &x567, x5, (arg2[2]));
|
|
fiat_np521_mulx_u64(&x568, &x569, x5, (arg2[1]));
|
|
fiat_np521_mulx_u64(&x570, &x571, x5, (arg2[0]));
|
|
fiat_np521_addcarryx_u64(&x572, &x573, 0x0, x571, x568);
|
|
fiat_np521_addcarryx_u64(&x574, &x575, x573, x569, x566);
|
|
fiat_np521_addcarryx_u64(&x576, &x577, x575, x567, x564);
|
|
fiat_np521_addcarryx_u64(&x578, &x579, x577, x565, x562);
|
|
fiat_np521_addcarryx_u64(&x580, &x581, x579, x563, x560);
|
|
fiat_np521_addcarryx_u64(&x582, &x583, x581, x561, x558);
|
|
fiat_np521_addcarryx_u64(&x584, &x585, x583, x559, x556);
|
|
fiat_np521_addcarryx_u64(&x586, &x587, x585, x557, x554);
|
|
x588 = (x587 + x555);
|
|
fiat_np521_addcarryx_u64(&x589, &x590, 0x0, x535, x570);
|
|
fiat_np521_addcarryx_u64(&x591, &x592, x590, x537, x572);
|
|
fiat_np521_addcarryx_u64(&x593, &x594, x592, x539, x574);
|
|
fiat_np521_addcarryx_u64(&x595, &x596, x594, x541, x576);
|
|
fiat_np521_addcarryx_u64(&x597, &x598, x596, x543, x578);
|
|
fiat_np521_addcarryx_u64(&x599, &x600, x598, x545, x580);
|
|
fiat_np521_addcarryx_u64(&x601, &x602, x600, x547, x582);
|
|
fiat_np521_addcarryx_u64(&x603, &x604, x602, x549, x584);
|
|
fiat_np521_addcarryx_u64(&x605, &x606, x604, x551, x586);
|
|
fiat_np521_addcarryx_u64(&x607, &x608, x606, x553, x588);
|
|
fiat_np521_mulx_u64(&x609, &x610, x589, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x611, &x612, x609, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x613, &x614, x609, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x615, &x616, x609, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x617, &x618, x609, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x619, &x620, x609, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x621, &x622, x609, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x623, &x624, x609, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x625, &x626, x609, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x627, &x628, x609, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x629, &x630, 0x0, x628, x625);
|
|
fiat_np521_addcarryx_u64(&x631, &x632, x630, x626, x623);
|
|
fiat_np521_addcarryx_u64(&x633, &x634, x632, x624, x621);
|
|
fiat_np521_addcarryx_u64(&x635, &x636, x634, x622, x619);
|
|
fiat_np521_addcarryx_u64(&x637, &x638, x636, x620, x617);
|
|
fiat_np521_addcarryx_u64(&x639, &x640, x638, x618, x615);
|
|
fiat_np521_addcarryx_u64(&x641, &x642, x640, x616, x613);
|
|
fiat_np521_addcarryx_u64(&x643, &x644, x642, x614, x611);
|
|
x645 = (x644 + x612);
|
|
fiat_np521_addcarryx_u64(&x646, &x647, 0x0, x589, x627);
|
|
fiat_np521_addcarryx_u64(&x648, &x649, x647, x591, x629);
|
|
fiat_np521_addcarryx_u64(&x650, &x651, x649, x593, x631);
|
|
fiat_np521_addcarryx_u64(&x652, &x653, x651, x595, x633);
|
|
fiat_np521_addcarryx_u64(&x654, &x655, x653, x597, x635);
|
|
fiat_np521_addcarryx_u64(&x656, &x657, x655, x599, x637);
|
|
fiat_np521_addcarryx_u64(&x658, &x659, x657, x601, x639);
|
|
fiat_np521_addcarryx_u64(&x660, &x661, x659, x603, x641);
|
|
fiat_np521_addcarryx_u64(&x662, &x663, x661, x605, x643);
|
|
fiat_np521_addcarryx_u64(&x664, &x665, x663, x607, x645);
|
|
x666 = ((uint64_t)x665 + x608);
|
|
fiat_np521_mulx_u64(&x667, &x668, x6, (arg2[8]));
|
|
fiat_np521_mulx_u64(&x669, &x670, x6, (arg2[7]));
|
|
fiat_np521_mulx_u64(&x671, &x672, x6, (arg2[6]));
|
|
fiat_np521_mulx_u64(&x673, &x674, x6, (arg2[5]));
|
|
fiat_np521_mulx_u64(&x675, &x676, x6, (arg2[4]));
|
|
fiat_np521_mulx_u64(&x677, &x678, x6, (arg2[3]));
|
|
fiat_np521_mulx_u64(&x679, &x680, x6, (arg2[2]));
|
|
fiat_np521_mulx_u64(&x681, &x682, x6, (arg2[1]));
|
|
fiat_np521_mulx_u64(&x683, &x684, x6, (arg2[0]));
|
|
fiat_np521_addcarryx_u64(&x685, &x686, 0x0, x684, x681);
|
|
fiat_np521_addcarryx_u64(&x687, &x688, x686, x682, x679);
|
|
fiat_np521_addcarryx_u64(&x689, &x690, x688, x680, x677);
|
|
fiat_np521_addcarryx_u64(&x691, &x692, x690, x678, x675);
|
|
fiat_np521_addcarryx_u64(&x693, &x694, x692, x676, x673);
|
|
fiat_np521_addcarryx_u64(&x695, &x696, x694, x674, x671);
|
|
fiat_np521_addcarryx_u64(&x697, &x698, x696, x672, x669);
|
|
fiat_np521_addcarryx_u64(&x699, &x700, x698, x670, x667);
|
|
x701 = (x700 + x668);
|
|
fiat_np521_addcarryx_u64(&x702, &x703, 0x0, x648, x683);
|
|
fiat_np521_addcarryx_u64(&x704, &x705, x703, x650, x685);
|
|
fiat_np521_addcarryx_u64(&x706, &x707, x705, x652, x687);
|
|
fiat_np521_addcarryx_u64(&x708, &x709, x707, x654, x689);
|
|
fiat_np521_addcarryx_u64(&x710, &x711, x709, x656, x691);
|
|
fiat_np521_addcarryx_u64(&x712, &x713, x711, x658, x693);
|
|
fiat_np521_addcarryx_u64(&x714, &x715, x713, x660, x695);
|
|
fiat_np521_addcarryx_u64(&x716, &x717, x715, x662, x697);
|
|
fiat_np521_addcarryx_u64(&x718, &x719, x717, x664, x699);
|
|
fiat_np521_addcarryx_u64(&x720, &x721, x719, x666, x701);
|
|
fiat_np521_mulx_u64(&x722, &x723, x702, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x724, &x725, x722, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x726, &x727, x722, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x728, &x729, x722, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x730, &x731, x722, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x732, &x733, x722, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x734, &x735, x722, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x736, &x737, x722, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x738, &x739, x722, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x740, &x741, x722, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x742, &x743, 0x0, x741, x738);
|
|
fiat_np521_addcarryx_u64(&x744, &x745, x743, x739, x736);
|
|
fiat_np521_addcarryx_u64(&x746, &x747, x745, x737, x734);
|
|
fiat_np521_addcarryx_u64(&x748, &x749, x747, x735, x732);
|
|
fiat_np521_addcarryx_u64(&x750, &x751, x749, x733, x730);
|
|
fiat_np521_addcarryx_u64(&x752, &x753, x751, x731, x728);
|
|
fiat_np521_addcarryx_u64(&x754, &x755, x753, x729, x726);
|
|
fiat_np521_addcarryx_u64(&x756, &x757, x755, x727, x724);
|
|
x758 = (x757 + x725);
|
|
fiat_np521_addcarryx_u64(&x759, &x760, 0x0, x702, x740);
|
|
fiat_np521_addcarryx_u64(&x761, &x762, x760, x704, x742);
|
|
fiat_np521_addcarryx_u64(&x763, &x764, x762, x706, x744);
|
|
fiat_np521_addcarryx_u64(&x765, &x766, x764, x708, x746);
|
|
fiat_np521_addcarryx_u64(&x767, &x768, x766, x710, x748);
|
|
fiat_np521_addcarryx_u64(&x769, &x770, x768, x712, x750);
|
|
fiat_np521_addcarryx_u64(&x771, &x772, x770, x714, x752);
|
|
fiat_np521_addcarryx_u64(&x773, &x774, x772, x716, x754);
|
|
fiat_np521_addcarryx_u64(&x775, &x776, x774, x718, x756);
|
|
fiat_np521_addcarryx_u64(&x777, &x778, x776, x720, x758);
|
|
x779 = ((uint64_t)x778 + x721);
|
|
fiat_np521_mulx_u64(&x780, &x781, x7, (arg2[8]));
|
|
fiat_np521_mulx_u64(&x782, &x783, x7, (arg2[7]));
|
|
fiat_np521_mulx_u64(&x784, &x785, x7, (arg2[6]));
|
|
fiat_np521_mulx_u64(&x786, &x787, x7, (arg2[5]));
|
|
fiat_np521_mulx_u64(&x788, &x789, x7, (arg2[4]));
|
|
fiat_np521_mulx_u64(&x790, &x791, x7, (arg2[3]));
|
|
fiat_np521_mulx_u64(&x792, &x793, x7, (arg2[2]));
|
|
fiat_np521_mulx_u64(&x794, &x795, x7, (arg2[1]));
|
|
fiat_np521_mulx_u64(&x796, &x797, x7, (arg2[0]));
|
|
fiat_np521_addcarryx_u64(&x798, &x799, 0x0, x797, x794);
|
|
fiat_np521_addcarryx_u64(&x800, &x801, x799, x795, x792);
|
|
fiat_np521_addcarryx_u64(&x802, &x803, x801, x793, x790);
|
|
fiat_np521_addcarryx_u64(&x804, &x805, x803, x791, x788);
|
|
fiat_np521_addcarryx_u64(&x806, &x807, x805, x789, x786);
|
|
fiat_np521_addcarryx_u64(&x808, &x809, x807, x787, x784);
|
|
fiat_np521_addcarryx_u64(&x810, &x811, x809, x785, x782);
|
|
fiat_np521_addcarryx_u64(&x812, &x813, x811, x783, x780);
|
|
x814 = (x813 + x781);
|
|
fiat_np521_addcarryx_u64(&x815, &x816, 0x0, x761, x796);
|
|
fiat_np521_addcarryx_u64(&x817, &x818, x816, x763, x798);
|
|
fiat_np521_addcarryx_u64(&x819, &x820, x818, x765, x800);
|
|
fiat_np521_addcarryx_u64(&x821, &x822, x820, x767, x802);
|
|
fiat_np521_addcarryx_u64(&x823, &x824, x822, x769, x804);
|
|
fiat_np521_addcarryx_u64(&x825, &x826, x824, x771, x806);
|
|
fiat_np521_addcarryx_u64(&x827, &x828, x826, x773, x808);
|
|
fiat_np521_addcarryx_u64(&x829, &x830, x828, x775, x810);
|
|
fiat_np521_addcarryx_u64(&x831, &x832, x830, x777, x812);
|
|
fiat_np521_addcarryx_u64(&x833, &x834, x832, x779, x814);
|
|
fiat_np521_mulx_u64(&x835, &x836, x815, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x837, &x838, x835, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x839, &x840, x835, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x841, &x842, x835, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x843, &x844, x835, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x845, &x846, x835, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x847, &x848, x835, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x849, &x850, x835, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x851, &x852, x835, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x853, &x854, x835, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x855, &x856, 0x0, x854, x851);
|
|
fiat_np521_addcarryx_u64(&x857, &x858, x856, x852, x849);
|
|
fiat_np521_addcarryx_u64(&x859, &x860, x858, x850, x847);
|
|
fiat_np521_addcarryx_u64(&x861, &x862, x860, x848, x845);
|
|
fiat_np521_addcarryx_u64(&x863, &x864, x862, x846, x843);
|
|
fiat_np521_addcarryx_u64(&x865, &x866, x864, x844, x841);
|
|
fiat_np521_addcarryx_u64(&x867, &x868, x866, x842, x839);
|
|
fiat_np521_addcarryx_u64(&x869, &x870, x868, x840, x837);
|
|
x871 = (x870 + x838);
|
|
fiat_np521_addcarryx_u64(&x872, &x873, 0x0, x815, x853);
|
|
fiat_np521_addcarryx_u64(&x874, &x875, x873, x817, x855);
|
|
fiat_np521_addcarryx_u64(&x876, &x877, x875, x819, x857);
|
|
fiat_np521_addcarryx_u64(&x878, &x879, x877, x821, x859);
|
|
fiat_np521_addcarryx_u64(&x880, &x881, x879, x823, x861);
|
|
fiat_np521_addcarryx_u64(&x882, &x883, x881, x825, x863);
|
|
fiat_np521_addcarryx_u64(&x884, &x885, x883, x827, x865);
|
|
fiat_np521_addcarryx_u64(&x886, &x887, x885, x829, x867);
|
|
fiat_np521_addcarryx_u64(&x888, &x889, x887, x831, x869);
|
|
fiat_np521_addcarryx_u64(&x890, &x891, x889, x833, x871);
|
|
x892 = ((uint64_t)x891 + x834);
|
|
fiat_np521_mulx_u64(&x893, &x894, x8, (arg2[8]));
|
|
fiat_np521_mulx_u64(&x895, &x896, x8, (arg2[7]));
|
|
fiat_np521_mulx_u64(&x897, &x898, x8, (arg2[6]));
|
|
fiat_np521_mulx_u64(&x899, &x900, x8, (arg2[5]));
|
|
fiat_np521_mulx_u64(&x901, &x902, x8, (arg2[4]));
|
|
fiat_np521_mulx_u64(&x903, &x904, x8, (arg2[3]));
|
|
fiat_np521_mulx_u64(&x905, &x906, x8, (arg2[2]));
|
|
fiat_np521_mulx_u64(&x907, &x908, x8, (arg2[1]));
|
|
fiat_np521_mulx_u64(&x909, &x910, x8, (arg2[0]));
|
|
fiat_np521_addcarryx_u64(&x911, &x912, 0x0, x910, x907);
|
|
fiat_np521_addcarryx_u64(&x913, &x914, x912, x908, x905);
|
|
fiat_np521_addcarryx_u64(&x915, &x916, x914, x906, x903);
|
|
fiat_np521_addcarryx_u64(&x917, &x918, x916, x904, x901);
|
|
fiat_np521_addcarryx_u64(&x919, &x920, x918, x902, x899);
|
|
fiat_np521_addcarryx_u64(&x921, &x922, x920, x900, x897);
|
|
fiat_np521_addcarryx_u64(&x923, &x924, x922, x898, x895);
|
|
fiat_np521_addcarryx_u64(&x925, &x926, x924, x896, x893);
|
|
x927 = (x926 + x894);
|
|
fiat_np521_addcarryx_u64(&x928, &x929, 0x0, x874, x909);
|
|
fiat_np521_addcarryx_u64(&x930, &x931, x929, x876, x911);
|
|
fiat_np521_addcarryx_u64(&x932, &x933, x931, x878, x913);
|
|
fiat_np521_addcarryx_u64(&x934, &x935, x933, x880, x915);
|
|
fiat_np521_addcarryx_u64(&x936, &x937, x935, x882, x917);
|
|
fiat_np521_addcarryx_u64(&x938, &x939, x937, x884, x919);
|
|
fiat_np521_addcarryx_u64(&x940, &x941, x939, x886, x921);
|
|
fiat_np521_addcarryx_u64(&x942, &x943, x941, x888, x923);
|
|
fiat_np521_addcarryx_u64(&x944, &x945, x943, x890, x925);
|
|
fiat_np521_addcarryx_u64(&x946, &x947, x945, x892, x927);
|
|
fiat_np521_mulx_u64(&x948, &x949, x928, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x950, &x951, x948, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x952, &x953, x948, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x954, &x955, x948, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x956, &x957, x948, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x958, &x959, x948, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x960, &x961, x948, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x962, &x963, x948, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x964, &x965, x948, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x966, &x967, x948, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x968, &x969, 0x0, x967, x964);
|
|
fiat_np521_addcarryx_u64(&x970, &x971, x969, x965, x962);
|
|
fiat_np521_addcarryx_u64(&x972, &x973, x971, x963, x960);
|
|
fiat_np521_addcarryx_u64(&x974, &x975, x973, x961, x958);
|
|
fiat_np521_addcarryx_u64(&x976, &x977, x975, x959, x956);
|
|
fiat_np521_addcarryx_u64(&x978, &x979, x977, x957, x954);
|
|
fiat_np521_addcarryx_u64(&x980, &x981, x979, x955, x952);
|
|
fiat_np521_addcarryx_u64(&x982, &x983, x981, x953, x950);
|
|
x984 = (x983 + x951);
|
|
fiat_np521_addcarryx_u64(&x985, &x986, 0x0, x928, x966);
|
|
fiat_np521_addcarryx_u64(&x987, &x988, x986, x930, x968);
|
|
fiat_np521_addcarryx_u64(&x989, &x990, x988, x932, x970);
|
|
fiat_np521_addcarryx_u64(&x991, &x992, x990, x934, x972);
|
|
fiat_np521_addcarryx_u64(&x993, &x994, x992, x936, x974);
|
|
fiat_np521_addcarryx_u64(&x995, &x996, x994, x938, x976);
|
|
fiat_np521_addcarryx_u64(&x997, &x998, x996, x940, x978);
|
|
fiat_np521_addcarryx_u64(&x999, &x1000, x998, x942, x980);
|
|
fiat_np521_addcarryx_u64(&x1001, &x1002, x1000, x944, x982);
|
|
fiat_np521_addcarryx_u64(&x1003, &x1004, x1002, x946, x984);
|
|
x1005 = ((uint64_t)x1004 + x947);
|
|
fiat_np521_subborrowx_u64(&x1006, &x1007, 0x0, x987, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_subborrowx_u64(&x1008, &x1009, x1007, x989, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_subborrowx_u64(&x1010, &x1011, x1009, x991, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_subborrowx_u64(&x1012, &x1013, x1011, x993, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_subborrowx_u64(&x1014, &x1015, x1013, x995, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_subborrowx_u64(&x1016, &x1017, x1015, x997, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x1018, &x1019, x1017, x999, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x1020, &x1021, x1019, x1001, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x1022, &x1023, x1021, x1003, UINT16_C(0x1ff));
|
|
fiat_np521_subborrowx_u64(&x1024, &x1025, x1023, x1005, 0x0);
|
|
fiat_np521_cmovznz_u64(&x1026, x1025, x1006, x987);
|
|
fiat_np521_cmovznz_u64(&x1027, x1025, x1008, x989);
|
|
fiat_np521_cmovznz_u64(&x1028, x1025, x1010, x991);
|
|
fiat_np521_cmovznz_u64(&x1029, x1025, x1012, x993);
|
|
fiat_np521_cmovznz_u64(&x1030, x1025, x1014, x995);
|
|
fiat_np521_cmovznz_u64(&x1031, x1025, x1016, x997);
|
|
fiat_np521_cmovznz_u64(&x1032, x1025, x1018, x999);
|
|
fiat_np521_cmovznz_u64(&x1033, x1025, x1020, x1001);
|
|
fiat_np521_cmovznz_u64(&x1034, x1025, x1022, x1003);
|
|
out1[0] = x1026;
|
|
out1[1] = x1027;
|
|
out1[2] = x1028;
|
|
out1[3] = x1029;
|
|
out1[4] = x1030;
|
|
out1[5] = x1031;
|
|
out1[6] = x1032;
|
|
out1[7] = x1033;
|
|
out1[8] = x1034;
|
|
}
|
|
|
|
/*
|
|
* The function fiat_np521_add adds two field elements in the Montgomery domain.
|
|
*
|
|
* Preconditions:
|
|
* 0 ≤ eval arg1 < m
|
|
* 0 ≤ eval arg2 < m
|
|
* Postconditions:
|
|
* eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m
|
|
* 0 ≤ eval out1 < m
|
|
*
|
|
*/
|
|
static void fiat_np521_add(fiat_np521_montgomery_domain_field_element out1, const fiat_np521_montgomery_domain_field_element arg1, const fiat_np521_montgomery_domain_field_element arg2) {
|
|
uint64_t x1;
|
|
fiat_np521_uint1 x2;
|
|
uint64_t x3;
|
|
fiat_np521_uint1 x4;
|
|
uint64_t x5;
|
|
fiat_np521_uint1 x6;
|
|
uint64_t x7;
|
|
fiat_np521_uint1 x8;
|
|
uint64_t x9;
|
|
fiat_np521_uint1 x10;
|
|
uint64_t x11;
|
|
fiat_np521_uint1 x12;
|
|
uint64_t x13;
|
|
fiat_np521_uint1 x14;
|
|
uint64_t x15;
|
|
fiat_np521_uint1 x16;
|
|
uint64_t x17;
|
|
fiat_np521_uint1 x18;
|
|
uint64_t x19;
|
|
fiat_np521_uint1 x20;
|
|
uint64_t x21;
|
|
fiat_np521_uint1 x22;
|
|
uint64_t x23;
|
|
fiat_np521_uint1 x24;
|
|
uint64_t x25;
|
|
fiat_np521_uint1 x26;
|
|
uint64_t x27;
|
|
fiat_np521_uint1 x28;
|
|
uint64_t x29;
|
|
fiat_np521_uint1 x30;
|
|
uint64_t x31;
|
|
fiat_np521_uint1 x32;
|
|
uint64_t x33;
|
|
fiat_np521_uint1 x34;
|
|
uint64_t x35;
|
|
fiat_np521_uint1 x36;
|
|
uint64_t x37;
|
|
fiat_np521_uint1 x38;
|
|
uint64_t x39;
|
|
uint64_t x40;
|
|
uint64_t x41;
|
|
uint64_t x42;
|
|
uint64_t x43;
|
|
uint64_t x44;
|
|
uint64_t x45;
|
|
uint64_t x46;
|
|
uint64_t x47;
|
|
fiat_np521_addcarryx_u64(&x1, &x2, 0x0, (arg1[0]), (arg2[0]));
|
|
fiat_np521_addcarryx_u64(&x3, &x4, x2, (arg1[1]), (arg2[1]));
|
|
fiat_np521_addcarryx_u64(&x5, &x6, x4, (arg1[2]), (arg2[2]));
|
|
fiat_np521_addcarryx_u64(&x7, &x8, x6, (arg1[3]), (arg2[3]));
|
|
fiat_np521_addcarryx_u64(&x9, &x10, x8, (arg1[4]), (arg2[4]));
|
|
fiat_np521_addcarryx_u64(&x11, &x12, x10, (arg1[5]), (arg2[5]));
|
|
fiat_np521_addcarryx_u64(&x13, &x14, x12, (arg1[6]), (arg2[6]));
|
|
fiat_np521_addcarryx_u64(&x15, &x16, x14, (arg1[7]), (arg2[7]));
|
|
fiat_np521_addcarryx_u64(&x17, &x18, x16, (arg1[8]), (arg2[8]));
|
|
fiat_np521_subborrowx_u64(&x19, &x20, 0x0, x1, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_subborrowx_u64(&x21, &x22, x20, x3, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_subborrowx_u64(&x23, &x24, x22, x5, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_subborrowx_u64(&x25, &x26, x24, x7, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_subborrowx_u64(&x27, &x28, x26, x9, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_subborrowx_u64(&x29, &x30, x28, x11, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x31, &x32, x30, x13, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x33, &x34, x32, x15, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x35, &x36, x34, x17, UINT16_C(0x1ff));
|
|
fiat_np521_subborrowx_u64(&x37, &x38, x36, x18, 0x0);
|
|
fiat_np521_cmovznz_u64(&x39, x38, x19, x1);
|
|
fiat_np521_cmovznz_u64(&x40, x38, x21, x3);
|
|
fiat_np521_cmovznz_u64(&x41, x38, x23, x5);
|
|
fiat_np521_cmovznz_u64(&x42, x38, x25, x7);
|
|
fiat_np521_cmovznz_u64(&x43, x38, x27, x9);
|
|
fiat_np521_cmovznz_u64(&x44, x38, x29, x11);
|
|
fiat_np521_cmovznz_u64(&x45, x38, x31, x13);
|
|
fiat_np521_cmovznz_u64(&x46, x38, x33, x15);
|
|
fiat_np521_cmovznz_u64(&x47, x38, x35, x17);
|
|
out1[0] = x39;
|
|
out1[1] = x40;
|
|
out1[2] = x41;
|
|
out1[3] = x42;
|
|
out1[4] = x43;
|
|
out1[5] = x44;
|
|
out1[6] = x45;
|
|
out1[7] = x46;
|
|
out1[8] = x47;
|
|
}
|
|
|
|
/*
|
|
* The function fiat_np521_opp negates a field element in the Montgomery domain.
|
|
*
|
|
* Preconditions:
|
|
* 0 ≤ eval arg1 < m
|
|
* Postconditions:
|
|
* eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m
|
|
* 0 ≤ eval out1 < m
|
|
*
|
|
*/
|
|
static void fiat_np521_opp(fiat_np521_montgomery_domain_field_element out1, const fiat_np521_montgomery_domain_field_element arg1) {
|
|
uint64_t x1;
|
|
fiat_np521_uint1 x2;
|
|
uint64_t x3;
|
|
fiat_np521_uint1 x4;
|
|
uint64_t x5;
|
|
fiat_np521_uint1 x6;
|
|
uint64_t x7;
|
|
fiat_np521_uint1 x8;
|
|
uint64_t x9;
|
|
fiat_np521_uint1 x10;
|
|
uint64_t x11;
|
|
fiat_np521_uint1 x12;
|
|
uint64_t x13;
|
|
fiat_np521_uint1 x14;
|
|
uint64_t x15;
|
|
fiat_np521_uint1 x16;
|
|
uint64_t x17;
|
|
fiat_np521_uint1 x18;
|
|
uint64_t x19;
|
|
uint64_t x20;
|
|
fiat_np521_uint1 x21;
|
|
uint64_t x22;
|
|
fiat_np521_uint1 x23;
|
|
uint64_t x24;
|
|
fiat_np521_uint1 x25;
|
|
uint64_t x26;
|
|
fiat_np521_uint1 x27;
|
|
uint64_t x28;
|
|
fiat_np521_uint1 x29;
|
|
uint64_t x30;
|
|
fiat_np521_uint1 x31;
|
|
uint64_t x32;
|
|
fiat_np521_uint1 x33;
|
|
uint64_t x34;
|
|
fiat_np521_uint1 x35;
|
|
uint64_t x36;
|
|
fiat_np521_uint1 x37;
|
|
fiat_np521_subborrowx_u64(&x1, &x2, 0x0, 0x0, (arg1[0]));
|
|
fiat_np521_subborrowx_u64(&x3, &x4, x2, 0x0, (arg1[1]));
|
|
fiat_np521_subborrowx_u64(&x5, &x6, x4, 0x0, (arg1[2]));
|
|
fiat_np521_subborrowx_u64(&x7, &x8, x6, 0x0, (arg1[3]));
|
|
fiat_np521_subborrowx_u64(&x9, &x10, x8, 0x0, (arg1[4]));
|
|
fiat_np521_subborrowx_u64(&x11, &x12, x10, 0x0, (arg1[5]));
|
|
fiat_np521_subborrowx_u64(&x13, &x14, x12, 0x0, (arg1[6]));
|
|
fiat_np521_subborrowx_u64(&x15, &x16, x14, 0x0, (arg1[7]));
|
|
fiat_np521_subborrowx_u64(&x17, &x18, x16, 0x0, (arg1[8]));
|
|
fiat_np521_cmovznz_u64(&x19, x18, 0x0, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_addcarryx_u64(&x20, &x21, 0x0, x1, (x19 & UINT64_C(0xbb6fb71e91386409)));
|
|
fiat_np521_addcarryx_u64(&x22, &x23, x21, x3, (x19 & UINT64_C(0x3bb5c9b8899c47ae)));
|
|
fiat_np521_addcarryx_u64(&x24, &x25, x23, x5, (x19 & UINT64_C(0x7fcc0148f709a5d0)));
|
|
fiat_np521_addcarryx_u64(&x26, &x27, x25, x7, (x19 & UINT64_C(0x51868783bf2f966b)));
|
|
fiat_np521_addcarryx_u64(&x28, &x29, x27, x9, (x19 & UINT64_C(0xfffffffffffffffa)));
|
|
fiat_np521_addcarryx_u64(&x30, &x31, x29, x11, x19);
|
|
fiat_np521_addcarryx_u64(&x32, &x33, x31, x13, x19);
|
|
fiat_np521_addcarryx_u64(&x34, &x35, x33, x15, x19);
|
|
fiat_np521_addcarryx_u64(&x36, &x37, x35, x17, (x19 & UINT16_C(0x1ff)));
|
|
out1[0] = x20;
|
|
out1[1] = x22;
|
|
out1[2] = x24;
|
|
out1[3] = x26;
|
|
out1[4] = x28;
|
|
out1[5] = x30;
|
|
out1[6] = x32;
|
|
out1[7] = x34;
|
|
out1[8] = x36;
|
|
}
|
|
|
|
/*
|
|
* The function fiat_np521_from_montgomery translates a field element out of the Montgomery domain.
|
|
*
|
|
* Preconditions:
|
|
* 0 ≤ eval arg1 < m
|
|
* Postconditions:
|
|
* eval out1 mod m = (eval arg1 * ((2^64)⁻¹ mod m)^9) mod m
|
|
* 0 ≤ eval out1 < m
|
|
*
|
|
*/
|
|
static void fiat_np521_from_montgomery(fiat_np521_non_montgomery_domain_field_element out1, const fiat_np521_montgomery_domain_field_element arg1) {
|
|
uint64_t x1;
|
|
uint64_t x2;
|
|
uint64_t x3;
|
|
uint64_t x4;
|
|
uint64_t x5;
|
|
uint64_t x6;
|
|
uint64_t x7;
|
|
uint64_t x8;
|
|
uint64_t x9;
|
|
uint64_t x10;
|
|
uint64_t x11;
|
|
uint64_t x12;
|
|
uint64_t x13;
|
|
uint64_t x14;
|
|
uint64_t x15;
|
|
uint64_t x16;
|
|
uint64_t x17;
|
|
uint64_t x18;
|
|
uint64_t x19;
|
|
uint64_t x20;
|
|
uint64_t x21;
|
|
uint64_t x22;
|
|
fiat_np521_uint1 x23;
|
|
uint64_t x24;
|
|
fiat_np521_uint1 x25;
|
|
uint64_t x26;
|
|
fiat_np521_uint1 x27;
|
|
uint64_t x28;
|
|
fiat_np521_uint1 x29;
|
|
uint64_t x30;
|
|
fiat_np521_uint1 x31;
|
|
uint64_t x32;
|
|
fiat_np521_uint1 x33;
|
|
uint64_t x34;
|
|
fiat_np521_uint1 x35;
|
|
uint64_t x36;
|
|
fiat_np521_uint1 x37;
|
|
uint64_t x38;
|
|
fiat_np521_uint1 x39;
|
|
uint64_t x40;
|
|
fiat_np521_uint1 x41;
|
|
uint64_t x42;
|
|
fiat_np521_uint1 x43;
|
|
uint64_t x44;
|
|
fiat_np521_uint1 x45;
|
|
uint64_t x46;
|
|
fiat_np521_uint1 x47;
|
|
uint64_t x48;
|
|
fiat_np521_uint1 x49;
|
|
uint64_t x50;
|
|
fiat_np521_uint1 x51;
|
|
uint64_t x52;
|
|
fiat_np521_uint1 x53;
|
|
uint64_t x54;
|
|
fiat_np521_uint1 x55;
|
|
uint64_t x56;
|
|
fiat_np521_uint1 x57;
|
|
uint64_t x58;
|
|
fiat_np521_uint1 x59;
|
|
uint64_t x60;
|
|
fiat_np521_uint1 x61;
|
|
uint64_t x62;
|
|
fiat_np521_uint1 x63;
|
|
uint64_t x64;
|
|
fiat_np521_uint1 x65;
|
|
uint64_t x66;
|
|
fiat_np521_uint1 x67;
|
|
uint64_t x68;
|
|
fiat_np521_uint1 x69;
|
|
uint64_t x70;
|
|
fiat_np521_uint1 x71;
|
|
uint64_t x72;
|
|
uint64_t x73;
|
|
uint64_t x74;
|
|
uint64_t x75;
|
|
uint64_t x76;
|
|
uint64_t x77;
|
|
uint64_t x78;
|
|
uint64_t x79;
|
|
uint64_t x80;
|
|
uint64_t x81;
|
|
uint64_t x82;
|
|
uint64_t x83;
|
|
uint64_t x84;
|
|
uint64_t x85;
|
|
uint64_t x86;
|
|
uint64_t x87;
|
|
uint64_t x88;
|
|
uint64_t x89;
|
|
uint64_t x90;
|
|
uint64_t x91;
|
|
uint64_t x92;
|
|
fiat_np521_uint1 x93;
|
|
uint64_t x94;
|
|
fiat_np521_uint1 x95;
|
|
uint64_t x96;
|
|
fiat_np521_uint1 x97;
|
|
uint64_t x98;
|
|
fiat_np521_uint1 x99;
|
|
uint64_t x100;
|
|
fiat_np521_uint1 x101;
|
|
uint64_t x102;
|
|
fiat_np521_uint1 x103;
|
|
uint64_t x104;
|
|
fiat_np521_uint1 x105;
|
|
uint64_t x106;
|
|
fiat_np521_uint1 x107;
|
|
uint64_t x108;
|
|
fiat_np521_uint1 x109;
|
|
uint64_t x110;
|
|
fiat_np521_uint1 x111;
|
|
uint64_t x112;
|
|
fiat_np521_uint1 x113;
|
|
uint64_t x114;
|
|
fiat_np521_uint1 x115;
|
|
uint64_t x116;
|
|
fiat_np521_uint1 x117;
|
|
uint64_t x118;
|
|
fiat_np521_uint1 x119;
|
|
uint64_t x120;
|
|
fiat_np521_uint1 x121;
|
|
uint64_t x122;
|
|
fiat_np521_uint1 x123;
|
|
uint64_t x124;
|
|
fiat_np521_uint1 x125;
|
|
uint64_t x126;
|
|
fiat_np521_uint1 x127;
|
|
uint64_t x128;
|
|
fiat_np521_uint1 x129;
|
|
uint64_t x130;
|
|
fiat_np521_uint1 x131;
|
|
uint64_t x132;
|
|
fiat_np521_uint1 x133;
|
|
uint64_t x134;
|
|
fiat_np521_uint1 x135;
|
|
uint64_t x136;
|
|
fiat_np521_uint1 x137;
|
|
uint64_t x138;
|
|
fiat_np521_uint1 x139;
|
|
uint64_t x140;
|
|
fiat_np521_uint1 x141;
|
|
uint64_t x142;
|
|
uint64_t x143;
|
|
uint64_t x144;
|
|
uint64_t x145;
|
|
uint64_t x146;
|
|
uint64_t x147;
|
|
uint64_t x148;
|
|
uint64_t x149;
|
|
uint64_t x150;
|
|
uint64_t x151;
|
|
uint64_t x152;
|
|
uint64_t x153;
|
|
uint64_t x154;
|
|
uint64_t x155;
|
|
uint64_t x156;
|
|
uint64_t x157;
|
|
uint64_t x158;
|
|
uint64_t x159;
|
|
uint64_t x160;
|
|
uint64_t x161;
|
|
uint64_t x162;
|
|
fiat_np521_uint1 x163;
|
|
uint64_t x164;
|
|
fiat_np521_uint1 x165;
|
|
uint64_t x166;
|
|
fiat_np521_uint1 x167;
|
|
uint64_t x168;
|
|
fiat_np521_uint1 x169;
|
|
uint64_t x170;
|
|
fiat_np521_uint1 x171;
|
|
uint64_t x172;
|
|
fiat_np521_uint1 x173;
|
|
uint64_t x174;
|
|
fiat_np521_uint1 x175;
|
|
uint64_t x176;
|
|
fiat_np521_uint1 x177;
|
|
uint64_t x178;
|
|
fiat_np521_uint1 x179;
|
|
uint64_t x180;
|
|
fiat_np521_uint1 x181;
|
|
uint64_t x182;
|
|
fiat_np521_uint1 x183;
|
|
uint64_t x184;
|
|
fiat_np521_uint1 x185;
|
|
uint64_t x186;
|
|
fiat_np521_uint1 x187;
|
|
uint64_t x188;
|
|
fiat_np521_uint1 x189;
|
|
uint64_t x190;
|
|
fiat_np521_uint1 x191;
|
|
uint64_t x192;
|
|
fiat_np521_uint1 x193;
|
|
uint64_t x194;
|
|
fiat_np521_uint1 x195;
|
|
uint64_t x196;
|
|
fiat_np521_uint1 x197;
|
|
uint64_t x198;
|
|
fiat_np521_uint1 x199;
|
|
uint64_t x200;
|
|
fiat_np521_uint1 x201;
|
|
uint64_t x202;
|
|
fiat_np521_uint1 x203;
|
|
uint64_t x204;
|
|
fiat_np521_uint1 x205;
|
|
uint64_t x206;
|
|
fiat_np521_uint1 x207;
|
|
uint64_t x208;
|
|
fiat_np521_uint1 x209;
|
|
uint64_t x210;
|
|
fiat_np521_uint1 x211;
|
|
uint64_t x212;
|
|
uint64_t x213;
|
|
uint64_t x214;
|
|
uint64_t x215;
|
|
uint64_t x216;
|
|
uint64_t x217;
|
|
uint64_t x218;
|
|
uint64_t x219;
|
|
uint64_t x220;
|
|
uint64_t x221;
|
|
uint64_t x222;
|
|
uint64_t x223;
|
|
uint64_t x224;
|
|
uint64_t x225;
|
|
uint64_t x226;
|
|
uint64_t x227;
|
|
uint64_t x228;
|
|
uint64_t x229;
|
|
uint64_t x230;
|
|
uint64_t x231;
|
|
uint64_t x232;
|
|
fiat_np521_uint1 x233;
|
|
uint64_t x234;
|
|
fiat_np521_uint1 x235;
|
|
uint64_t x236;
|
|
fiat_np521_uint1 x237;
|
|
uint64_t x238;
|
|
fiat_np521_uint1 x239;
|
|
uint64_t x240;
|
|
fiat_np521_uint1 x241;
|
|
uint64_t x242;
|
|
fiat_np521_uint1 x243;
|
|
uint64_t x244;
|
|
fiat_np521_uint1 x245;
|
|
uint64_t x246;
|
|
fiat_np521_uint1 x247;
|
|
uint64_t x248;
|
|
fiat_np521_uint1 x249;
|
|
uint64_t x250;
|
|
fiat_np521_uint1 x251;
|
|
uint64_t x252;
|
|
fiat_np521_uint1 x253;
|
|
uint64_t x254;
|
|
fiat_np521_uint1 x255;
|
|
uint64_t x256;
|
|
fiat_np521_uint1 x257;
|
|
uint64_t x258;
|
|
fiat_np521_uint1 x259;
|
|
uint64_t x260;
|
|
fiat_np521_uint1 x261;
|
|
uint64_t x262;
|
|
fiat_np521_uint1 x263;
|
|
uint64_t x264;
|
|
fiat_np521_uint1 x265;
|
|
uint64_t x266;
|
|
fiat_np521_uint1 x267;
|
|
uint64_t x268;
|
|
fiat_np521_uint1 x269;
|
|
uint64_t x270;
|
|
fiat_np521_uint1 x271;
|
|
uint64_t x272;
|
|
fiat_np521_uint1 x273;
|
|
uint64_t x274;
|
|
fiat_np521_uint1 x275;
|
|
uint64_t x276;
|
|
fiat_np521_uint1 x277;
|
|
uint64_t x278;
|
|
fiat_np521_uint1 x279;
|
|
uint64_t x280;
|
|
fiat_np521_uint1 x281;
|
|
uint64_t x282;
|
|
uint64_t x283;
|
|
uint64_t x284;
|
|
uint64_t x285;
|
|
uint64_t x286;
|
|
uint64_t x287;
|
|
uint64_t x288;
|
|
uint64_t x289;
|
|
uint64_t x290;
|
|
uint64_t x291;
|
|
uint64_t x292;
|
|
uint64_t x293;
|
|
uint64_t x294;
|
|
uint64_t x295;
|
|
uint64_t x296;
|
|
uint64_t x297;
|
|
uint64_t x298;
|
|
uint64_t x299;
|
|
uint64_t x300;
|
|
uint64_t x301;
|
|
uint64_t x302;
|
|
fiat_np521_uint1 x303;
|
|
uint64_t x304;
|
|
fiat_np521_uint1 x305;
|
|
uint64_t x306;
|
|
fiat_np521_uint1 x307;
|
|
uint64_t x308;
|
|
fiat_np521_uint1 x309;
|
|
uint64_t x310;
|
|
fiat_np521_uint1 x311;
|
|
uint64_t x312;
|
|
fiat_np521_uint1 x313;
|
|
uint64_t x314;
|
|
fiat_np521_uint1 x315;
|
|
uint64_t x316;
|
|
fiat_np521_uint1 x317;
|
|
uint64_t x318;
|
|
fiat_np521_uint1 x319;
|
|
uint64_t x320;
|
|
fiat_np521_uint1 x321;
|
|
uint64_t x322;
|
|
fiat_np521_uint1 x323;
|
|
uint64_t x324;
|
|
fiat_np521_uint1 x325;
|
|
uint64_t x326;
|
|
fiat_np521_uint1 x327;
|
|
uint64_t x328;
|
|
fiat_np521_uint1 x329;
|
|
uint64_t x330;
|
|
fiat_np521_uint1 x331;
|
|
uint64_t x332;
|
|
fiat_np521_uint1 x333;
|
|
uint64_t x334;
|
|
fiat_np521_uint1 x335;
|
|
uint64_t x336;
|
|
fiat_np521_uint1 x337;
|
|
uint64_t x338;
|
|
fiat_np521_uint1 x339;
|
|
uint64_t x340;
|
|
fiat_np521_uint1 x341;
|
|
uint64_t x342;
|
|
fiat_np521_uint1 x343;
|
|
uint64_t x344;
|
|
fiat_np521_uint1 x345;
|
|
uint64_t x346;
|
|
fiat_np521_uint1 x347;
|
|
uint64_t x348;
|
|
fiat_np521_uint1 x349;
|
|
uint64_t x350;
|
|
fiat_np521_uint1 x351;
|
|
uint64_t x352;
|
|
uint64_t x353;
|
|
uint64_t x354;
|
|
uint64_t x355;
|
|
uint64_t x356;
|
|
uint64_t x357;
|
|
uint64_t x358;
|
|
uint64_t x359;
|
|
uint64_t x360;
|
|
uint64_t x361;
|
|
uint64_t x362;
|
|
uint64_t x363;
|
|
uint64_t x364;
|
|
uint64_t x365;
|
|
uint64_t x366;
|
|
uint64_t x367;
|
|
uint64_t x368;
|
|
uint64_t x369;
|
|
uint64_t x370;
|
|
uint64_t x371;
|
|
uint64_t x372;
|
|
fiat_np521_uint1 x373;
|
|
uint64_t x374;
|
|
fiat_np521_uint1 x375;
|
|
uint64_t x376;
|
|
fiat_np521_uint1 x377;
|
|
uint64_t x378;
|
|
fiat_np521_uint1 x379;
|
|
uint64_t x380;
|
|
fiat_np521_uint1 x381;
|
|
uint64_t x382;
|
|
fiat_np521_uint1 x383;
|
|
uint64_t x384;
|
|
fiat_np521_uint1 x385;
|
|
uint64_t x386;
|
|
fiat_np521_uint1 x387;
|
|
uint64_t x388;
|
|
fiat_np521_uint1 x389;
|
|
uint64_t x390;
|
|
fiat_np521_uint1 x391;
|
|
uint64_t x392;
|
|
fiat_np521_uint1 x393;
|
|
uint64_t x394;
|
|
fiat_np521_uint1 x395;
|
|
uint64_t x396;
|
|
fiat_np521_uint1 x397;
|
|
uint64_t x398;
|
|
fiat_np521_uint1 x399;
|
|
uint64_t x400;
|
|
fiat_np521_uint1 x401;
|
|
uint64_t x402;
|
|
fiat_np521_uint1 x403;
|
|
uint64_t x404;
|
|
fiat_np521_uint1 x405;
|
|
uint64_t x406;
|
|
fiat_np521_uint1 x407;
|
|
uint64_t x408;
|
|
fiat_np521_uint1 x409;
|
|
uint64_t x410;
|
|
fiat_np521_uint1 x411;
|
|
uint64_t x412;
|
|
fiat_np521_uint1 x413;
|
|
uint64_t x414;
|
|
fiat_np521_uint1 x415;
|
|
uint64_t x416;
|
|
fiat_np521_uint1 x417;
|
|
uint64_t x418;
|
|
fiat_np521_uint1 x419;
|
|
uint64_t x420;
|
|
fiat_np521_uint1 x421;
|
|
uint64_t x422;
|
|
uint64_t x423;
|
|
uint64_t x424;
|
|
uint64_t x425;
|
|
uint64_t x426;
|
|
uint64_t x427;
|
|
uint64_t x428;
|
|
uint64_t x429;
|
|
uint64_t x430;
|
|
uint64_t x431;
|
|
uint64_t x432;
|
|
uint64_t x433;
|
|
uint64_t x434;
|
|
uint64_t x435;
|
|
uint64_t x436;
|
|
uint64_t x437;
|
|
uint64_t x438;
|
|
uint64_t x439;
|
|
uint64_t x440;
|
|
uint64_t x441;
|
|
uint64_t x442;
|
|
fiat_np521_uint1 x443;
|
|
uint64_t x444;
|
|
fiat_np521_uint1 x445;
|
|
uint64_t x446;
|
|
fiat_np521_uint1 x447;
|
|
uint64_t x448;
|
|
fiat_np521_uint1 x449;
|
|
uint64_t x450;
|
|
fiat_np521_uint1 x451;
|
|
uint64_t x452;
|
|
fiat_np521_uint1 x453;
|
|
uint64_t x454;
|
|
fiat_np521_uint1 x455;
|
|
uint64_t x456;
|
|
fiat_np521_uint1 x457;
|
|
uint64_t x458;
|
|
fiat_np521_uint1 x459;
|
|
uint64_t x460;
|
|
fiat_np521_uint1 x461;
|
|
uint64_t x462;
|
|
fiat_np521_uint1 x463;
|
|
uint64_t x464;
|
|
fiat_np521_uint1 x465;
|
|
uint64_t x466;
|
|
fiat_np521_uint1 x467;
|
|
uint64_t x468;
|
|
fiat_np521_uint1 x469;
|
|
uint64_t x470;
|
|
fiat_np521_uint1 x471;
|
|
uint64_t x472;
|
|
fiat_np521_uint1 x473;
|
|
uint64_t x474;
|
|
fiat_np521_uint1 x475;
|
|
uint64_t x476;
|
|
fiat_np521_uint1 x477;
|
|
uint64_t x478;
|
|
fiat_np521_uint1 x479;
|
|
uint64_t x480;
|
|
fiat_np521_uint1 x481;
|
|
uint64_t x482;
|
|
fiat_np521_uint1 x483;
|
|
uint64_t x484;
|
|
fiat_np521_uint1 x485;
|
|
uint64_t x486;
|
|
fiat_np521_uint1 x487;
|
|
uint64_t x488;
|
|
fiat_np521_uint1 x489;
|
|
uint64_t x490;
|
|
fiat_np521_uint1 x491;
|
|
uint64_t x492;
|
|
uint64_t x493;
|
|
uint64_t x494;
|
|
uint64_t x495;
|
|
uint64_t x496;
|
|
uint64_t x497;
|
|
uint64_t x498;
|
|
uint64_t x499;
|
|
uint64_t x500;
|
|
uint64_t x501;
|
|
uint64_t x502;
|
|
uint64_t x503;
|
|
uint64_t x504;
|
|
uint64_t x505;
|
|
uint64_t x506;
|
|
uint64_t x507;
|
|
uint64_t x508;
|
|
uint64_t x509;
|
|
uint64_t x510;
|
|
uint64_t x511;
|
|
uint64_t x512;
|
|
fiat_np521_uint1 x513;
|
|
uint64_t x514;
|
|
fiat_np521_uint1 x515;
|
|
uint64_t x516;
|
|
fiat_np521_uint1 x517;
|
|
uint64_t x518;
|
|
fiat_np521_uint1 x519;
|
|
uint64_t x520;
|
|
fiat_np521_uint1 x521;
|
|
uint64_t x522;
|
|
fiat_np521_uint1 x523;
|
|
uint64_t x524;
|
|
fiat_np521_uint1 x525;
|
|
uint64_t x526;
|
|
fiat_np521_uint1 x527;
|
|
uint64_t x528;
|
|
fiat_np521_uint1 x529;
|
|
uint64_t x530;
|
|
fiat_np521_uint1 x531;
|
|
uint64_t x532;
|
|
fiat_np521_uint1 x533;
|
|
uint64_t x534;
|
|
fiat_np521_uint1 x535;
|
|
uint64_t x536;
|
|
fiat_np521_uint1 x537;
|
|
uint64_t x538;
|
|
fiat_np521_uint1 x539;
|
|
uint64_t x540;
|
|
fiat_np521_uint1 x541;
|
|
uint64_t x542;
|
|
fiat_np521_uint1 x543;
|
|
uint64_t x544;
|
|
fiat_np521_uint1 x545;
|
|
uint64_t x546;
|
|
fiat_np521_uint1 x547;
|
|
uint64_t x548;
|
|
fiat_np521_uint1 x549;
|
|
uint64_t x550;
|
|
fiat_np521_uint1 x551;
|
|
uint64_t x552;
|
|
fiat_np521_uint1 x553;
|
|
uint64_t x554;
|
|
fiat_np521_uint1 x555;
|
|
uint64_t x556;
|
|
fiat_np521_uint1 x557;
|
|
uint64_t x558;
|
|
fiat_np521_uint1 x559;
|
|
uint64_t x560;
|
|
fiat_np521_uint1 x561;
|
|
uint64_t x562;
|
|
uint64_t x563;
|
|
uint64_t x564;
|
|
uint64_t x565;
|
|
uint64_t x566;
|
|
uint64_t x567;
|
|
uint64_t x568;
|
|
uint64_t x569;
|
|
uint64_t x570;
|
|
uint64_t x571;
|
|
uint64_t x572;
|
|
uint64_t x573;
|
|
uint64_t x574;
|
|
uint64_t x575;
|
|
uint64_t x576;
|
|
uint64_t x577;
|
|
uint64_t x578;
|
|
uint64_t x579;
|
|
uint64_t x580;
|
|
uint64_t x581;
|
|
uint64_t x582;
|
|
fiat_np521_uint1 x583;
|
|
uint64_t x584;
|
|
fiat_np521_uint1 x585;
|
|
uint64_t x586;
|
|
fiat_np521_uint1 x587;
|
|
uint64_t x588;
|
|
fiat_np521_uint1 x589;
|
|
uint64_t x590;
|
|
fiat_np521_uint1 x591;
|
|
uint64_t x592;
|
|
fiat_np521_uint1 x593;
|
|
uint64_t x594;
|
|
fiat_np521_uint1 x595;
|
|
uint64_t x596;
|
|
fiat_np521_uint1 x597;
|
|
uint64_t x598;
|
|
fiat_np521_uint1 x599;
|
|
uint64_t x600;
|
|
fiat_np521_uint1 x601;
|
|
uint64_t x602;
|
|
fiat_np521_uint1 x603;
|
|
uint64_t x604;
|
|
fiat_np521_uint1 x605;
|
|
uint64_t x606;
|
|
fiat_np521_uint1 x607;
|
|
uint64_t x608;
|
|
fiat_np521_uint1 x609;
|
|
uint64_t x610;
|
|
fiat_np521_uint1 x611;
|
|
uint64_t x612;
|
|
fiat_np521_uint1 x613;
|
|
uint64_t x614;
|
|
fiat_np521_uint1 x615;
|
|
uint64_t x616;
|
|
uint64_t x617;
|
|
fiat_np521_uint1 x618;
|
|
uint64_t x619;
|
|
fiat_np521_uint1 x620;
|
|
uint64_t x621;
|
|
fiat_np521_uint1 x622;
|
|
uint64_t x623;
|
|
fiat_np521_uint1 x624;
|
|
uint64_t x625;
|
|
fiat_np521_uint1 x626;
|
|
uint64_t x627;
|
|
fiat_np521_uint1 x628;
|
|
uint64_t x629;
|
|
fiat_np521_uint1 x630;
|
|
uint64_t x631;
|
|
fiat_np521_uint1 x632;
|
|
uint64_t x633;
|
|
fiat_np521_uint1 x634;
|
|
uint64_t x635;
|
|
fiat_np521_uint1 x636;
|
|
uint64_t x637;
|
|
uint64_t x638;
|
|
uint64_t x639;
|
|
uint64_t x640;
|
|
uint64_t x641;
|
|
uint64_t x642;
|
|
uint64_t x643;
|
|
uint64_t x644;
|
|
uint64_t x645;
|
|
x1 = (arg1[0]);
|
|
fiat_np521_mulx_u64(&x2, &x3, x1, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x4, &x5, x2, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x6, &x7, x2, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x8, &x9, x2, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x10, &x11, x2, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x12, &x13, x2, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x14, &x15, x2, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x16, &x17, x2, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x18, &x19, x2, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x20, &x21, x2, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x22, &x23, 0x0, x21, x18);
|
|
fiat_np521_addcarryx_u64(&x24, &x25, x23, x19, x16);
|
|
fiat_np521_addcarryx_u64(&x26, &x27, x25, x17, x14);
|
|
fiat_np521_addcarryx_u64(&x28, &x29, x27, x15, x12);
|
|
fiat_np521_addcarryx_u64(&x30, &x31, x29, x13, x10);
|
|
fiat_np521_addcarryx_u64(&x32, &x33, x31, x11, x8);
|
|
fiat_np521_addcarryx_u64(&x34, &x35, x33, x9, x6);
|
|
fiat_np521_addcarryx_u64(&x36, &x37, x35, x7, x4);
|
|
fiat_np521_addcarryx_u64(&x38, &x39, 0x0, x1, x20);
|
|
fiat_np521_addcarryx_u64(&x40, &x41, x39, 0x0, x22);
|
|
fiat_np521_addcarryx_u64(&x42, &x43, x41, 0x0, x24);
|
|
fiat_np521_addcarryx_u64(&x44, &x45, x43, 0x0, x26);
|
|
fiat_np521_addcarryx_u64(&x46, &x47, x45, 0x0, x28);
|
|
fiat_np521_addcarryx_u64(&x48, &x49, x47, 0x0, x30);
|
|
fiat_np521_addcarryx_u64(&x50, &x51, x49, 0x0, x32);
|
|
fiat_np521_addcarryx_u64(&x52, &x53, x51, 0x0, x34);
|
|
fiat_np521_addcarryx_u64(&x54, &x55, x53, 0x0, x36);
|
|
fiat_np521_addcarryx_u64(&x56, &x57, 0x0, x40, (arg1[1]));
|
|
fiat_np521_addcarryx_u64(&x58, &x59, x57, x42, 0x0);
|
|
fiat_np521_addcarryx_u64(&x60, &x61, x59, x44, 0x0);
|
|
fiat_np521_addcarryx_u64(&x62, &x63, x61, x46, 0x0);
|
|
fiat_np521_addcarryx_u64(&x64, &x65, x63, x48, 0x0);
|
|
fiat_np521_addcarryx_u64(&x66, &x67, x65, x50, 0x0);
|
|
fiat_np521_addcarryx_u64(&x68, &x69, x67, x52, 0x0);
|
|
fiat_np521_addcarryx_u64(&x70, &x71, x69, x54, 0x0);
|
|
fiat_np521_mulx_u64(&x72, &x73, x56, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x74, &x75, x72, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x76, &x77, x72, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x78, &x79, x72, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x80, &x81, x72, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x82, &x83, x72, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x84, &x85, x72, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x86, &x87, x72, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x88, &x89, x72, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x90, &x91, x72, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x92, &x93, 0x0, x91, x88);
|
|
fiat_np521_addcarryx_u64(&x94, &x95, x93, x89, x86);
|
|
fiat_np521_addcarryx_u64(&x96, &x97, x95, x87, x84);
|
|
fiat_np521_addcarryx_u64(&x98, &x99, x97, x85, x82);
|
|
fiat_np521_addcarryx_u64(&x100, &x101, x99, x83, x80);
|
|
fiat_np521_addcarryx_u64(&x102, &x103, x101, x81, x78);
|
|
fiat_np521_addcarryx_u64(&x104, &x105, x103, x79, x76);
|
|
fiat_np521_addcarryx_u64(&x106, &x107, x105, x77, x74);
|
|
fiat_np521_addcarryx_u64(&x108, &x109, 0x0, x56, x90);
|
|
fiat_np521_addcarryx_u64(&x110, &x111, x109, x58, x92);
|
|
fiat_np521_addcarryx_u64(&x112, &x113, x111, x60, x94);
|
|
fiat_np521_addcarryx_u64(&x114, &x115, x113, x62, x96);
|
|
fiat_np521_addcarryx_u64(&x116, &x117, x115, x64, x98);
|
|
fiat_np521_addcarryx_u64(&x118, &x119, x117, x66, x100);
|
|
fiat_np521_addcarryx_u64(&x120, &x121, x119, x68, x102);
|
|
fiat_np521_addcarryx_u64(&x122, &x123, x121, x70, x104);
|
|
fiat_np521_addcarryx_u64(&x124, &x125, x123, (x71 + (x55 + (x37 + x5))), x106);
|
|
fiat_np521_addcarryx_u64(&x126, &x127, 0x0, x110, (arg1[2]));
|
|
fiat_np521_addcarryx_u64(&x128, &x129, x127, x112, 0x0);
|
|
fiat_np521_addcarryx_u64(&x130, &x131, x129, x114, 0x0);
|
|
fiat_np521_addcarryx_u64(&x132, &x133, x131, x116, 0x0);
|
|
fiat_np521_addcarryx_u64(&x134, &x135, x133, x118, 0x0);
|
|
fiat_np521_addcarryx_u64(&x136, &x137, x135, x120, 0x0);
|
|
fiat_np521_addcarryx_u64(&x138, &x139, x137, x122, 0x0);
|
|
fiat_np521_addcarryx_u64(&x140, &x141, x139, x124, 0x0);
|
|
fiat_np521_mulx_u64(&x142, &x143, x126, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x144, &x145, x142, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x146, &x147, x142, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x148, &x149, x142, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x150, &x151, x142, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x152, &x153, x142, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x154, &x155, x142, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x156, &x157, x142, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x158, &x159, x142, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x160, &x161, x142, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x162, &x163, 0x0, x161, x158);
|
|
fiat_np521_addcarryx_u64(&x164, &x165, x163, x159, x156);
|
|
fiat_np521_addcarryx_u64(&x166, &x167, x165, x157, x154);
|
|
fiat_np521_addcarryx_u64(&x168, &x169, x167, x155, x152);
|
|
fiat_np521_addcarryx_u64(&x170, &x171, x169, x153, x150);
|
|
fiat_np521_addcarryx_u64(&x172, &x173, x171, x151, x148);
|
|
fiat_np521_addcarryx_u64(&x174, &x175, x173, x149, x146);
|
|
fiat_np521_addcarryx_u64(&x176, &x177, x175, x147, x144);
|
|
fiat_np521_addcarryx_u64(&x178, &x179, 0x0, x126, x160);
|
|
fiat_np521_addcarryx_u64(&x180, &x181, x179, x128, x162);
|
|
fiat_np521_addcarryx_u64(&x182, &x183, x181, x130, x164);
|
|
fiat_np521_addcarryx_u64(&x184, &x185, x183, x132, x166);
|
|
fiat_np521_addcarryx_u64(&x186, &x187, x185, x134, x168);
|
|
fiat_np521_addcarryx_u64(&x188, &x189, x187, x136, x170);
|
|
fiat_np521_addcarryx_u64(&x190, &x191, x189, x138, x172);
|
|
fiat_np521_addcarryx_u64(&x192, &x193, x191, x140, x174);
|
|
fiat_np521_addcarryx_u64(&x194, &x195, x193, (x141 + (x125 + (x107 + x75))), x176);
|
|
fiat_np521_addcarryx_u64(&x196, &x197, 0x0, x180, (arg1[3]));
|
|
fiat_np521_addcarryx_u64(&x198, &x199, x197, x182, 0x0);
|
|
fiat_np521_addcarryx_u64(&x200, &x201, x199, x184, 0x0);
|
|
fiat_np521_addcarryx_u64(&x202, &x203, x201, x186, 0x0);
|
|
fiat_np521_addcarryx_u64(&x204, &x205, x203, x188, 0x0);
|
|
fiat_np521_addcarryx_u64(&x206, &x207, x205, x190, 0x0);
|
|
fiat_np521_addcarryx_u64(&x208, &x209, x207, x192, 0x0);
|
|
fiat_np521_addcarryx_u64(&x210, &x211, x209, x194, 0x0);
|
|
fiat_np521_mulx_u64(&x212, &x213, x196, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x214, &x215, x212, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x216, &x217, x212, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x218, &x219, x212, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x220, &x221, x212, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x222, &x223, x212, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x224, &x225, x212, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x226, &x227, x212, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x228, &x229, x212, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x230, &x231, x212, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x232, &x233, 0x0, x231, x228);
|
|
fiat_np521_addcarryx_u64(&x234, &x235, x233, x229, x226);
|
|
fiat_np521_addcarryx_u64(&x236, &x237, x235, x227, x224);
|
|
fiat_np521_addcarryx_u64(&x238, &x239, x237, x225, x222);
|
|
fiat_np521_addcarryx_u64(&x240, &x241, x239, x223, x220);
|
|
fiat_np521_addcarryx_u64(&x242, &x243, x241, x221, x218);
|
|
fiat_np521_addcarryx_u64(&x244, &x245, x243, x219, x216);
|
|
fiat_np521_addcarryx_u64(&x246, &x247, x245, x217, x214);
|
|
fiat_np521_addcarryx_u64(&x248, &x249, 0x0, x196, x230);
|
|
fiat_np521_addcarryx_u64(&x250, &x251, x249, x198, x232);
|
|
fiat_np521_addcarryx_u64(&x252, &x253, x251, x200, x234);
|
|
fiat_np521_addcarryx_u64(&x254, &x255, x253, x202, x236);
|
|
fiat_np521_addcarryx_u64(&x256, &x257, x255, x204, x238);
|
|
fiat_np521_addcarryx_u64(&x258, &x259, x257, x206, x240);
|
|
fiat_np521_addcarryx_u64(&x260, &x261, x259, x208, x242);
|
|
fiat_np521_addcarryx_u64(&x262, &x263, x261, x210, x244);
|
|
fiat_np521_addcarryx_u64(&x264, &x265, x263, (x211 + (x195 + (x177 + x145))), x246);
|
|
fiat_np521_addcarryx_u64(&x266, &x267, 0x0, x250, (arg1[4]));
|
|
fiat_np521_addcarryx_u64(&x268, &x269, x267, x252, 0x0);
|
|
fiat_np521_addcarryx_u64(&x270, &x271, x269, x254, 0x0);
|
|
fiat_np521_addcarryx_u64(&x272, &x273, x271, x256, 0x0);
|
|
fiat_np521_addcarryx_u64(&x274, &x275, x273, x258, 0x0);
|
|
fiat_np521_addcarryx_u64(&x276, &x277, x275, x260, 0x0);
|
|
fiat_np521_addcarryx_u64(&x278, &x279, x277, x262, 0x0);
|
|
fiat_np521_addcarryx_u64(&x280, &x281, x279, x264, 0x0);
|
|
fiat_np521_mulx_u64(&x282, &x283, x266, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x284, &x285, x282, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x286, &x287, x282, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x288, &x289, x282, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x290, &x291, x282, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x292, &x293, x282, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x294, &x295, x282, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x296, &x297, x282, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x298, &x299, x282, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x300, &x301, x282, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x302, &x303, 0x0, x301, x298);
|
|
fiat_np521_addcarryx_u64(&x304, &x305, x303, x299, x296);
|
|
fiat_np521_addcarryx_u64(&x306, &x307, x305, x297, x294);
|
|
fiat_np521_addcarryx_u64(&x308, &x309, x307, x295, x292);
|
|
fiat_np521_addcarryx_u64(&x310, &x311, x309, x293, x290);
|
|
fiat_np521_addcarryx_u64(&x312, &x313, x311, x291, x288);
|
|
fiat_np521_addcarryx_u64(&x314, &x315, x313, x289, x286);
|
|
fiat_np521_addcarryx_u64(&x316, &x317, x315, x287, x284);
|
|
fiat_np521_addcarryx_u64(&x318, &x319, 0x0, x266, x300);
|
|
fiat_np521_addcarryx_u64(&x320, &x321, x319, x268, x302);
|
|
fiat_np521_addcarryx_u64(&x322, &x323, x321, x270, x304);
|
|
fiat_np521_addcarryx_u64(&x324, &x325, x323, x272, x306);
|
|
fiat_np521_addcarryx_u64(&x326, &x327, x325, x274, x308);
|
|
fiat_np521_addcarryx_u64(&x328, &x329, x327, x276, x310);
|
|
fiat_np521_addcarryx_u64(&x330, &x331, x329, x278, x312);
|
|
fiat_np521_addcarryx_u64(&x332, &x333, x331, x280, x314);
|
|
fiat_np521_addcarryx_u64(&x334, &x335, x333, (x281 + (x265 + (x247 + x215))), x316);
|
|
fiat_np521_addcarryx_u64(&x336, &x337, 0x0, x320, (arg1[5]));
|
|
fiat_np521_addcarryx_u64(&x338, &x339, x337, x322, 0x0);
|
|
fiat_np521_addcarryx_u64(&x340, &x341, x339, x324, 0x0);
|
|
fiat_np521_addcarryx_u64(&x342, &x343, x341, x326, 0x0);
|
|
fiat_np521_addcarryx_u64(&x344, &x345, x343, x328, 0x0);
|
|
fiat_np521_addcarryx_u64(&x346, &x347, x345, x330, 0x0);
|
|
fiat_np521_addcarryx_u64(&x348, &x349, x347, x332, 0x0);
|
|
fiat_np521_addcarryx_u64(&x350, &x351, x349, x334, 0x0);
|
|
fiat_np521_mulx_u64(&x352, &x353, x336, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x354, &x355, x352, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x356, &x357, x352, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x358, &x359, x352, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x360, &x361, x352, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x362, &x363, x352, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x364, &x365, x352, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x366, &x367, x352, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x368, &x369, x352, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x370, &x371, x352, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x372, &x373, 0x0, x371, x368);
|
|
fiat_np521_addcarryx_u64(&x374, &x375, x373, x369, x366);
|
|
fiat_np521_addcarryx_u64(&x376, &x377, x375, x367, x364);
|
|
fiat_np521_addcarryx_u64(&x378, &x379, x377, x365, x362);
|
|
fiat_np521_addcarryx_u64(&x380, &x381, x379, x363, x360);
|
|
fiat_np521_addcarryx_u64(&x382, &x383, x381, x361, x358);
|
|
fiat_np521_addcarryx_u64(&x384, &x385, x383, x359, x356);
|
|
fiat_np521_addcarryx_u64(&x386, &x387, x385, x357, x354);
|
|
fiat_np521_addcarryx_u64(&x388, &x389, 0x0, x336, x370);
|
|
fiat_np521_addcarryx_u64(&x390, &x391, x389, x338, x372);
|
|
fiat_np521_addcarryx_u64(&x392, &x393, x391, x340, x374);
|
|
fiat_np521_addcarryx_u64(&x394, &x395, x393, x342, x376);
|
|
fiat_np521_addcarryx_u64(&x396, &x397, x395, x344, x378);
|
|
fiat_np521_addcarryx_u64(&x398, &x399, x397, x346, x380);
|
|
fiat_np521_addcarryx_u64(&x400, &x401, x399, x348, x382);
|
|
fiat_np521_addcarryx_u64(&x402, &x403, x401, x350, x384);
|
|
fiat_np521_addcarryx_u64(&x404, &x405, x403, (x351 + (x335 + (x317 + x285))), x386);
|
|
fiat_np521_addcarryx_u64(&x406, &x407, 0x0, x390, (arg1[6]));
|
|
fiat_np521_addcarryx_u64(&x408, &x409, x407, x392, 0x0);
|
|
fiat_np521_addcarryx_u64(&x410, &x411, x409, x394, 0x0);
|
|
fiat_np521_addcarryx_u64(&x412, &x413, x411, x396, 0x0);
|
|
fiat_np521_addcarryx_u64(&x414, &x415, x413, x398, 0x0);
|
|
fiat_np521_addcarryx_u64(&x416, &x417, x415, x400, 0x0);
|
|
fiat_np521_addcarryx_u64(&x418, &x419, x417, x402, 0x0);
|
|
fiat_np521_addcarryx_u64(&x420, &x421, x419, x404, 0x0);
|
|
fiat_np521_mulx_u64(&x422, &x423, x406, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x424, &x425, x422, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x426, &x427, x422, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x428, &x429, x422, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x430, &x431, x422, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x432, &x433, x422, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x434, &x435, x422, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x436, &x437, x422, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x438, &x439, x422, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x440, &x441, x422, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x442, &x443, 0x0, x441, x438);
|
|
fiat_np521_addcarryx_u64(&x444, &x445, x443, x439, x436);
|
|
fiat_np521_addcarryx_u64(&x446, &x447, x445, x437, x434);
|
|
fiat_np521_addcarryx_u64(&x448, &x449, x447, x435, x432);
|
|
fiat_np521_addcarryx_u64(&x450, &x451, x449, x433, x430);
|
|
fiat_np521_addcarryx_u64(&x452, &x453, x451, x431, x428);
|
|
fiat_np521_addcarryx_u64(&x454, &x455, x453, x429, x426);
|
|
fiat_np521_addcarryx_u64(&x456, &x457, x455, x427, x424);
|
|
fiat_np521_addcarryx_u64(&x458, &x459, 0x0, x406, x440);
|
|
fiat_np521_addcarryx_u64(&x460, &x461, x459, x408, x442);
|
|
fiat_np521_addcarryx_u64(&x462, &x463, x461, x410, x444);
|
|
fiat_np521_addcarryx_u64(&x464, &x465, x463, x412, x446);
|
|
fiat_np521_addcarryx_u64(&x466, &x467, x465, x414, x448);
|
|
fiat_np521_addcarryx_u64(&x468, &x469, x467, x416, x450);
|
|
fiat_np521_addcarryx_u64(&x470, &x471, x469, x418, x452);
|
|
fiat_np521_addcarryx_u64(&x472, &x473, x471, x420, x454);
|
|
fiat_np521_addcarryx_u64(&x474, &x475, x473, (x421 + (x405 + (x387 + x355))), x456);
|
|
fiat_np521_addcarryx_u64(&x476, &x477, 0x0, x460, (arg1[7]));
|
|
fiat_np521_addcarryx_u64(&x478, &x479, x477, x462, 0x0);
|
|
fiat_np521_addcarryx_u64(&x480, &x481, x479, x464, 0x0);
|
|
fiat_np521_addcarryx_u64(&x482, &x483, x481, x466, 0x0);
|
|
fiat_np521_addcarryx_u64(&x484, &x485, x483, x468, 0x0);
|
|
fiat_np521_addcarryx_u64(&x486, &x487, x485, x470, 0x0);
|
|
fiat_np521_addcarryx_u64(&x488, &x489, x487, x472, 0x0);
|
|
fiat_np521_addcarryx_u64(&x490, &x491, x489, x474, 0x0);
|
|
fiat_np521_mulx_u64(&x492, &x493, x476, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x494, &x495, x492, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x496, &x497, x492, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x498, &x499, x492, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x500, &x501, x492, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x502, &x503, x492, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x504, &x505, x492, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x506, &x507, x492, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x508, &x509, x492, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x510, &x511, x492, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x512, &x513, 0x0, x511, x508);
|
|
fiat_np521_addcarryx_u64(&x514, &x515, x513, x509, x506);
|
|
fiat_np521_addcarryx_u64(&x516, &x517, x515, x507, x504);
|
|
fiat_np521_addcarryx_u64(&x518, &x519, x517, x505, x502);
|
|
fiat_np521_addcarryx_u64(&x520, &x521, x519, x503, x500);
|
|
fiat_np521_addcarryx_u64(&x522, &x523, x521, x501, x498);
|
|
fiat_np521_addcarryx_u64(&x524, &x525, x523, x499, x496);
|
|
fiat_np521_addcarryx_u64(&x526, &x527, x525, x497, x494);
|
|
fiat_np521_addcarryx_u64(&x528, &x529, 0x0, x476, x510);
|
|
fiat_np521_addcarryx_u64(&x530, &x531, x529, x478, x512);
|
|
fiat_np521_addcarryx_u64(&x532, &x533, x531, x480, x514);
|
|
fiat_np521_addcarryx_u64(&x534, &x535, x533, x482, x516);
|
|
fiat_np521_addcarryx_u64(&x536, &x537, x535, x484, x518);
|
|
fiat_np521_addcarryx_u64(&x538, &x539, x537, x486, x520);
|
|
fiat_np521_addcarryx_u64(&x540, &x541, x539, x488, x522);
|
|
fiat_np521_addcarryx_u64(&x542, &x543, x541, x490, x524);
|
|
fiat_np521_addcarryx_u64(&x544, &x545, x543, (x491 + (x475 + (x457 + x425))), x526);
|
|
fiat_np521_addcarryx_u64(&x546, &x547, 0x0, x530, (arg1[8]));
|
|
fiat_np521_addcarryx_u64(&x548, &x549, x547, x532, 0x0);
|
|
fiat_np521_addcarryx_u64(&x550, &x551, x549, x534, 0x0);
|
|
fiat_np521_addcarryx_u64(&x552, &x553, x551, x536, 0x0);
|
|
fiat_np521_addcarryx_u64(&x554, &x555, x553, x538, 0x0);
|
|
fiat_np521_addcarryx_u64(&x556, &x557, x555, x540, 0x0);
|
|
fiat_np521_addcarryx_u64(&x558, &x559, x557, x542, 0x0);
|
|
fiat_np521_addcarryx_u64(&x560, &x561, x559, x544, 0x0);
|
|
fiat_np521_mulx_u64(&x562, &x563, x546, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x564, &x565, x562, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x566, &x567, x562, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x568, &x569, x562, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x570, &x571, x562, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x572, &x573, x562, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x574, &x575, x562, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x576, &x577, x562, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x578, &x579, x562, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x580, &x581, x562, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x582, &x583, 0x0, x581, x578);
|
|
fiat_np521_addcarryx_u64(&x584, &x585, x583, x579, x576);
|
|
fiat_np521_addcarryx_u64(&x586, &x587, x585, x577, x574);
|
|
fiat_np521_addcarryx_u64(&x588, &x589, x587, x575, x572);
|
|
fiat_np521_addcarryx_u64(&x590, &x591, x589, x573, x570);
|
|
fiat_np521_addcarryx_u64(&x592, &x593, x591, x571, x568);
|
|
fiat_np521_addcarryx_u64(&x594, &x595, x593, x569, x566);
|
|
fiat_np521_addcarryx_u64(&x596, &x597, x595, x567, x564);
|
|
fiat_np521_addcarryx_u64(&x598, &x599, 0x0, x546, x580);
|
|
fiat_np521_addcarryx_u64(&x600, &x601, x599, x548, x582);
|
|
fiat_np521_addcarryx_u64(&x602, &x603, x601, x550, x584);
|
|
fiat_np521_addcarryx_u64(&x604, &x605, x603, x552, x586);
|
|
fiat_np521_addcarryx_u64(&x606, &x607, x605, x554, x588);
|
|
fiat_np521_addcarryx_u64(&x608, &x609, x607, x556, x590);
|
|
fiat_np521_addcarryx_u64(&x610, &x611, x609, x558, x592);
|
|
fiat_np521_addcarryx_u64(&x612, &x613, x611, x560, x594);
|
|
fiat_np521_addcarryx_u64(&x614, &x615, x613, (x561 + (x545 + (x527 + x495))), x596);
|
|
x616 = (x615 + (x597 + x565));
|
|
fiat_np521_subborrowx_u64(&x617, &x618, 0x0, x600, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_subborrowx_u64(&x619, &x620, x618, x602, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_subborrowx_u64(&x621, &x622, x620, x604, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_subborrowx_u64(&x623, &x624, x622, x606, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_subborrowx_u64(&x625, &x626, x624, x608, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_subborrowx_u64(&x627, &x628, x626, x610, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x629, &x630, x628, x612, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x631, &x632, x630, x614, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x633, &x634, x632, x616, UINT16_C(0x1ff));
|
|
fiat_np521_subborrowx_u64(&x635, &x636, x634, 0x0, 0x0);
|
|
fiat_np521_cmovznz_u64(&x637, x636, x617, x600);
|
|
fiat_np521_cmovznz_u64(&x638, x636, x619, x602);
|
|
fiat_np521_cmovznz_u64(&x639, x636, x621, x604);
|
|
fiat_np521_cmovznz_u64(&x640, x636, x623, x606);
|
|
fiat_np521_cmovznz_u64(&x641, x636, x625, x608);
|
|
fiat_np521_cmovznz_u64(&x642, x636, x627, x610);
|
|
fiat_np521_cmovznz_u64(&x643, x636, x629, x612);
|
|
fiat_np521_cmovznz_u64(&x644, x636, x631, x614);
|
|
fiat_np521_cmovznz_u64(&x645, x636, x633, x616);
|
|
out1[0] = x637;
|
|
out1[1] = x638;
|
|
out1[2] = x639;
|
|
out1[3] = x640;
|
|
out1[4] = x641;
|
|
out1[5] = x642;
|
|
out1[6] = x643;
|
|
out1[7] = x644;
|
|
out1[8] = x645;
|
|
}
|
|
|
|
/*
|
|
* The function fiat_np521_to_montgomery translates a field element into the Montgomery domain.
|
|
*
|
|
* Preconditions:
|
|
* 0 ≤ eval arg1 < m
|
|
* Postconditions:
|
|
* eval (from_montgomery out1) mod m = eval arg1 mod m
|
|
* 0 ≤ eval out1 < m
|
|
*
|
|
*/
|
|
static void fiat_np521_to_montgomery(fiat_np521_montgomery_domain_field_element out1, const fiat_np521_non_montgomery_domain_field_element arg1) {
|
|
uint64_t x1;
|
|
uint64_t x2;
|
|
uint64_t x3;
|
|
uint64_t x4;
|
|
uint64_t x5;
|
|
uint64_t x6;
|
|
uint64_t x7;
|
|
uint64_t x8;
|
|
uint64_t x9;
|
|
uint64_t x10;
|
|
uint64_t x11;
|
|
uint64_t x12;
|
|
uint64_t x13;
|
|
uint64_t x14;
|
|
uint64_t x15;
|
|
uint64_t x16;
|
|
uint64_t x17;
|
|
uint64_t x18;
|
|
uint64_t x19;
|
|
uint64_t x20;
|
|
uint64_t x21;
|
|
uint64_t x22;
|
|
uint64_t x23;
|
|
uint64_t x24;
|
|
uint64_t x25;
|
|
uint64_t x26;
|
|
uint64_t x27;
|
|
uint64_t x28;
|
|
fiat_np521_uint1 x29;
|
|
uint64_t x30;
|
|
fiat_np521_uint1 x31;
|
|
uint64_t x32;
|
|
fiat_np521_uint1 x33;
|
|
uint64_t x34;
|
|
fiat_np521_uint1 x35;
|
|
uint64_t x36;
|
|
fiat_np521_uint1 x37;
|
|
uint64_t x38;
|
|
fiat_np521_uint1 x39;
|
|
uint64_t x40;
|
|
fiat_np521_uint1 x41;
|
|
uint64_t x42;
|
|
fiat_np521_uint1 x43;
|
|
uint64_t x44;
|
|
uint64_t x45;
|
|
uint64_t x46;
|
|
uint64_t x47;
|
|
uint64_t x48;
|
|
uint64_t x49;
|
|
uint64_t x50;
|
|
uint64_t x51;
|
|
uint64_t x52;
|
|
uint64_t x53;
|
|
uint64_t x54;
|
|
uint64_t x55;
|
|
uint64_t x56;
|
|
uint64_t x57;
|
|
uint64_t x58;
|
|
uint64_t x59;
|
|
uint64_t x60;
|
|
uint64_t x61;
|
|
uint64_t x62;
|
|
uint64_t x63;
|
|
uint64_t x64;
|
|
fiat_np521_uint1 x65;
|
|
uint64_t x66;
|
|
fiat_np521_uint1 x67;
|
|
uint64_t x68;
|
|
fiat_np521_uint1 x69;
|
|
uint64_t x70;
|
|
fiat_np521_uint1 x71;
|
|
uint64_t x72;
|
|
fiat_np521_uint1 x73;
|
|
uint64_t x74;
|
|
fiat_np521_uint1 x75;
|
|
uint64_t x76;
|
|
fiat_np521_uint1 x77;
|
|
uint64_t x78;
|
|
fiat_np521_uint1 x79;
|
|
uint64_t x80;
|
|
fiat_np521_uint1 x81;
|
|
uint64_t x82;
|
|
fiat_np521_uint1 x83;
|
|
uint64_t x84;
|
|
fiat_np521_uint1 x85;
|
|
uint64_t x86;
|
|
fiat_np521_uint1 x87;
|
|
uint64_t x88;
|
|
fiat_np521_uint1 x89;
|
|
uint64_t x90;
|
|
fiat_np521_uint1 x91;
|
|
uint64_t x92;
|
|
fiat_np521_uint1 x93;
|
|
uint64_t x94;
|
|
fiat_np521_uint1 x95;
|
|
uint64_t x96;
|
|
fiat_np521_uint1 x97;
|
|
uint64_t x98;
|
|
uint64_t x99;
|
|
uint64_t x100;
|
|
uint64_t x101;
|
|
uint64_t x102;
|
|
uint64_t x103;
|
|
uint64_t x104;
|
|
uint64_t x105;
|
|
uint64_t x106;
|
|
uint64_t x107;
|
|
uint64_t x108;
|
|
uint64_t x109;
|
|
uint64_t x110;
|
|
uint64_t x111;
|
|
uint64_t x112;
|
|
uint64_t x113;
|
|
uint64_t x114;
|
|
uint64_t x115;
|
|
uint64_t x116;
|
|
fiat_np521_uint1 x117;
|
|
uint64_t x118;
|
|
fiat_np521_uint1 x119;
|
|
uint64_t x120;
|
|
fiat_np521_uint1 x121;
|
|
uint64_t x122;
|
|
fiat_np521_uint1 x123;
|
|
uint64_t x124;
|
|
fiat_np521_uint1 x125;
|
|
uint64_t x126;
|
|
fiat_np521_uint1 x127;
|
|
uint64_t x128;
|
|
fiat_np521_uint1 x129;
|
|
uint64_t x130;
|
|
fiat_np521_uint1 x131;
|
|
uint64_t x132;
|
|
fiat_np521_uint1 x133;
|
|
uint64_t x134;
|
|
fiat_np521_uint1 x135;
|
|
uint64_t x136;
|
|
fiat_np521_uint1 x137;
|
|
uint64_t x138;
|
|
fiat_np521_uint1 x139;
|
|
uint64_t x140;
|
|
fiat_np521_uint1 x141;
|
|
uint64_t x142;
|
|
fiat_np521_uint1 x143;
|
|
uint64_t x144;
|
|
fiat_np521_uint1 x145;
|
|
uint64_t x146;
|
|
fiat_np521_uint1 x147;
|
|
uint64_t x148;
|
|
fiat_np521_uint1 x149;
|
|
uint64_t x150;
|
|
uint64_t x151;
|
|
uint64_t x152;
|
|
uint64_t x153;
|
|
uint64_t x154;
|
|
uint64_t x155;
|
|
uint64_t x156;
|
|
uint64_t x157;
|
|
uint64_t x158;
|
|
uint64_t x159;
|
|
uint64_t x160;
|
|
uint64_t x161;
|
|
uint64_t x162;
|
|
uint64_t x163;
|
|
uint64_t x164;
|
|
uint64_t x165;
|
|
uint64_t x166;
|
|
uint64_t x167;
|
|
uint64_t x168;
|
|
uint64_t x169;
|
|
uint64_t x170;
|
|
fiat_np521_uint1 x171;
|
|
uint64_t x172;
|
|
fiat_np521_uint1 x173;
|
|
uint64_t x174;
|
|
fiat_np521_uint1 x175;
|
|
uint64_t x176;
|
|
fiat_np521_uint1 x177;
|
|
uint64_t x178;
|
|
fiat_np521_uint1 x179;
|
|
uint64_t x180;
|
|
fiat_np521_uint1 x181;
|
|
uint64_t x182;
|
|
fiat_np521_uint1 x183;
|
|
uint64_t x184;
|
|
fiat_np521_uint1 x185;
|
|
uint64_t x186;
|
|
fiat_np521_uint1 x187;
|
|
uint64_t x188;
|
|
fiat_np521_uint1 x189;
|
|
uint64_t x190;
|
|
fiat_np521_uint1 x191;
|
|
uint64_t x192;
|
|
fiat_np521_uint1 x193;
|
|
uint64_t x194;
|
|
fiat_np521_uint1 x195;
|
|
uint64_t x196;
|
|
fiat_np521_uint1 x197;
|
|
uint64_t x198;
|
|
fiat_np521_uint1 x199;
|
|
uint64_t x200;
|
|
fiat_np521_uint1 x201;
|
|
uint64_t x202;
|
|
fiat_np521_uint1 x203;
|
|
uint64_t x204;
|
|
uint64_t x205;
|
|
uint64_t x206;
|
|
uint64_t x207;
|
|
uint64_t x208;
|
|
uint64_t x209;
|
|
uint64_t x210;
|
|
uint64_t x211;
|
|
uint64_t x212;
|
|
uint64_t x213;
|
|
uint64_t x214;
|
|
uint64_t x215;
|
|
uint64_t x216;
|
|
uint64_t x217;
|
|
uint64_t x218;
|
|
uint64_t x219;
|
|
uint64_t x220;
|
|
uint64_t x221;
|
|
uint64_t x222;
|
|
fiat_np521_uint1 x223;
|
|
uint64_t x224;
|
|
fiat_np521_uint1 x225;
|
|
uint64_t x226;
|
|
fiat_np521_uint1 x227;
|
|
uint64_t x228;
|
|
fiat_np521_uint1 x229;
|
|
uint64_t x230;
|
|
fiat_np521_uint1 x231;
|
|
uint64_t x232;
|
|
fiat_np521_uint1 x233;
|
|
uint64_t x234;
|
|
fiat_np521_uint1 x235;
|
|
uint64_t x236;
|
|
fiat_np521_uint1 x237;
|
|
uint64_t x238;
|
|
fiat_np521_uint1 x239;
|
|
uint64_t x240;
|
|
fiat_np521_uint1 x241;
|
|
uint64_t x242;
|
|
fiat_np521_uint1 x243;
|
|
uint64_t x244;
|
|
fiat_np521_uint1 x245;
|
|
uint64_t x246;
|
|
fiat_np521_uint1 x247;
|
|
uint64_t x248;
|
|
fiat_np521_uint1 x249;
|
|
uint64_t x250;
|
|
fiat_np521_uint1 x251;
|
|
uint64_t x252;
|
|
fiat_np521_uint1 x253;
|
|
uint64_t x254;
|
|
fiat_np521_uint1 x255;
|
|
uint64_t x256;
|
|
uint64_t x257;
|
|
uint64_t x258;
|
|
uint64_t x259;
|
|
uint64_t x260;
|
|
uint64_t x261;
|
|
uint64_t x262;
|
|
uint64_t x263;
|
|
uint64_t x264;
|
|
uint64_t x265;
|
|
uint64_t x266;
|
|
uint64_t x267;
|
|
uint64_t x268;
|
|
uint64_t x269;
|
|
uint64_t x270;
|
|
uint64_t x271;
|
|
uint64_t x272;
|
|
uint64_t x273;
|
|
uint64_t x274;
|
|
uint64_t x275;
|
|
uint64_t x276;
|
|
fiat_np521_uint1 x277;
|
|
uint64_t x278;
|
|
fiat_np521_uint1 x279;
|
|
uint64_t x280;
|
|
fiat_np521_uint1 x281;
|
|
uint64_t x282;
|
|
fiat_np521_uint1 x283;
|
|
uint64_t x284;
|
|
fiat_np521_uint1 x285;
|
|
uint64_t x286;
|
|
fiat_np521_uint1 x287;
|
|
uint64_t x288;
|
|
fiat_np521_uint1 x289;
|
|
uint64_t x290;
|
|
fiat_np521_uint1 x291;
|
|
uint64_t x292;
|
|
fiat_np521_uint1 x293;
|
|
uint64_t x294;
|
|
fiat_np521_uint1 x295;
|
|
uint64_t x296;
|
|
fiat_np521_uint1 x297;
|
|
uint64_t x298;
|
|
fiat_np521_uint1 x299;
|
|
uint64_t x300;
|
|
fiat_np521_uint1 x301;
|
|
uint64_t x302;
|
|
fiat_np521_uint1 x303;
|
|
uint64_t x304;
|
|
fiat_np521_uint1 x305;
|
|
uint64_t x306;
|
|
fiat_np521_uint1 x307;
|
|
uint64_t x308;
|
|
fiat_np521_uint1 x309;
|
|
uint64_t x310;
|
|
uint64_t x311;
|
|
uint64_t x312;
|
|
uint64_t x313;
|
|
uint64_t x314;
|
|
uint64_t x315;
|
|
uint64_t x316;
|
|
uint64_t x317;
|
|
uint64_t x318;
|
|
uint64_t x319;
|
|
uint64_t x320;
|
|
uint64_t x321;
|
|
uint64_t x322;
|
|
uint64_t x323;
|
|
uint64_t x324;
|
|
uint64_t x325;
|
|
uint64_t x326;
|
|
uint64_t x327;
|
|
uint64_t x328;
|
|
fiat_np521_uint1 x329;
|
|
uint64_t x330;
|
|
fiat_np521_uint1 x331;
|
|
uint64_t x332;
|
|
fiat_np521_uint1 x333;
|
|
uint64_t x334;
|
|
fiat_np521_uint1 x335;
|
|
uint64_t x336;
|
|
fiat_np521_uint1 x337;
|
|
uint64_t x338;
|
|
fiat_np521_uint1 x339;
|
|
uint64_t x340;
|
|
fiat_np521_uint1 x341;
|
|
uint64_t x342;
|
|
fiat_np521_uint1 x343;
|
|
uint64_t x344;
|
|
fiat_np521_uint1 x345;
|
|
uint64_t x346;
|
|
fiat_np521_uint1 x347;
|
|
uint64_t x348;
|
|
fiat_np521_uint1 x349;
|
|
uint64_t x350;
|
|
fiat_np521_uint1 x351;
|
|
uint64_t x352;
|
|
fiat_np521_uint1 x353;
|
|
uint64_t x354;
|
|
fiat_np521_uint1 x355;
|
|
uint64_t x356;
|
|
fiat_np521_uint1 x357;
|
|
uint64_t x358;
|
|
fiat_np521_uint1 x359;
|
|
uint64_t x360;
|
|
fiat_np521_uint1 x361;
|
|
uint64_t x362;
|
|
uint64_t x363;
|
|
uint64_t x364;
|
|
uint64_t x365;
|
|
uint64_t x366;
|
|
uint64_t x367;
|
|
uint64_t x368;
|
|
uint64_t x369;
|
|
uint64_t x370;
|
|
uint64_t x371;
|
|
uint64_t x372;
|
|
uint64_t x373;
|
|
uint64_t x374;
|
|
uint64_t x375;
|
|
uint64_t x376;
|
|
uint64_t x377;
|
|
uint64_t x378;
|
|
uint64_t x379;
|
|
uint64_t x380;
|
|
uint64_t x381;
|
|
uint64_t x382;
|
|
fiat_np521_uint1 x383;
|
|
uint64_t x384;
|
|
fiat_np521_uint1 x385;
|
|
uint64_t x386;
|
|
fiat_np521_uint1 x387;
|
|
uint64_t x388;
|
|
fiat_np521_uint1 x389;
|
|
uint64_t x390;
|
|
fiat_np521_uint1 x391;
|
|
uint64_t x392;
|
|
fiat_np521_uint1 x393;
|
|
uint64_t x394;
|
|
fiat_np521_uint1 x395;
|
|
uint64_t x396;
|
|
fiat_np521_uint1 x397;
|
|
uint64_t x398;
|
|
fiat_np521_uint1 x399;
|
|
uint64_t x400;
|
|
fiat_np521_uint1 x401;
|
|
uint64_t x402;
|
|
fiat_np521_uint1 x403;
|
|
uint64_t x404;
|
|
fiat_np521_uint1 x405;
|
|
uint64_t x406;
|
|
fiat_np521_uint1 x407;
|
|
uint64_t x408;
|
|
fiat_np521_uint1 x409;
|
|
uint64_t x410;
|
|
fiat_np521_uint1 x411;
|
|
uint64_t x412;
|
|
fiat_np521_uint1 x413;
|
|
uint64_t x414;
|
|
fiat_np521_uint1 x415;
|
|
uint64_t x416;
|
|
uint64_t x417;
|
|
uint64_t x418;
|
|
uint64_t x419;
|
|
uint64_t x420;
|
|
uint64_t x421;
|
|
uint64_t x422;
|
|
uint64_t x423;
|
|
uint64_t x424;
|
|
uint64_t x425;
|
|
uint64_t x426;
|
|
uint64_t x427;
|
|
uint64_t x428;
|
|
uint64_t x429;
|
|
uint64_t x430;
|
|
uint64_t x431;
|
|
uint64_t x432;
|
|
uint64_t x433;
|
|
uint64_t x434;
|
|
fiat_np521_uint1 x435;
|
|
uint64_t x436;
|
|
fiat_np521_uint1 x437;
|
|
uint64_t x438;
|
|
fiat_np521_uint1 x439;
|
|
uint64_t x440;
|
|
fiat_np521_uint1 x441;
|
|
uint64_t x442;
|
|
fiat_np521_uint1 x443;
|
|
uint64_t x444;
|
|
fiat_np521_uint1 x445;
|
|
uint64_t x446;
|
|
fiat_np521_uint1 x447;
|
|
uint64_t x448;
|
|
fiat_np521_uint1 x449;
|
|
uint64_t x450;
|
|
fiat_np521_uint1 x451;
|
|
uint64_t x452;
|
|
fiat_np521_uint1 x453;
|
|
uint64_t x454;
|
|
fiat_np521_uint1 x455;
|
|
uint64_t x456;
|
|
fiat_np521_uint1 x457;
|
|
uint64_t x458;
|
|
fiat_np521_uint1 x459;
|
|
uint64_t x460;
|
|
fiat_np521_uint1 x461;
|
|
uint64_t x462;
|
|
fiat_np521_uint1 x463;
|
|
uint64_t x464;
|
|
fiat_np521_uint1 x465;
|
|
uint64_t x466;
|
|
fiat_np521_uint1 x467;
|
|
uint64_t x468;
|
|
uint64_t x469;
|
|
uint64_t x470;
|
|
uint64_t x471;
|
|
uint64_t x472;
|
|
uint64_t x473;
|
|
uint64_t x474;
|
|
uint64_t x475;
|
|
uint64_t x476;
|
|
uint64_t x477;
|
|
uint64_t x478;
|
|
uint64_t x479;
|
|
uint64_t x480;
|
|
uint64_t x481;
|
|
uint64_t x482;
|
|
uint64_t x483;
|
|
uint64_t x484;
|
|
uint64_t x485;
|
|
uint64_t x486;
|
|
uint64_t x487;
|
|
uint64_t x488;
|
|
fiat_np521_uint1 x489;
|
|
uint64_t x490;
|
|
fiat_np521_uint1 x491;
|
|
uint64_t x492;
|
|
fiat_np521_uint1 x493;
|
|
uint64_t x494;
|
|
fiat_np521_uint1 x495;
|
|
uint64_t x496;
|
|
fiat_np521_uint1 x497;
|
|
uint64_t x498;
|
|
fiat_np521_uint1 x499;
|
|
uint64_t x500;
|
|
fiat_np521_uint1 x501;
|
|
uint64_t x502;
|
|
fiat_np521_uint1 x503;
|
|
uint64_t x504;
|
|
fiat_np521_uint1 x505;
|
|
uint64_t x506;
|
|
fiat_np521_uint1 x507;
|
|
uint64_t x508;
|
|
fiat_np521_uint1 x509;
|
|
uint64_t x510;
|
|
fiat_np521_uint1 x511;
|
|
uint64_t x512;
|
|
fiat_np521_uint1 x513;
|
|
uint64_t x514;
|
|
fiat_np521_uint1 x515;
|
|
uint64_t x516;
|
|
fiat_np521_uint1 x517;
|
|
uint64_t x518;
|
|
fiat_np521_uint1 x519;
|
|
uint64_t x520;
|
|
fiat_np521_uint1 x521;
|
|
uint64_t x522;
|
|
uint64_t x523;
|
|
uint64_t x524;
|
|
uint64_t x525;
|
|
uint64_t x526;
|
|
uint64_t x527;
|
|
uint64_t x528;
|
|
uint64_t x529;
|
|
uint64_t x530;
|
|
uint64_t x531;
|
|
uint64_t x532;
|
|
uint64_t x533;
|
|
uint64_t x534;
|
|
uint64_t x535;
|
|
uint64_t x536;
|
|
uint64_t x537;
|
|
uint64_t x538;
|
|
uint64_t x539;
|
|
uint64_t x540;
|
|
fiat_np521_uint1 x541;
|
|
uint64_t x542;
|
|
fiat_np521_uint1 x543;
|
|
uint64_t x544;
|
|
fiat_np521_uint1 x545;
|
|
uint64_t x546;
|
|
fiat_np521_uint1 x547;
|
|
uint64_t x548;
|
|
fiat_np521_uint1 x549;
|
|
uint64_t x550;
|
|
fiat_np521_uint1 x551;
|
|
uint64_t x552;
|
|
fiat_np521_uint1 x553;
|
|
uint64_t x554;
|
|
fiat_np521_uint1 x555;
|
|
uint64_t x556;
|
|
fiat_np521_uint1 x557;
|
|
uint64_t x558;
|
|
fiat_np521_uint1 x559;
|
|
uint64_t x560;
|
|
fiat_np521_uint1 x561;
|
|
uint64_t x562;
|
|
fiat_np521_uint1 x563;
|
|
uint64_t x564;
|
|
fiat_np521_uint1 x565;
|
|
uint64_t x566;
|
|
fiat_np521_uint1 x567;
|
|
uint64_t x568;
|
|
fiat_np521_uint1 x569;
|
|
uint64_t x570;
|
|
fiat_np521_uint1 x571;
|
|
uint64_t x572;
|
|
fiat_np521_uint1 x573;
|
|
uint64_t x574;
|
|
uint64_t x575;
|
|
uint64_t x576;
|
|
uint64_t x577;
|
|
uint64_t x578;
|
|
uint64_t x579;
|
|
uint64_t x580;
|
|
uint64_t x581;
|
|
uint64_t x582;
|
|
uint64_t x583;
|
|
uint64_t x584;
|
|
uint64_t x585;
|
|
uint64_t x586;
|
|
uint64_t x587;
|
|
uint64_t x588;
|
|
uint64_t x589;
|
|
uint64_t x590;
|
|
uint64_t x591;
|
|
uint64_t x592;
|
|
uint64_t x593;
|
|
uint64_t x594;
|
|
fiat_np521_uint1 x595;
|
|
uint64_t x596;
|
|
fiat_np521_uint1 x597;
|
|
uint64_t x598;
|
|
fiat_np521_uint1 x599;
|
|
uint64_t x600;
|
|
fiat_np521_uint1 x601;
|
|
uint64_t x602;
|
|
fiat_np521_uint1 x603;
|
|
uint64_t x604;
|
|
fiat_np521_uint1 x605;
|
|
uint64_t x606;
|
|
fiat_np521_uint1 x607;
|
|
uint64_t x608;
|
|
fiat_np521_uint1 x609;
|
|
uint64_t x610;
|
|
fiat_np521_uint1 x611;
|
|
uint64_t x612;
|
|
fiat_np521_uint1 x613;
|
|
uint64_t x614;
|
|
fiat_np521_uint1 x615;
|
|
uint64_t x616;
|
|
fiat_np521_uint1 x617;
|
|
uint64_t x618;
|
|
fiat_np521_uint1 x619;
|
|
uint64_t x620;
|
|
fiat_np521_uint1 x621;
|
|
uint64_t x622;
|
|
fiat_np521_uint1 x623;
|
|
uint64_t x624;
|
|
fiat_np521_uint1 x625;
|
|
uint64_t x626;
|
|
fiat_np521_uint1 x627;
|
|
uint64_t x628;
|
|
uint64_t x629;
|
|
uint64_t x630;
|
|
uint64_t x631;
|
|
uint64_t x632;
|
|
uint64_t x633;
|
|
uint64_t x634;
|
|
uint64_t x635;
|
|
uint64_t x636;
|
|
uint64_t x637;
|
|
uint64_t x638;
|
|
uint64_t x639;
|
|
uint64_t x640;
|
|
uint64_t x641;
|
|
uint64_t x642;
|
|
uint64_t x643;
|
|
uint64_t x644;
|
|
uint64_t x645;
|
|
uint64_t x646;
|
|
fiat_np521_uint1 x647;
|
|
uint64_t x648;
|
|
fiat_np521_uint1 x649;
|
|
uint64_t x650;
|
|
fiat_np521_uint1 x651;
|
|
uint64_t x652;
|
|
fiat_np521_uint1 x653;
|
|
uint64_t x654;
|
|
fiat_np521_uint1 x655;
|
|
uint64_t x656;
|
|
fiat_np521_uint1 x657;
|
|
uint64_t x658;
|
|
fiat_np521_uint1 x659;
|
|
uint64_t x660;
|
|
fiat_np521_uint1 x661;
|
|
uint64_t x662;
|
|
fiat_np521_uint1 x663;
|
|
uint64_t x664;
|
|
fiat_np521_uint1 x665;
|
|
uint64_t x666;
|
|
fiat_np521_uint1 x667;
|
|
uint64_t x668;
|
|
fiat_np521_uint1 x669;
|
|
uint64_t x670;
|
|
fiat_np521_uint1 x671;
|
|
uint64_t x672;
|
|
fiat_np521_uint1 x673;
|
|
uint64_t x674;
|
|
fiat_np521_uint1 x675;
|
|
uint64_t x676;
|
|
fiat_np521_uint1 x677;
|
|
uint64_t x678;
|
|
fiat_np521_uint1 x679;
|
|
uint64_t x680;
|
|
uint64_t x681;
|
|
uint64_t x682;
|
|
uint64_t x683;
|
|
uint64_t x684;
|
|
uint64_t x685;
|
|
uint64_t x686;
|
|
uint64_t x687;
|
|
uint64_t x688;
|
|
uint64_t x689;
|
|
uint64_t x690;
|
|
uint64_t x691;
|
|
uint64_t x692;
|
|
uint64_t x693;
|
|
uint64_t x694;
|
|
uint64_t x695;
|
|
uint64_t x696;
|
|
uint64_t x697;
|
|
uint64_t x698;
|
|
uint64_t x699;
|
|
uint64_t x700;
|
|
fiat_np521_uint1 x701;
|
|
uint64_t x702;
|
|
fiat_np521_uint1 x703;
|
|
uint64_t x704;
|
|
fiat_np521_uint1 x705;
|
|
uint64_t x706;
|
|
fiat_np521_uint1 x707;
|
|
uint64_t x708;
|
|
fiat_np521_uint1 x709;
|
|
uint64_t x710;
|
|
fiat_np521_uint1 x711;
|
|
uint64_t x712;
|
|
fiat_np521_uint1 x713;
|
|
uint64_t x714;
|
|
fiat_np521_uint1 x715;
|
|
uint64_t x716;
|
|
fiat_np521_uint1 x717;
|
|
uint64_t x718;
|
|
fiat_np521_uint1 x719;
|
|
uint64_t x720;
|
|
fiat_np521_uint1 x721;
|
|
uint64_t x722;
|
|
fiat_np521_uint1 x723;
|
|
uint64_t x724;
|
|
fiat_np521_uint1 x725;
|
|
uint64_t x726;
|
|
fiat_np521_uint1 x727;
|
|
uint64_t x728;
|
|
fiat_np521_uint1 x729;
|
|
uint64_t x730;
|
|
fiat_np521_uint1 x731;
|
|
uint64_t x732;
|
|
fiat_np521_uint1 x733;
|
|
uint64_t x734;
|
|
uint64_t x735;
|
|
uint64_t x736;
|
|
uint64_t x737;
|
|
uint64_t x738;
|
|
uint64_t x739;
|
|
uint64_t x740;
|
|
uint64_t x741;
|
|
uint64_t x742;
|
|
uint64_t x743;
|
|
uint64_t x744;
|
|
uint64_t x745;
|
|
uint64_t x746;
|
|
uint64_t x747;
|
|
uint64_t x748;
|
|
uint64_t x749;
|
|
uint64_t x750;
|
|
uint64_t x751;
|
|
uint64_t x752;
|
|
fiat_np521_uint1 x753;
|
|
uint64_t x754;
|
|
fiat_np521_uint1 x755;
|
|
uint64_t x756;
|
|
fiat_np521_uint1 x757;
|
|
uint64_t x758;
|
|
fiat_np521_uint1 x759;
|
|
uint64_t x760;
|
|
fiat_np521_uint1 x761;
|
|
uint64_t x762;
|
|
fiat_np521_uint1 x763;
|
|
uint64_t x764;
|
|
fiat_np521_uint1 x765;
|
|
uint64_t x766;
|
|
fiat_np521_uint1 x767;
|
|
uint64_t x768;
|
|
fiat_np521_uint1 x769;
|
|
uint64_t x770;
|
|
fiat_np521_uint1 x771;
|
|
uint64_t x772;
|
|
fiat_np521_uint1 x773;
|
|
uint64_t x774;
|
|
fiat_np521_uint1 x775;
|
|
uint64_t x776;
|
|
fiat_np521_uint1 x777;
|
|
uint64_t x778;
|
|
fiat_np521_uint1 x779;
|
|
uint64_t x780;
|
|
fiat_np521_uint1 x781;
|
|
uint64_t x782;
|
|
fiat_np521_uint1 x783;
|
|
uint64_t x784;
|
|
fiat_np521_uint1 x785;
|
|
uint64_t x786;
|
|
uint64_t x787;
|
|
uint64_t x788;
|
|
uint64_t x789;
|
|
uint64_t x790;
|
|
uint64_t x791;
|
|
uint64_t x792;
|
|
uint64_t x793;
|
|
uint64_t x794;
|
|
uint64_t x795;
|
|
uint64_t x796;
|
|
uint64_t x797;
|
|
uint64_t x798;
|
|
uint64_t x799;
|
|
uint64_t x800;
|
|
uint64_t x801;
|
|
uint64_t x802;
|
|
uint64_t x803;
|
|
uint64_t x804;
|
|
uint64_t x805;
|
|
uint64_t x806;
|
|
fiat_np521_uint1 x807;
|
|
uint64_t x808;
|
|
fiat_np521_uint1 x809;
|
|
uint64_t x810;
|
|
fiat_np521_uint1 x811;
|
|
uint64_t x812;
|
|
fiat_np521_uint1 x813;
|
|
uint64_t x814;
|
|
fiat_np521_uint1 x815;
|
|
uint64_t x816;
|
|
fiat_np521_uint1 x817;
|
|
uint64_t x818;
|
|
fiat_np521_uint1 x819;
|
|
uint64_t x820;
|
|
fiat_np521_uint1 x821;
|
|
uint64_t x822;
|
|
fiat_np521_uint1 x823;
|
|
uint64_t x824;
|
|
fiat_np521_uint1 x825;
|
|
uint64_t x826;
|
|
fiat_np521_uint1 x827;
|
|
uint64_t x828;
|
|
fiat_np521_uint1 x829;
|
|
uint64_t x830;
|
|
fiat_np521_uint1 x831;
|
|
uint64_t x832;
|
|
fiat_np521_uint1 x833;
|
|
uint64_t x834;
|
|
fiat_np521_uint1 x835;
|
|
uint64_t x836;
|
|
fiat_np521_uint1 x837;
|
|
uint64_t x838;
|
|
fiat_np521_uint1 x839;
|
|
uint64_t x840;
|
|
uint64_t x841;
|
|
uint64_t x842;
|
|
uint64_t x843;
|
|
uint64_t x844;
|
|
uint64_t x845;
|
|
uint64_t x846;
|
|
uint64_t x847;
|
|
uint64_t x848;
|
|
uint64_t x849;
|
|
uint64_t x850;
|
|
uint64_t x851;
|
|
uint64_t x852;
|
|
uint64_t x853;
|
|
uint64_t x854;
|
|
uint64_t x855;
|
|
uint64_t x856;
|
|
uint64_t x857;
|
|
uint64_t x858;
|
|
fiat_np521_uint1 x859;
|
|
uint64_t x860;
|
|
fiat_np521_uint1 x861;
|
|
uint64_t x862;
|
|
fiat_np521_uint1 x863;
|
|
uint64_t x864;
|
|
fiat_np521_uint1 x865;
|
|
uint64_t x866;
|
|
fiat_np521_uint1 x867;
|
|
uint64_t x868;
|
|
fiat_np521_uint1 x869;
|
|
uint64_t x870;
|
|
fiat_np521_uint1 x871;
|
|
uint64_t x872;
|
|
fiat_np521_uint1 x873;
|
|
uint64_t x874;
|
|
fiat_np521_uint1 x875;
|
|
uint64_t x876;
|
|
fiat_np521_uint1 x877;
|
|
uint64_t x878;
|
|
fiat_np521_uint1 x879;
|
|
uint64_t x880;
|
|
fiat_np521_uint1 x881;
|
|
uint64_t x882;
|
|
fiat_np521_uint1 x883;
|
|
uint64_t x884;
|
|
fiat_np521_uint1 x885;
|
|
uint64_t x886;
|
|
fiat_np521_uint1 x887;
|
|
uint64_t x888;
|
|
fiat_np521_uint1 x889;
|
|
uint64_t x890;
|
|
fiat_np521_uint1 x891;
|
|
uint64_t x892;
|
|
uint64_t x893;
|
|
uint64_t x894;
|
|
uint64_t x895;
|
|
uint64_t x896;
|
|
uint64_t x897;
|
|
uint64_t x898;
|
|
uint64_t x899;
|
|
uint64_t x900;
|
|
uint64_t x901;
|
|
uint64_t x902;
|
|
uint64_t x903;
|
|
uint64_t x904;
|
|
uint64_t x905;
|
|
uint64_t x906;
|
|
uint64_t x907;
|
|
uint64_t x908;
|
|
uint64_t x909;
|
|
uint64_t x910;
|
|
uint64_t x911;
|
|
uint64_t x912;
|
|
fiat_np521_uint1 x913;
|
|
uint64_t x914;
|
|
fiat_np521_uint1 x915;
|
|
uint64_t x916;
|
|
fiat_np521_uint1 x917;
|
|
uint64_t x918;
|
|
fiat_np521_uint1 x919;
|
|
uint64_t x920;
|
|
fiat_np521_uint1 x921;
|
|
uint64_t x922;
|
|
fiat_np521_uint1 x923;
|
|
uint64_t x924;
|
|
fiat_np521_uint1 x925;
|
|
uint64_t x926;
|
|
fiat_np521_uint1 x927;
|
|
uint64_t x928;
|
|
fiat_np521_uint1 x929;
|
|
uint64_t x930;
|
|
fiat_np521_uint1 x931;
|
|
uint64_t x932;
|
|
fiat_np521_uint1 x933;
|
|
uint64_t x934;
|
|
fiat_np521_uint1 x935;
|
|
uint64_t x936;
|
|
fiat_np521_uint1 x937;
|
|
uint64_t x938;
|
|
fiat_np521_uint1 x939;
|
|
uint64_t x940;
|
|
fiat_np521_uint1 x941;
|
|
uint64_t x942;
|
|
fiat_np521_uint1 x943;
|
|
uint64_t x944;
|
|
fiat_np521_uint1 x945;
|
|
uint64_t x946;
|
|
uint64_t x947;
|
|
fiat_np521_uint1 x948;
|
|
uint64_t x949;
|
|
fiat_np521_uint1 x950;
|
|
uint64_t x951;
|
|
fiat_np521_uint1 x952;
|
|
uint64_t x953;
|
|
fiat_np521_uint1 x954;
|
|
uint64_t x955;
|
|
fiat_np521_uint1 x956;
|
|
uint64_t x957;
|
|
fiat_np521_uint1 x958;
|
|
uint64_t x959;
|
|
fiat_np521_uint1 x960;
|
|
uint64_t x961;
|
|
fiat_np521_uint1 x962;
|
|
uint64_t x963;
|
|
fiat_np521_uint1 x964;
|
|
uint64_t x965;
|
|
fiat_np521_uint1 x966;
|
|
uint64_t x967;
|
|
uint64_t x968;
|
|
uint64_t x969;
|
|
uint64_t x970;
|
|
uint64_t x971;
|
|
uint64_t x972;
|
|
uint64_t x973;
|
|
uint64_t x974;
|
|
uint64_t x975;
|
|
x1 = (arg1[1]);
|
|
x2 = (arg1[2]);
|
|
x3 = (arg1[3]);
|
|
x4 = (arg1[4]);
|
|
x5 = (arg1[5]);
|
|
x6 = (arg1[6]);
|
|
x7 = (arg1[7]);
|
|
x8 = (arg1[8]);
|
|
x9 = (arg1[0]);
|
|
fiat_np521_mulx_u64(&x10, &x11, x9, UINT8_C(0x3d));
|
|
fiat_np521_mulx_u64(&x12, &x13, x9, UINT64_C(0x2d8e03d1492d0d45));
|
|
fiat_np521_mulx_u64(&x14, &x15, x9, UINT64_C(0x5bcc6d61a8e567bc));
|
|
fiat_np521_mulx_u64(&x16, &x17, x9, UINT64_C(0xcff3d142b7756e3e));
|
|
fiat_np521_mulx_u64(&x18, &x19, x9, UINT64_C(0xdd6e23d82e49c7db));
|
|
fiat_np521_mulx_u64(&x20, &x21, x9, UINT64_C(0xd3721ef557f75e06));
|
|
fiat_np521_mulx_u64(&x22, &x23, x9, UINT64_C(0x12a78d38794573ff));
|
|
fiat_np521_mulx_u64(&x24, &x25, x9, UINT64_C(0xf707badce5547ea3));
|
|
fiat_np521_mulx_u64(&x26, &x27, x9, UINT64_C(0x137cd04dcf15dd04));
|
|
fiat_np521_addcarryx_u64(&x28, &x29, 0x0, x27, x24);
|
|
fiat_np521_addcarryx_u64(&x30, &x31, x29, x25, x22);
|
|
fiat_np521_addcarryx_u64(&x32, &x33, x31, x23, x20);
|
|
fiat_np521_addcarryx_u64(&x34, &x35, x33, x21, x18);
|
|
fiat_np521_addcarryx_u64(&x36, &x37, x35, x19, x16);
|
|
fiat_np521_addcarryx_u64(&x38, &x39, x37, x17, x14);
|
|
fiat_np521_addcarryx_u64(&x40, &x41, x39, x15, x12);
|
|
fiat_np521_addcarryx_u64(&x42, &x43, x41, x13, x10);
|
|
fiat_np521_mulx_u64(&x44, &x45, x26, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x46, &x47, x44, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x48, &x49, x44, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x50, &x51, x44, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x52, &x53, x44, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x54, &x55, x44, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x56, &x57, x44, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x58, &x59, x44, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x60, &x61, x44, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x62, &x63, x44, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x64, &x65, 0x0, x63, x60);
|
|
fiat_np521_addcarryx_u64(&x66, &x67, x65, x61, x58);
|
|
fiat_np521_addcarryx_u64(&x68, &x69, x67, x59, x56);
|
|
fiat_np521_addcarryx_u64(&x70, &x71, x69, x57, x54);
|
|
fiat_np521_addcarryx_u64(&x72, &x73, x71, x55, x52);
|
|
fiat_np521_addcarryx_u64(&x74, &x75, x73, x53, x50);
|
|
fiat_np521_addcarryx_u64(&x76, &x77, x75, x51, x48);
|
|
fiat_np521_addcarryx_u64(&x78, &x79, x77, x49, x46);
|
|
fiat_np521_addcarryx_u64(&x80, &x81, 0x0, x26, x62);
|
|
fiat_np521_addcarryx_u64(&x82, &x83, x81, x28, x64);
|
|
fiat_np521_addcarryx_u64(&x84, &x85, x83, x30, x66);
|
|
fiat_np521_addcarryx_u64(&x86, &x87, x85, x32, x68);
|
|
fiat_np521_addcarryx_u64(&x88, &x89, x87, x34, x70);
|
|
fiat_np521_addcarryx_u64(&x90, &x91, x89, x36, x72);
|
|
fiat_np521_addcarryx_u64(&x92, &x93, x91, x38, x74);
|
|
fiat_np521_addcarryx_u64(&x94, &x95, x93, x40, x76);
|
|
fiat_np521_addcarryx_u64(&x96, &x97, x95, x42, x78);
|
|
fiat_np521_mulx_u64(&x98, &x99, x1, UINT8_C(0x3d));
|
|
fiat_np521_mulx_u64(&x100, &x101, x1, UINT64_C(0x2d8e03d1492d0d45));
|
|
fiat_np521_mulx_u64(&x102, &x103, x1, UINT64_C(0x5bcc6d61a8e567bc));
|
|
fiat_np521_mulx_u64(&x104, &x105, x1, UINT64_C(0xcff3d142b7756e3e));
|
|
fiat_np521_mulx_u64(&x106, &x107, x1, UINT64_C(0xdd6e23d82e49c7db));
|
|
fiat_np521_mulx_u64(&x108, &x109, x1, UINT64_C(0xd3721ef557f75e06));
|
|
fiat_np521_mulx_u64(&x110, &x111, x1, UINT64_C(0x12a78d38794573ff));
|
|
fiat_np521_mulx_u64(&x112, &x113, x1, UINT64_C(0xf707badce5547ea3));
|
|
fiat_np521_mulx_u64(&x114, &x115, x1, UINT64_C(0x137cd04dcf15dd04));
|
|
fiat_np521_addcarryx_u64(&x116, &x117, 0x0, x115, x112);
|
|
fiat_np521_addcarryx_u64(&x118, &x119, x117, x113, x110);
|
|
fiat_np521_addcarryx_u64(&x120, &x121, x119, x111, x108);
|
|
fiat_np521_addcarryx_u64(&x122, &x123, x121, x109, x106);
|
|
fiat_np521_addcarryx_u64(&x124, &x125, x123, x107, x104);
|
|
fiat_np521_addcarryx_u64(&x126, &x127, x125, x105, x102);
|
|
fiat_np521_addcarryx_u64(&x128, &x129, x127, x103, x100);
|
|
fiat_np521_addcarryx_u64(&x130, &x131, x129, x101, x98);
|
|
fiat_np521_addcarryx_u64(&x132, &x133, 0x0, x82, x114);
|
|
fiat_np521_addcarryx_u64(&x134, &x135, x133, x84, x116);
|
|
fiat_np521_addcarryx_u64(&x136, &x137, x135, x86, x118);
|
|
fiat_np521_addcarryx_u64(&x138, &x139, x137, x88, x120);
|
|
fiat_np521_addcarryx_u64(&x140, &x141, x139, x90, x122);
|
|
fiat_np521_addcarryx_u64(&x142, &x143, x141, x92, x124);
|
|
fiat_np521_addcarryx_u64(&x144, &x145, x143, x94, x126);
|
|
fiat_np521_addcarryx_u64(&x146, &x147, x145, x96, x128);
|
|
fiat_np521_addcarryx_u64(&x148, &x149, x147, ((x97 + (x43 + x11)) + (x79 + x47)), x130);
|
|
fiat_np521_mulx_u64(&x150, &x151, x132, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x152, &x153, x150, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x154, &x155, x150, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x156, &x157, x150, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x158, &x159, x150, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x160, &x161, x150, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x162, &x163, x150, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x164, &x165, x150, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x166, &x167, x150, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x168, &x169, x150, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x170, &x171, 0x0, x169, x166);
|
|
fiat_np521_addcarryx_u64(&x172, &x173, x171, x167, x164);
|
|
fiat_np521_addcarryx_u64(&x174, &x175, x173, x165, x162);
|
|
fiat_np521_addcarryx_u64(&x176, &x177, x175, x163, x160);
|
|
fiat_np521_addcarryx_u64(&x178, &x179, x177, x161, x158);
|
|
fiat_np521_addcarryx_u64(&x180, &x181, x179, x159, x156);
|
|
fiat_np521_addcarryx_u64(&x182, &x183, x181, x157, x154);
|
|
fiat_np521_addcarryx_u64(&x184, &x185, x183, x155, x152);
|
|
fiat_np521_addcarryx_u64(&x186, &x187, 0x0, x132, x168);
|
|
fiat_np521_addcarryx_u64(&x188, &x189, x187, x134, x170);
|
|
fiat_np521_addcarryx_u64(&x190, &x191, x189, x136, x172);
|
|
fiat_np521_addcarryx_u64(&x192, &x193, x191, x138, x174);
|
|
fiat_np521_addcarryx_u64(&x194, &x195, x193, x140, x176);
|
|
fiat_np521_addcarryx_u64(&x196, &x197, x195, x142, x178);
|
|
fiat_np521_addcarryx_u64(&x198, &x199, x197, x144, x180);
|
|
fiat_np521_addcarryx_u64(&x200, &x201, x199, x146, x182);
|
|
fiat_np521_addcarryx_u64(&x202, &x203, x201, x148, x184);
|
|
fiat_np521_mulx_u64(&x204, &x205, x2, UINT8_C(0x3d));
|
|
fiat_np521_mulx_u64(&x206, &x207, x2, UINT64_C(0x2d8e03d1492d0d45));
|
|
fiat_np521_mulx_u64(&x208, &x209, x2, UINT64_C(0x5bcc6d61a8e567bc));
|
|
fiat_np521_mulx_u64(&x210, &x211, x2, UINT64_C(0xcff3d142b7756e3e));
|
|
fiat_np521_mulx_u64(&x212, &x213, x2, UINT64_C(0xdd6e23d82e49c7db));
|
|
fiat_np521_mulx_u64(&x214, &x215, x2, UINT64_C(0xd3721ef557f75e06));
|
|
fiat_np521_mulx_u64(&x216, &x217, x2, UINT64_C(0x12a78d38794573ff));
|
|
fiat_np521_mulx_u64(&x218, &x219, x2, UINT64_C(0xf707badce5547ea3));
|
|
fiat_np521_mulx_u64(&x220, &x221, x2, UINT64_C(0x137cd04dcf15dd04));
|
|
fiat_np521_addcarryx_u64(&x222, &x223, 0x0, x221, x218);
|
|
fiat_np521_addcarryx_u64(&x224, &x225, x223, x219, x216);
|
|
fiat_np521_addcarryx_u64(&x226, &x227, x225, x217, x214);
|
|
fiat_np521_addcarryx_u64(&x228, &x229, x227, x215, x212);
|
|
fiat_np521_addcarryx_u64(&x230, &x231, x229, x213, x210);
|
|
fiat_np521_addcarryx_u64(&x232, &x233, x231, x211, x208);
|
|
fiat_np521_addcarryx_u64(&x234, &x235, x233, x209, x206);
|
|
fiat_np521_addcarryx_u64(&x236, &x237, x235, x207, x204);
|
|
fiat_np521_addcarryx_u64(&x238, &x239, 0x0, x188, x220);
|
|
fiat_np521_addcarryx_u64(&x240, &x241, x239, x190, x222);
|
|
fiat_np521_addcarryx_u64(&x242, &x243, x241, x192, x224);
|
|
fiat_np521_addcarryx_u64(&x244, &x245, x243, x194, x226);
|
|
fiat_np521_addcarryx_u64(&x246, &x247, x245, x196, x228);
|
|
fiat_np521_addcarryx_u64(&x248, &x249, x247, x198, x230);
|
|
fiat_np521_addcarryx_u64(&x250, &x251, x249, x200, x232);
|
|
fiat_np521_addcarryx_u64(&x252, &x253, x251, x202, x234);
|
|
fiat_np521_addcarryx_u64(&x254, &x255, x253, ((x203 + (x149 + (x131 + x99))) + (x185 + x153)), x236);
|
|
fiat_np521_mulx_u64(&x256, &x257, x238, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x258, &x259, x256, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x260, &x261, x256, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x262, &x263, x256, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x264, &x265, x256, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x266, &x267, x256, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x268, &x269, x256, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x270, &x271, x256, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x272, &x273, x256, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x274, &x275, x256, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x276, &x277, 0x0, x275, x272);
|
|
fiat_np521_addcarryx_u64(&x278, &x279, x277, x273, x270);
|
|
fiat_np521_addcarryx_u64(&x280, &x281, x279, x271, x268);
|
|
fiat_np521_addcarryx_u64(&x282, &x283, x281, x269, x266);
|
|
fiat_np521_addcarryx_u64(&x284, &x285, x283, x267, x264);
|
|
fiat_np521_addcarryx_u64(&x286, &x287, x285, x265, x262);
|
|
fiat_np521_addcarryx_u64(&x288, &x289, x287, x263, x260);
|
|
fiat_np521_addcarryx_u64(&x290, &x291, x289, x261, x258);
|
|
fiat_np521_addcarryx_u64(&x292, &x293, 0x0, x238, x274);
|
|
fiat_np521_addcarryx_u64(&x294, &x295, x293, x240, x276);
|
|
fiat_np521_addcarryx_u64(&x296, &x297, x295, x242, x278);
|
|
fiat_np521_addcarryx_u64(&x298, &x299, x297, x244, x280);
|
|
fiat_np521_addcarryx_u64(&x300, &x301, x299, x246, x282);
|
|
fiat_np521_addcarryx_u64(&x302, &x303, x301, x248, x284);
|
|
fiat_np521_addcarryx_u64(&x304, &x305, x303, x250, x286);
|
|
fiat_np521_addcarryx_u64(&x306, &x307, x305, x252, x288);
|
|
fiat_np521_addcarryx_u64(&x308, &x309, x307, x254, x290);
|
|
fiat_np521_mulx_u64(&x310, &x311, x3, UINT8_C(0x3d));
|
|
fiat_np521_mulx_u64(&x312, &x313, x3, UINT64_C(0x2d8e03d1492d0d45));
|
|
fiat_np521_mulx_u64(&x314, &x315, x3, UINT64_C(0x5bcc6d61a8e567bc));
|
|
fiat_np521_mulx_u64(&x316, &x317, x3, UINT64_C(0xcff3d142b7756e3e));
|
|
fiat_np521_mulx_u64(&x318, &x319, x3, UINT64_C(0xdd6e23d82e49c7db));
|
|
fiat_np521_mulx_u64(&x320, &x321, x3, UINT64_C(0xd3721ef557f75e06));
|
|
fiat_np521_mulx_u64(&x322, &x323, x3, UINT64_C(0x12a78d38794573ff));
|
|
fiat_np521_mulx_u64(&x324, &x325, x3, UINT64_C(0xf707badce5547ea3));
|
|
fiat_np521_mulx_u64(&x326, &x327, x3, UINT64_C(0x137cd04dcf15dd04));
|
|
fiat_np521_addcarryx_u64(&x328, &x329, 0x0, x327, x324);
|
|
fiat_np521_addcarryx_u64(&x330, &x331, x329, x325, x322);
|
|
fiat_np521_addcarryx_u64(&x332, &x333, x331, x323, x320);
|
|
fiat_np521_addcarryx_u64(&x334, &x335, x333, x321, x318);
|
|
fiat_np521_addcarryx_u64(&x336, &x337, x335, x319, x316);
|
|
fiat_np521_addcarryx_u64(&x338, &x339, x337, x317, x314);
|
|
fiat_np521_addcarryx_u64(&x340, &x341, x339, x315, x312);
|
|
fiat_np521_addcarryx_u64(&x342, &x343, x341, x313, x310);
|
|
fiat_np521_addcarryx_u64(&x344, &x345, 0x0, x294, x326);
|
|
fiat_np521_addcarryx_u64(&x346, &x347, x345, x296, x328);
|
|
fiat_np521_addcarryx_u64(&x348, &x349, x347, x298, x330);
|
|
fiat_np521_addcarryx_u64(&x350, &x351, x349, x300, x332);
|
|
fiat_np521_addcarryx_u64(&x352, &x353, x351, x302, x334);
|
|
fiat_np521_addcarryx_u64(&x354, &x355, x353, x304, x336);
|
|
fiat_np521_addcarryx_u64(&x356, &x357, x355, x306, x338);
|
|
fiat_np521_addcarryx_u64(&x358, &x359, x357, x308, x340);
|
|
fiat_np521_addcarryx_u64(&x360, &x361, x359, ((x309 + (x255 + (x237 + x205))) + (x291 + x259)), x342);
|
|
fiat_np521_mulx_u64(&x362, &x363, x344, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x364, &x365, x362, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x366, &x367, x362, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x368, &x369, x362, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x370, &x371, x362, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x372, &x373, x362, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x374, &x375, x362, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x376, &x377, x362, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x378, &x379, x362, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x380, &x381, x362, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x382, &x383, 0x0, x381, x378);
|
|
fiat_np521_addcarryx_u64(&x384, &x385, x383, x379, x376);
|
|
fiat_np521_addcarryx_u64(&x386, &x387, x385, x377, x374);
|
|
fiat_np521_addcarryx_u64(&x388, &x389, x387, x375, x372);
|
|
fiat_np521_addcarryx_u64(&x390, &x391, x389, x373, x370);
|
|
fiat_np521_addcarryx_u64(&x392, &x393, x391, x371, x368);
|
|
fiat_np521_addcarryx_u64(&x394, &x395, x393, x369, x366);
|
|
fiat_np521_addcarryx_u64(&x396, &x397, x395, x367, x364);
|
|
fiat_np521_addcarryx_u64(&x398, &x399, 0x0, x344, x380);
|
|
fiat_np521_addcarryx_u64(&x400, &x401, x399, x346, x382);
|
|
fiat_np521_addcarryx_u64(&x402, &x403, x401, x348, x384);
|
|
fiat_np521_addcarryx_u64(&x404, &x405, x403, x350, x386);
|
|
fiat_np521_addcarryx_u64(&x406, &x407, x405, x352, x388);
|
|
fiat_np521_addcarryx_u64(&x408, &x409, x407, x354, x390);
|
|
fiat_np521_addcarryx_u64(&x410, &x411, x409, x356, x392);
|
|
fiat_np521_addcarryx_u64(&x412, &x413, x411, x358, x394);
|
|
fiat_np521_addcarryx_u64(&x414, &x415, x413, x360, x396);
|
|
fiat_np521_mulx_u64(&x416, &x417, x4, UINT8_C(0x3d));
|
|
fiat_np521_mulx_u64(&x418, &x419, x4, UINT64_C(0x2d8e03d1492d0d45));
|
|
fiat_np521_mulx_u64(&x420, &x421, x4, UINT64_C(0x5bcc6d61a8e567bc));
|
|
fiat_np521_mulx_u64(&x422, &x423, x4, UINT64_C(0xcff3d142b7756e3e));
|
|
fiat_np521_mulx_u64(&x424, &x425, x4, UINT64_C(0xdd6e23d82e49c7db));
|
|
fiat_np521_mulx_u64(&x426, &x427, x4, UINT64_C(0xd3721ef557f75e06));
|
|
fiat_np521_mulx_u64(&x428, &x429, x4, UINT64_C(0x12a78d38794573ff));
|
|
fiat_np521_mulx_u64(&x430, &x431, x4, UINT64_C(0xf707badce5547ea3));
|
|
fiat_np521_mulx_u64(&x432, &x433, x4, UINT64_C(0x137cd04dcf15dd04));
|
|
fiat_np521_addcarryx_u64(&x434, &x435, 0x0, x433, x430);
|
|
fiat_np521_addcarryx_u64(&x436, &x437, x435, x431, x428);
|
|
fiat_np521_addcarryx_u64(&x438, &x439, x437, x429, x426);
|
|
fiat_np521_addcarryx_u64(&x440, &x441, x439, x427, x424);
|
|
fiat_np521_addcarryx_u64(&x442, &x443, x441, x425, x422);
|
|
fiat_np521_addcarryx_u64(&x444, &x445, x443, x423, x420);
|
|
fiat_np521_addcarryx_u64(&x446, &x447, x445, x421, x418);
|
|
fiat_np521_addcarryx_u64(&x448, &x449, x447, x419, x416);
|
|
fiat_np521_addcarryx_u64(&x450, &x451, 0x0, x400, x432);
|
|
fiat_np521_addcarryx_u64(&x452, &x453, x451, x402, x434);
|
|
fiat_np521_addcarryx_u64(&x454, &x455, x453, x404, x436);
|
|
fiat_np521_addcarryx_u64(&x456, &x457, x455, x406, x438);
|
|
fiat_np521_addcarryx_u64(&x458, &x459, x457, x408, x440);
|
|
fiat_np521_addcarryx_u64(&x460, &x461, x459, x410, x442);
|
|
fiat_np521_addcarryx_u64(&x462, &x463, x461, x412, x444);
|
|
fiat_np521_addcarryx_u64(&x464, &x465, x463, x414, x446);
|
|
fiat_np521_addcarryx_u64(&x466, &x467, x465, ((x415 + (x361 + (x343 + x311))) + (x397 + x365)), x448);
|
|
fiat_np521_mulx_u64(&x468, &x469, x450, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x470, &x471, x468, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x472, &x473, x468, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x474, &x475, x468, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x476, &x477, x468, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x478, &x479, x468, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x480, &x481, x468, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x482, &x483, x468, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x484, &x485, x468, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x486, &x487, x468, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x488, &x489, 0x0, x487, x484);
|
|
fiat_np521_addcarryx_u64(&x490, &x491, x489, x485, x482);
|
|
fiat_np521_addcarryx_u64(&x492, &x493, x491, x483, x480);
|
|
fiat_np521_addcarryx_u64(&x494, &x495, x493, x481, x478);
|
|
fiat_np521_addcarryx_u64(&x496, &x497, x495, x479, x476);
|
|
fiat_np521_addcarryx_u64(&x498, &x499, x497, x477, x474);
|
|
fiat_np521_addcarryx_u64(&x500, &x501, x499, x475, x472);
|
|
fiat_np521_addcarryx_u64(&x502, &x503, x501, x473, x470);
|
|
fiat_np521_addcarryx_u64(&x504, &x505, 0x0, x450, x486);
|
|
fiat_np521_addcarryx_u64(&x506, &x507, x505, x452, x488);
|
|
fiat_np521_addcarryx_u64(&x508, &x509, x507, x454, x490);
|
|
fiat_np521_addcarryx_u64(&x510, &x511, x509, x456, x492);
|
|
fiat_np521_addcarryx_u64(&x512, &x513, x511, x458, x494);
|
|
fiat_np521_addcarryx_u64(&x514, &x515, x513, x460, x496);
|
|
fiat_np521_addcarryx_u64(&x516, &x517, x515, x462, x498);
|
|
fiat_np521_addcarryx_u64(&x518, &x519, x517, x464, x500);
|
|
fiat_np521_addcarryx_u64(&x520, &x521, x519, x466, x502);
|
|
fiat_np521_mulx_u64(&x522, &x523, x5, UINT8_C(0x3d));
|
|
fiat_np521_mulx_u64(&x524, &x525, x5, UINT64_C(0x2d8e03d1492d0d45));
|
|
fiat_np521_mulx_u64(&x526, &x527, x5, UINT64_C(0x5bcc6d61a8e567bc));
|
|
fiat_np521_mulx_u64(&x528, &x529, x5, UINT64_C(0xcff3d142b7756e3e));
|
|
fiat_np521_mulx_u64(&x530, &x531, x5, UINT64_C(0xdd6e23d82e49c7db));
|
|
fiat_np521_mulx_u64(&x532, &x533, x5, UINT64_C(0xd3721ef557f75e06));
|
|
fiat_np521_mulx_u64(&x534, &x535, x5, UINT64_C(0x12a78d38794573ff));
|
|
fiat_np521_mulx_u64(&x536, &x537, x5, UINT64_C(0xf707badce5547ea3));
|
|
fiat_np521_mulx_u64(&x538, &x539, x5, UINT64_C(0x137cd04dcf15dd04));
|
|
fiat_np521_addcarryx_u64(&x540, &x541, 0x0, x539, x536);
|
|
fiat_np521_addcarryx_u64(&x542, &x543, x541, x537, x534);
|
|
fiat_np521_addcarryx_u64(&x544, &x545, x543, x535, x532);
|
|
fiat_np521_addcarryx_u64(&x546, &x547, x545, x533, x530);
|
|
fiat_np521_addcarryx_u64(&x548, &x549, x547, x531, x528);
|
|
fiat_np521_addcarryx_u64(&x550, &x551, x549, x529, x526);
|
|
fiat_np521_addcarryx_u64(&x552, &x553, x551, x527, x524);
|
|
fiat_np521_addcarryx_u64(&x554, &x555, x553, x525, x522);
|
|
fiat_np521_addcarryx_u64(&x556, &x557, 0x0, x506, x538);
|
|
fiat_np521_addcarryx_u64(&x558, &x559, x557, x508, x540);
|
|
fiat_np521_addcarryx_u64(&x560, &x561, x559, x510, x542);
|
|
fiat_np521_addcarryx_u64(&x562, &x563, x561, x512, x544);
|
|
fiat_np521_addcarryx_u64(&x564, &x565, x563, x514, x546);
|
|
fiat_np521_addcarryx_u64(&x566, &x567, x565, x516, x548);
|
|
fiat_np521_addcarryx_u64(&x568, &x569, x567, x518, x550);
|
|
fiat_np521_addcarryx_u64(&x570, &x571, x569, x520, x552);
|
|
fiat_np521_addcarryx_u64(&x572, &x573, x571, ((x521 + (x467 + (x449 + x417))) + (x503 + x471)), x554);
|
|
fiat_np521_mulx_u64(&x574, &x575, x556, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x576, &x577, x574, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x578, &x579, x574, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x580, &x581, x574, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x582, &x583, x574, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x584, &x585, x574, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x586, &x587, x574, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x588, &x589, x574, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x590, &x591, x574, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x592, &x593, x574, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x594, &x595, 0x0, x593, x590);
|
|
fiat_np521_addcarryx_u64(&x596, &x597, x595, x591, x588);
|
|
fiat_np521_addcarryx_u64(&x598, &x599, x597, x589, x586);
|
|
fiat_np521_addcarryx_u64(&x600, &x601, x599, x587, x584);
|
|
fiat_np521_addcarryx_u64(&x602, &x603, x601, x585, x582);
|
|
fiat_np521_addcarryx_u64(&x604, &x605, x603, x583, x580);
|
|
fiat_np521_addcarryx_u64(&x606, &x607, x605, x581, x578);
|
|
fiat_np521_addcarryx_u64(&x608, &x609, x607, x579, x576);
|
|
fiat_np521_addcarryx_u64(&x610, &x611, 0x0, x556, x592);
|
|
fiat_np521_addcarryx_u64(&x612, &x613, x611, x558, x594);
|
|
fiat_np521_addcarryx_u64(&x614, &x615, x613, x560, x596);
|
|
fiat_np521_addcarryx_u64(&x616, &x617, x615, x562, x598);
|
|
fiat_np521_addcarryx_u64(&x618, &x619, x617, x564, x600);
|
|
fiat_np521_addcarryx_u64(&x620, &x621, x619, x566, x602);
|
|
fiat_np521_addcarryx_u64(&x622, &x623, x621, x568, x604);
|
|
fiat_np521_addcarryx_u64(&x624, &x625, x623, x570, x606);
|
|
fiat_np521_addcarryx_u64(&x626, &x627, x625, x572, x608);
|
|
fiat_np521_mulx_u64(&x628, &x629, x6, UINT8_C(0x3d));
|
|
fiat_np521_mulx_u64(&x630, &x631, x6, UINT64_C(0x2d8e03d1492d0d45));
|
|
fiat_np521_mulx_u64(&x632, &x633, x6, UINT64_C(0x5bcc6d61a8e567bc));
|
|
fiat_np521_mulx_u64(&x634, &x635, x6, UINT64_C(0xcff3d142b7756e3e));
|
|
fiat_np521_mulx_u64(&x636, &x637, x6, UINT64_C(0xdd6e23d82e49c7db));
|
|
fiat_np521_mulx_u64(&x638, &x639, x6, UINT64_C(0xd3721ef557f75e06));
|
|
fiat_np521_mulx_u64(&x640, &x641, x6, UINT64_C(0x12a78d38794573ff));
|
|
fiat_np521_mulx_u64(&x642, &x643, x6, UINT64_C(0xf707badce5547ea3));
|
|
fiat_np521_mulx_u64(&x644, &x645, x6, UINT64_C(0x137cd04dcf15dd04));
|
|
fiat_np521_addcarryx_u64(&x646, &x647, 0x0, x645, x642);
|
|
fiat_np521_addcarryx_u64(&x648, &x649, x647, x643, x640);
|
|
fiat_np521_addcarryx_u64(&x650, &x651, x649, x641, x638);
|
|
fiat_np521_addcarryx_u64(&x652, &x653, x651, x639, x636);
|
|
fiat_np521_addcarryx_u64(&x654, &x655, x653, x637, x634);
|
|
fiat_np521_addcarryx_u64(&x656, &x657, x655, x635, x632);
|
|
fiat_np521_addcarryx_u64(&x658, &x659, x657, x633, x630);
|
|
fiat_np521_addcarryx_u64(&x660, &x661, x659, x631, x628);
|
|
fiat_np521_addcarryx_u64(&x662, &x663, 0x0, x612, x644);
|
|
fiat_np521_addcarryx_u64(&x664, &x665, x663, x614, x646);
|
|
fiat_np521_addcarryx_u64(&x666, &x667, x665, x616, x648);
|
|
fiat_np521_addcarryx_u64(&x668, &x669, x667, x618, x650);
|
|
fiat_np521_addcarryx_u64(&x670, &x671, x669, x620, x652);
|
|
fiat_np521_addcarryx_u64(&x672, &x673, x671, x622, x654);
|
|
fiat_np521_addcarryx_u64(&x674, &x675, x673, x624, x656);
|
|
fiat_np521_addcarryx_u64(&x676, &x677, x675, x626, x658);
|
|
fiat_np521_addcarryx_u64(&x678, &x679, x677, ((x627 + (x573 + (x555 + x523))) + (x609 + x577)), x660);
|
|
fiat_np521_mulx_u64(&x680, &x681, x662, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x682, &x683, x680, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x684, &x685, x680, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x686, &x687, x680, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x688, &x689, x680, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x690, &x691, x680, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x692, &x693, x680, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x694, &x695, x680, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x696, &x697, x680, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x698, &x699, x680, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x700, &x701, 0x0, x699, x696);
|
|
fiat_np521_addcarryx_u64(&x702, &x703, x701, x697, x694);
|
|
fiat_np521_addcarryx_u64(&x704, &x705, x703, x695, x692);
|
|
fiat_np521_addcarryx_u64(&x706, &x707, x705, x693, x690);
|
|
fiat_np521_addcarryx_u64(&x708, &x709, x707, x691, x688);
|
|
fiat_np521_addcarryx_u64(&x710, &x711, x709, x689, x686);
|
|
fiat_np521_addcarryx_u64(&x712, &x713, x711, x687, x684);
|
|
fiat_np521_addcarryx_u64(&x714, &x715, x713, x685, x682);
|
|
fiat_np521_addcarryx_u64(&x716, &x717, 0x0, x662, x698);
|
|
fiat_np521_addcarryx_u64(&x718, &x719, x717, x664, x700);
|
|
fiat_np521_addcarryx_u64(&x720, &x721, x719, x666, x702);
|
|
fiat_np521_addcarryx_u64(&x722, &x723, x721, x668, x704);
|
|
fiat_np521_addcarryx_u64(&x724, &x725, x723, x670, x706);
|
|
fiat_np521_addcarryx_u64(&x726, &x727, x725, x672, x708);
|
|
fiat_np521_addcarryx_u64(&x728, &x729, x727, x674, x710);
|
|
fiat_np521_addcarryx_u64(&x730, &x731, x729, x676, x712);
|
|
fiat_np521_addcarryx_u64(&x732, &x733, x731, x678, x714);
|
|
fiat_np521_mulx_u64(&x734, &x735, x7, UINT8_C(0x3d));
|
|
fiat_np521_mulx_u64(&x736, &x737, x7, UINT64_C(0x2d8e03d1492d0d45));
|
|
fiat_np521_mulx_u64(&x738, &x739, x7, UINT64_C(0x5bcc6d61a8e567bc));
|
|
fiat_np521_mulx_u64(&x740, &x741, x7, UINT64_C(0xcff3d142b7756e3e));
|
|
fiat_np521_mulx_u64(&x742, &x743, x7, UINT64_C(0xdd6e23d82e49c7db));
|
|
fiat_np521_mulx_u64(&x744, &x745, x7, UINT64_C(0xd3721ef557f75e06));
|
|
fiat_np521_mulx_u64(&x746, &x747, x7, UINT64_C(0x12a78d38794573ff));
|
|
fiat_np521_mulx_u64(&x748, &x749, x7, UINT64_C(0xf707badce5547ea3));
|
|
fiat_np521_mulx_u64(&x750, &x751, x7, UINT64_C(0x137cd04dcf15dd04));
|
|
fiat_np521_addcarryx_u64(&x752, &x753, 0x0, x751, x748);
|
|
fiat_np521_addcarryx_u64(&x754, &x755, x753, x749, x746);
|
|
fiat_np521_addcarryx_u64(&x756, &x757, x755, x747, x744);
|
|
fiat_np521_addcarryx_u64(&x758, &x759, x757, x745, x742);
|
|
fiat_np521_addcarryx_u64(&x760, &x761, x759, x743, x740);
|
|
fiat_np521_addcarryx_u64(&x762, &x763, x761, x741, x738);
|
|
fiat_np521_addcarryx_u64(&x764, &x765, x763, x739, x736);
|
|
fiat_np521_addcarryx_u64(&x766, &x767, x765, x737, x734);
|
|
fiat_np521_addcarryx_u64(&x768, &x769, 0x0, x718, x750);
|
|
fiat_np521_addcarryx_u64(&x770, &x771, x769, x720, x752);
|
|
fiat_np521_addcarryx_u64(&x772, &x773, x771, x722, x754);
|
|
fiat_np521_addcarryx_u64(&x774, &x775, x773, x724, x756);
|
|
fiat_np521_addcarryx_u64(&x776, &x777, x775, x726, x758);
|
|
fiat_np521_addcarryx_u64(&x778, &x779, x777, x728, x760);
|
|
fiat_np521_addcarryx_u64(&x780, &x781, x779, x730, x762);
|
|
fiat_np521_addcarryx_u64(&x782, &x783, x781, x732, x764);
|
|
fiat_np521_addcarryx_u64(&x784, &x785, x783, ((x733 + (x679 + (x661 + x629))) + (x715 + x683)), x766);
|
|
fiat_np521_mulx_u64(&x786, &x787, x768, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x788, &x789, x786, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x790, &x791, x786, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x792, &x793, x786, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x794, &x795, x786, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x796, &x797, x786, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x798, &x799, x786, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x800, &x801, x786, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x802, &x803, x786, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x804, &x805, x786, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x806, &x807, 0x0, x805, x802);
|
|
fiat_np521_addcarryx_u64(&x808, &x809, x807, x803, x800);
|
|
fiat_np521_addcarryx_u64(&x810, &x811, x809, x801, x798);
|
|
fiat_np521_addcarryx_u64(&x812, &x813, x811, x799, x796);
|
|
fiat_np521_addcarryx_u64(&x814, &x815, x813, x797, x794);
|
|
fiat_np521_addcarryx_u64(&x816, &x817, x815, x795, x792);
|
|
fiat_np521_addcarryx_u64(&x818, &x819, x817, x793, x790);
|
|
fiat_np521_addcarryx_u64(&x820, &x821, x819, x791, x788);
|
|
fiat_np521_addcarryx_u64(&x822, &x823, 0x0, x768, x804);
|
|
fiat_np521_addcarryx_u64(&x824, &x825, x823, x770, x806);
|
|
fiat_np521_addcarryx_u64(&x826, &x827, x825, x772, x808);
|
|
fiat_np521_addcarryx_u64(&x828, &x829, x827, x774, x810);
|
|
fiat_np521_addcarryx_u64(&x830, &x831, x829, x776, x812);
|
|
fiat_np521_addcarryx_u64(&x832, &x833, x831, x778, x814);
|
|
fiat_np521_addcarryx_u64(&x834, &x835, x833, x780, x816);
|
|
fiat_np521_addcarryx_u64(&x836, &x837, x835, x782, x818);
|
|
fiat_np521_addcarryx_u64(&x838, &x839, x837, x784, x820);
|
|
fiat_np521_mulx_u64(&x840, &x841, x8, UINT8_C(0x3d));
|
|
fiat_np521_mulx_u64(&x842, &x843, x8, UINT64_C(0x2d8e03d1492d0d45));
|
|
fiat_np521_mulx_u64(&x844, &x845, x8, UINT64_C(0x5bcc6d61a8e567bc));
|
|
fiat_np521_mulx_u64(&x846, &x847, x8, UINT64_C(0xcff3d142b7756e3e));
|
|
fiat_np521_mulx_u64(&x848, &x849, x8, UINT64_C(0xdd6e23d82e49c7db));
|
|
fiat_np521_mulx_u64(&x850, &x851, x8, UINT64_C(0xd3721ef557f75e06));
|
|
fiat_np521_mulx_u64(&x852, &x853, x8, UINT64_C(0x12a78d38794573ff));
|
|
fiat_np521_mulx_u64(&x854, &x855, x8, UINT64_C(0xf707badce5547ea3));
|
|
fiat_np521_mulx_u64(&x856, &x857, x8, UINT64_C(0x137cd04dcf15dd04));
|
|
fiat_np521_addcarryx_u64(&x858, &x859, 0x0, x857, x854);
|
|
fiat_np521_addcarryx_u64(&x860, &x861, x859, x855, x852);
|
|
fiat_np521_addcarryx_u64(&x862, &x863, x861, x853, x850);
|
|
fiat_np521_addcarryx_u64(&x864, &x865, x863, x851, x848);
|
|
fiat_np521_addcarryx_u64(&x866, &x867, x865, x849, x846);
|
|
fiat_np521_addcarryx_u64(&x868, &x869, x867, x847, x844);
|
|
fiat_np521_addcarryx_u64(&x870, &x871, x869, x845, x842);
|
|
fiat_np521_addcarryx_u64(&x872, &x873, x871, x843, x840);
|
|
fiat_np521_addcarryx_u64(&x874, &x875, 0x0, x824, x856);
|
|
fiat_np521_addcarryx_u64(&x876, &x877, x875, x826, x858);
|
|
fiat_np521_addcarryx_u64(&x878, &x879, x877, x828, x860);
|
|
fiat_np521_addcarryx_u64(&x880, &x881, x879, x830, x862);
|
|
fiat_np521_addcarryx_u64(&x882, &x883, x881, x832, x864);
|
|
fiat_np521_addcarryx_u64(&x884, &x885, x883, x834, x866);
|
|
fiat_np521_addcarryx_u64(&x886, &x887, x885, x836, x868);
|
|
fiat_np521_addcarryx_u64(&x888, &x889, x887, x838, x870);
|
|
fiat_np521_addcarryx_u64(&x890, &x891, x889, ((x839 + (x785 + (x767 + x735))) + (x821 + x789)), x872);
|
|
fiat_np521_mulx_u64(&x892, &x893, x874, UINT64_C(0x1d2f5ccd79a995c7));
|
|
fiat_np521_mulx_u64(&x894, &x895, x892, UINT16_C(0x1ff));
|
|
fiat_np521_mulx_u64(&x896, &x897, x892, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x898, &x899, x892, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x900, &x901, x892, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_mulx_u64(&x902, &x903, x892, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_mulx_u64(&x904, &x905, x892, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_mulx_u64(&x906, &x907, x892, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_mulx_u64(&x908, &x909, x892, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_mulx_u64(&x910, &x911, x892, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_addcarryx_u64(&x912, &x913, 0x0, x911, x908);
|
|
fiat_np521_addcarryx_u64(&x914, &x915, x913, x909, x906);
|
|
fiat_np521_addcarryx_u64(&x916, &x917, x915, x907, x904);
|
|
fiat_np521_addcarryx_u64(&x918, &x919, x917, x905, x902);
|
|
fiat_np521_addcarryx_u64(&x920, &x921, x919, x903, x900);
|
|
fiat_np521_addcarryx_u64(&x922, &x923, x921, x901, x898);
|
|
fiat_np521_addcarryx_u64(&x924, &x925, x923, x899, x896);
|
|
fiat_np521_addcarryx_u64(&x926, &x927, x925, x897, x894);
|
|
fiat_np521_addcarryx_u64(&x928, &x929, 0x0, x874, x910);
|
|
fiat_np521_addcarryx_u64(&x930, &x931, x929, x876, x912);
|
|
fiat_np521_addcarryx_u64(&x932, &x933, x931, x878, x914);
|
|
fiat_np521_addcarryx_u64(&x934, &x935, x933, x880, x916);
|
|
fiat_np521_addcarryx_u64(&x936, &x937, x935, x882, x918);
|
|
fiat_np521_addcarryx_u64(&x938, &x939, x937, x884, x920);
|
|
fiat_np521_addcarryx_u64(&x940, &x941, x939, x886, x922);
|
|
fiat_np521_addcarryx_u64(&x942, &x943, x941, x888, x924);
|
|
fiat_np521_addcarryx_u64(&x944, &x945, x943, x890, x926);
|
|
x946 = ((x945 + (x891 + (x873 + x841))) + (x927 + x895));
|
|
fiat_np521_subborrowx_u64(&x947, &x948, 0x0, x930, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_subborrowx_u64(&x949, &x950, x948, x932, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_subborrowx_u64(&x951, &x952, x950, x934, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_subborrowx_u64(&x953, &x954, x952, x936, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_subborrowx_u64(&x955, &x956, x954, x938, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_subborrowx_u64(&x957, &x958, x956, x940, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x959, &x960, x958, x942, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x961, &x962, x960, x944, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x963, &x964, x962, x946, UINT16_C(0x1ff));
|
|
fiat_np521_subborrowx_u64(&x965, &x966, x964, 0x0, 0x0);
|
|
fiat_np521_cmovznz_u64(&x967, x966, x947, x930);
|
|
fiat_np521_cmovznz_u64(&x968, x966, x949, x932);
|
|
fiat_np521_cmovznz_u64(&x969, x966, x951, x934);
|
|
fiat_np521_cmovznz_u64(&x970, x966, x953, x936);
|
|
fiat_np521_cmovznz_u64(&x971, x966, x955, x938);
|
|
fiat_np521_cmovznz_u64(&x972, x966, x957, x940);
|
|
fiat_np521_cmovznz_u64(&x973, x966, x959, x942);
|
|
fiat_np521_cmovznz_u64(&x974, x966, x961, x944);
|
|
fiat_np521_cmovznz_u64(&x975, x966, x963, x946);
|
|
out1[0] = x967;
|
|
out1[1] = x968;
|
|
out1[2] = x969;
|
|
out1[3] = x970;
|
|
out1[4] = x971;
|
|
out1[5] = x972;
|
|
out1[6] = x973;
|
|
out1[7] = x974;
|
|
out1[8] = x975;
|
|
}
|
|
|
|
/*
|
|
* The function fiat_np521_set_one returns the field element one in the Montgomery domain.
|
|
*
|
|
* Postconditions:
|
|
* eval (from_montgomery out1) mod m = 1 mod m
|
|
* 0 ≤ eval out1 < m
|
|
*
|
|
*/
|
|
static void fiat_np521_set_one(fiat_np521_montgomery_domain_field_element out1) {
|
|
out1[0] = UINT64_C(0xfb80000000000000);
|
|
out1[1] = UINT64_C(0x28a2482470b763cd);
|
|
out1[2] = UINT64_C(0x17e2251b23bb31dc);
|
|
out1[3] = UINT64_C(0xca4019ff5b847b2d);
|
|
out1[4] = UINT64_C(0x2d73cbc3e206834);
|
|
out1[5] = 0x0;
|
|
out1[6] = 0x0;
|
|
out1[7] = 0x0;
|
|
out1[8] = 0x0;
|
|
}
|
|
|
|
/*
|
|
* The function fiat_np521_msat returns the saturated representation of the prime modulus.
|
|
*
|
|
* Postconditions:
|
|
* twos_complement_eval out1 = m
|
|
* 0 ≤ eval out1 < m
|
|
*
|
|
* Output Bounds:
|
|
* out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
|
|
*/
|
|
static void fiat_np521_msat(uint64_t out1[10]) {
|
|
out1[0] = UINT64_C(0xbb6fb71e91386409);
|
|
out1[1] = UINT64_C(0x3bb5c9b8899c47ae);
|
|
out1[2] = UINT64_C(0x7fcc0148f709a5d0);
|
|
out1[3] = UINT64_C(0x51868783bf2f966b);
|
|
out1[4] = UINT64_C(0xfffffffffffffffa);
|
|
out1[5] = UINT64_C(0xffffffffffffffff);
|
|
out1[6] = UINT64_C(0xffffffffffffffff);
|
|
out1[7] = UINT64_C(0xffffffffffffffff);
|
|
out1[8] = UINT16_C(0x1ff);
|
|
out1[9] = 0x0;
|
|
}
|
|
|
|
/*
|
|
* The function fiat_np521_divstep_precomp returns the precomputed value for Bernstein-Yang-inversion (in montgomery form).
|
|
*
|
|
* Postconditions:
|
|
* eval (from_montgomery out1) = ⌊(m - 1) / 2⌋^(if ⌊log2 m⌋ + 1 < 46 then ⌊(49 * (⌊log2 m⌋ + 1) + 80) / 17⌋ else ⌊(49 * (⌊log2 m⌋ + 1) + 57) / 17⌋)
|
|
* 0 ≤ eval out1 < m
|
|
*
|
|
* Output Bounds:
|
|
* out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
|
|
*/
|
|
static void fiat_np521_divstep_precomp(uint64_t out1[9]) {
|
|
out1[0] = UINT64_C(0x7b27a0cb33d1884b);
|
|
out1[1] = UINT64_C(0x9ef6cb011f2467d8);
|
|
out1[2] = UINT64_C(0x5fbc88e1d6e7fce);
|
|
out1[3] = UINT64_C(0xb08222d0fe97e1dc);
|
|
out1[4] = UINT64_C(0x1624870c44df3fce);
|
|
out1[5] = UINT64_C(0xb7f07b8eedbce602);
|
|
out1[6] = UINT64_C(0x62da93cf721f63bc);
|
|
out1[7] = UINT64_C(0xafd209c16c4f0d20);
|
|
out1[8] = UINT16_C(0x1c7);
|
|
}
|
|
|
|
/*
|
|
* The function fiat_np521_divstep computes a divstep.
|
|
*
|
|
* Preconditions:
|
|
* 0 ≤ eval arg4 < m
|
|
* 0 ≤ eval arg5 < m
|
|
* Postconditions:
|
|
* out1 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then 1 - arg1 else 1 + arg1)
|
|
* twos_complement_eval out2 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then twos_complement_eval arg3 else twos_complement_eval arg2)
|
|
* twos_complement_eval out3 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then ⌊(twos_complement_eval arg3 - twos_complement_eval arg2) / 2⌋ else ⌊(twos_complement_eval arg3 + (twos_complement_eval arg3 mod 2) * twos_complement_eval arg2) / 2⌋)
|
|
* eval (from_montgomery out4) mod m = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then (2 * eval (from_montgomery arg5)) mod m else (2 * eval (from_montgomery arg4)) mod m)
|
|
* eval (from_montgomery out5) mod m = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then (eval (from_montgomery arg4) - eval (from_montgomery arg4)) mod m else (eval (from_montgomery arg5) + (twos_complement_eval arg3 mod 2) * eval (from_montgomery arg4)) mod m)
|
|
* 0 ≤ eval out5 < m
|
|
* 0 ≤ eval out5 < m
|
|
* 0 ≤ eval out2 < m
|
|
* 0 ≤ eval out3 < m
|
|
*
|
|
* Input Bounds:
|
|
* arg1: [0x0 ~> 0xffffffffffffffff]
|
|
* arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
|
|
* arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
|
|
* arg4: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
|
|
* arg5: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
|
|
* Output Bounds:
|
|
* out1: [0x0 ~> 0xffffffffffffffff]
|
|
* out2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
|
|
* out3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
|
|
* out4: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
|
|
* out5: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
|
|
*/
|
|
static void fiat_np521_divstep(uint64_t* out1, uint64_t out2[10], uint64_t out3[10], uint64_t out4[9], uint64_t out5[9], uint64_t arg1, const uint64_t arg2[10], const uint64_t arg3[10], const uint64_t arg4[9], const uint64_t arg5[9]) {
|
|
uint64_t x1;
|
|
fiat_np521_uint1 x2;
|
|
fiat_np521_uint1 x3;
|
|
uint64_t x4;
|
|
fiat_np521_uint1 x5;
|
|
uint64_t x6;
|
|
uint64_t x7;
|
|
uint64_t x8;
|
|
uint64_t x9;
|
|
uint64_t x10;
|
|
uint64_t x11;
|
|
uint64_t x12;
|
|
uint64_t x13;
|
|
uint64_t x14;
|
|
uint64_t x15;
|
|
uint64_t x16;
|
|
uint64_t x17;
|
|
fiat_np521_uint1 x18;
|
|
uint64_t x19;
|
|
fiat_np521_uint1 x20;
|
|
uint64_t x21;
|
|
fiat_np521_uint1 x22;
|
|
uint64_t x23;
|
|
fiat_np521_uint1 x24;
|
|
uint64_t x25;
|
|
fiat_np521_uint1 x26;
|
|
uint64_t x27;
|
|
fiat_np521_uint1 x28;
|
|
uint64_t x29;
|
|
fiat_np521_uint1 x30;
|
|
uint64_t x31;
|
|
fiat_np521_uint1 x32;
|
|
uint64_t x33;
|
|
fiat_np521_uint1 x34;
|
|
uint64_t x35;
|
|
fiat_np521_uint1 x36;
|
|
uint64_t x37;
|
|
uint64_t x38;
|
|
uint64_t x39;
|
|
uint64_t x40;
|
|
uint64_t x41;
|
|
uint64_t x42;
|
|
uint64_t x43;
|
|
uint64_t x44;
|
|
uint64_t x45;
|
|
uint64_t x46;
|
|
uint64_t x47;
|
|
uint64_t x48;
|
|
uint64_t x49;
|
|
uint64_t x50;
|
|
uint64_t x51;
|
|
uint64_t x52;
|
|
uint64_t x53;
|
|
uint64_t x54;
|
|
uint64_t x55;
|
|
uint64_t x56;
|
|
fiat_np521_uint1 x57;
|
|
uint64_t x58;
|
|
fiat_np521_uint1 x59;
|
|
uint64_t x60;
|
|
fiat_np521_uint1 x61;
|
|
uint64_t x62;
|
|
fiat_np521_uint1 x63;
|
|
uint64_t x64;
|
|
fiat_np521_uint1 x65;
|
|
uint64_t x66;
|
|
fiat_np521_uint1 x67;
|
|
uint64_t x68;
|
|
fiat_np521_uint1 x69;
|
|
uint64_t x70;
|
|
fiat_np521_uint1 x71;
|
|
uint64_t x72;
|
|
fiat_np521_uint1 x73;
|
|
uint64_t x74;
|
|
fiat_np521_uint1 x75;
|
|
uint64_t x76;
|
|
fiat_np521_uint1 x77;
|
|
uint64_t x78;
|
|
fiat_np521_uint1 x79;
|
|
uint64_t x80;
|
|
fiat_np521_uint1 x81;
|
|
uint64_t x82;
|
|
fiat_np521_uint1 x83;
|
|
uint64_t x84;
|
|
fiat_np521_uint1 x85;
|
|
uint64_t x86;
|
|
fiat_np521_uint1 x87;
|
|
uint64_t x88;
|
|
fiat_np521_uint1 x89;
|
|
uint64_t x90;
|
|
fiat_np521_uint1 x91;
|
|
uint64_t x92;
|
|
fiat_np521_uint1 x93;
|
|
uint64_t x94;
|
|
uint64_t x95;
|
|
uint64_t x96;
|
|
uint64_t x97;
|
|
uint64_t x98;
|
|
uint64_t x99;
|
|
uint64_t x100;
|
|
uint64_t x101;
|
|
uint64_t x102;
|
|
uint64_t x103;
|
|
fiat_np521_uint1 x104;
|
|
uint64_t x105;
|
|
fiat_np521_uint1 x106;
|
|
uint64_t x107;
|
|
fiat_np521_uint1 x108;
|
|
uint64_t x109;
|
|
fiat_np521_uint1 x110;
|
|
uint64_t x111;
|
|
fiat_np521_uint1 x112;
|
|
uint64_t x113;
|
|
fiat_np521_uint1 x114;
|
|
uint64_t x115;
|
|
fiat_np521_uint1 x116;
|
|
uint64_t x117;
|
|
fiat_np521_uint1 x118;
|
|
uint64_t x119;
|
|
fiat_np521_uint1 x120;
|
|
uint64_t x121;
|
|
uint64_t x122;
|
|
fiat_np521_uint1 x123;
|
|
uint64_t x124;
|
|
fiat_np521_uint1 x125;
|
|
uint64_t x126;
|
|
fiat_np521_uint1 x127;
|
|
uint64_t x128;
|
|
fiat_np521_uint1 x129;
|
|
uint64_t x130;
|
|
fiat_np521_uint1 x131;
|
|
uint64_t x132;
|
|
fiat_np521_uint1 x133;
|
|
uint64_t x134;
|
|
fiat_np521_uint1 x135;
|
|
uint64_t x136;
|
|
fiat_np521_uint1 x137;
|
|
uint64_t x138;
|
|
fiat_np521_uint1 x139;
|
|
uint64_t x140;
|
|
uint64_t x141;
|
|
uint64_t x142;
|
|
uint64_t x143;
|
|
uint64_t x144;
|
|
uint64_t x145;
|
|
uint64_t x146;
|
|
uint64_t x147;
|
|
uint64_t x148;
|
|
fiat_np521_uint1 x149;
|
|
uint64_t x150;
|
|
uint64_t x151;
|
|
uint64_t x152;
|
|
uint64_t x153;
|
|
uint64_t x154;
|
|
uint64_t x155;
|
|
uint64_t x156;
|
|
uint64_t x157;
|
|
uint64_t x158;
|
|
uint64_t x159;
|
|
uint64_t x160;
|
|
fiat_np521_uint1 x161;
|
|
uint64_t x162;
|
|
fiat_np521_uint1 x163;
|
|
uint64_t x164;
|
|
fiat_np521_uint1 x165;
|
|
uint64_t x166;
|
|
fiat_np521_uint1 x167;
|
|
uint64_t x168;
|
|
fiat_np521_uint1 x169;
|
|
uint64_t x170;
|
|
fiat_np521_uint1 x171;
|
|
uint64_t x172;
|
|
fiat_np521_uint1 x173;
|
|
uint64_t x174;
|
|
fiat_np521_uint1 x175;
|
|
uint64_t x176;
|
|
fiat_np521_uint1 x177;
|
|
uint64_t x178;
|
|
fiat_np521_uint1 x179;
|
|
uint64_t x180;
|
|
uint64_t x181;
|
|
uint64_t x182;
|
|
uint64_t x183;
|
|
uint64_t x184;
|
|
uint64_t x185;
|
|
uint64_t x186;
|
|
uint64_t x187;
|
|
uint64_t x188;
|
|
uint64_t x189;
|
|
fiat_np521_uint1 x190;
|
|
uint64_t x191;
|
|
fiat_np521_uint1 x192;
|
|
uint64_t x193;
|
|
fiat_np521_uint1 x194;
|
|
uint64_t x195;
|
|
fiat_np521_uint1 x196;
|
|
uint64_t x197;
|
|
fiat_np521_uint1 x198;
|
|
uint64_t x199;
|
|
fiat_np521_uint1 x200;
|
|
uint64_t x201;
|
|
fiat_np521_uint1 x202;
|
|
uint64_t x203;
|
|
fiat_np521_uint1 x204;
|
|
uint64_t x205;
|
|
fiat_np521_uint1 x206;
|
|
uint64_t x207;
|
|
fiat_np521_uint1 x208;
|
|
uint64_t x209;
|
|
fiat_np521_uint1 x210;
|
|
uint64_t x211;
|
|
fiat_np521_uint1 x212;
|
|
uint64_t x213;
|
|
fiat_np521_uint1 x214;
|
|
uint64_t x215;
|
|
fiat_np521_uint1 x216;
|
|
uint64_t x217;
|
|
fiat_np521_uint1 x218;
|
|
uint64_t x219;
|
|
fiat_np521_uint1 x220;
|
|
uint64_t x221;
|
|
fiat_np521_uint1 x222;
|
|
uint64_t x223;
|
|
fiat_np521_uint1 x224;
|
|
uint64_t x225;
|
|
fiat_np521_uint1 x226;
|
|
uint64_t x227;
|
|
fiat_np521_uint1 x228;
|
|
uint64_t x229;
|
|
uint64_t x230;
|
|
uint64_t x231;
|
|
uint64_t x232;
|
|
uint64_t x233;
|
|
uint64_t x234;
|
|
uint64_t x235;
|
|
uint64_t x236;
|
|
uint64_t x237;
|
|
uint64_t x238;
|
|
uint64_t x239;
|
|
uint64_t x240;
|
|
uint64_t x241;
|
|
uint64_t x242;
|
|
uint64_t x243;
|
|
uint64_t x244;
|
|
uint64_t x245;
|
|
uint64_t x246;
|
|
uint64_t x247;
|
|
uint64_t x248;
|
|
uint64_t x249;
|
|
uint64_t x250;
|
|
uint64_t x251;
|
|
uint64_t x252;
|
|
uint64_t x253;
|
|
uint64_t x254;
|
|
uint64_t x255;
|
|
uint64_t x256;
|
|
fiat_np521_addcarryx_u64(&x1, &x2, 0x0, (~arg1), 0x1);
|
|
x3 = (fiat_np521_uint1)((fiat_np521_uint1)(x1 >> 63) & (fiat_np521_uint1)((arg3[0]) & 0x1));
|
|
fiat_np521_addcarryx_u64(&x4, &x5, 0x0, (~arg1), 0x1);
|
|
fiat_np521_cmovznz_u64(&x6, x3, arg1, x4);
|
|
fiat_np521_cmovznz_u64(&x7, x3, (arg2[0]), (arg3[0]));
|
|
fiat_np521_cmovznz_u64(&x8, x3, (arg2[1]), (arg3[1]));
|
|
fiat_np521_cmovznz_u64(&x9, x3, (arg2[2]), (arg3[2]));
|
|
fiat_np521_cmovznz_u64(&x10, x3, (arg2[3]), (arg3[3]));
|
|
fiat_np521_cmovznz_u64(&x11, x3, (arg2[4]), (arg3[4]));
|
|
fiat_np521_cmovznz_u64(&x12, x3, (arg2[5]), (arg3[5]));
|
|
fiat_np521_cmovznz_u64(&x13, x3, (arg2[6]), (arg3[6]));
|
|
fiat_np521_cmovznz_u64(&x14, x3, (arg2[7]), (arg3[7]));
|
|
fiat_np521_cmovznz_u64(&x15, x3, (arg2[8]), (arg3[8]));
|
|
fiat_np521_cmovznz_u64(&x16, x3, (arg2[9]), (arg3[9]));
|
|
fiat_np521_addcarryx_u64(&x17, &x18, 0x0, 0x1, (~(arg2[0])));
|
|
fiat_np521_addcarryx_u64(&x19, &x20, x18, 0x0, (~(arg2[1])));
|
|
fiat_np521_addcarryx_u64(&x21, &x22, x20, 0x0, (~(arg2[2])));
|
|
fiat_np521_addcarryx_u64(&x23, &x24, x22, 0x0, (~(arg2[3])));
|
|
fiat_np521_addcarryx_u64(&x25, &x26, x24, 0x0, (~(arg2[4])));
|
|
fiat_np521_addcarryx_u64(&x27, &x28, x26, 0x0, (~(arg2[5])));
|
|
fiat_np521_addcarryx_u64(&x29, &x30, x28, 0x0, (~(arg2[6])));
|
|
fiat_np521_addcarryx_u64(&x31, &x32, x30, 0x0, (~(arg2[7])));
|
|
fiat_np521_addcarryx_u64(&x33, &x34, x32, 0x0, (~(arg2[8])));
|
|
fiat_np521_addcarryx_u64(&x35, &x36, x34, 0x0, (~(arg2[9])));
|
|
fiat_np521_cmovznz_u64(&x37, x3, (arg3[0]), x17);
|
|
fiat_np521_cmovznz_u64(&x38, x3, (arg3[1]), x19);
|
|
fiat_np521_cmovznz_u64(&x39, x3, (arg3[2]), x21);
|
|
fiat_np521_cmovznz_u64(&x40, x3, (arg3[3]), x23);
|
|
fiat_np521_cmovznz_u64(&x41, x3, (arg3[4]), x25);
|
|
fiat_np521_cmovznz_u64(&x42, x3, (arg3[5]), x27);
|
|
fiat_np521_cmovznz_u64(&x43, x3, (arg3[6]), x29);
|
|
fiat_np521_cmovznz_u64(&x44, x3, (arg3[7]), x31);
|
|
fiat_np521_cmovznz_u64(&x45, x3, (arg3[8]), x33);
|
|
fiat_np521_cmovznz_u64(&x46, x3, (arg3[9]), x35);
|
|
fiat_np521_cmovznz_u64(&x47, x3, (arg4[0]), (arg5[0]));
|
|
fiat_np521_cmovznz_u64(&x48, x3, (arg4[1]), (arg5[1]));
|
|
fiat_np521_cmovznz_u64(&x49, x3, (arg4[2]), (arg5[2]));
|
|
fiat_np521_cmovznz_u64(&x50, x3, (arg4[3]), (arg5[3]));
|
|
fiat_np521_cmovznz_u64(&x51, x3, (arg4[4]), (arg5[4]));
|
|
fiat_np521_cmovznz_u64(&x52, x3, (arg4[5]), (arg5[5]));
|
|
fiat_np521_cmovznz_u64(&x53, x3, (arg4[6]), (arg5[6]));
|
|
fiat_np521_cmovznz_u64(&x54, x3, (arg4[7]), (arg5[7]));
|
|
fiat_np521_cmovznz_u64(&x55, x3, (arg4[8]), (arg5[8]));
|
|
fiat_np521_addcarryx_u64(&x56, &x57, 0x0, x47, x47);
|
|
fiat_np521_addcarryx_u64(&x58, &x59, x57, x48, x48);
|
|
fiat_np521_addcarryx_u64(&x60, &x61, x59, x49, x49);
|
|
fiat_np521_addcarryx_u64(&x62, &x63, x61, x50, x50);
|
|
fiat_np521_addcarryx_u64(&x64, &x65, x63, x51, x51);
|
|
fiat_np521_addcarryx_u64(&x66, &x67, x65, x52, x52);
|
|
fiat_np521_addcarryx_u64(&x68, &x69, x67, x53, x53);
|
|
fiat_np521_addcarryx_u64(&x70, &x71, x69, x54, x54);
|
|
fiat_np521_addcarryx_u64(&x72, &x73, x71, x55, x55);
|
|
fiat_np521_subborrowx_u64(&x74, &x75, 0x0, x56, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_subborrowx_u64(&x76, &x77, x75, x58, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_subborrowx_u64(&x78, &x79, x77, x60, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_subborrowx_u64(&x80, &x81, x79, x62, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_subborrowx_u64(&x82, &x83, x81, x64, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_subborrowx_u64(&x84, &x85, x83, x66, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x86, &x87, x85, x68, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x88, &x89, x87, x70, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x90, &x91, x89, x72, UINT16_C(0x1ff));
|
|
fiat_np521_subborrowx_u64(&x92, &x93, x91, x73, 0x0);
|
|
x94 = (arg4[8]);
|
|
x95 = (arg4[7]);
|
|
x96 = (arg4[6]);
|
|
x97 = (arg4[5]);
|
|
x98 = (arg4[4]);
|
|
x99 = (arg4[3]);
|
|
x100 = (arg4[2]);
|
|
x101 = (arg4[1]);
|
|
x102 = (arg4[0]);
|
|
fiat_np521_subborrowx_u64(&x103, &x104, 0x0, 0x0, x102);
|
|
fiat_np521_subborrowx_u64(&x105, &x106, x104, 0x0, x101);
|
|
fiat_np521_subborrowx_u64(&x107, &x108, x106, 0x0, x100);
|
|
fiat_np521_subborrowx_u64(&x109, &x110, x108, 0x0, x99);
|
|
fiat_np521_subborrowx_u64(&x111, &x112, x110, 0x0, x98);
|
|
fiat_np521_subborrowx_u64(&x113, &x114, x112, 0x0, x97);
|
|
fiat_np521_subborrowx_u64(&x115, &x116, x114, 0x0, x96);
|
|
fiat_np521_subborrowx_u64(&x117, &x118, x116, 0x0, x95);
|
|
fiat_np521_subborrowx_u64(&x119, &x120, x118, 0x0, x94);
|
|
fiat_np521_cmovznz_u64(&x121, x120, 0x0, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_addcarryx_u64(&x122, &x123, 0x0, x103, (x121 & UINT64_C(0xbb6fb71e91386409)));
|
|
fiat_np521_addcarryx_u64(&x124, &x125, x123, x105, (x121 & UINT64_C(0x3bb5c9b8899c47ae)));
|
|
fiat_np521_addcarryx_u64(&x126, &x127, x125, x107, (x121 & UINT64_C(0x7fcc0148f709a5d0)));
|
|
fiat_np521_addcarryx_u64(&x128, &x129, x127, x109, (x121 & UINT64_C(0x51868783bf2f966b)));
|
|
fiat_np521_addcarryx_u64(&x130, &x131, x129, x111, (x121 & UINT64_C(0xfffffffffffffffa)));
|
|
fiat_np521_addcarryx_u64(&x132, &x133, x131, x113, x121);
|
|
fiat_np521_addcarryx_u64(&x134, &x135, x133, x115, x121);
|
|
fiat_np521_addcarryx_u64(&x136, &x137, x135, x117, x121);
|
|
fiat_np521_addcarryx_u64(&x138, &x139, x137, x119, (x121 & UINT16_C(0x1ff)));
|
|
fiat_np521_cmovznz_u64(&x140, x3, (arg5[0]), x122);
|
|
fiat_np521_cmovznz_u64(&x141, x3, (arg5[1]), x124);
|
|
fiat_np521_cmovznz_u64(&x142, x3, (arg5[2]), x126);
|
|
fiat_np521_cmovznz_u64(&x143, x3, (arg5[3]), x128);
|
|
fiat_np521_cmovznz_u64(&x144, x3, (arg5[4]), x130);
|
|
fiat_np521_cmovznz_u64(&x145, x3, (arg5[5]), x132);
|
|
fiat_np521_cmovznz_u64(&x146, x3, (arg5[6]), x134);
|
|
fiat_np521_cmovznz_u64(&x147, x3, (arg5[7]), x136);
|
|
fiat_np521_cmovznz_u64(&x148, x3, (arg5[8]), x138);
|
|
x149 = (fiat_np521_uint1)(x37 & 0x1);
|
|
fiat_np521_cmovznz_u64(&x150, x149, 0x0, x7);
|
|
fiat_np521_cmovznz_u64(&x151, x149, 0x0, x8);
|
|
fiat_np521_cmovznz_u64(&x152, x149, 0x0, x9);
|
|
fiat_np521_cmovznz_u64(&x153, x149, 0x0, x10);
|
|
fiat_np521_cmovznz_u64(&x154, x149, 0x0, x11);
|
|
fiat_np521_cmovznz_u64(&x155, x149, 0x0, x12);
|
|
fiat_np521_cmovznz_u64(&x156, x149, 0x0, x13);
|
|
fiat_np521_cmovznz_u64(&x157, x149, 0x0, x14);
|
|
fiat_np521_cmovznz_u64(&x158, x149, 0x0, x15);
|
|
fiat_np521_cmovznz_u64(&x159, x149, 0x0, x16);
|
|
fiat_np521_addcarryx_u64(&x160, &x161, 0x0, x37, x150);
|
|
fiat_np521_addcarryx_u64(&x162, &x163, x161, x38, x151);
|
|
fiat_np521_addcarryx_u64(&x164, &x165, x163, x39, x152);
|
|
fiat_np521_addcarryx_u64(&x166, &x167, x165, x40, x153);
|
|
fiat_np521_addcarryx_u64(&x168, &x169, x167, x41, x154);
|
|
fiat_np521_addcarryx_u64(&x170, &x171, x169, x42, x155);
|
|
fiat_np521_addcarryx_u64(&x172, &x173, x171, x43, x156);
|
|
fiat_np521_addcarryx_u64(&x174, &x175, x173, x44, x157);
|
|
fiat_np521_addcarryx_u64(&x176, &x177, x175, x45, x158);
|
|
fiat_np521_addcarryx_u64(&x178, &x179, x177, x46, x159);
|
|
fiat_np521_cmovznz_u64(&x180, x149, 0x0, x47);
|
|
fiat_np521_cmovznz_u64(&x181, x149, 0x0, x48);
|
|
fiat_np521_cmovznz_u64(&x182, x149, 0x0, x49);
|
|
fiat_np521_cmovznz_u64(&x183, x149, 0x0, x50);
|
|
fiat_np521_cmovznz_u64(&x184, x149, 0x0, x51);
|
|
fiat_np521_cmovznz_u64(&x185, x149, 0x0, x52);
|
|
fiat_np521_cmovznz_u64(&x186, x149, 0x0, x53);
|
|
fiat_np521_cmovznz_u64(&x187, x149, 0x0, x54);
|
|
fiat_np521_cmovznz_u64(&x188, x149, 0x0, x55);
|
|
fiat_np521_addcarryx_u64(&x189, &x190, 0x0, x140, x180);
|
|
fiat_np521_addcarryx_u64(&x191, &x192, x190, x141, x181);
|
|
fiat_np521_addcarryx_u64(&x193, &x194, x192, x142, x182);
|
|
fiat_np521_addcarryx_u64(&x195, &x196, x194, x143, x183);
|
|
fiat_np521_addcarryx_u64(&x197, &x198, x196, x144, x184);
|
|
fiat_np521_addcarryx_u64(&x199, &x200, x198, x145, x185);
|
|
fiat_np521_addcarryx_u64(&x201, &x202, x200, x146, x186);
|
|
fiat_np521_addcarryx_u64(&x203, &x204, x202, x147, x187);
|
|
fiat_np521_addcarryx_u64(&x205, &x206, x204, x148, x188);
|
|
fiat_np521_subborrowx_u64(&x207, &x208, 0x0, x189, UINT64_C(0xbb6fb71e91386409));
|
|
fiat_np521_subborrowx_u64(&x209, &x210, x208, x191, UINT64_C(0x3bb5c9b8899c47ae));
|
|
fiat_np521_subborrowx_u64(&x211, &x212, x210, x193, UINT64_C(0x7fcc0148f709a5d0));
|
|
fiat_np521_subborrowx_u64(&x213, &x214, x212, x195, UINT64_C(0x51868783bf2f966b));
|
|
fiat_np521_subborrowx_u64(&x215, &x216, x214, x197, UINT64_C(0xfffffffffffffffa));
|
|
fiat_np521_subborrowx_u64(&x217, &x218, x216, x199, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x219, &x220, x218, x201, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x221, &x222, x220, x203, UINT64_C(0xffffffffffffffff));
|
|
fiat_np521_subborrowx_u64(&x223, &x224, x222, x205, UINT16_C(0x1ff));
|
|
fiat_np521_subborrowx_u64(&x225, &x226, x224, x206, 0x0);
|
|
fiat_np521_addcarryx_u64(&x227, &x228, 0x0, x6, 0x1);
|
|
x229 = ((x160 >> 1) | ((x162 << 63) & UINT64_C(0xffffffffffffffff)));
|
|
x230 = ((x162 >> 1) | ((x164 << 63) & UINT64_C(0xffffffffffffffff)));
|
|
x231 = ((x164 >> 1) | ((x166 << 63) & UINT64_C(0xffffffffffffffff)));
|
|
x232 = ((x166 >> 1) | ((x168 << 63) & UINT64_C(0xffffffffffffffff)));
|
|
x233 = ((x168 >> 1) | ((x170 << 63) & UINT64_C(0xffffffffffffffff)));
|
|
x234 = ((x170 >> 1) | ((x172 << 63) & UINT64_C(0xffffffffffffffff)));
|
|
x235 = ((x172 >> 1) | ((x174 << 63) & UINT64_C(0xffffffffffffffff)));
|
|
x236 = ((x174 >> 1) | ((x176 << 63) & UINT64_C(0xffffffffffffffff)));
|
|
x237 = ((x176 >> 1) | ((x178 << 63) & UINT64_C(0xffffffffffffffff)));
|
|
x238 = ((x178 & UINT64_C(0x8000000000000000)) | (x178 >> 1));
|
|
fiat_np521_cmovznz_u64(&x239, x93, x74, x56);
|
|
fiat_np521_cmovznz_u64(&x240, x93, x76, x58);
|
|
fiat_np521_cmovznz_u64(&x241, x93, x78, x60);
|
|
fiat_np521_cmovznz_u64(&x242, x93, x80, x62);
|
|
fiat_np521_cmovznz_u64(&x243, x93, x82, x64);
|
|
fiat_np521_cmovznz_u64(&x244, x93, x84, x66);
|
|
fiat_np521_cmovznz_u64(&x245, x93, x86, x68);
|
|
fiat_np521_cmovznz_u64(&x246, x93, x88, x70);
|
|
fiat_np521_cmovznz_u64(&x247, x93, x90, x72);
|
|
fiat_np521_cmovznz_u64(&x248, x226, x207, x189);
|
|
fiat_np521_cmovznz_u64(&x249, x226, x209, x191);
|
|
fiat_np521_cmovznz_u64(&x250, x226, x211, x193);
|
|
fiat_np521_cmovznz_u64(&x251, x226, x213, x195);
|
|
fiat_np521_cmovznz_u64(&x252, x226, x215, x197);
|
|
fiat_np521_cmovznz_u64(&x253, x226, x217, x199);
|
|
fiat_np521_cmovznz_u64(&x254, x226, x219, x201);
|
|
fiat_np521_cmovznz_u64(&x255, x226, x221, x203);
|
|
fiat_np521_cmovznz_u64(&x256, x226, x223, x205);
|
|
*out1 = x227;
|
|
out2[0] = x7;
|
|
out2[1] = x8;
|
|
out2[2] = x9;
|
|
out2[3] = x10;
|
|
out2[4] = x11;
|
|
out2[5] = x12;
|
|
out2[6] = x13;
|
|
out2[7] = x14;
|
|
out2[8] = x15;
|
|
out2[9] = x16;
|
|
out3[0] = x229;
|
|
out3[1] = x230;
|
|
out3[2] = x231;
|
|
out3[3] = x232;
|
|
out3[4] = x233;
|
|
out3[5] = x234;
|
|
out3[6] = x235;
|
|
out3[7] = x236;
|
|
out3[8] = x237;
|
|
out3[9] = x238;
|
|
out4[0] = x239;
|
|
out4[1] = x240;
|
|
out4[2] = x241;
|
|
out4[3] = x242;
|
|
out4[4] = x243;
|
|
out4[5] = x244;
|
|
out4[6] = x245;
|
|
out4[7] = x246;
|
|
out4[8] = x247;
|
|
out5[0] = x248;
|
|
out5[1] = x249;
|
|
out5[2] = x250;
|
|
out5[3] = x251;
|
|
out5[4] = x252;
|
|
out5[5] = x253;
|
|
out5[6] = x254;
|
|
out5[7] = x255;
|
|
out5[8] = x256;
|
|
}
|
|
|
|
/*
|
|
* The function fiat_np521_to_bytes serializes a field element NOT in the Montgomery domain to bytes in little-endian order.
|
|
*
|
|
* Preconditions:
|
|
* 0 ≤ eval arg1 < m
|
|
* Postconditions:
|
|
* out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..65]
|
|
*
|
|
* Input Bounds:
|
|
* arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0x1ff]]
|
|
* Output Bounds:
|
|
* out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0x1]]
|
|
*/
|
|
static void fiat_np521_to_bytes(uint8_t out1[66], const uint64_t arg1[9]) {
|
|
uint64_t x1;
|
|
uint64_t x2;
|
|
uint64_t x3;
|
|
uint64_t x4;
|
|
uint64_t x5;
|
|
uint64_t x6;
|
|
uint64_t x7;
|
|
uint64_t x8;
|
|
uint64_t x9;
|
|
uint8_t x10;
|
|
uint64_t x11;
|
|
uint8_t x12;
|
|
uint64_t x13;
|
|
uint8_t x14;
|
|
uint64_t x15;
|
|
uint8_t x16;
|
|
uint64_t x17;
|
|
uint8_t x18;
|
|
uint64_t x19;
|
|
uint8_t x20;
|
|
uint64_t x21;
|
|
uint8_t x22;
|
|
uint8_t x23;
|
|
uint8_t x24;
|
|
uint64_t x25;
|
|
uint8_t x26;
|
|
uint64_t x27;
|
|
uint8_t x28;
|
|
uint64_t x29;
|
|
uint8_t x30;
|
|
uint64_t x31;
|
|
uint8_t x32;
|
|
uint64_t x33;
|
|
uint8_t x34;
|
|
uint64_t x35;
|
|
uint8_t x36;
|
|
uint8_t x37;
|
|
uint8_t x38;
|
|
uint64_t x39;
|
|
uint8_t x40;
|
|
uint64_t x41;
|
|
uint8_t x42;
|
|
uint64_t x43;
|
|
uint8_t x44;
|
|
uint64_t x45;
|
|
uint8_t x46;
|
|
uint64_t x47;
|
|
uint8_t x48;
|
|
uint64_t x49;
|
|
uint8_t x50;
|
|
uint8_t x51;
|
|
uint8_t x52;
|
|
uint64_t x53;
|
|
uint8_t x54;
|
|
uint64_t x55;
|
|
uint8_t x56;
|
|
uint64_t x57;
|
|
uint8_t x58;
|
|
uint64_t x59;
|
|
uint8_t x60;
|
|
uint64_t x61;
|
|
uint8_t x62;
|
|
uint64_t x63;
|
|
uint8_t x64;
|
|
uint8_t x65;
|
|
uint8_t x66;
|
|
uint64_t x67;
|
|
uint8_t x68;
|
|
uint64_t x69;
|
|
uint8_t x70;
|
|
uint64_t x71;
|
|
uint8_t x72;
|
|
uint64_t x73;
|
|
uint8_t x74;
|
|
uint64_t x75;
|
|
uint8_t x76;
|
|
uint64_t x77;
|
|
uint8_t x78;
|
|
uint8_t x79;
|
|
uint8_t x80;
|
|
uint64_t x81;
|
|
uint8_t x82;
|
|
uint64_t x83;
|
|
uint8_t x84;
|
|
uint64_t x85;
|
|
uint8_t x86;
|
|
uint64_t x87;
|
|
uint8_t x88;
|
|
uint64_t x89;
|
|
uint8_t x90;
|
|
uint64_t x91;
|
|
uint8_t x92;
|
|
uint8_t x93;
|
|
uint8_t x94;
|
|
uint64_t x95;
|
|
uint8_t x96;
|
|
uint64_t x97;
|
|
uint8_t x98;
|
|
uint64_t x99;
|
|
uint8_t x100;
|
|
uint64_t x101;
|
|
uint8_t x102;
|
|
uint64_t x103;
|
|
uint8_t x104;
|
|
uint64_t x105;
|
|
uint8_t x106;
|
|
uint8_t x107;
|
|
uint8_t x108;
|
|
uint64_t x109;
|
|
uint8_t x110;
|
|
uint64_t x111;
|
|
uint8_t x112;
|
|
uint64_t x113;
|
|
uint8_t x114;
|
|
uint64_t x115;
|
|
uint8_t x116;
|
|
uint64_t x117;
|
|
uint8_t x118;
|
|
uint64_t x119;
|
|
uint8_t x120;
|
|
uint8_t x121;
|
|
uint8_t x122;
|
|
fiat_np521_uint1 x123;
|
|
x1 = (arg1[8]);
|
|
x2 = (arg1[7]);
|
|
x3 = (arg1[6]);
|
|
x4 = (arg1[5]);
|
|
x5 = (arg1[4]);
|
|
x6 = (arg1[3]);
|
|
x7 = (arg1[2]);
|
|
x8 = (arg1[1]);
|
|
x9 = (arg1[0]);
|
|
x10 = (uint8_t)(x9 & UINT8_C(0xff));
|
|
x11 = (x9 >> 8);
|
|
x12 = (uint8_t)(x11 & UINT8_C(0xff));
|
|
x13 = (x11 >> 8);
|
|
x14 = (uint8_t)(x13 & UINT8_C(0xff));
|
|
x15 = (x13 >> 8);
|
|
x16 = (uint8_t)(x15 & UINT8_C(0xff));
|
|
x17 = (x15 >> 8);
|
|
x18 = (uint8_t)(x17 & UINT8_C(0xff));
|
|
x19 = (x17 >> 8);
|
|
x20 = (uint8_t)(x19 & UINT8_C(0xff));
|
|
x21 = (x19 >> 8);
|
|
x22 = (uint8_t)(x21 & UINT8_C(0xff));
|
|
x23 = (uint8_t)(x21 >> 8);
|
|
x24 = (uint8_t)(x8 & UINT8_C(0xff));
|
|
x25 = (x8 >> 8);
|
|
x26 = (uint8_t)(x25 & UINT8_C(0xff));
|
|
x27 = (x25 >> 8);
|
|
x28 = (uint8_t)(x27 & UINT8_C(0xff));
|
|
x29 = (x27 >> 8);
|
|
x30 = (uint8_t)(x29 & UINT8_C(0xff));
|
|
x31 = (x29 >> 8);
|
|
x32 = (uint8_t)(x31 & UINT8_C(0xff));
|
|
x33 = (x31 >> 8);
|
|
x34 = (uint8_t)(x33 & UINT8_C(0xff));
|
|
x35 = (x33 >> 8);
|
|
x36 = (uint8_t)(x35 & UINT8_C(0xff));
|
|
x37 = (uint8_t)(x35 >> 8);
|
|
x38 = (uint8_t)(x7 & UINT8_C(0xff));
|
|
x39 = (x7 >> 8);
|
|
x40 = (uint8_t)(x39 & UINT8_C(0xff));
|
|
x41 = (x39 >> 8);
|
|
x42 = (uint8_t)(x41 & UINT8_C(0xff));
|
|
x43 = (x41 >> 8);
|
|
x44 = (uint8_t)(x43 & UINT8_C(0xff));
|
|
x45 = (x43 >> 8);
|
|
x46 = (uint8_t)(x45 & UINT8_C(0xff));
|
|
x47 = (x45 >> 8);
|
|
x48 = (uint8_t)(x47 & UINT8_C(0xff));
|
|
x49 = (x47 >> 8);
|
|
x50 = (uint8_t)(x49 & UINT8_C(0xff));
|
|
x51 = (uint8_t)(x49 >> 8);
|
|
x52 = (uint8_t)(x6 & UINT8_C(0xff));
|
|
x53 = (x6 >> 8);
|
|
x54 = (uint8_t)(x53 & UINT8_C(0xff));
|
|
x55 = (x53 >> 8);
|
|
x56 = (uint8_t)(x55 & UINT8_C(0xff));
|
|
x57 = (x55 >> 8);
|
|
x58 = (uint8_t)(x57 & UINT8_C(0xff));
|
|
x59 = (x57 >> 8);
|
|
x60 = (uint8_t)(x59 & UINT8_C(0xff));
|
|
x61 = (x59 >> 8);
|
|
x62 = (uint8_t)(x61 & UINT8_C(0xff));
|
|
x63 = (x61 >> 8);
|
|
x64 = (uint8_t)(x63 & UINT8_C(0xff));
|
|
x65 = (uint8_t)(x63 >> 8);
|
|
x66 = (uint8_t)(x5 & UINT8_C(0xff));
|
|
x67 = (x5 >> 8);
|
|
x68 = (uint8_t)(x67 & UINT8_C(0xff));
|
|
x69 = (x67 >> 8);
|
|
x70 = (uint8_t)(x69 & UINT8_C(0xff));
|
|
x71 = (x69 >> 8);
|
|
x72 = (uint8_t)(x71 & UINT8_C(0xff));
|
|
x73 = (x71 >> 8);
|
|
x74 = (uint8_t)(x73 & UINT8_C(0xff));
|
|
x75 = (x73 >> 8);
|
|
x76 = (uint8_t)(x75 & UINT8_C(0xff));
|
|
x77 = (x75 >> 8);
|
|
x78 = (uint8_t)(x77 & UINT8_C(0xff));
|
|
x79 = (uint8_t)(x77 >> 8);
|
|
x80 = (uint8_t)(x4 & UINT8_C(0xff));
|
|
x81 = (x4 >> 8);
|
|
x82 = (uint8_t)(x81 & UINT8_C(0xff));
|
|
x83 = (x81 >> 8);
|
|
x84 = (uint8_t)(x83 & UINT8_C(0xff));
|
|
x85 = (x83 >> 8);
|
|
x86 = (uint8_t)(x85 & UINT8_C(0xff));
|
|
x87 = (x85 >> 8);
|
|
x88 = (uint8_t)(x87 & UINT8_C(0xff));
|
|
x89 = (x87 >> 8);
|
|
x90 = (uint8_t)(x89 & UINT8_C(0xff));
|
|
x91 = (x89 >> 8);
|
|
x92 = (uint8_t)(x91 & UINT8_C(0xff));
|
|
x93 = (uint8_t)(x91 >> 8);
|
|
x94 = (uint8_t)(x3 & UINT8_C(0xff));
|
|
x95 = (x3 >> 8);
|
|
x96 = (uint8_t)(x95 & UINT8_C(0xff));
|
|
x97 = (x95 >> 8);
|
|
x98 = (uint8_t)(x97 & UINT8_C(0xff));
|
|
x99 = (x97 >> 8);
|
|
x100 = (uint8_t)(x99 & UINT8_C(0xff));
|
|
x101 = (x99 >> 8);
|
|
x102 = (uint8_t)(x101 & UINT8_C(0xff));
|
|
x103 = (x101 >> 8);
|
|
x104 = (uint8_t)(x103 & UINT8_C(0xff));
|
|
x105 = (x103 >> 8);
|
|
x106 = (uint8_t)(x105 & UINT8_C(0xff));
|
|
x107 = (uint8_t)(x105 >> 8);
|
|
x108 = (uint8_t)(x2 & UINT8_C(0xff));
|
|
x109 = (x2 >> 8);
|
|
x110 = (uint8_t)(x109 & UINT8_C(0xff));
|
|
x111 = (x109 >> 8);
|
|
x112 = (uint8_t)(x111 & UINT8_C(0xff));
|
|
x113 = (x111 >> 8);
|
|
x114 = (uint8_t)(x113 & UINT8_C(0xff));
|
|
x115 = (x113 >> 8);
|
|
x116 = (uint8_t)(x115 & UINT8_C(0xff));
|
|
x117 = (x115 >> 8);
|
|
x118 = (uint8_t)(x117 & UINT8_C(0xff));
|
|
x119 = (x117 >> 8);
|
|
x120 = (uint8_t)(x119 & UINT8_C(0xff));
|
|
x121 = (uint8_t)(x119 >> 8);
|
|
x122 = (uint8_t)(x1 & UINT8_C(0xff));
|
|
x123 = (fiat_np521_uint1)(x1 >> 8);
|
|
out1[0] = x10;
|
|
out1[1] = x12;
|
|
out1[2] = x14;
|
|
out1[3] = x16;
|
|
out1[4] = x18;
|
|
out1[5] = x20;
|
|
out1[6] = x22;
|
|
out1[7] = x23;
|
|
out1[8] = x24;
|
|
out1[9] = x26;
|
|
out1[10] = x28;
|
|
out1[11] = x30;
|
|
out1[12] = x32;
|
|
out1[13] = x34;
|
|
out1[14] = x36;
|
|
out1[15] = x37;
|
|
out1[16] = x38;
|
|
out1[17] = x40;
|
|
out1[18] = x42;
|
|
out1[19] = x44;
|
|
out1[20] = x46;
|
|
out1[21] = x48;
|
|
out1[22] = x50;
|
|
out1[23] = x51;
|
|
out1[24] = x52;
|
|
out1[25] = x54;
|
|
out1[26] = x56;
|
|
out1[27] = x58;
|
|
out1[28] = x60;
|
|
out1[29] = x62;
|
|
out1[30] = x64;
|
|
out1[31] = x65;
|
|
out1[32] = x66;
|
|
out1[33] = x68;
|
|
out1[34] = x70;
|
|
out1[35] = x72;
|
|
out1[36] = x74;
|
|
out1[37] = x76;
|
|
out1[38] = x78;
|
|
out1[39] = x79;
|
|
out1[40] = x80;
|
|
out1[41] = x82;
|
|
out1[42] = x84;
|
|
out1[43] = x86;
|
|
out1[44] = x88;
|
|
out1[45] = x90;
|
|
out1[46] = x92;
|
|
out1[47] = x93;
|
|
out1[48] = x94;
|
|
out1[49] = x96;
|
|
out1[50] = x98;
|
|
out1[51] = x100;
|
|
out1[52] = x102;
|
|
out1[53] = x104;
|
|
out1[54] = x106;
|
|
out1[55] = x107;
|
|
out1[56] = x108;
|
|
out1[57] = x110;
|
|
out1[58] = x112;
|
|
out1[59] = x114;
|
|
out1[60] = x116;
|
|
out1[61] = x118;
|
|
out1[62] = x120;
|
|
out1[63] = x121;
|
|
out1[64] = x122;
|
|
out1[65] = x123;
|
|
}
|
|
|
|
/*
|
|
* The function fiat_np521_from_bytes deserializes a field element NOT in the Montgomery domain from bytes in little-endian order.
|
|
*
|
|
* Preconditions:
|
|
* 0 ≤ bytes_eval arg1 < m
|
|
* Postconditions:
|
|
* eval out1 mod m = bytes_eval arg1 mod m
|
|
* 0 ≤ eval out1 < m
|
|
*
|
|
* Input Bounds:
|
|
* arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0x1]]
|
|
* Output Bounds:
|
|
* out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0x1ff]]
|
|
*/
|
|
static void fiat_np521_from_bytes(uint64_t out1[9], const uint8_t arg1[66]) {
|
|
uint64_t x1;
|
|
uint8_t x2;
|
|
uint64_t x3;
|
|
uint64_t x4;
|
|
uint64_t x5;
|
|
uint64_t x6;
|
|
uint64_t x7;
|
|
uint64_t x8;
|
|
uint64_t x9;
|
|
uint8_t x10;
|
|
uint64_t x11;
|
|
uint64_t x12;
|
|
uint64_t x13;
|
|
uint64_t x14;
|
|
uint64_t x15;
|
|
uint64_t x16;
|
|
uint64_t x17;
|
|
uint8_t x18;
|
|
uint64_t x19;
|
|
uint64_t x20;
|
|
uint64_t x21;
|
|
uint64_t x22;
|
|
uint64_t x23;
|
|
uint64_t x24;
|
|
uint64_t x25;
|
|
uint8_t x26;
|
|
uint64_t x27;
|
|
uint64_t x28;
|
|
uint64_t x29;
|
|
uint64_t x30;
|
|
uint64_t x31;
|
|
uint64_t x32;
|
|
uint64_t x33;
|
|
uint8_t x34;
|
|
uint64_t x35;
|
|
uint64_t x36;
|
|
uint64_t x37;
|
|
uint64_t x38;
|
|
uint64_t x39;
|
|
uint64_t x40;
|
|
uint64_t x41;
|
|
uint8_t x42;
|
|
uint64_t x43;
|
|
uint64_t x44;
|
|
uint64_t x45;
|
|
uint64_t x46;
|
|
uint64_t x47;
|
|
uint64_t x48;
|
|
uint64_t x49;
|
|
uint8_t x50;
|
|
uint64_t x51;
|
|
uint64_t x52;
|
|
uint64_t x53;
|
|
uint64_t x54;
|
|
uint64_t x55;
|
|
uint64_t x56;
|
|
uint64_t x57;
|
|
uint8_t x58;
|
|
uint64_t x59;
|
|
uint64_t x60;
|
|
uint64_t x61;
|
|
uint64_t x62;
|
|
uint64_t x63;
|
|
uint64_t x64;
|
|
uint64_t x65;
|
|
uint8_t x66;
|
|
uint64_t x67;
|
|
uint64_t x68;
|
|
uint64_t x69;
|
|
uint64_t x70;
|
|
uint64_t x71;
|
|
uint64_t x72;
|
|
uint64_t x73;
|
|
uint64_t x74;
|
|
uint64_t x75;
|
|
uint64_t x76;
|
|
uint64_t x77;
|
|
uint64_t x78;
|
|
uint64_t x79;
|
|
uint64_t x80;
|
|
uint64_t x81;
|
|
uint64_t x82;
|
|
uint64_t x83;
|
|
uint64_t x84;
|
|
uint64_t x85;
|
|
uint64_t x86;
|
|
uint64_t x87;
|
|
uint64_t x88;
|
|
uint64_t x89;
|
|
uint64_t x90;
|
|
uint64_t x91;
|
|
uint64_t x92;
|
|
uint64_t x93;
|
|
uint64_t x94;
|
|
uint64_t x95;
|
|
uint64_t x96;
|
|
uint64_t x97;
|
|
uint64_t x98;
|
|
uint64_t x99;
|
|
uint64_t x100;
|
|
uint64_t x101;
|
|
uint64_t x102;
|
|
uint64_t x103;
|
|
uint64_t x104;
|
|
uint64_t x105;
|
|
uint64_t x106;
|
|
uint64_t x107;
|
|
uint64_t x108;
|
|
uint64_t x109;
|
|
uint64_t x110;
|
|
uint64_t x111;
|
|
uint64_t x112;
|
|
uint64_t x113;
|
|
uint64_t x114;
|
|
uint64_t x115;
|
|
uint64_t x116;
|
|
uint64_t x117;
|
|
uint64_t x118;
|
|
uint64_t x119;
|
|
uint64_t x120;
|
|
uint64_t x121;
|
|
uint64_t x122;
|
|
uint64_t x123;
|
|
x1 = ((uint64_t)(fiat_np521_uint1)(arg1[65]) << 8);
|
|
x2 = (arg1[64]);
|
|
x3 = ((uint64_t)(arg1[63]) << 56);
|
|
x4 = ((uint64_t)(arg1[62]) << 48);
|
|
x5 = ((uint64_t)(arg1[61]) << 40);
|
|
x6 = ((uint64_t)(arg1[60]) << 32);
|
|
x7 = ((uint64_t)(arg1[59]) << 24);
|
|
x8 = ((uint64_t)(arg1[58]) << 16);
|
|
x9 = ((uint64_t)(arg1[57]) << 8);
|
|
x10 = (arg1[56]);
|
|
x11 = ((uint64_t)(arg1[55]) << 56);
|
|
x12 = ((uint64_t)(arg1[54]) << 48);
|
|
x13 = ((uint64_t)(arg1[53]) << 40);
|
|
x14 = ((uint64_t)(arg1[52]) << 32);
|
|
x15 = ((uint64_t)(arg1[51]) << 24);
|
|
x16 = ((uint64_t)(arg1[50]) << 16);
|
|
x17 = ((uint64_t)(arg1[49]) << 8);
|
|
x18 = (arg1[48]);
|
|
x19 = ((uint64_t)(arg1[47]) << 56);
|
|
x20 = ((uint64_t)(arg1[46]) << 48);
|
|
x21 = ((uint64_t)(arg1[45]) << 40);
|
|
x22 = ((uint64_t)(arg1[44]) << 32);
|
|
x23 = ((uint64_t)(arg1[43]) << 24);
|
|
x24 = ((uint64_t)(arg1[42]) << 16);
|
|
x25 = ((uint64_t)(arg1[41]) << 8);
|
|
x26 = (arg1[40]);
|
|
x27 = ((uint64_t)(arg1[39]) << 56);
|
|
x28 = ((uint64_t)(arg1[38]) << 48);
|
|
x29 = ((uint64_t)(arg1[37]) << 40);
|
|
x30 = ((uint64_t)(arg1[36]) << 32);
|
|
x31 = ((uint64_t)(arg1[35]) << 24);
|
|
x32 = ((uint64_t)(arg1[34]) << 16);
|
|
x33 = ((uint64_t)(arg1[33]) << 8);
|
|
x34 = (arg1[32]);
|
|
x35 = ((uint64_t)(arg1[31]) << 56);
|
|
x36 = ((uint64_t)(arg1[30]) << 48);
|
|
x37 = ((uint64_t)(arg1[29]) << 40);
|
|
x38 = ((uint64_t)(arg1[28]) << 32);
|
|
x39 = ((uint64_t)(arg1[27]) << 24);
|
|
x40 = ((uint64_t)(arg1[26]) << 16);
|
|
x41 = ((uint64_t)(arg1[25]) << 8);
|
|
x42 = (arg1[24]);
|
|
x43 = ((uint64_t)(arg1[23]) << 56);
|
|
x44 = ((uint64_t)(arg1[22]) << 48);
|
|
x45 = ((uint64_t)(arg1[21]) << 40);
|
|
x46 = ((uint64_t)(arg1[20]) << 32);
|
|
x47 = ((uint64_t)(arg1[19]) << 24);
|
|
x48 = ((uint64_t)(arg1[18]) << 16);
|
|
x49 = ((uint64_t)(arg1[17]) << 8);
|
|
x50 = (arg1[16]);
|
|
x51 = ((uint64_t)(arg1[15]) << 56);
|
|
x52 = ((uint64_t)(arg1[14]) << 48);
|
|
x53 = ((uint64_t)(arg1[13]) << 40);
|
|
x54 = ((uint64_t)(arg1[12]) << 32);
|
|
x55 = ((uint64_t)(arg1[11]) << 24);
|
|
x56 = ((uint64_t)(arg1[10]) << 16);
|
|
x57 = ((uint64_t)(arg1[9]) << 8);
|
|
x58 = (arg1[8]);
|
|
x59 = ((uint64_t)(arg1[7]) << 56);
|
|
x60 = ((uint64_t)(arg1[6]) << 48);
|
|
x61 = ((uint64_t)(arg1[5]) << 40);
|
|
x62 = ((uint64_t)(arg1[4]) << 32);
|
|
x63 = ((uint64_t)(arg1[3]) << 24);
|
|
x64 = ((uint64_t)(arg1[2]) << 16);
|
|
x65 = ((uint64_t)(arg1[1]) << 8);
|
|
x66 = (arg1[0]);
|
|
x67 = (x65 + (uint64_t)x66);
|
|
x68 = (x64 + x67);
|
|
x69 = (x63 + x68);
|
|
x70 = (x62 + x69);
|
|
x71 = (x61 + x70);
|
|
x72 = (x60 + x71);
|
|
x73 = (x59 + x72);
|
|
x74 = (x57 + (uint64_t)x58);
|
|
x75 = (x56 + x74);
|
|
x76 = (x55 + x75);
|
|
x77 = (x54 + x76);
|
|
x78 = (x53 + x77);
|
|
x79 = (x52 + x78);
|
|
x80 = (x51 + x79);
|
|
x81 = (x49 + (uint64_t)x50);
|
|
x82 = (x48 + x81);
|
|
x83 = (x47 + x82);
|
|
x84 = (x46 + x83);
|
|
x85 = (x45 + x84);
|
|
x86 = (x44 + x85);
|
|
x87 = (x43 + x86);
|
|
x88 = (x41 + (uint64_t)x42);
|
|
x89 = (x40 + x88);
|
|
x90 = (x39 + x89);
|
|
x91 = (x38 + x90);
|
|
x92 = (x37 + x91);
|
|
x93 = (x36 + x92);
|
|
x94 = (x35 + x93);
|
|
x95 = (x33 + (uint64_t)x34);
|
|
x96 = (x32 + x95);
|
|
x97 = (x31 + x96);
|
|
x98 = (x30 + x97);
|
|
x99 = (x29 + x98);
|
|
x100 = (x28 + x99);
|
|
x101 = (x27 + x100);
|
|
x102 = (x25 + (uint64_t)x26);
|
|
x103 = (x24 + x102);
|
|
x104 = (x23 + x103);
|
|
x105 = (x22 + x104);
|
|
x106 = (x21 + x105);
|
|
x107 = (x20 + x106);
|
|
x108 = (x19 + x107);
|
|
x109 = (x17 + (uint64_t)x18);
|
|
x110 = (x16 + x109);
|
|
x111 = (x15 + x110);
|
|
x112 = (x14 + x111);
|
|
x113 = (x13 + x112);
|
|
x114 = (x12 + x113);
|
|
x115 = (x11 + x114);
|
|
x116 = (x9 + (uint64_t)x10);
|
|
x117 = (x8 + x116);
|
|
x118 = (x7 + x117);
|
|
x119 = (x6 + x118);
|
|
x120 = (x5 + x119);
|
|
x121 = (x4 + x120);
|
|
x122 = (x3 + x121);
|
|
x123 = (x1 + (uint64_t)x2);
|
|
out1[0] = x73;
|
|
out1[1] = x80;
|
|
out1[2] = x87;
|
|
out1[3] = x94;
|
|
out1[4] = x101;
|
|
out1[5] = x108;
|
|
out1[6] = x115;
|
|
out1[7] = x122;
|
|
out1[8] = x123;
|
|
}
|
|
|
|
/*
|
|
* The function fiat_np521_selectznz is a multi-limb conditional select.
|
|
*
|
|
* Postconditions:
|
|
* out1 = (if arg1 = 0 then arg2 else arg3)
|
|
*
|
|
* Input Bounds:
|
|
* arg1: [0x0 ~> 0x1]
|
|
* arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
|
|
* arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
|
|
* Output Bounds:
|
|
* out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
|
|
*/
|
|
static void fiat_np521_selectznz(uint64_t out1[9], fiat_np521_uint1 arg1, const uint64_t arg2[9], const uint64_t arg3[9]) {
|
|
uint64_t x1;
|
|
uint64_t x2;
|
|
uint64_t x3;
|
|
uint64_t x4;
|
|
uint64_t x5;
|
|
uint64_t x6;
|
|
uint64_t x7;
|
|
uint64_t x8;
|
|
uint64_t x9;
|
|
fiat_np521_cmovznz_u64(&x1, arg1, (arg2[0]), (arg3[0]));
|
|
fiat_np521_cmovznz_u64(&x2, arg1, (arg2[1]), (arg3[1]));
|
|
fiat_np521_cmovznz_u64(&x3, arg1, (arg2[2]), (arg3[2]));
|
|
fiat_np521_cmovznz_u64(&x4, arg1, (arg2[3]), (arg3[3]));
|
|
fiat_np521_cmovznz_u64(&x5, arg1, (arg2[4]), (arg3[4]));
|
|
fiat_np521_cmovznz_u64(&x6, arg1, (arg2[5]), (arg3[5]));
|
|
fiat_np521_cmovznz_u64(&x7, arg1, (arg2[6]), (arg3[6]));
|
|
fiat_np521_cmovznz_u64(&x8, arg1, (arg2[7]), (arg3[7]));
|
|
fiat_np521_cmovznz_u64(&x9, arg1, (arg2[8]), (arg3[8]));
|
|
out1[0] = x1;
|
|
out1[1] = x2;
|
|
out1[2] = x3;
|
|
out1[3] = x4;
|
|
out1[4] = x5;
|
|
out1[5] = x6;
|
|
out1[6] = x7;
|
|
out1[7] = x8;
|
|
out1[8] = x9;
|
|
}
|