From ddd1984a76aa9c96a12ebdf5c6786b0ee6a26ef8 Mon Sep 17 00:00:00 2001 From: "Diego F. Aranha" Date: Fri, 5 May 2023 00:09:47 +0200 Subject: [PATCH 1/4] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 606149c6a..ce6d131b8 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@ ===== [![Project stats](https://www.openhub.net/p/relic-toolkit/widgets/project_thin_badge.gif)](https://www.openhub.net/p/relic-toolkit) -[![Travis Status](https://travis-ci.org/relic-toolkit/relic.svg?branch=main)](https://travis-ci.org/relic-toolkit/relic) [![GHA Status](https://github.com/relic-toolkit/relic/actions/workflows/easy.yml/badge.svg)](https://github.com/relic-toolkit/relic/actions/workflows/easy.yml) [![GHA Status](https://github.com/relic-toolkit/relic/actions/workflows/gmp.yml/badge.svg)](https://github.com/relic-toolkit/relic/actions/workflows/gmp.yml) [![GHA Status](https://github.com/relic-toolkit/relic/actions/workflows/bls12-381.yml/badge.svg)](https://github.com/relic-toolkit/relic/actions/workflows/bls12-381.yml) From 308f100d227126503dbd3adee67b1f22b2543a4c Mon Sep 17 00:00:00 2001 From: "Diego F. Aranha" Date: Mon, 24 Jul 2023 15:04:00 +0200 Subject: [PATCH 2/4] Refactor WSIZE configuration. --- cmake/arch.cmake | 14 +- src/low/x64-fiat-381/bls12_381_q2_64.c | 10732 ++++++++++++++++++ src/low/x64-fiat-381/bls12_381_q2_bedrock.c | 1170 ++ src/low/x64-fiat-381/relic_fp_rdc_low.c | 1001 ++ src/low/x64-fiat-381/relic_fpx_add_low.c | 313 + src/low/x64-fiat-381/relic_fpx_mul_low.c | 180 + src/low/x64-fiat-381/relic_fpx_sqr_low.c | 200 + src/low/x64-hacl-25519/field.S | 0 8 files changed, 13606 insertions(+), 4 deletions(-) create mode 100644 src/low/x64-fiat-381/bls12_381_q2_64.c create mode 100644 src/low/x64-fiat-381/bls12_381_q2_bedrock.c create mode 100644 src/low/x64-fiat-381/relic_fp_rdc_low.c create mode 100644 src/low/x64-fiat-381/relic_fpx_add_low.c create mode 100644 src/low/x64-fiat-381/relic_fpx_mul_low.c create mode 100644 src/low/x64-fiat-381/relic_fpx_sqr_low.c create mode 100644 src/low/x64-hacl-25519/field.S diff --git a/cmake/arch.cmake b/cmake/arch.cmake index 5fec0cd6c..e18e554e5 100644 --- a/cmake/arch.cmake +++ b/cmake/arch.cmake @@ -41,13 +41,19 @@ if(WORD AND NOT WSIZE) endif() if(NOT WSIZE) - if(ARCH STREQUAL X86 OR ARCH STREQUAL "ARM") - set(AFLAGS "-m32") - set(WSIZE 32) - endif() + # Default is 64 bits. + set(AFLAGS "-m64") + set(WSIZE 64) if(ARCH STREQUAL "X64" OR ARCH STREQUAL "A64") set(AFLAGS "-m64") set(WSIZE 64) + elseif(ARCH STREQUAL X86 OR ARCH STREQUAL "ARM") + set(AFLAGS "-m32") + set(WSIZE 32) + elseif(ARCH STREQUAL "MSP") + set(WSIZE 16) + elseif(ARCH STREQUAL "MSP") + set(WSIZE 8) endif() endif() diff --git a/src/low/x64-fiat-381/bls12_381_q2_64.c b/src/low/x64-fiat-381/bls12_381_q2_64.c new file mode 100644 index 000000000..7310a7f1c --- /dev/null +++ b/src/low/x64-fiat-381/bls12_381_q2_64.c @@ -0,0 +1,10732 @@ +/* Autogenerated: ./src/ExtractionOCaml/word_by_word_montgomery bls12 64 4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787 */ +/* curve description: bls12 */ +/* machine_wordsize = 64 (from "64") */ +/* requested operations: (all) */ +/* m = 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab (from "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787") */ +/* */ +/* 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) */ +/* 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) */ + +#include +#include +typedef unsigned char fiat_bls12_381_q2_uint1; +typedef signed char fiat_bls12_381_q2_int1; +typedef signed __int128 fiat_bls12_381_q2_int128; +typedef unsigned __int128 fiat_bls12_381_q2_uint128; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + + +/* + * The function fiat_bls12_381_q2_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 void fiat_bls12_381_q2_addcarryx_u64(uint64_t* out1, fiat_bls12_381_q2_uint1* out2, fiat_bls12_381_q2_uint1 arg1, uint64_t arg2, uint64_t arg3) { + fiat_bls12_381_q2_uint128 x1; + uint64_t x2; + fiat_bls12_381_q2_uint1 x3; + x1 = ((arg1 + (fiat_bls12_381_q2_uint128)arg2) + arg3); + x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + x3 = (fiat_bls12_381_q2_uint1)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_bls12_381_q2_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 void fiat_bls12_381_q2_subborrowx_u64(uint64_t* out1, fiat_bls12_381_q2_uint1* out2, fiat_bls12_381_q2_uint1 arg1, uint64_t arg2, uint64_t arg3) { + fiat_bls12_381_q2_int128 x1; + fiat_bls12_381_q2_int1 x2; + uint64_t x3; + x1 = ((arg2 - (fiat_bls12_381_q2_int128)arg1) - arg3); + x2 = (fiat_bls12_381_q2_int1)(x1 >> 64); + x3 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + *out1 = x3; + *out2 = (fiat_bls12_381_q2_uint1)(0x0 - x2); +} + +/* + * The function fiat_bls12_381_q2_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 void fiat_bls12_381_q2_mulx_u64(uint64_t* out1, uint64_t* out2, uint64_t arg1, uint64_t arg2) { + fiat_bls12_381_q2_uint128 x1; + uint64_t x2; + uint64_t x3; + x1 = ((fiat_bls12_381_q2_uint128)arg1 * arg2); + x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + x3 = (uint64_t)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_bls12_381_q2_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 void fiat_bls12_381_q2_cmovznz_u64(uint64_t* out1, fiat_bls12_381_q2_uint1 arg1, uint64_t arg2, uint64_t arg3) { + fiat_bls12_381_q2_uint1 x1; + uint64_t x2; + uint64_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_bls12_381_q2_int1)(0x0 - x1) & UINT64_C(0xffffffffffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_bls12_381_q2_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 + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[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]] + */ +static void fiat_bls12_381_q2_mul(uint64_t out1[6], const uint64_t arg1[6], const uint64_t arg2[6]) { + 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; + fiat_bls12_381_q2_uint1 x20; + uint64_t x21; + fiat_bls12_381_q2_uint1 x22; + uint64_t x23; + fiat_bls12_381_q2_uint1 x24; + uint64_t x25; + fiat_bls12_381_q2_uint1 x26; + uint64_t x27; + fiat_bls12_381_q2_uint1 x28; + uint64_t x29; + uint64_t x30; + uint64_t x31; + uint64_t x32; + uint64_t x33; + uint64_t x34; + uint64_t x35; + uint64_t 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; + fiat_bls12_381_q2_uint1 x45; + uint64_t x46; + fiat_bls12_381_q2_uint1 x47; + uint64_t x48; + fiat_bls12_381_q2_uint1 x49; + uint64_t x50; + fiat_bls12_381_q2_uint1 x51; + uint64_t x52; + fiat_bls12_381_q2_uint1 x53; + uint64_t x54; + uint64_t x55; + fiat_bls12_381_q2_uint1 x56; + uint64_t x57; + fiat_bls12_381_q2_uint1 x58; + uint64_t x59; + fiat_bls12_381_q2_uint1 x60; + uint64_t x61; + fiat_bls12_381_q2_uint1 x62; + uint64_t x63; + fiat_bls12_381_q2_uint1 x64; + uint64_t x65; + fiat_bls12_381_q2_uint1 x66; + uint64_t x67; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x82; + uint64_t x83; + fiat_bls12_381_q2_uint1 x84; + uint64_t x85; + fiat_bls12_381_q2_uint1 x86; + uint64_t x87; + fiat_bls12_381_q2_uint1 x88; + uint64_t x89; + fiat_bls12_381_q2_uint1 x90; + uint64_t x91; + uint64_t x92; + fiat_bls12_381_q2_uint1 x93; + uint64_t x94; + fiat_bls12_381_q2_uint1 x95; + uint64_t x96; + fiat_bls12_381_q2_uint1 x97; + uint64_t x98; + fiat_bls12_381_q2_uint1 x99; + uint64_t x100; + fiat_bls12_381_q2_uint1 x101; + uint64_t x102; + fiat_bls12_381_q2_uint1 x103; + uint64_t x104; + fiat_bls12_381_q2_uint1 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_bls12_381_q2_uint1 x121; + uint64_t x122; + fiat_bls12_381_q2_uint1 x123; + uint64_t x124; + fiat_bls12_381_q2_uint1 x125; + uint64_t x126; + fiat_bls12_381_q2_uint1 x127; + uint64_t x128; + fiat_bls12_381_q2_uint1 x129; + uint64_t x130; + uint64_t x131; + fiat_bls12_381_q2_uint1 x132; + uint64_t x133; + fiat_bls12_381_q2_uint1 x134; + uint64_t x135; + fiat_bls12_381_q2_uint1 x136; + uint64_t x137; + fiat_bls12_381_q2_uint1 x138; + uint64_t x139; + fiat_bls12_381_q2_uint1 x140; + uint64_t x141; + fiat_bls12_381_q2_uint1 x142; + uint64_t x143; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x159; + uint64_t x160; + fiat_bls12_381_q2_uint1 x161; + uint64_t x162; + fiat_bls12_381_q2_uint1 x163; + uint64_t x164; + fiat_bls12_381_q2_uint1 x165; + uint64_t x166; + fiat_bls12_381_q2_uint1 x167; + uint64_t x168; + uint64_t x169; + fiat_bls12_381_q2_uint1 x170; + uint64_t x171; + fiat_bls12_381_q2_uint1 x172; + uint64_t x173; + fiat_bls12_381_q2_uint1 x174; + uint64_t x175; + fiat_bls12_381_q2_uint1 x176; + uint64_t x177; + fiat_bls12_381_q2_uint1 x178; + uint64_t x179; + fiat_bls12_381_q2_uint1 x180; + uint64_t x181; + fiat_bls12_381_q2_uint1 x182; + uint64_t x183; + uint64_t x184; + uint64_t x185; + uint64_t x186; + uint64_t x187; + uint64_t x188; + uint64_t x189; + uint64_t x190; + uint64_t x191; + uint64_t x192; + uint64_t x193; + uint64_t x194; + uint64_t x195; + uint64_t x196; + uint64_t x197; + fiat_bls12_381_q2_uint1 x198; + uint64_t x199; + fiat_bls12_381_q2_uint1 x200; + uint64_t x201; + fiat_bls12_381_q2_uint1 x202; + uint64_t x203; + fiat_bls12_381_q2_uint1 x204; + uint64_t x205; + fiat_bls12_381_q2_uint1 x206; + uint64_t x207; + uint64_t x208; + fiat_bls12_381_q2_uint1 x209; + uint64_t x210; + fiat_bls12_381_q2_uint1 x211; + uint64_t x212; + fiat_bls12_381_q2_uint1 x213; + uint64_t x214; + fiat_bls12_381_q2_uint1 x215; + uint64_t x216; + fiat_bls12_381_q2_uint1 x217; + uint64_t x218; + fiat_bls12_381_q2_uint1 x219; + uint64_t x220; + fiat_bls12_381_q2_uint1 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; + uint64_t x234; + uint64_t x235; + fiat_bls12_381_q2_uint1 x236; + uint64_t x237; + fiat_bls12_381_q2_uint1 x238; + uint64_t x239; + fiat_bls12_381_q2_uint1 x240; + uint64_t x241; + fiat_bls12_381_q2_uint1 x242; + uint64_t x243; + fiat_bls12_381_q2_uint1 x244; + uint64_t x245; + uint64_t x246; + fiat_bls12_381_q2_uint1 x247; + uint64_t x248; + fiat_bls12_381_q2_uint1 x249; + uint64_t x250; + fiat_bls12_381_q2_uint1 x251; + uint64_t x252; + fiat_bls12_381_q2_uint1 x253; + uint64_t x254; + fiat_bls12_381_q2_uint1 x255; + uint64_t x256; + fiat_bls12_381_q2_uint1 x257; + uint64_t x258; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x275; + uint64_t x276; + fiat_bls12_381_q2_uint1 x277; + uint64_t x278; + fiat_bls12_381_q2_uint1 x279; + uint64_t x280; + fiat_bls12_381_q2_uint1 x281; + uint64_t x282; + fiat_bls12_381_q2_uint1 x283; + uint64_t x284; + uint64_t x285; + fiat_bls12_381_q2_uint1 x286; + uint64_t x287; + fiat_bls12_381_q2_uint1 x288; + uint64_t x289; + fiat_bls12_381_q2_uint1 x290; + uint64_t x291; + fiat_bls12_381_q2_uint1 x292; + uint64_t x293; + fiat_bls12_381_q2_uint1 x294; + uint64_t x295; + fiat_bls12_381_q2_uint1 x296; + uint64_t x297; + fiat_bls12_381_q2_uint1 x298; + uint64_t x299; + uint64_t x300; + uint64_t x301; + uint64_t x302; + uint64_t x303; + uint64_t x304; + uint64_t x305; + uint64_t x306; + uint64_t x307; + uint64_t x308; + uint64_t x309; + uint64_t x310; + uint64_t x311; + uint64_t x312; + fiat_bls12_381_q2_uint1 x313; + uint64_t x314; + fiat_bls12_381_q2_uint1 x315; + uint64_t x316; + fiat_bls12_381_q2_uint1 x317; + uint64_t x318; + fiat_bls12_381_q2_uint1 x319; + uint64_t x320; + fiat_bls12_381_q2_uint1 x321; + uint64_t x322; + uint64_t x323; + fiat_bls12_381_q2_uint1 x324; + uint64_t x325; + fiat_bls12_381_q2_uint1 x326; + uint64_t x327; + fiat_bls12_381_q2_uint1 x328; + uint64_t x329; + fiat_bls12_381_q2_uint1 x330; + uint64_t x331; + fiat_bls12_381_q2_uint1 x332; + uint64_t x333; + fiat_bls12_381_q2_uint1 x334; + uint64_t x335; + fiat_bls12_381_q2_uint1 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; + uint64_t x347; + uint64_t x348; + uint64_t x349; + uint64_t x350; + uint64_t x351; + fiat_bls12_381_q2_uint1 x352; + uint64_t x353; + fiat_bls12_381_q2_uint1 x354; + uint64_t x355; + fiat_bls12_381_q2_uint1 x356; + uint64_t x357; + fiat_bls12_381_q2_uint1 x358; + uint64_t x359; + fiat_bls12_381_q2_uint1 x360; + uint64_t x361; + uint64_t x362; + fiat_bls12_381_q2_uint1 x363; + uint64_t x364; + fiat_bls12_381_q2_uint1 x365; + uint64_t x366; + fiat_bls12_381_q2_uint1 x367; + uint64_t x368; + fiat_bls12_381_q2_uint1 x369; + uint64_t x370; + fiat_bls12_381_q2_uint1 x371; + uint64_t x372; + fiat_bls12_381_q2_uint1 x373; + uint64_t x374; + fiat_bls12_381_q2_uint1 x375; + uint64_t x376; + uint64_t x377; + uint64_t x378; + uint64_t x379; + uint64_t x380; + uint64_t x381; + uint64_t x382; + uint64_t x383; + uint64_t x384; + uint64_t x385; + uint64_t x386; + uint64_t x387; + uint64_t x388; + uint64_t x389; + fiat_bls12_381_q2_uint1 x390; + uint64_t x391; + fiat_bls12_381_q2_uint1 x392; + uint64_t x393; + fiat_bls12_381_q2_uint1 x394; + uint64_t x395; + fiat_bls12_381_q2_uint1 x396; + uint64_t x397; + fiat_bls12_381_q2_uint1 x398; + uint64_t x399; + uint64_t x400; + fiat_bls12_381_q2_uint1 x401; + uint64_t x402; + fiat_bls12_381_q2_uint1 x403; + uint64_t x404; + fiat_bls12_381_q2_uint1 x405; + uint64_t x406; + fiat_bls12_381_q2_uint1 x407; + uint64_t x408; + fiat_bls12_381_q2_uint1 x409; + uint64_t x410; + fiat_bls12_381_q2_uint1 x411; + uint64_t x412; + fiat_bls12_381_q2_uint1 x413; + uint64_t x414; + uint64_t 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; + fiat_bls12_381_q2_uint1 x429; + uint64_t x430; + fiat_bls12_381_q2_uint1 x431; + uint64_t x432; + fiat_bls12_381_q2_uint1 x433; + uint64_t x434; + fiat_bls12_381_q2_uint1 x435; + uint64_t x436; + fiat_bls12_381_q2_uint1 x437; + uint64_t x438; + uint64_t x439; + fiat_bls12_381_q2_uint1 x440; + uint64_t x441; + fiat_bls12_381_q2_uint1 x442; + uint64_t x443; + fiat_bls12_381_q2_uint1 x444; + uint64_t x445; + fiat_bls12_381_q2_uint1 x446; + uint64_t x447; + fiat_bls12_381_q2_uint1 x448; + uint64_t x449; + fiat_bls12_381_q2_uint1 x450; + uint64_t x451; + fiat_bls12_381_q2_uint1 x452; + uint64_t x453; + uint64_t x454; + fiat_bls12_381_q2_uint1 x455; + uint64_t x456; + fiat_bls12_381_q2_uint1 x457; + uint64_t x458; + fiat_bls12_381_q2_uint1 x459; + uint64_t x460; + fiat_bls12_381_q2_uint1 x461; + uint64_t x462; + fiat_bls12_381_q2_uint1 x463; + uint64_t x464; + fiat_bls12_381_q2_uint1 x465; + uint64_t x466; + fiat_bls12_381_q2_uint1 x467; + uint64_t x468; + uint64_t x469; + uint64_t x470; + uint64_t x471; + uint64_t x472; + uint64_t x473; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[0]); + fiat_bls12_381_q2_mulx_u64(&x7, &x8, x6, (arg2[5])); + fiat_bls12_381_q2_mulx_u64(&x9, &x10, x6, (arg2[4])); + fiat_bls12_381_q2_mulx_u64(&x11, &x12, x6, (arg2[3])); + fiat_bls12_381_q2_mulx_u64(&x13, &x14, x6, (arg2[2])); + fiat_bls12_381_q2_mulx_u64(&x15, &x16, x6, (arg2[1])); + fiat_bls12_381_q2_mulx_u64(&x17, &x18, x6, (arg2[0])); + fiat_bls12_381_q2_addcarryx_u64(&x19, &x20, 0x0, x18, x15); + fiat_bls12_381_q2_addcarryx_u64(&x21, &x22, x20, x16, x13); + fiat_bls12_381_q2_addcarryx_u64(&x23, &x24, x22, x14, x11); + fiat_bls12_381_q2_addcarryx_u64(&x25, &x26, x24, x12, x9); + fiat_bls12_381_q2_addcarryx_u64(&x27, &x28, x26, x10, x7); + x29 = (x28 + x8); + fiat_bls12_381_q2_mulx_u64(&x30, &x31, x17, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x32, &x33, x30, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x34, &x35, x30, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x36, &x37, x30, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x38, &x39, x30, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x40, &x41, x30, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x42, &x43, x30, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x44, &x45, 0x0, x43, x40); + fiat_bls12_381_q2_addcarryx_u64(&x46, &x47, x45, x41, x38); + fiat_bls12_381_q2_addcarryx_u64(&x48, &x49, x47, x39, x36); + fiat_bls12_381_q2_addcarryx_u64(&x50, &x51, x49, x37, x34); + fiat_bls12_381_q2_addcarryx_u64(&x52, &x53, x51, x35, x32); + x54 = (x53 + x33); + fiat_bls12_381_q2_addcarryx_u64(&x55, &x56, 0x0, x17, x42); + fiat_bls12_381_q2_addcarryx_u64(&x57, &x58, x56, x19, x44); + fiat_bls12_381_q2_addcarryx_u64(&x59, &x60, x58, x21, x46); + fiat_bls12_381_q2_addcarryx_u64(&x61, &x62, x60, x23, x48); + fiat_bls12_381_q2_addcarryx_u64(&x63, &x64, x62, x25, x50); + fiat_bls12_381_q2_addcarryx_u64(&x65, &x66, x64, x27, x52); + fiat_bls12_381_q2_addcarryx_u64(&x67, &x68, x66, x29, x54); + fiat_bls12_381_q2_mulx_u64(&x69, &x70, x1, (arg2[5])); + fiat_bls12_381_q2_mulx_u64(&x71, &x72, x1, (arg2[4])); + fiat_bls12_381_q2_mulx_u64(&x73, &x74, x1, (arg2[3])); + fiat_bls12_381_q2_mulx_u64(&x75, &x76, x1, (arg2[2])); + fiat_bls12_381_q2_mulx_u64(&x77, &x78, x1, (arg2[1])); + fiat_bls12_381_q2_mulx_u64(&x79, &x80, x1, (arg2[0])); + fiat_bls12_381_q2_addcarryx_u64(&x81, &x82, 0x0, x80, x77); + fiat_bls12_381_q2_addcarryx_u64(&x83, &x84, x82, x78, x75); + fiat_bls12_381_q2_addcarryx_u64(&x85, &x86, x84, x76, x73); + fiat_bls12_381_q2_addcarryx_u64(&x87, &x88, x86, x74, x71); + fiat_bls12_381_q2_addcarryx_u64(&x89, &x90, x88, x72, x69); + x91 = (x90 + x70); + fiat_bls12_381_q2_addcarryx_u64(&x92, &x93, 0x0, x57, x79); + fiat_bls12_381_q2_addcarryx_u64(&x94, &x95, x93, x59, x81); + fiat_bls12_381_q2_addcarryx_u64(&x96, &x97, x95, x61, x83); + fiat_bls12_381_q2_addcarryx_u64(&x98, &x99, x97, x63, x85); + fiat_bls12_381_q2_addcarryx_u64(&x100, &x101, x99, x65, x87); + fiat_bls12_381_q2_addcarryx_u64(&x102, &x103, x101, x67, x89); + fiat_bls12_381_q2_addcarryx_u64(&x104, &x105, x103, x68, x91); + fiat_bls12_381_q2_mulx_u64(&x106, &x107, x92, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x108, &x109, x106, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x110, &x111, x106, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x112, &x113, x106, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x114, &x115, x106, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x116, &x117, x106, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x118, &x119, x106, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x120, &x121, 0x0, x119, x116); + fiat_bls12_381_q2_addcarryx_u64(&x122, &x123, x121, x117, x114); + fiat_bls12_381_q2_addcarryx_u64(&x124, &x125, x123, x115, x112); + fiat_bls12_381_q2_addcarryx_u64(&x126, &x127, x125, x113, x110); + fiat_bls12_381_q2_addcarryx_u64(&x128, &x129, x127, x111, x108); + x130 = (x129 + x109); + fiat_bls12_381_q2_addcarryx_u64(&x131, &x132, 0x0, x92, x118); + fiat_bls12_381_q2_addcarryx_u64(&x133, &x134, x132, x94, x120); + fiat_bls12_381_q2_addcarryx_u64(&x135, &x136, x134, x96, x122); + fiat_bls12_381_q2_addcarryx_u64(&x137, &x138, x136, x98, x124); + fiat_bls12_381_q2_addcarryx_u64(&x139, &x140, x138, x100, x126); + fiat_bls12_381_q2_addcarryx_u64(&x141, &x142, x140, x102, x128); + fiat_bls12_381_q2_addcarryx_u64(&x143, &x144, x142, x104, x130); + x145 = ((uint64_t)x144 + x105); + fiat_bls12_381_q2_mulx_u64(&x146, &x147, x2, (arg2[5])); + fiat_bls12_381_q2_mulx_u64(&x148, &x149, x2, (arg2[4])); + fiat_bls12_381_q2_mulx_u64(&x150, &x151, x2, (arg2[3])); + fiat_bls12_381_q2_mulx_u64(&x152, &x153, x2, (arg2[2])); + fiat_bls12_381_q2_mulx_u64(&x154, &x155, x2, (arg2[1])); + fiat_bls12_381_q2_mulx_u64(&x156, &x157, x2, (arg2[0])); + fiat_bls12_381_q2_addcarryx_u64(&x158, &x159, 0x0, x157, x154); + fiat_bls12_381_q2_addcarryx_u64(&x160, &x161, x159, x155, x152); + fiat_bls12_381_q2_addcarryx_u64(&x162, &x163, x161, x153, x150); + fiat_bls12_381_q2_addcarryx_u64(&x164, &x165, x163, x151, x148); + fiat_bls12_381_q2_addcarryx_u64(&x166, &x167, x165, x149, x146); + x168 = (x167 + x147); + fiat_bls12_381_q2_addcarryx_u64(&x169, &x170, 0x0, x133, x156); + fiat_bls12_381_q2_addcarryx_u64(&x171, &x172, x170, x135, x158); + fiat_bls12_381_q2_addcarryx_u64(&x173, &x174, x172, x137, x160); + fiat_bls12_381_q2_addcarryx_u64(&x175, &x176, x174, x139, x162); + fiat_bls12_381_q2_addcarryx_u64(&x177, &x178, x176, x141, x164); + fiat_bls12_381_q2_addcarryx_u64(&x179, &x180, x178, x143, x166); + fiat_bls12_381_q2_addcarryx_u64(&x181, &x182, x180, x145, x168); + fiat_bls12_381_q2_mulx_u64(&x183, &x184, x169, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x185, &x186, x183, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x187, &x188, x183, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x189, &x190, x183, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x191, &x192, x183, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x193, &x194, x183, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x195, &x196, x183, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x197, &x198, 0x0, x196, x193); + fiat_bls12_381_q2_addcarryx_u64(&x199, &x200, x198, x194, x191); + fiat_bls12_381_q2_addcarryx_u64(&x201, &x202, x200, x192, x189); + fiat_bls12_381_q2_addcarryx_u64(&x203, &x204, x202, x190, x187); + fiat_bls12_381_q2_addcarryx_u64(&x205, &x206, x204, x188, x185); + x207 = (x206 + x186); + fiat_bls12_381_q2_addcarryx_u64(&x208, &x209, 0x0, x169, x195); + fiat_bls12_381_q2_addcarryx_u64(&x210, &x211, x209, x171, x197); + fiat_bls12_381_q2_addcarryx_u64(&x212, &x213, x211, x173, x199); + fiat_bls12_381_q2_addcarryx_u64(&x214, &x215, x213, x175, x201); + fiat_bls12_381_q2_addcarryx_u64(&x216, &x217, x215, x177, x203); + fiat_bls12_381_q2_addcarryx_u64(&x218, &x219, x217, x179, x205); + fiat_bls12_381_q2_addcarryx_u64(&x220, &x221, x219, x181, x207); + x222 = ((uint64_t)x221 + x182); + fiat_bls12_381_q2_mulx_u64(&x223, &x224, x3, (arg2[5])); + fiat_bls12_381_q2_mulx_u64(&x225, &x226, x3, (arg2[4])); + fiat_bls12_381_q2_mulx_u64(&x227, &x228, x3, (arg2[3])); + fiat_bls12_381_q2_mulx_u64(&x229, &x230, x3, (arg2[2])); + fiat_bls12_381_q2_mulx_u64(&x231, &x232, x3, (arg2[1])); + fiat_bls12_381_q2_mulx_u64(&x233, &x234, x3, (arg2[0])); + fiat_bls12_381_q2_addcarryx_u64(&x235, &x236, 0x0, x234, x231); + fiat_bls12_381_q2_addcarryx_u64(&x237, &x238, x236, x232, x229); + fiat_bls12_381_q2_addcarryx_u64(&x239, &x240, x238, x230, x227); + fiat_bls12_381_q2_addcarryx_u64(&x241, &x242, x240, x228, x225); + fiat_bls12_381_q2_addcarryx_u64(&x243, &x244, x242, x226, x223); + x245 = (x244 + x224); + fiat_bls12_381_q2_addcarryx_u64(&x246, &x247, 0x0, x210, x233); + fiat_bls12_381_q2_addcarryx_u64(&x248, &x249, x247, x212, x235); + fiat_bls12_381_q2_addcarryx_u64(&x250, &x251, x249, x214, x237); + fiat_bls12_381_q2_addcarryx_u64(&x252, &x253, x251, x216, x239); + fiat_bls12_381_q2_addcarryx_u64(&x254, &x255, x253, x218, x241); + fiat_bls12_381_q2_addcarryx_u64(&x256, &x257, x255, x220, x243); + fiat_bls12_381_q2_addcarryx_u64(&x258, &x259, x257, x222, x245); + fiat_bls12_381_q2_mulx_u64(&x260, &x261, x246, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x262, &x263, x260, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x264, &x265, x260, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x266, &x267, x260, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x268, &x269, x260, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x270, &x271, x260, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x272, &x273, x260, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x274, &x275, 0x0, x273, x270); + fiat_bls12_381_q2_addcarryx_u64(&x276, &x277, x275, x271, x268); + fiat_bls12_381_q2_addcarryx_u64(&x278, &x279, x277, x269, x266); + fiat_bls12_381_q2_addcarryx_u64(&x280, &x281, x279, x267, x264); + fiat_bls12_381_q2_addcarryx_u64(&x282, &x283, x281, x265, x262); + x284 = (x283 + x263); + fiat_bls12_381_q2_addcarryx_u64(&x285, &x286, 0x0, x246, x272); + fiat_bls12_381_q2_addcarryx_u64(&x287, &x288, x286, x248, x274); + fiat_bls12_381_q2_addcarryx_u64(&x289, &x290, x288, x250, x276); + fiat_bls12_381_q2_addcarryx_u64(&x291, &x292, x290, x252, x278); + fiat_bls12_381_q2_addcarryx_u64(&x293, &x294, x292, x254, x280); + fiat_bls12_381_q2_addcarryx_u64(&x295, &x296, x294, x256, x282); + fiat_bls12_381_q2_addcarryx_u64(&x297, &x298, x296, x258, x284); + x299 = ((uint64_t)x298 + x259); + fiat_bls12_381_q2_mulx_u64(&x300, &x301, x4, (arg2[5])); + fiat_bls12_381_q2_mulx_u64(&x302, &x303, x4, (arg2[4])); + fiat_bls12_381_q2_mulx_u64(&x304, &x305, x4, (arg2[3])); + fiat_bls12_381_q2_mulx_u64(&x306, &x307, x4, (arg2[2])); + fiat_bls12_381_q2_mulx_u64(&x308, &x309, x4, (arg2[1])); + fiat_bls12_381_q2_mulx_u64(&x310, &x311, x4, (arg2[0])); + fiat_bls12_381_q2_addcarryx_u64(&x312, &x313, 0x0, x311, x308); + fiat_bls12_381_q2_addcarryx_u64(&x314, &x315, x313, x309, x306); + fiat_bls12_381_q2_addcarryx_u64(&x316, &x317, x315, x307, x304); + fiat_bls12_381_q2_addcarryx_u64(&x318, &x319, x317, x305, x302); + fiat_bls12_381_q2_addcarryx_u64(&x320, &x321, x319, x303, x300); + x322 = (x321 + x301); + fiat_bls12_381_q2_addcarryx_u64(&x323, &x324, 0x0, x287, x310); + fiat_bls12_381_q2_addcarryx_u64(&x325, &x326, x324, x289, x312); + fiat_bls12_381_q2_addcarryx_u64(&x327, &x328, x326, x291, x314); + fiat_bls12_381_q2_addcarryx_u64(&x329, &x330, x328, x293, x316); + fiat_bls12_381_q2_addcarryx_u64(&x331, &x332, x330, x295, x318); + fiat_bls12_381_q2_addcarryx_u64(&x333, &x334, x332, x297, x320); + fiat_bls12_381_q2_addcarryx_u64(&x335, &x336, x334, x299, x322); + fiat_bls12_381_q2_mulx_u64(&x337, &x338, x323, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x339, &x340, x337, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x341, &x342, x337, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x343, &x344, x337, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x345, &x346, x337, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x347, &x348, x337, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x349, &x350, x337, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x351, &x352, 0x0, x350, x347); + fiat_bls12_381_q2_addcarryx_u64(&x353, &x354, x352, x348, x345); + fiat_bls12_381_q2_addcarryx_u64(&x355, &x356, x354, x346, x343); + fiat_bls12_381_q2_addcarryx_u64(&x357, &x358, x356, x344, x341); + fiat_bls12_381_q2_addcarryx_u64(&x359, &x360, x358, x342, x339); + x361 = (x360 + x340); + fiat_bls12_381_q2_addcarryx_u64(&x362, &x363, 0x0, x323, x349); + fiat_bls12_381_q2_addcarryx_u64(&x364, &x365, x363, x325, x351); + fiat_bls12_381_q2_addcarryx_u64(&x366, &x367, x365, x327, x353); + fiat_bls12_381_q2_addcarryx_u64(&x368, &x369, x367, x329, x355); + fiat_bls12_381_q2_addcarryx_u64(&x370, &x371, x369, x331, x357); + fiat_bls12_381_q2_addcarryx_u64(&x372, &x373, x371, x333, x359); + fiat_bls12_381_q2_addcarryx_u64(&x374, &x375, x373, x335, x361); + x376 = ((uint64_t)x375 + x336); + fiat_bls12_381_q2_mulx_u64(&x377, &x378, x5, (arg2[5])); + fiat_bls12_381_q2_mulx_u64(&x379, &x380, x5, (arg2[4])); + fiat_bls12_381_q2_mulx_u64(&x381, &x382, x5, (arg2[3])); + fiat_bls12_381_q2_mulx_u64(&x383, &x384, x5, (arg2[2])); + fiat_bls12_381_q2_mulx_u64(&x385, &x386, x5, (arg2[1])); + fiat_bls12_381_q2_mulx_u64(&x387, &x388, x5, (arg2[0])); + fiat_bls12_381_q2_addcarryx_u64(&x389, &x390, 0x0, x388, x385); + fiat_bls12_381_q2_addcarryx_u64(&x391, &x392, x390, x386, x383); + fiat_bls12_381_q2_addcarryx_u64(&x393, &x394, x392, x384, x381); + fiat_bls12_381_q2_addcarryx_u64(&x395, &x396, x394, x382, x379); + fiat_bls12_381_q2_addcarryx_u64(&x397, &x398, x396, x380, x377); + x399 = (x398 + x378); + fiat_bls12_381_q2_addcarryx_u64(&x400, &x401, 0x0, x364, x387); + fiat_bls12_381_q2_addcarryx_u64(&x402, &x403, x401, x366, x389); + fiat_bls12_381_q2_addcarryx_u64(&x404, &x405, x403, x368, x391); + fiat_bls12_381_q2_addcarryx_u64(&x406, &x407, x405, x370, x393); + fiat_bls12_381_q2_addcarryx_u64(&x408, &x409, x407, x372, x395); + fiat_bls12_381_q2_addcarryx_u64(&x410, &x411, x409, x374, x397); + fiat_bls12_381_q2_addcarryx_u64(&x412, &x413, x411, x376, x399); + fiat_bls12_381_q2_mulx_u64(&x414, &x415, x400, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x416, &x417, x414, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x418, &x419, x414, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x420, &x421, x414, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x422, &x423, x414, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x424, &x425, x414, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x426, &x427, x414, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x428, &x429, 0x0, x427, x424); + fiat_bls12_381_q2_addcarryx_u64(&x430, &x431, x429, x425, x422); + fiat_bls12_381_q2_addcarryx_u64(&x432, &x433, x431, x423, x420); + fiat_bls12_381_q2_addcarryx_u64(&x434, &x435, x433, x421, x418); + fiat_bls12_381_q2_addcarryx_u64(&x436, &x437, x435, x419, x416); + x438 = (x437 + x417); + fiat_bls12_381_q2_addcarryx_u64(&x439, &x440, 0x0, x400, x426); + fiat_bls12_381_q2_addcarryx_u64(&x441, &x442, x440, x402, x428); + fiat_bls12_381_q2_addcarryx_u64(&x443, &x444, x442, x404, x430); + fiat_bls12_381_q2_addcarryx_u64(&x445, &x446, x444, x406, x432); + fiat_bls12_381_q2_addcarryx_u64(&x447, &x448, x446, x408, x434); + fiat_bls12_381_q2_addcarryx_u64(&x449, &x450, x448, x410, x436); + fiat_bls12_381_q2_addcarryx_u64(&x451, &x452, x450, x412, x438); + x453 = ((uint64_t)x452 + x413); + fiat_bls12_381_q2_subborrowx_u64(&x454, &x455, 0x0, x441, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x456, &x457, x455, x443, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x458, &x459, x457, x445, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x460, &x461, x459, x447, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x462, &x463, x461, x449, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x464, &x465, x463, x451, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x466, &x467, x465, x453, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x468, x467, x454, x441); + fiat_bls12_381_q2_cmovznz_u64(&x469, x467, x456, x443); + fiat_bls12_381_q2_cmovznz_u64(&x470, x467, x458, x445); + fiat_bls12_381_q2_cmovznz_u64(&x471, x467, x460, x447); + fiat_bls12_381_q2_cmovznz_u64(&x472, x467, x462, x449); + fiat_bls12_381_q2_cmovznz_u64(&x473, x467, x464, x451); + out1[0] = x468; + out1[1] = x469; + out1[2] = x470; + out1[3] = x471; + out1[4] = x472; + out1[5] = x473; +} + +/* + * The function fiat_bls12_381_q2_mulFp2SB multiplies two Fp2 field elements in the Montgomery domain using the schoolbook strategy. + * Postconditions: + * 0 ≤ eval arg1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[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]] + * arg4: [[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]] + * out2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_bls12_381_q2_mulFp2SB(uint64_t out1[6], uint64_t out2[6], const uint64_t arg1[6], const uint64_t arg2[6], const uint64_t arg3[6], const uint64_t arg4[6]) { + 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; + fiat_bls12_381_q2_uint1 x20; + uint64_t x21; + fiat_bls12_381_q2_uint1 x22; + uint64_t x23; + fiat_bls12_381_q2_uint1 x24; + uint64_t x25; + fiat_bls12_381_q2_uint1 x26; + uint64_t x27; + fiat_bls12_381_q2_uint1 x28; + uint64_t x29; + uint64_t x30; + uint64_t x31; + uint64_t x32; + uint64_t x33; + uint64_t x34; + uint64_t x35; + uint64_t 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; + fiat_bls12_381_q2_uint1 x45; + uint64_t x46; + fiat_bls12_381_q2_uint1 x47; + uint64_t x48; + fiat_bls12_381_q2_uint1 x49; + uint64_t x50; + fiat_bls12_381_q2_uint1 x51; + uint64_t x52; + fiat_bls12_381_q2_uint1 x53; + uint64_t x54; + uint64_t x55; + fiat_bls12_381_q2_uint1 x56; + uint64_t x57; + fiat_bls12_381_q2_uint1 x58; + uint64_t x59; + fiat_bls12_381_q2_uint1 x60; + uint64_t x61; + fiat_bls12_381_q2_uint1 x62; + uint64_t x63; + fiat_bls12_381_q2_uint1 x64; + uint64_t x65; + fiat_bls12_381_q2_uint1 x66; + uint64_t x67; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x82; + uint64_t x83; + fiat_bls12_381_q2_uint1 x84; + uint64_t x85; + fiat_bls12_381_q2_uint1 x86; + uint64_t x87; + fiat_bls12_381_q2_uint1 x88; + uint64_t x89; + fiat_bls12_381_q2_uint1 x90; + uint64_t x91; + uint64_t x92; + fiat_bls12_381_q2_uint1 x93; + uint64_t x94; + fiat_bls12_381_q2_uint1 x95; + uint64_t x96; + fiat_bls12_381_q2_uint1 x97; + uint64_t x98; + fiat_bls12_381_q2_uint1 x99; + uint64_t x100; + fiat_bls12_381_q2_uint1 x101; + uint64_t x102; + fiat_bls12_381_q2_uint1 x103; + uint64_t x104; + fiat_bls12_381_q2_uint1 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_bls12_381_q2_uint1 x121; + uint64_t x122; + fiat_bls12_381_q2_uint1 x123; + uint64_t x124; + fiat_bls12_381_q2_uint1 x125; + uint64_t x126; + fiat_bls12_381_q2_uint1 x127; + uint64_t x128; + fiat_bls12_381_q2_uint1 x129; + uint64_t x130; + uint64_t x131; + fiat_bls12_381_q2_uint1 x132; + uint64_t x133; + fiat_bls12_381_q2_uint1 x134; + uint64_t x135; + fiat_bls12_381_q2_uint1 x136; + uint64_t x137; + fiat_bls12_381_q2_uint1 x138; + uint64_t x139; + fiat_bls12_381_q2_uint1 x140; + uint64_t x141; + fiat_bls12_381_q2_uint1 x142; + uint64_t x143; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x159; + uint64_t x160; + fiat_bls12_381_q2_uint1 x161; + uint64_t x162; + fiat_bls12_381_q2_uint1 x163; + uint64_t x164; + fiat_bls12_381_q2_uint1 x165; + uint64_t x166; + fiat_bls12_381_q2_uint1 x167; + uint64_t x168; + uint64_t x169; + fiat_bls12_381_q2_uint1 x170; + uint64_t x171; + fiat_bls12_381_q2_uint1 x172; + uint64_t x173; + fiat_bls12_381_q2_uint1 x174; + uint64_t x175; + fiat_bls12_381_q2_uint1 x176; + uint64_t x177; + fiat_bls12_381_q2_uint1 x178; + uint64_t x179; + fiat_bls12_381_q2_uint1 x180; + uint64_t x181; + fiat_bls12_381_q2_uint1 x182; + uint64_t x183; + uint64_t x184; + uint64_t x185; + uint64_t x186; + uint64_t x187; + uint64_t x188; + uint64_t x189; + uint64_t x190; + uint64_t x191; + uint64_t x192; + uint64_t x193; + uint64_t x194; + uint64_t x195; + uint64_t x196; + uint64_t x197; + fiat_bls12_381_q2_uint1 x198; + uint64_t x199; + fiat_bls12_381_q2_uint1 x200; + uint64_t x201; + fiat_bls12_381_q2_uint1 x202; + uint64_t x203; + fiat_bls12_381_q2_uint1 x204; + uint64_t x205; + fiat_bls12_381_q2_uint1 x206; + uint64_t x207; + uint64_t x208; + fiat_bls12_381_q2_uint1 x209; + uint64_t x210; + fiat_bls12_381_q2_uint1 x211; + uint64_t x212; + fiat_bls12_381_q2_uint1 x213; + uint64_t x214; + fiat_bls12_381_q2_uint1 x215; + uint64_t x216; + fiat_bls12_381_q2_uint1 x217; + uint64_t x218; + fiat_bls12_381_q2_uint1 x219; + uint64_t x220; + fiat_bls12_381_q2_uint1 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; + uint64_t x234; + uint64_t x235; + fiat_bls12_381_q2_uint1 x236; + uint64_t x237; + fiat_bls12_381_q2_uint1 x238; + uint64_t x239; + fiat_bls12_381_q2_uint1 x240; + uint64_t x241; + fiat_bls12_381_q2_uint1 x242; + uint64_t x243; + fiat_bls12_381_q2_uint1 x244; + uint64_t x245; + uint64_t x246; + fiat_bls12_381_q2_uint1 x247; + uint64_t x248; + fiat_bls12_381_q2_uint1 x249; + uint64_t x250; + fiat_bls12_381_q2_uint1 x251; + uint64_t x252; + fiat_bls12_381_q2_uint1 x253; + uint64_t x254; + fiat_bls12_381_q2_uint1 x255; + uint64_t x256; + fiat_bls12_381_q2_uint1 x257; + uint64_t x258; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x275; + uint64_t x276; + fiat_bls12_381_q2_uint1 x277; + uint64_t x278; + fiat_bls12_381_q2_uint1 x279; + uint64_t x280; + fiat_bls12_381_q2_uint1 x281; + uint64_t x282; + fiat_bls12_381_q2_uint1 x283; + uint64_t x284; + uint64_t x285; + fiat_bls12_381_q2_uint1 x286; + uint64_t x287; + fiat_bls12_381_q2_uint1 x288; + uint64_t x289; + fiat_bls12_381_q2_uint1 x290; + uint64_t x291; + fiat_bls12_381_q2_uint1 x292; + uint64_t x293; + fiat_bls12_381_q2_uint1 x294; + uint64_t x295; + fiat_bls12_381_q2_uint1 x296; + uint64_t x297; + fiat_bls12_381_q2_uint1 x298; + uint64_t x299; + uint64_t x300; + uint64_t x301; + uint64_t x302; + uint64_t x303; + uint64_t x304; + uint64_t x305; + uint64_t x306; + uint64_t x307; + uint64_t x308; + uint64_t x309; + uint64_t x310; + uint64_t x311; + uint64_t x312; + fiat_bls12_381_q2_uint1 x313; + uint64_t x314; + fiat_bls12_381_q2_uint1 x315; + uint64_t x316; + fiat_bls12_381_q2_uint1 x317; + uint64_t x318; + fiat_bls12_381_q2_uint1 x319; + uint64_t x320; + fiat_bls12_381_q2_uint1 x321; + uint64_t x322; + uint64_t x323; + fiat_bls12_381_q2_uint1 x324; + uint64_t x325; + fiat_bls12_381_q2_uint1 x326; + uint64_t x327; + fiat_bls12_381_q2_uint1 x328; + uint64_t x329; + fiat_bls12_381_q2_uint1 x330; + uint64_t x331; + fiat_bls12_381_q2_uint1 x332; + uint64_t x333; + fiat_bls12_381_q2_uint1 x334; + uint64_t x335; + fiat_bls12_381_q2_uint1 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; + uint64_t x347; + uint64_t x348; + uint64_t x349; + uint64_t x350; + uint64_t x351; + fiat_bls12_381_q2_uint1 x352; + uint64_t x353; + fiat_bls12_381_q2_uint1 x354; + uint64_t x355; + fiat_bls12_381_q2_uint1 x356; + uint64_t x357; + fiat_bls12_381_q2_uint1 x358; + uint64_t x359; + fiat_bls12_381_q2_uint1 x360; + uint64_t x361; + uint64_t x362; + fiat_bls12_381_q2_uint1 x363; + uint64_t x364; + fiat_bls12_381_q2_uint1 x365; + uint64_t x366; + fiat_bls12_381_q2_uint1 x367; + uint64_t x368; + fiat_bls12_381_q2_uint1 x369; + uint64_t x370; + fiat_bls12_381_q2_uint1 x371; + uint64_t x372; + fiat_bls12_381_q2_uint1 x373; + uint64_t x374; + fiat_bls12_381_q2_uint1 x375; + uint64_t x376; + uint64_t x377; + uint64_t x378; + uint64_t x379; + uint64_t x380; + uint64_t x381; + uint64_t x382; + uint64_t x383; + uint64_t x384; + uint64_t x385; + uint64_t x386; + uint64_t x387; + uint64_t x388; + uint64_t x389; + fiat_bls12_381_q2_uint1 x390; + uint64_t x391; + fiat_bls12_381_q2_uint1 x392; + uint64_t x393; + fiat_bls12_381_q2_uint1 x394; + uint64_t x395; + fiat_bls12_381_q2_uint1 x396; + uint64_t x397; + fiat_bls12_381_q2_uint1 x398; + uint64_t x399; + uint64_t x400; + fiat_bls12_381_q2_uint1 x401; + uint64_t x402; + fiat_bls12_381_q2_uint1 x403; + uint64_t x404; + fiat_bls12_381_q2_uint1 x405; + uint64_t x406; + fiat_bls12_381_q2_uint1 x407; + uint64_t x408; + fiat_bls12_381_q2_uint1 x409; + uint64_t x410; + fiat_bls12_381_q2_uint1 x411; + uint64_t x412; + fiat_bls12_381_q2_uint1 x413; + uint64_t x414; + uint64_t 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; + fiat_bls12_381_q2_uint1 x429; + uint64_t x430; + fiat_bls12_381_q2_uint1 x431; + uint64_t x432; + fiat_bls12_381_q2_uint1 x433; + uint64_t x434; + fiat_bls12_381_q2_uint1 x435; + uint64_t x436; + fiat_bls12_381_q2_uint1 x437; + uint64_t x438; + uint64_t x439; + fiat_bls12_381_q2_uint1 x440; + uint64_t x441; + fiat_bls12_381_q2_uint1 x442; + uint64_t x443; + fiat_bls12_381_q2_uint1 x444; + uint64_t x445; + fiat_bls12_381_q2_uint1 x446; + uint64_t x447; + fiat_bls12_381_q2_uint1 x448; + uint64_t x449; + fiat_bls12_381_q2_uint1 x450; + uint64_t x451; + fiat_bls12_381_q2_uint1 x452; + uint64_t x453; + uint64_t x454; + fiat_bls12_381_q2_uint1 x455; + uint64_t x456; + fiat_bls12_381_q2_uint1 x457; + uint64_t x458; + fiat_bls12_381_q2_uint1 x459; + uint64_t x460; + fiat_bls12_381_q2_uint1 x461; + uint64_t x462; + fiat_bls12_381_q2_uint1 x463; + uint64_t x464; + fiat_bls12_381_q2_uint1 x465; + uint64_t x466; + fiat_bls12_381_q2_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; + uint64_t x489; + uint64_t x490; + uint64_t x491; + uint64_t x492; + fiat_bls12_381_q2_uint1 x493; + uint64_t x494; + fiat_bls12_381_q2_uint1 x495; + uint64_t x496; + fiat_bls12_381_q2_uint1 x497; + uint64_t x498; + fiat_bls12_381_q2_uint1 x499; + uint64_t x500; + fiat_bls12_381_q2_uint1 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; + uint64_t x517; + fiat_bls12_381_q2_uint1 x518; + uint64_t x519; + fiat_bls12_381_q2_uint1 x520; + uint64_t x521; + fiat_bls12_381_q2_uint1 x522; + uint64_t x523; + fiat_bls12_381_q2_uint1 x524; + uint64_t x525; + fiat_bls12_381_q2_uint1 x526; + uint64_t x527; + uint64_t x528; + fiat_bls12_381_q2_uint1 x529; + uint64_t x530; + fiat_bls12_381_q2_uint1 x531; + uint64_t x532; + fiat_bls12_381_q2_uint1 x533; + uint64_t x534; + fiat_bls12_381_q2_uint1 x535; + uint64_t x536; + fiat_bls12_381_q2_uint1 x537; + uint64_t x538; + fiat_bls12_381_q2_uint1 x539; + uint64_t x540; + fiat_bls12_381_q2_uint1 x541; + uint64_t x542; + uint64_t x543; + uint64_t x544; + uint64_t x545; + uint64_t x546; + uint64_t x547; + uint64_t x548; + uint64_t x549; + uint64_t x550; + uint64_t x551; + uint64_t x552; + uint64_t x553; + uint64_t x554; + fiat_bls12_381_q2_uint1 x555; + uint64_t x556; + fiat_bls12_381_q2_uint1 x557; + uint64_t x558; + fiat_bls12_381_q2_uint1 x559; + uint64_t x560; + fiat_bls12_381_q2_uint1 x561; + uint64_t x562; + fiat_bls12_381_q2_uint1 x563; + uint64_t x564; + uint64_t x565; + fiat_bls12_381_q2_uint1 x566; + uint64_t x567; + fiat_bls12_381_q2_uint1 x568; + uint64_t x569; + fiat_bls12_381_q2_uint1 x570; + uint64_t x571; + fiat_bls12_381_q2_uint1 x572; + uint64_t x573; + fiat_bls12_381_q2_uint1 x574; + uint64_t x575; + fiat_bls12_381_q2_uint1 x576; + uint64_t x577; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x594; + uint64_t x595; + fiat_bls12_381_q2_uint1 x596; + uint64_t x597; + fiat_bls12_381_q2_uint1 x598; + uint64_t x599; + fiat_bls12_381_q2_uint1 x600; + uint64_t x601; + fiat_bls12_381_q2_uint1 x602; + uint64_t x603; + uint64_t x604; + fiat_bls12_381_q2_uint1 x605; + uint64_t x606; + fiat_bls12_381_q2_uint1 x607; + uint64_t x608; + fiat_bls12_381_q2_uint1 x609; + uint64_t x610; + fiat_bls12_381_q2_uint1 x611; + uint64_t x612; + fiat_bls12_381_q2_uint1 x613; + uint64_t x614; + fiat_bls12_381_q2_uint1 x615; + uint64_t x616; + fiat_bls12_381_q2_uint1 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; + uint64_t x630; + uint64_t x631; + fiat_bls12_381_q2_uint1 x632; + uint64_t x633; + fiat_bls12_381_q2_uint1 x634; + uint64_t x635; + fiat_bls12_381_q2_uint1 x636; + uint64_t x637; + fiat_bls12_381_q2_uint1 x638; + uint64_t x639; + fiat_bls12_381_q2_uint1 x640; + uint64_t x641; + uint64_t x642; + fiat_bls12_381_q2_uint1 x643; + uint64_t x644; + fiat_bls12_381_q2_uint1 x645; + uint64_t x646; + fiat_bls12_381_q2_uint1 x647; + uint64_t x648; + fiat_bls12_381_q2_uint1 x649; + uint64_t x650; + fiat_bls12_381_q2_uint1 x651; + uint64_t x652; + fiat_bls12_381_q2_uint1 x653; + uint64_t x654; + fiat_bls12_381_q2_uint1 x655; + uint64_t x656; + uint64_t x657; + uint64_t x658; + uint64_t x659; + uint64_t x660; + uint64_t x661; + uint64_t x662; + uint64_t x663; + uint64_t x664; + uint64_t x665; + uint64_t x666; + uint64_t x667; + uint64_t x668; + uint64_t x669; + uint64_t x670; + fiat_bls12_381_q2_uint1 x671; + uint64_t x672; + fiat_bls12_381_q2_uint1 x673; + uint64_t x674; + fiat_bls12_381_q2_uint1 x675; + uint64_t x676; + fiat_bls12_381_q2_uint1 x677; + uint64_t x678; + fiat_bls12_381_q2_uint1 x679; + uint64_t x680; + uint64_t x681; + fiat_bls12_381_q2_uint1 x682; + uint64_t x683; + fiat_bls12_381_q2_uint1 x684; + uint64_t x685; + fiat_bls12_381_q2_uint1 x686; + uint64_t x687; + fiat_bls12_381_q2_uint1 x688; + uint64_t x689; + fiat_bls12_381_q2_uint1 x690; + uint64_t x691; + fiat_bls12_381_q2_uint1 x692; + uint64_t x693; + fiat_bls12_381_q2_uint1 x694; + uint64_t x695; + uint64_t x696; + uint64_t x697; + uint64_t x698; + uint64_t x699; + uint64_t x700; + uint64_t x701; + uint64_t x702; + uint64_t x703; + uint64_t x704; + uint64_t x705; + uint64_t x706; + uint64_t x707; + uint64_t x708; + fiat_bls12_381_q2_uint1 x709; + uint64_t x710; + fiat_bls12_381_q2_uint1 x711; + uint64_t x712; + fiat_bls12_381_q2_uint1 x713; + uint64_t x714; + fiat_bls12_381_q2_uint1 x715; + uint64_t x716; + fiat_bls12_381_q2_uint1 x717; + uint64_t x718; + uint64_t x719; + fiat_bls12_381_q2_uint1 x720; + uint64_t x721; + fiat_bls12_381_q2_uint1 x722; + uint64_t x723; + fiat_bls12_381_q2_uint1 x724; + uint64_t x725; + fiat_bls12_381_q2_uint1 x726; + uint64_t x727; + fiat_bls12_381_q2_uint1 x728; + uint64_t x729; + fiat_bls12_381_q2_uint1 x730; + uint64_t x731; + fiat_bls12_381_q2_uint1 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; + uint64_t x743; + uint64_t x744; + uint64_t x745; + uint64_t x746; + uint64_t x747; + fiat_bls12_381_q2_uint1 x748; + uint64_t x749; + fiat_bls12_381_q2_uint1 x750; + uint64_t x751; + fiat_bls12_381_q2_uint1 x752; + uint64_t x753; + fiat_bls12_381_q2_uint1 x754; + uint64_t x755; + fiat_bls12_381_q2_uint1 x756; + uint64_t x757; + uint64_t x758; + fiat_bls12_381_q2_uint1 x759; + uint64_t x760; + fiat_bls12_381_q2_uint1 x761; + uint64_t x762; + fiat_bls12_381_q2_uint1 x763; + uint64_t x764; + fiat_bls12_381_q2_uint1 x765; + uint64_t x766; + fiat_bls12_381_q2_uint1 x767; + uint64_t x768; + fiat_bls12_381_q2_uint1 x769; + uint64_t x770; + fiat_bls12_381_q2_uint1 x771; + uint64_t x772; + uint64_t x773; + uint64_t x774; + uint64_t x775; + uint64_t x776; + uint64_t x777; + uint64_t x778; + uint64_t x779; + uint64_t x780; + uint64_t x781; + uint64_t x782; + uint64_t x783; + uint64_t x784; + uint64_t x785; + fiat_bls12_381_q2_uint1 x786; + uint64_t x787; + fiat_bls12_381_q2_uint1 x788; + uint64_t x789; + fiat_bls12_381_q2_uint1 x790; + uint64_t x791; + fiat_bls12_381_q2_uint1 x792; + uint64_t x793; + fiat_bls12_381_q2_uint1 x794; + uint64_t x795; + uint64_t x796; + fiat_bls12_381_q2_uint1 x797; + uint64_t x798; + fiat_bls12_381_q2_uint1 x799; + uint64_t x800; + fiat_bls12_381_q2_uint1 x801; + uint64_t x802; + fiat_bls12_381_q2_uint1 x803; + uint64_t x804; + fiat_bls12_381_q2_uint1 x805; + uint64_t x806; + fiat_bls12_381_q2_uint1 x807; + uint64_t x808; + fiat_bls12_381_q2_uint1 x809; + uint64_t x810; + uint64_t x811; + uint64_t x812; + uint64_t x813; + uint64_t x814; + uint64_t x815; + uint64_t x816; + uint64_t x817; + uint64_t x818; + uint64_t x819; + uint64_t x820; + uint64_t x821; + uint64_t x822; + uint64_t x823; + uint64_t x824; + fiat_bls12_381_q2_uint1 x825; + uint64_t x826; + fiat_bls12_381_q2_uint1 x827; + uint64_t x828; + fiat_bls12_381_q2_uint1 x829; + uint64_t x830; + fiat_bls12_381_q2_uint1 x831; + uint64_t x832; + fiat_bls12_381_q2_uint1 x833; + uint64_t x834; + uint64_t x835; + fiat_bls12_381_q2_uint1 x836; + uint64_t x837; + fiat_bls12_381_q2_uint1 x838; + uint64_t x839; + fiat_bls12_381_q2_uint1 x840; + uint64_t x841; + fiat_bls12_381_q2_uint1 x842; + uint64_t x843; + fiat_bls12_381_q2_uint1 x844; + uint64_t x845; + fiat_bls12_381_q2_uint1 x846; + uint64_t x847; + fiat_bls12_381_q2_uint1 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; + uint64_t x859; + uint64_t x860; + uint64_t x861; + uint64_t x862; + fiat_bls12_381_q2_uint1 x863; + uint64_t x864; + fiat_bls12_381_q2_uint1 x865; + uint64_t x866; + fiat_bls12_381_q2_uint1 x867; + uint64_t x868; + fiat_bls12_381_q2_uint1 x869; + uint64_t x870; + fiat_bls12_381_q2_uint1 x871; + uint64_t x872; + uint64_t x873; + fiat_bls12_381_q2_uint1 x874; + uint64_t x875; + fiat_bls12_381_q2_uint1 x876; + uint64_t x877; + fiat_bls12_381_q2_uint1 x878; + uint64_t x879; + fiat_bls12_381_q2_uint1 x880; + uint64_t x881; + fiat_bls12_381_q2_uint1 x882; + uint64_t x883; + fiat_bls12_381_q2_uint1 x884; + uint64_t x885; + fiat_bls12_381_q2_uint1 x886; + uint64_t x887; + uint64_t x888; + uint64_t x889; + uint64_t x890; + uint64_t 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; + fiat_bls12_381_q2_uint1 x902; + uint64_t x903; + fiat_bls12_381_q2_uint1 x904; + uint64_t x905; + fiat_bls12_381_q2_uint1 x906; + uint64_t x907; + fiat_bls12_381_q2_uint1 x908; + uint64_t x909; + fiat_bls12_381_q2_uint1 x910; + uint64_t x911; + uint64_t x912; + fiat_bls12_381_q2_uint1 x913; + uint64_t x914; + fiat_bls12_381_q2_uint1 x915; + uint64_t x916; + fiat_bls12_381_q2_uint1 x917; + uint64_t x918; + fiat_bls12_381_q2_uint1 x919; + uint64_t x920; + fiat_bls12_381_q2_uint1 x921; + uint64_t x922; + fiat_bls12_381_q2_uint1 x923; + uint64_t x924; + fiat_bls12_381_q2_uint1 x925; + uint64_t x926; + uint64_t x927; + fiat_bls12_381_q2_uint1 x928; + uint64_t x929; + fiat_bls12_381_q2_uint1 x930; + uint64_t x931; + fiat_bls12_381_q2_uint1 x932; + uint64_t x933; + fiat_bls12_381_q2_uint1 x934; + uint64_t x935; + fiat_bls12_381_q2_uint1 x936; + uint64_t x937; + fiat_bls12_381_q2_uint1 x938; + uint64_t x939; + fiat_bls12_381_q2_uint1 x940; + uint64_t x941; + uint64_t x942; + uint64_t x943; + uint64_t x944; + uint64_t x945; + uint64_t x946; + uint64_t 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; + fiat_bls12_381_q2_uint1 x966; + uint64_t x967; + fiat_bls12_381_q2_uint1 x968; + uint64_t x969; + fiat_bls12_381_q2_uint1 x970; + uint64_t x971; + fiat_bls12_381_q2_uint1 x972; + uint64_t x973; + fiat_bls12_381_q2_uint1 x974; + uint64_t x975; + uint64_t x976; + uint64_t x977; + uint64_t x978; + uint64_t x979; + uint64_t x980; + uint64_t x981; + uint64_t x982; + uint64_t x983; + uint64_t x984; + uint64_t x985; + uint64_t x986; + uint64_t x987; + uint64_t x988; + uint64_t x989; + uint64_t x990; + fiat_bls12_381_q2_uint1 x991; + uint64_t x992; + fiat_bls12_381_q2_uint1 x993; + uint64_t x994; + fiat_bls12_381_q2_uint1 x995; + uint64_t x996; + fiat_bls12_381_q2_uint1 x997; + uint64_t x998; + fiat_bls12_381_q2_uint1 x999; + uint64_t x1000; + uint64_t x1001; + fiat_bls12_381_q2_uint1 x1002; + uint64_t x1003; + fiat_bls12_381_q2_uint1 x1004; + uint64_t x1005; + fiat_bls12_381_q2_uint1 x1006; + uint64_t x1007; + fiat_bls12_381_q2_uint1 x1008; + uint64_t x1009; + fiat_bls12_381_q2_uint1 x1010; + uint64_t x1011; + fiat_bls12_381_q2_uint1 x1012; + uint64_t x1013; + fiat_bls12_381_q2_uint1 x1014; + uint64_t x1015; + uint64_t x1016; + uint64_t x1017; + uint64_t x1018; + uint64_t x1019; + uint64_t x1020; + uint64_t x1021; + uint64_t x1022; + uint64_t x1023; + uint64_t x1024; + uint64_t x1025; + uint64_t x1026; + uint64_t x1027; + fiat_bls12_381_q2_uint1 x1028; + uint64_t x1029; + fiat_bls12_381_q2_uint1 x1030; + uint64_t x1031; + fiat_bls12_381_q2_uint1 x1032; + uint64_t x1033; + fiat_bls12_381_q2_uint1 x1034; + uint64_t x1035; + fiat_bls12_381_q2_uint1 x1036; + uint64_t x1037; + uint64_t x1038; + fiat_bls12_381_q2_uint1 x1039; + uint64_t x1040; + fiat_bls12_381_q2_uint1 x1041; + uint64_t x1042; + fiat_bls12_381_q2_uint1 x1043; + uint64_t x1044; + fiat_bls12_381_q2_uint1 x1045; + uint64_t x1046; + fiat_bls12_381_q2_uint1 x1047; + uint64_t x1048; + fiat_bls12_381_q2_uint1 x1049; + uint64_t x1050; + fiat_bls12_381_q2_uint1 x1051; + uint64_t x1052; + uint64_t x1053; + uint64_t x1054; + uint64_t x1055; + uint64_t x1056; + uint64_t x1057; + uint64_t x1058; + uint64_t x1059; + uint64_t x1060; + uint64_t x1061; + uint64_t x1062; + uint64_t x1063; + uint64_t x1064; + uint64_t x1065; + uint64_t x1066; + fiat_bls12_381_q2_uint1 x1067; + uint64_t x1068; + fiat_bls12_381_q2_uint1 x1069; + uint64_t x1070; + fiat_bls12_381_q2_uint1 x1071; + uint64_t x1072; + fiat_bls12_381_q2_uint1 x1073; + uint64_t x1074; + fiat_bls12_381_q2_uint1 x1075; + uint64_t x1076; + uint64_t x1077; + fiat_bls12_381_q2_uint1 x1078; + uint64_t x1079; + fiat_bls12_381_q2_uint1 x1080; + uint64_t x1081; + fiat_bls12_381_q2_uint1 x1082; + uint64_t x1083; + fiat_bls12_381_q2_uint1 x1084; + uint64_t x1085; + fiat_bls12_381_q2_uint1 x1086; + uint64_t x1087; + fiat_bls12_381_q2_uint1 x1088; + uint64_t x1089; + fiat_bls12_381_q2_uint1 x1090; + uint64_t x1091; + uint64_t x1092; + uint64_t x1093; + uint64_t x1094; + uint64_t x1095; + uint64_t x1096; + uint64_t x1097; + uint64_t x1098; + uint64_t x1099; + uint64_t x1100; + uint64_t x1101; + uint64_t x1102; + uint64_t x1103; + uint64_t x1104; + fiat_bls12_381_q2_uint1 x1105; + uint64_t x1106; + fiat_bls12_381_q2_uint1 x1107; + uint64_t x1108; + fiat_bls12_381_q2_uint1 x1109; + uint64_t x1110; + fiat_bls12_381_q2_uint1 x1111; + uint64_t x1112; + fiat_bls12_381_q2_uint1 x1113; + uint64_t x1114; + uint64_t x1115; + fiat_bls12_381_q2_uint1 x1116; + uint64_t x1117; + fiat_bls12_381_q2_uint1 x1118; + uint64_t x1119; + fiat_bls12_381_q2_uint1 x1120; + uint64_t x1121; + fiat_bls12_381_q2_uint1 x1122; + uint64_t x1123; + fiat_bls12_381_q2_uint1 x1124; + uint64_t x1125; + fiat_bls12_381_q2_uint1 x1126; + uint64_t x1127; + fiat_bls12_381_q2_uint1 x1128; + uint64_t x1129; + uint64_t x1130; + uint64_t x1131; + uint64_t x1132; + uint64_t x1133; + uint64_t x1134; + uint64_t x1135; + uint64_t x1136; + uint64_t x1137; + uint64_t x1138; + uint64_t x1139; + uint64_t x1140; + uint64_t x1141; + uint64_t x1142; + uint64_t x1143; + fiat_bls12_381_q2_uint1 x1144; + uint64_t x1145; + fiat_bls12_381_q2_uint1 x1146; + uint64_t x1147; + fiat_bls12_381_q2_uint1 x1148; + uint64_t x1149; + fiat_bls12_381_q2_uint1 x1150; + uint64_t x1151; + fiat_bls12_381_q2_uint1 x1152; + uint64_t x1153; + uint64_t x1154; + fiat_bls12_381_q2_uint1 x1155; + uint64_t x1156; + fiat_bls12_381_q2_uint1 x1157; + uint64_t x1158; + fiat_bls12_381_q2_uint1 x1159; + uint64_t x1160; + fiat_bls12_381_q2_uint1 x1161; + uint64_t x1162; + fiat_bls12_381_q2_uint1 x1163; + uint64_t x1164; + fiat_bls12_381_q2_uint1 x1165; + uint64_t x1166; + fiat_bls12_381_q2_uint1 x1167; + uint64_t x1168; + uint64_t x1169; + uint64_t x1170; + uint64_t x1171; + uint64_t x1172; + uint64_t x1173; + uint64_t x1174; + uint64_t x1175; + uint64_t x1176; + uint64_t x1177; + uint64_t x1178; + uint64_t x1179; + uint64_t x1180; + uint64_t x1181; + fiat_bls12_381_q2_uint1 x1182; + uint64_t x1183; + fiat_bls12_381_q2_uint1 x1184; + uint64_t x1185; + fiat_bls12_381_q2_uint1 x1186; + uint64_t x1187; + fiat_bls12_381_q2_uint1 x1188; + uint64_t x1189; + fiat_bls12_381_q2_uint1 x1190; + uint64_t x1191; + uint64_t x1192; + fiat_bls12_381_q2_uint1 x1193; + uint64_t x1194; + fiat_bls12_381_q2_uint1 x1195; + uint64_t x1196; + fiat_bls12_381_q2_uint1 x1197; + uint64_t x1198; + fiat_bls12_381_q2_uint1 x1199; + uint64_t x1200; + fiat_bls12_381_q2_uint1 x1201; + uint64_t x1202; + fiat_bls12_381_q2_uint1 x1203; + uint64_t x1204; + fiat_bls12_381_q2_uint1 x1205; + uint64_t x1206; + uint64_t x1207; + uint64_t x1208; + uint64_t x1209; + uint64_t x1210; + uint64_t x1211; + uint64_t x1212; + uint64_t x1213; + uint64_t x1214; + uint64_t x1215; + uint64_t x1216; + uint64_t x1217; + uint64_t x1218; + uint64_t x1219; + uint64_t x1220; + fiat_bls12_381_q2_uint1 x1221; + uint64_t x1222; + fiat_bls12_381_q2_uint1 x1223; + uint64_t x1224; + fiat_bls12_381_q2_uint1 x1225; + uint64_t x1226; + fiat_bls12_381_q2_uint1 x1227; + uint64_t x1228; + fiat_bls12_381_q2_uint1 x1229; + uint64_t x1230; + uint64_t x1231; + fiat_bls12_381_q2_uint1 x1232; + uint64_t x1233; + fiat_bls12_381_q2_uint1 x1234; + uint64_t x1235; + fiat_bls12_381_q2_uint1 x1236; + uint64_t x1237; + fiat_bls12_381_q2_uint1 x1238; + uint64_t x1239; + fiat_bls12_381_q2_uint1 x1240; + uint64_t x1241; + fiat_bls12_381_q2_uint1 x1242; + uint64_t x1243; + fiat_bls12_381_q2_uint1 x1244; + uint64_t x1245; + uint64_t x1246; + uint64_t x1247; + uint64_t x1248; + uint64_t x1249; + uint64_t x1250; + uint64_t x1251; + uint64_t x1252; + uint64_t x1253; + uint64_t x1254; + uint64_t x1255; + uint64_t x1256; + uint64_t x1257; + uint64_t x1258; + fiat_bls12_381_q2_uint1 x1259; + uint64_t x1260; + fiat_bls12_381_q2_uint1 x1261; + uint64_t x1262; + fiat_bls12_381_q2_uint1 x1263; + uint64_t x1264; + fiat_bls12_381_q2_uint1 x1265; + uint64_t x1266; + fiat_bls12_381_q2_uint1 x1267; + uint64_t x1268; + uint64_t x1269; + fiat_bls12_381_q2_uint1 x1270; + uint64_t x1271; + fiat_bls12_381_q2_uint1 x1272; + uint64_t x1273; + fiat_bls12_381_q2_uint1 x1274; + uint64_t x1275; + fiat_bls12_381_q2_uint1 x1276; + uint64_t x1277; + fiat_bls12_381_q2_uint1 x1278; + uint64_t x1279; + fiat_bls12_381_q2_uint1 x1280; + uint64_t x1281; + fiat_bls12_381_q2_uint1 x1282; + uint64_t x1283; + uint64_t x1284; + uint64_t x1285; + uint64_t x1286; + uint64_t x1287; + uint64_t x1288; + uint64_t x1289; + uint64_t x1290; + uint64_t x1291; + uint64_t x1292; + uint64_t x1293; + uint64_t x1294; + uint64_t x1295; + uint64_t x1296; + uint64_t x1297; + fiat_bls12_381_q2_uint1 x1298; + uint64_t x1299; + fiat_bls12_381_q2_uint1 x1300; + uint64_t x1301; + fiat_bls12_381_q2_uint1 x1302; + uint64_t x1303; + fiat_bls12_381_q2_uint1 x1304; + uint64_t x1305; + fiat_bls12_381_q2_uint1 x1306; + uint64_t x1307; + uint64_t x1308; + fiat_bls12_381_q2_uint1 x1309; + uint64_t x1310; + fiat_bls12_381_q2_uint1 x1311; + uint64_t x1312; + fiat_bls12_381_q2_uint1 x1313; + uint64_t x1314; + fiat_bls12_381_q2_uint1 x1315; + uint64_t x1316; + fiat_bls12_381_q2_uint1 x1317; + uint64_t x1318; + fiat_bls12_381_q2_uint1 x1319; + uint64_t x1320; + fiat_bls12_381_q2_uint1 x1321; + uint64_t x1322; + uint64_t x1323; + uint64_t x1324; + uint64_t x1325; + uint64_t x1326; + uint64_t x1327; + uint64_t x1328; + uint64_t x1329; + uint64_t x1330; + uint64_t x1331; + uint64_t x1332; + uint64_t x1333; + uint64_t x1334; + uint64_t x1335; + fiat_bls12_381_q2_uint1 x1336; + uint64_t x1337; + fiat_bls12_381_q2_uint1 x1338; + uint64_t x1339; + fiat_bls12_381_q2_uint1 x1340; + uint64_t x1341; + fiat_bls12_381_q2_uint1 x1342; + uint64_t x1343; + fiat_bls12_381_q2_uint1 x1344; + uint64_t x1345; + uint64_t x1346; + fiat_bls12_381_q2_uint1 x1347; + uint64_t x1348; + fiat_bls12_381_q2_uint1 x1349; + uint64_t x1350; + fiat_bls12_381_q2_uint1 x1351; + uint64_t x1352; + fiat_bls12_381_q2_uint1 x1353; + uint64_t x1354; + fiat_bls12_381_q2_uint1 x1355; + uint64_t x1356; + fiat_bls12_381_q2_uint1 x1357; + uint64_t x1358; + fiat_bls12_381_q2_uint1 x1359; + uint64_t x1360; + uint64_t x1361; + uint64_t x1362; + uint64_t x1363; + uint64_t x1364; + uint64_t x1365; + uint64_t x1366; + uint64_t x1367; + uint64_t x1368; + uint64_t x1369; + uint64_t x1370; + uint64_t x1371; + uint64_t x1372; + uint64_t x1373; + uint64_t x1374; + fiat_bls12_381_q2_uint1 x1375; + uint64_t x1376; + fiat_bls12_381_q2_uint1 x1377; + uint64_t x1378; + fiat_bls12_381_q2_uint1 x1379; + uint64_t x1380; + fiat_bls12_381_q2_uint1 x1381; + uint64_t x1382; + fiat_bls12_381_q2_uint1 x1383; + uint64_t x1384; + uint64_t x1385; + fiat_bls12_381_q2_uint1 x1386; + uint64_t x1387; + fiat_bls12_381_q2_uint1 x1388; + uint64_t x1389; + fiat_bls12_381_q2_uint1 x1390; + uint64_t x1391; + fiat_bls12_381_q2_uint1 x1392; + uint64_t x1393; + fiat_bls12_381_q2_uint1 x1394; + uint64_t x1395; + fiat_bls12_381_q2_uint1 x1396; + uint64_t x1397; + fiat_bls12_381_q2_uint1 x1398; + uint64_t x1399; + uint64_t x1400; + fiat_bls12_381_q2_uint1 x1401; + uint64_t x1402; + fiat_bls12_381_q2_uint1 x1403; + uint64_t x1404; + fiat_bls12_381_q2_uint1 x1405; + uint64_t x1406; + fiat_bls12_381_q2_uint1 x1407; + uint64_t x1408; + fiat_bls12_381_q2_uint1 x1409; + uint64_t x1410; + fiat_bls12_381_q2_uint1 x1411; + uint64_t x1412; + fiat_bls12_381_q2_uint1 x1413; + uint64_t x1414; + uint64_t x1415; + uint64_t x1416; + uint64_t x1417; + uint64_t x1418; + uint64_t x1419; + uint64_t x1420; + uint64_t x1421; + uint64_t x1422; + uint64_t x1423; + uint64_t x1424; + uint64_t x1425; + uint64_t x1426; + uint64_t x1427; + uint64_t x1428; + uint64_t x1429; + uint64_t x1430; + uint64_t x1431; + uint64_t x1432; + uint64_t x1433; + uint64_t x1434; + uint64_t x1435; + uint64_t x1436; + uint64_t x1437; + uint64_t x1438; + fiat_bls12_381_q2_uint1 x1439; + uint64_t x1440; + fiat_bls12_381_q2_uint1 x1441; + uint64_t x1442; + fiat_bls12_381_q2_uint1 x1443; + uint64_t x1444; + fiat_bls12_381_q2_uint1 x1445; + uint64_t x1446; + fiat_bls12_381_q2_uint1 x1447; + uint64_t x1448; + uint64_t x1449; + uint64_t x1450; + uint64_t x1451; + uint64_t x1452; + uint64_t x1453; + uint64_t x1454; + uint64_t x1455; + uint64_t x1456; + uint64_t x1457; + uint64_t x1458; + uint64_t x1459; + uint64_t x1460; + uint64_t x1461; + uint64_t x1462; + uint64_t x1463; + fiat_bls12_381_q2_uint1 x1464; + uint64_t x1465; + fiat_bls12_381_q2_uint1 x1466; + uint64_t x1467; + fiat_bls12_381_q2_uint1 x1468; + uint64_t x1469; + fiat_bls12_381_q2_uint1 x1470; + uint64_t x1471; + fiat_bls12_381_q2_uint1 x1472; + uint64_t x1473; + uint64_t x1474; + fiat_bls12_381_q2_uint1 x1475; + uint64_t x1476; + fiat_bls12_381_q2_uint1 x1477; + uint64_t x1478; + fiat_bls12_381_q2_uint1 x1479; + uint64_t x1480; + fiat_bls12_381_q2_uint1 x1481; + uint64_t x1482; + fiat_bls12_381_q2_uint1 x1483; + uint64_t x1484; + fiat_bls12_381_q2_uint1 x1485; + uint64_t x1486; + fiat_bls12_381_q2_uint1 x1487; + uint64_t x1488; + uint64_t x1489; + uint64_t x1490; + uint64_t x1491; + uint64_t x1492; + uint64_t x1493; + uint64_t x1494; + uint64_t x1495; + uint64_t x1496; + uint64_t x1497; + uint64_t x1498; + uint64_t x1499; + uint64_t x1500; + fiat_bls12_381_q2_uint1 x1501; + uint64_t x1502; + fiat_bls12_381_q2_uint1 x1503; + uint64_t x1504; + fiat_bls12_381_q2_uint1 x1505; + uint64_t x1506; + fiat_bls12_381_q2_uint1 x1507; + uint64_t x1508; + fiat_bls12_381_q2_uint1 x1509; + uint64_t x1510; + uint64_t x1511; + fiat_bls12_381_q2_uint1 x1512; + uint64_t x1513; + fiat_bls12_381_q2_uint1 x1514; + uint64_t x1515; + fiat_bls12_381_q2_uint1 x1516; + uint64_t x1517; + fiat_bls12_381_q2_uint1 x1518; + uint64_t x1519; + fiat_bls12_381_q2_uint1 x1520; + uint64_t x1521; + fiat_bls12_381_q2_uint1 x1522; + uint64_t x1523; + fiat_bls12_381_q2_uint1 x1524; + uint64_t x1525; + uint64_t x1526; + uint64_t x1527; + uint64_t x1528; + uint64_t x1529; + uint64_t x1530; + uint64_t x1531; + uint64_t x1532; + uint64_t x1533; + uint64_t x1534; + uint64_t x1535; + uint64_t x1536; + uint64_t x1537; + uint64_t x1538; + uint64_t x1539; + fiat_bls12_381_q2_uint1 x1540; + uint64_t x1541; + fiat_bls12_381_q2_uint1 x1542; + uint64_t x1543; + fiat_bls12_381_q2_uint1 x1544; + uint64_t x1545; + fiat_bls12_381_q2_uint1 x1546; + uint64_t x1547; + fiat_bls12_381_q2_uint1 x1548; + uint64_t x1549; + uint64_t x1550; + fiat_bls12_381_q2_uint1 x1551; + uint64_t x1552; + fiat_bls12_381_q2_uint1 x1553; + uint64_t x1554; + fiat_bls12_381_q2_uint1 x1555; + uint64_t x1556; + fiat_bls12_381_q2_uint1 x1557; + uint64_t x1558; + fiat_bls12_381_q2_uint1 x1559; + uint64_t x1560; + fiat_bls12_381_q2_uint1 x1561; + uint64_t x1562; + fiat_bls12_381_q2_uint1 x1563; + uint64_t x1564; + uint64_t x1565; + uint64_t x1566; + uint64_t x1567; + uint64_t x1568; + uint64_t x1569; + uint64_t x1570; + uint64_t x1571; + uint64_t x1572; + uint64_t x1573; + uint64_t x1574; + uint64_t x1575; + uint64_t x1576; + uint64_t x1577; + fiat_bls12_381_q2_uint1 x1578; + uint64_t x1579; + fiat_bls12_381_q2_uint1 x1580; + uint64_t x1581; + fiat_bls12_381_q2_uint1 x1582; + uint64_t x1583; + fiat_bls12_381_q2_uint1 x1584; + uint64_t x1585; + fiat_bls12_381_q2_uint1 x1586; + uint64_t x1587; + uint64_t x1588; + fiat_bls12_381_q2_uint1 x1589; + uint64_t x1590; + fiat_bls12_381_q2_uint1 x1591; + uint64_t x1592; + fiat_bls12_381_q2_uint1 x1593; + uint64_t x1594; + fiat_bls12_381_q2_uint1 x1595; + uint64_t x1596; + fiat_bls12_381_q2_uint1 x1597; + uint64_t x1598; + fiat_bls12_381_q2_uint1 x1599; + uint64_t x1600; + fiat_bls12_381_q2_uint1 x1601; + uint64_t x1602; + uint64_t x1603; + uint64_t x1604; + uint64_t x1605; + uint64_t x1606; + uint64_t x1607; + uint64_t x1608; + uint64_t x1609; + uint64_t x1610; + uint64_t x1611; + uint64_t x1612; + uint64_t x1613; + uint64_t x1614; + uint64_t x1615; + uint64_t x1616; + fiat_bls12_381_q2_uint1 x1617; + uint64_t x1618; + fiat_bls12_381_q2_uint1 x1619; + uint64_t x1620; + fiat_bls12_381_q2_uint1 x1621; + uint64_t x1622; + fiat_bls12_381_q2_uint1 x1623; + uint64_t x1624; + fiat_bls12_381_q2_uint1 x1625; + uint64_t x1626; + uint64_t x1627; + fiat_bls12_381_q2_uint1 x1628; + uint64_t x1629; + fiat_bls12_381_q2_uint1 x1630; + uint64_t x1631; + fiat_bls12_381_q2_uint1 x1632; + uint64_t x1633; + fiat_bls12_381_q2_uint1 x1634; + uint64_t x1635; + fiat_bls12_381_q2_uint1 x1636; + uint64_t x1637; + fiat_bls12_381_q2_uint1 x1638; + uint64_t x1639; + fiat_bls12_381_q2_uint1 x1640; + uint64_t x1641; + uint64_t x1642; + uint64_t x1643; + uint64_t x1644; + uint64_t x1645; + uint64_t x1646; + uint64_t x1647; + uint64_t x1648; + uint64_t x1649; + uint64_t x1650; + uint64_t x1651; + uint64_t x1652; + uint64_t x1653; + uint64_t x1654; + fiat_bls12_381_q2_uint1 x1655; + uint64_t x1656; + fiat_bls12_381_q2_uint1 x1657; + uint64_t x1658; + fiat_bls12_381_q2_uint1 x1659; + uint64_t x1660; + fiat_bls12_381_q2_uint1 x1661; + uint64_t x1662; + fiat_bls12_381_q2_uint1 x1663; + uint64_t x1664; + uint64_t x1665; + fiat_bls12_381_q2_uint1 x1666; + uint64_t x1667; + fiat_bls12_381_q2_uint1 x1668; + uint64_t x1669; + fiat_bls12_381_q2_uint1 x1670; + uint64_t x1671; + fiat_bls12_381_q2_uint1 x1672; + uint64_t x1673; + fiat_bls12_381_q2_uint1 x1674; + uint64_t x1675; + fiat_bls12_381_q2_uint1 x1676; + uint64_t x1677; + fiat_bls12_381_q2_uint1 x1678; + uint64_t x1679; + uint64_t x1680; + uint64_t x1681; + uint64_t x1682; + uint64_t x1683; + uint64_t x1684; + uint64_t x1685; + uint64_t x1686; + uint64_t x1687; + uint64_t x1688; + uint64_t x1689; + uint64_t x1690; + uint64_t x1691; + uint64_t x1692; + uint64_t x1693; + fiat_bls12_381_q2_uint1 x1694; + uint64_t x1695; + fiat_bls12_381_q2_uint1 x1696; + uint64_t x1697; + fiat_bls12_381_q2_uint1 x1698; + uint64_t x1699; + fiat_bls12_381_q2_uint1 x1700; + uint64_t x1701; + fiat_bls12_381_q2_uint1 x1702; + uint64_t x1703; + uint64_t x1704; + fiat_bls12_381_q2_uint1 x1705; + uint64_t x1706; + fiat_bls12_381_q2_uint1 x1707; + uint64_t x1708; + fiat_bls12_381_q2_uint1 x1709; + uint64_t x1710; + fiat_bls12_381_q2_uint1 x1711; + uint64_t x1712; + fiat_bls12_381_q2_uint1 x1713; + uint64_t x1714; + fiat_bls12_381_q2_uint1 x1715; + uint64_t x1716; + fiat_bls12_381_q2_uint1 x1717; + uint64_t x1718; + uint64_t x1719; + uint64_t x1720; + uint64_t x1721; + uint64_t x1722; + uint64_t x1723; + uint64_t x1724; + uint64_t x1725; + uint64_t x1726; + uint64_t x1727; + uint64_t x1728; + uint64_t x1729; + uint64_t x1730; + uint64_t x1731; + fiat_bls12_381_q2_uint1 x1732; + uint64_t x1733; + fiat_bls12_381_q2_uint1 x1734; + uint64_t x1735; + fiat_bls12_381_q2_uint1 x1736; + uint64_t x1737; + fiat_bls12_381_q2_uint1 x1738; + uint64_t x1739; + fiat_bls12_381_q2_uint1 x1740; + uint64_t x1741; + uint64_t x1742; + fiat_bls12_381_q2_uint1 x1743; + uint64_t x1744; + fiat_bls12_381_q2_uint1 x1745; + uint64_t x1746; + fiat_bls12_381_q2_uint1 x1747; + uint64_t x1748; + fiat_bls12_381_q2_uint1 x1749; + uint64_t x1750; + fiat_bls12_381_q2_uint1 x1751; + uint64_t x1752; + fiat_bls12_381_q2_uint1 x1753; + uint64_t x1754; + fiat_bls12_381_q2_uint1 x1755; + uint64_t x1756; + uint64_t x1757; + uint64_t x1758; + uint64_t x1759; + uint64_t x1760; + uint64_t x1761; + uint64_t x1762; + uint64_t x1763; + uint64_t x1764; + uint64_t x1765; + uint64_t x1766; + uint64_t x1767; + uint64_t x1768; + uint64_t x1769; + uint64_t x1770; + fiat_bls12_381_q2_uint1 x1771; + uint64_t x1772; + fiat_bls12_381_q2_uint1 x1773; + uint64_t x1774; + fiat_bls12_381_q2_uint1 x1775; + uint64_t x1776; + fiat_bls12_381_q2_uint1 x1777; + uint64_t x1778; + fiat_bls12_381_q2_uint1 x1779; + uint64_t x1780; + uint64_t x1781; + fiat_bls12_381_q2_uint1 x1782; + uint64_t x1783; + fiat_bls12_381_q2_uint1 x1784; + uint64_t x1785; + fiat_bls12_381_q2_uint1 x1786; + uint64_t x1787; + fiat_bls12_381_q2_uint1 x1788; + uint64_t x1789; + fiat_bls12_381_q2_uint1 x1790; + uint64_t x1791; + fiat_bls12_381_q2_uint1 x1792; + uint64_t x1793; + fiat_bls12_381_q2_uint1 x1794; + uint64_t x1795; + uint64_t x1796; + uint64_t x1797; + uint64_t x1798; + uint64_t x1799; + uint64_t x1800; + uint64_t x1801; + uint64_t x1802; + uint64_t x1803; + uint64_t x1804; + uint64_t x1805; + uint64_t x1806; + uint64_t x1807; + uint64_t x1808; + fiat_bls12_381_q2_uint1 x1809; + uint64_t x1810; + fiat_bls12_381_q2_uint1 x1811; + uint64_t x1812; + fiat_bls12_381_q2_uint1 x1813; + uint64_t x1814; + fiat_bls12_381_q2_uint1 x1815; + uint64_t x1816; + fiat_bls12_381_q2_uint1 x1817; + uint64_t x1818; + uint64_t x1819; + fiat_bls12_381_q2_uint1 x1820; + uint64_t x1821; + fiat_bls12_381_q2_uint1 x1822; + uint64_t x1823; + fiat_bls12_381_q2_uint1 x1824; + uint64_t x1825; + fiat_bls12_381_q2_uint1 x1826; + uint64_t x1827; + fiat_bls12_381_q2_uint1 x1828; + uint64_t x1829; + fiat_bls12_381_q2_uint1 x1830; + uint64_t x1831; + fiat_bls12_381_q2_uint1 x1832; + uint64_t x1833; + uint64_t x1834; + uint64_t x1835; + uint64_t x1836; + uint64_t x1837; + uint64_t x1838; + uint64_t x1839; + uint64_t x1840; + uint64_t x1841; + uint64_t x1842; + uint64_t x1843; + uint64_t x1844; + uint64_t x1845; + uint64_t x1846; + uint64_t x1847; + fiat_bls12_381_q2_uint1 x1848; + uint64_t x1849; + fiat_bls12_381_q2_uint1 x1850; + uint64_t x1851; + fiat_bls12_381_q2_uint1 x1852; + uint64_t x1853; + fiat_bls12_381_q2_uint1 x1854; + uint64_t x1855; + fiat_bls12_381_q2_uint1 x1856; + uint64_t x1857; + uint64_t x1858; + fiat_bls12_381_q2_uint1 x1859; + uint64_t x1860; + fiat_bls12_381_q2_uint1 x1861; + uint64_t x1862; + fiat_bls12_381_q2_uint1 x1863; + uint64_t x1864; + fiat_bls12_381_q2_uint1 x1865; + uint64_t x1866; + fiat_bls12_381_q2_uint1 x1867; + uint64_t x1868; + fiat_bls12_381_q2_uint1 x1869; + uint64_t x1870; + fiat_bls12_381_q2_uint1 x1871; + uint64_t x1872; + uint64_t x1873; + fiat_bls12_381_q2_uint1 x1874; + uint64_t x1875; + fiat_bls12_381_q2_uint1 x1876; + uint64_t x1877; + fiat_bls12_381_q2_uint1 x1878; + uint64_t x1879; + fiat_bls12_381_q2_uint1 x1880; + uint64_t x1881; + fiat_bls12_381_q2_uint1 x1882; + uint64_t x1883; + fiat_bls12_381_q2_uint1 x1884; + uint64_t x1885; + fiat_bls12_381_q2_uint1 x1886; + uint64_t x1887; + uint64_t x1888; + uint64_t x1889; + uint64_t x1890; + uint64_t x1891; + uint64_t x1892; + uint64_t x1893; + fiat_bls12_381_q2_uint1 x1894; + uint64_t x1895; + fiat_bls12_381_q2_uint1 x1896; + uint64_t x1897; + fiat_bls12_381_q2_uint1 x1898; + uint64_t x1899; + fiat_bls12_381_q2_uint1 x1900; + uint64_t x1901; + fiat_bls12_381_q2_uint1 x1902; + uint64_t x1903; + fiat_bls12_381_q2_uint1 x1904; + uint64_t x1905; + fiat_bls12_381_q2_uint1 x1906; + uint64_t x1907; + fiat_bls12_381_q2_uint1 x1908; + uint64_t x1909; + fiat_bls12_381_q2_uint1 x1910; + uint64_t x1911; + fiat_bls12_381_q2_uint1 x1912; + uint64_t x1913; + fiat_bls12_381_q2_uint1 x1914; + uint64_t x1915; + fiat_bls12_381_q2_uint1 x1916; + uint64_t x1917; + fiat_bls12_381_q2_uint1 x1918; + uint64_t x1919; + fiat_bls12_381_q2_uint1 x1920; + uint64_t x1921; + fiat_bls12_381_q2_uint1 x1922; + uint64_t x1923; + fiat_bls12_381_q2_uint1 x1924; + uint64_t x1925; + fiat_bls12_381_q2_uint1 x1926; + uint64_t x1927; + fiat_bls12_381_q2_uint1 x1928; + uint64_t x1929; + fiat_bls12_381_q2_uint1 x1930; + uint64_t x1931; + uint64_t x1932; + fiat_bls12_381_q2_uint1 x1933; + uint64_t x1934; + fiat_bls12_381_q2_uint1 x1935; + uint64_t x1936; + fiat_bls12_381_q2_uint1 x1937; + uint64_t x1938; + fiat_bls12_381_q2_uint1 x1939; + uint64_t x1940; + fiat_bls12_381_q2_uint1 x1941; + uint64_t x1942; + fiat_bls12_381_q2_uint1 x1943; + uint64_t x1944; + uint64_t x1945; + uint64_t x1946; + uint64_t x1947; + uint64_t x1948; + uint64_t x1949; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[0]); + fiat_bls12_381_q2_mulx_u64(&x7, &x8, x6, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x9, &x10, x6, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x11, &x12, x6, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x13, &x14, x6, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x15, &x16, x6, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x17, &x18, x6, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x19, &x20, 0x0, x18, x15); + fiat_bls12_381_q2_addcarryx_u64(&x21, &x22, x20, x16, x13); + fiat_bls12_381_q2_addcarryx_u64(&x23, &x24, x22, x14, x11); + fiat_bls12_381_q2_addcarryx_u64(&x25, &x26, x24, x12, x9); + fiat_bls12_381_q2_addcarryx_u64(&x27, &x28, x26, x10, x7); + x29 = (x28 + x8); + fiat_bls12_381_q2_mulx_u64(&x30, &x31, x17, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x32, &x33, x30, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x34, &x35, x30, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x36, &x37, x30, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x38, &x39, x30, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x40, &x41, x30, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x42, &x43, x30, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x44, &x45, 0x0, x43, x40); + fiat_bls12_381_q2_addcarryx_u64(&x46, &x47, x45, x41, x38); + fiat_bls12_381_q2_addcarryx_u64(&x48, &x49, x47, x39, x36); + fiat_bls12_381_q2_addcarryx_u64(&x50, &x51, x49, x37, x34); + fiat_bls12_381_q2_addcarryx_u64(&x52, &x53, x51, x35, x32); + x54 = (x53 + x33); + fiat_bls12_381_q2_addcarryx_u64(&x55, &x56, 0x0, x17, x42); + fiat_bls12_381_q2_addcarryx_u64(&x57, &x58, x56, x19, x44); + fiat_bls12_381_q2_addcarryx_u64(&x59, &x60, x58, x21, x46); + fiat_bls12_381_q2_addcarryx_u64(&x61, &x62, x60, x23, x48); + fiat_bls12_381_q2_addcarryx_u64(&x63, &x64, x62, x25, x50); + fiat_bls12_381_q2_addcarryx_u64(&x65, &x66, x64, x27, x52); + fiat_bls12_381_q2_addcarryx_u64(&x67, &x68, x66, x29, x54); + fiat_bls12_381_q2_mulx_u64(&x69, &x70, x1, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x71, &x72, x1, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x73, &x74, x1, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x75, &x76, x1, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x77, &x78, x1, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x79, &x80, x1, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x81, &x82, 0x0, x80, x77); + fiat_bls12_381_q2_addcarryx_u64(&x83, &x84, x82, x78, x75); + fiat_bls12_381_q2_addcarryx_u64(&x85, &x86, x84, x76, x73); + fiat_bls12_381_q2_addcarryx_u64(&x87, &x88, x86, x74, x71); + fiat_bls12_381_q2_addcarryx_u64(&x89, &x90, x88, x72, x69); + x91 = (x90 + x70); + fiat_bls12_381_q2_addcarryx_u64(&x92, &x93, 0x0, x57, x79); + fiat_bls12_381_q2_addcarryx_u64(&x94, &x95, x93, x59, x81); + fiat_bls12_381_q2_addcarryx_u64(&x96, &x97, x95, x61, x83); + fiat_bls12_381_q2_addcarryx_u64(&x98, &x99, x97, x63, x85); + fiat_bls12_381_q2_addcarryx_u64(&x100, &x101, x99, x65, x87); + fiat_bls12_381_q2_addcarryx_u64(&x102, &x103, x101, x67, x89); + fiat_bls12_381_q2_addcarryx_u64(&x104, &x105, x103, x68, x91); + fiat_bls12_381_q2_mulx_u64(&x106, &x107, x92, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x108, &x109, x106, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x110, &x111, x106, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x112, &x113, x106, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x114, &x115, x106, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x116, &x117, x106, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x118, &x119, x106, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x120, &x121, 0x0, x119, x116); + fiat_bls12_381_q2_addcarryx_u64(&x122, &x123, x121, x117, x114); + fiat_bls12_381_q2_addcarryx_u64(&x124, &x125, x123, x115, x112); + fiat_bls12_381_q2_addcarryx_u64(&x126, &x127, x125, x113, x110); + fiat_bls12_381_q2_addcarryx_u64(&x128, &x129, x127, x111, x108); + x130 = (x129 + x109); + fiat_bls12_381_q2_addcarryx_u64(&x131, &x132, 0x0, x92, x118); + fiat_bls12_381_q2_addcarryx_u64(&x133, &x134, x132, x94, x120); + fiat_bls12_381_q2_addcarryx_u64(&x135, &x136, x134, x96, x122); + fiat_bls12_381_q2_addcarryx_u64(&x137, &x138, x136, x98, x124); + fiat_bls12_381_q2_addcarryx_u64(&x139, &x140, x138, x100, x126); + fiat_bls12_381_q2_addcarryx_u64(&x141, &x142, x140, x102, x128); + fiat_bls12_381_q2_addcarryx_u64(&x143, &x144, x142, x104, x130); + x145 = ((uint64_t)x144 + x105); + fiat_bls12_381_q2_mulx_u64(&x146, &x147, x2, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x148, &x149, x2, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x150, &x151, x2, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x152, &x153, x2, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x154, &x155, x2, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x156, &x157, x2, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x158, &x159, 0x0, x157, x154); + fiat_bls12_381_q2_addcarryx_u64(&x160, &x161, x159, x155, x152); + fiat_bls12_381_q2_addcarryx_u64(&x162, &x163, x161, x153, x150); + fiat_bls12_381_q2_addcarryx_u64(&x164, &x165, x163, x151, x148); + fiat_bls12_381_q2_addcarryx_u64(&x166, &x167, x165, x149, x146); + x168 = (x167 + x147); + fiat_bls12_381_q2_addcarryx_u64(&x169, &x170, 0x0, x133, x156); + fiat_bls12_381_q2_addcarryx_u64(&x171, &x172, x170, x135, x158); + fiat_bls12_381_q2_addcarryx_u64(&x173, &x174, x172, x137, x160); + fiat_bls12_381_q2_addcarryx_u64(&x175, &x176, x174, x139, x162); + fiat_bls12_381_q2_addcarryx_u64(&x177, &x178, x176, x141, x164); + fiat_bls12_381_q2_addcarryx_u64(&x179, &x180, x178, x143, x166); + fiat_bls12_381_q2_addcarryx_u64(&x181, &x182, x180, x145, x168); + fiat_bls12_381_q2_mulx_u64(&x183, &x184, x169, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x185, &x186, x183, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x187, &x188, x183, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x189, &x190, x183, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x191, &x192, x183, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x193, &x194, x183, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x195, &x196, x183, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x197, &x198, 0x0, x196, x193); + fiat_bls12_381_q2_addcarryx_u64(&x199, &x200, x198, x194, x191); + fiat_bls12_381_q2_addcarryx_u64(&x201, &x202, x200, x192, x189); + fiat_bls12_381_q2_addcarryx_u64(&x203, &x204, x202, x190, x187); + fiat_bls12_381_q2_addcarryx_u64(&x205, &x206, x204, x188, x185); + x207 = (x206 + x186); + fiat_bls12_381_q2_addcarryx_u64(&x208, &x209, 0x0, x169, x195); + fiat_bls12_381_q2_addcarryx_u64(&x210, &x211, x209, x171, x197); + fiat_bls12_381_q2_addcarryx_u64(&x212, &x213, x211, x173, x199); + fiat_bls12_381_q2_addcarryx_u64(&x214, &x215, x213, x175, x201); + fiat_bls12_381_q2_addcarryx_u64(&x216, &x217, x215, x177, x203); + fiat_bls12_381_q2_addcarryx_u64(&x218, &x219, x217, x179, x205); + fiat_bls12_381_q2_addcarryx_u64(&x220, &x221, x219, x181, x207); + x222 = ((uint64_t)x221 + x182); + fiat_bls12_381_q2_mulx_u64(&x223, &x224, x3, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x225, &x226, x3, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x227, &x228, x3, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x229, &x230, x3, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x231, &x232, x3, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x233, &x234, x3, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x235, &x236, 0x0, x234, x231); + fiat_bls12_381_q2_addcarryx_u64(&x237, &x238, x236, x232, x229); + fiat_bls12_381_q2_addcarryx_u64(&x239, &x240, x238, x230, x227); + fiat_bls12_381_q2_addcarryx_u64(&x241, &x242, x240, x228, x225); + fiat_bls12_381_q2_addcarryx_u64(&x243, &x244, x242, x226, x223); + x245 = (x244 + x224); + fiat_bls12_381_q2_addcarryx_u64(&x246, &x247, 0x0, x210, x233); + fiat_bls12_381_q2_addcarryx_u64(&x248, &x249, x247, x212, x235); + fiat_bls12_381_q2_addcarryx_u64(&x250, &x251, x249, x214, x237); + fiat_bls12_381_q2_addcarryx_u64(&x252, &x253, x251, x216, x239); + fiat_bls12_381_q2_addcarryx_u64(&x254, &x255, x253, x218, x241); + fiat_bls12_381_q2_addcarryx_u64(&x256, &x257, x255, x220, x243); + fiat_bls12_381_q2_addcarryx_u64(&x258, &x259, x257, x222, x245); + fiat_bls12_381_q2_mulx_u64(&x260, &x261, x246, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x262, &x263, x260, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x264, &x265, x260, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x266, &x267, x260, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x268, &x269, x260, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x270, &x271, x260, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x272, &x273, x260, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x274, &x275, 0x0, x273, x270); + fiat_bls12_381_q2_addcarryx_u64(&x276, &x277, x275, x271, x268); + fiat_bls12_381_q2_addcarryx_u64(&x278, &x279, x277, x269, x266); + fiat_bls12_381_q2_addcarryx_u64(&x280, &x281, x279, x267, x264); + fiat_bls12_381_q2_addcarryx_u64(&x282, &x283, x281, x265, x262); + x284 = (x283 + x263); + fiat_bls12_381_q2_addcarryx_u64(&x285, &x286, 0x0, x246, x272); + fiat_bls12_381_q2_addcarryx_u64(&x287, &x288, x286, x248, x274); + fiat_bls12_381_q2_addcarryx_u64(&x289, &x290, x288, x250, x276); + fiat_bls12_381_q2_addcarryx_u64(&x291, &x292, x290, x252, x278); + fiat_bls12_381_q2_addcarryx_u64(&x293, &x294, x292, x254, x280); + fiat_bls12_381_q2_addcarryx_u64(&x295, &x296, x294, x256, x282); + fiat_bls12_381_q2_addcarryx_u64(&x297, &x298, x296, x258, x284); + x299 = ((uint64_t)x298 + x259); + fiat_bls12_381_q2_mulx_u64(&x300, &x301, x4, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x302, &x303, x4, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x304, &x305, x4, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x306, &x307, x4, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x308, &x309, x4, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x310, &x311, x4, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x312, &x313, 0x0, x311, x308); + fiat_bls12_381_q2_addcarryx_u64(&x314, &x315, x313, x309, x306); + fiat_bls12_381_q2_addcarryx_u64(&x316, &x317, x315, x307, x304); + fiat_bls12_381_q2_addcarryx_u64(&x318, &x319, x317, x305, x302); + fiat_bls12_381_q2_addcarryx_u64(&x320, &x321, x319, x303, x300); + x322 = (x321 + x301); + fiat_bls12_381_q2_addcarryx_u64(&x323, &x324, 0x0, x287, x310); + fiat_bls12_381_q2_addcarryx_u64(&x325, &x326, x324, x289, x312); + fiat_bls12_381_q2_addcarryx_u64(&x327, &x328, x326, x291, x314); + fiat_bls12_381_q2_addcarryx_u64(&x329, &x330, x328, x293, x316); + fiat_bls12_381_q2_addcarryx_u64(&x331, &x332, x330, x295, x318); + fiat_bls12_381_q2_addcarryx_u64(&x333, &x334, x332, x297, x320); + fiat_bls12_381_q2_addcarryx_u64(&x335, &x336, x334, x299, x322); + fiat_bls12_381_q2_mulx_u64(&x337, &x338, x323, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x339, &x340, x337, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x341, &x342, x337, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x343, &x344, x337, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x345, &x346, x337, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x347, &x348, x337, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x349, &x350, x337, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x351, &x352, 0x0, x350, x347); + fiat_bls12_381_q2_addcarryx_u64(&x353, &x354, x352, x348, x345); + fiat_bls12_381_q2_addcarryx_u64(&x355, &x356, x354, x346, x343); + fiat_bls12_381_q2_addcarryx_u64(&x357, &x358, x356, x344, x341); + fiat_bls12_381_q2_addcarryx_u64(&x359, &x360, x358, x342, x339); + x361 = (x360 + x340); + fiat_bls12_381_q2_addcarryx_u64(&x362, &x363, 0x0, x323, x349); + fiat_bls12_381_q2_addcarryx_u64(&x364, &x365, x363, x325, x351); + fiat_bls12_381_q2_addcarryx_u64(&x366, &x367, x365, x327, x353); + fiat_bls12_381_q2_addcarryx_u64(&x368, &x369, x367, x329, x355); + fiat_bls12_381_q2_addcarryx_u64(&x370, &x371, x369, x331, x357); + fiat_bls12_381_q2_addcarryx_u64(&x372, &x373, x371, x333, x359); + fiat_bls12_381_q2_addcarryx_u64(&x374, &x375, x373, x335, x361); + x376 = ((uint64_t)x375 + x336); + fiat_bls12_381_q2_mulx_u64(&x377, &x378, x5, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x379, &x380, x5, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x381, &x382, x5, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x383, &x384, x5, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x385, &x386, x5, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x387, &x388, x5, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x389, &x390, 0x0, x388, x385); + fiat_bls12_381_q2_addcarryx_u64(&x391, &x392, x390, x386, x383); + fiat_bls12_381_q2_addcarryx_u64(&x393, &x394, x392, x384, x381); + fiat_bls12_381_q2_addcarryx_u64(&x395, &x396, x394, x382, x379); + fiat_bls12_381_q2_addcarryx_u64(&x397, &x398, x396, x380, x377); + x399 = (x398 + x378); + fiat_bls12_381_q2_addcarryx_u64(&x400, &x401, 0x0, x364, x387); + fiat_bls12_381_q2_addcarryx_u64(&x402, &x403, x401, x366, x389); + fiat_bls12_381_q2_addcarryx_u64(&x404, &x405, x403, x368, x391); + fiat_bls12_381_q2_addcarryx_u64(&x406, &x407, x405, x370, x393); + fiat_bls12_381_q2_addcarryx_u64(&x408, &x409, x407, x372, x395); + fiat_bls12_381_q2_addcarryx_u64(&x410, &x411, x409, x374, x397); + fiat_bls12_381_q2_addcarryx_u64(&x412, &x413, x411, x376, x399); + fiat_bls12_381_q2_mulx_u64(&x414, &x415, x400, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x416, &x417, x414, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x418, &x419, x414, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x420, &x421, x414, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x422, &x423, x414, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x424, &x425, x414, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x426, &x427, x414, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x428, &x429, 0x0, x427, x424); + fiat_bls12_381_q2_addcarryx_u64(&x430, &x431, x429, x425, x422); + fiat_bls12_381_q2_addcarryx_u64(&x432, &x433, x431, x423, x420); + fiat_bls12_381_q2_addcarryx_u64(&x434, &x435, x433, x421, x418); + fiat_bls12_381_q2_addcarryx_u64(&x436, &x437, x435, x419, x416); + x438 = (x437 + x417); + fiat_bls12_381_q2_addcarryx_u64(&x439, &x440, 0x0, x400, x426); + fiat_bls12_381_q2_addcarryx_u64(&x441, &x442, x440, x402, x428); + fiat_bls12_381_q2_addcarryx_u64(&x443, &x444, x442, x404, x430); + fiat_bls12_381_q2_addcarryx_u64(&x445, &x446, x444, x406, x432); + fiat_bls12_381_q2_addcarryx_u64(&x447, &x448, x446, x408, x434); + fiat_bls12_381_q2_addcarryx_u64(&x449, &x450, x448, x410, x436); + fiat_bls12_381_q2_addcarryx_u64(&x451, &x452, x450, x412, x438); + x453 = ((uint64_t)x452 + x413); + fiat_bls12_381_q2_subborrowx_u64(&x454, &x455, 0x0, x441, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x456, &x457, x455, x443, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x458, &x459, x457, x445, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x460, &x461, x459, x447, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x462, &x463, x461, x449, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x464, &x465, x463, x451, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x466, &x467, x465, x453, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x468, x467, x454, x441); + fiat_bls12_381_q2_cmovznz_u64(&x469, x467, x456, x443); + fiat_bls12_381_q2_cmovznz_u64(&x470, x467, x458, x445); + fiat_bls12_381_q2_cmovznz_u64(&x471, x467, x460, x447); + fiat_bls12_381_q2_cmovznz_u64(&x472, x467, x462, x449); + fiat_bls12_381_q2_cmovznz_u64(&x473, x467, x464, x451); + x474 = (arg2[1]); + x475 = (arg2[2]); + x476 = (arg2[3]); + x477 = (arg2[4]); + x478 = (arg2[5]); + x479 = (arg2[0]); + fiat_bls12_381_q2_mulx_u64(&x480, &x481, x479, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x482, &x483, x479, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x484, &x485, x479, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x486, &x487, x479, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x488, &x489, x479, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x490, &x491, x479, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x492, &x493, 0x0, x491, x488); + fiat_bls12_381_q2_addcarryx_u64(&x494, &x495, x493, x489, x486); + fiat_bls12_381_q2_addcarryx_u64(&x496, &x497, x495, x487, x484); + fiat_bls12_381_q2_addcarryx_u64(&x498, &x499, x497, x485, x482); + fiat_bls12_381_q2_addcarryx_u64(&x500, &x501, x499, x483, x480); + x502 = (x501 + x481); + fiat_bls12_381_q2_mulx_u64(&x503, &x504, x490, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x505, &x506, x503, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x507, &x508, x503, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x509, &x510, x503, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x511, &x512, x503, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x513, &x514, x503, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x515, &x516, x503, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x517, &x518, 0x0, x516, x513); + fiat_bls12_381_q2_addcarryx_u64(&x519, &x520, x518, x514, x511); + fiat_bls12_381_q2_addcarryx_u64(&x521, &x522, x520, x512, x509); + fiat_bls12_381_q2_addcarryx_u64(&x523, &x524, x522, x510, x507); + fiat_bls12_381_q2_addcarryx_u64(&x525, &x526, x524, x508, x505); + x527 = (x526 + x506); + fiat_bls12_381_q2_addcarryx_u64(&x528, &x529, 0x0, x490, x515); + fiat_bls12_381_q2_addcarryx_u64(&x530, &x531, x529, x492, x517); + fiat_bls12_381_q2_addcarryx_u64(&x532, &x533, x531, x494, x519); + fiat_bls12_381_q2_addcarryx_u64(&x534, &x535, x533, x496, x521); + fiat_bls12_381_q2_addcarryx_u64(&x536, &x537, x535, x498, x523); + fiat_bls12_381_q2_addcarryx_u64(&x538, &x539, x537, x500, x525); + fiat_bls12_381_q2_addcarryx_u64(&x540, &x541, x539, x502, x527); + fiat_bls12_381_q2_mulx_u64(&x542, &x543, x474, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x544, &x545, x474, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x546, &x547, x474, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x548, &x549, x474, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x550, &x551, x474, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x552, &x553, x474, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x554, &x555, 0x0, x553, x550); + fiat_bls12_381_q2_addcarryx_u64(&x556, &x557, x555, x551, x548); + fiat_bls12_381_q2_addcarryx_u64(&x558, &x559, x557, x549, x546); + fiat_bls12_381_q2_addcarryx_u64(&x560, &x561, x559, x547, x544); + fiat_bls12_381_q2_addcarryx_u64(&x562, &x563, x561, x545, x542); + x564 = (x563 + x543); + fiat_bls12_381_q2_addcarryx_u64(&x565, &x566, 0x0, x530, x552); + fiat_bls12_381_q2_addcarryx_u64(&x567, &x568, x566, x532, x554); + fiat_bls12_381_q2_addcarryx_u64(&x569, &x570, x568, x534, x556); + fiat_bls12_381_q2_addcarryx_u64(&x571, &x572, x570, x536, x558); + fiat_bls12_381_q2_addcarryx_u64(&x573, &x574, x572, x538, x560); + fiat_bls12_381_q2_addcarryx_u64(&x575, &x576, x574, x540, x562); + fiat_bls12_381_q2_addcarryx_u64(&x577, &x578, x576, x541, x564); + fiat_bls12_381_q2_mulx_u64(&x579, &x580, x565, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x581, &x582, x579, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x583, &x584, x579, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x585, &x586, x579, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x587, &x588, x579, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x589, &x590, x579, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x591, &x592, x579, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x593, &x594, 0x0, x592, x589); + fiat_bls12_381_q2_addcarryx_u64(&x595, &x596, x594, x590, x587); + fiat_bls12_381_q2_addcarryx_u64(&x597, &x598, x596, x588, x585); + fiat_bls12_381_q2_addcarryx_u64(&x599, &x600, x598, x586, x583); + fiat_bls12_381_q2_addcarryx_u64(&x601, &x602, x600, x584, x581); + x603 = (x602 + x582); + fiat_bls12_381_q2_addcarryx_u64(&x604, &x605, 0x0, x565, x591); + fiat_bls12_381_q2_addcarryx_u64(&x606, &x607, x605, x567, x593); + fiat_bls12_381_q2_addcarryx_u64(&x608, &x609, x607, x569, x595); + fiat_bls12_381_q2_addcarryx_u64(&x610, &x611, x609, x571, x597); + fiat_bls12_381_q2_addcarryx_u64(&x612, &x613, x611, x573, x599); + fiat_bls12_381_q2_addcarryx_u64(&x614, &x615, x613, x575, x601); + fiat_bls12_381_q2_addcarryx_u64(&x616, &x617, x615, x577, x603); + x618 = ((uint64_t)x617 + x578); + fiat_bls12_381_q2_mulx_u64(&x619, &x620, x475, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x621, &x622, x475, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x623, &x624, x475, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x625, &x626, x475, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x627, &x628, x475, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x629, &x630, x475, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x631, &x632, 0x0, x630, x627); + fiat_bls12_381_q2_addcarryx_u64(&x633, &x634, x632, x628, x625); + fiat_bls12_381_q2_addcarryx_u64(&x635, &x636, x634, x626, x623); + fiat_bls12_381_q2_addcarryx_u64(&x637, &x638, x636, x624, x621); + fiat_bls12_381_q2_addcarryx_u64(&x639, &x640, x638, x622, x619); + x641 = (x640 + x620); + fiat_bls12_381_q2_addcarryx_u64(&x642, &x643, 0x0, x606, x629); + fiat_bls12_381_q2_addcarryx_u64(&x644, &x645, x643, x608, x631); + fiat_bls12_381_q2_addcarryx_u64(&x646, &x647, x645, x610, x633); + fiat_bls12_381_q2_addcarryx_u64(&x648, &x649, x647, x612, x635); + fiat_bls12_381_q2_addcarryx_u64(&x650, &x651, x649, x614, x637); + fiat_bls12_381_q2_addcarryx_u64(&x652, &x653, x651, x616, x639); + fiat_bls12_381_q2_addcarryx_u64(&x654, &x655, x653, x618, x641); + fiat_bls12_381_q2_mulx_u64(&x656, &x657, x642, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x658, &x659, x656, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x660, &x661, x656, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x662, &x663, x656, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x664, &x665, x656, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x666, &x667, x656, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x668, &x669, x656, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x670, &x671, 0x0, x669, x666); + fiat_bls12_381_q2_addcarryx_u64(&x672, &x673, x671, x667, x664); + fiat_bls12_381_q2_addcarryx_u64(&x674, &x675, x673, x665, x662); + fiat_bls12_381_q2_addcarryx_u64(&x676, &x677, x675, x663, x660); + fiat_bls12_381_q2_addcarryx_u64(&x678, &x679, x677, x661, x658); + x680 = (x679 + x659); + fiat_bls12_381_q2_addcarryx_u64(&x681, &x682, 0x0, x642, x668); + fiat_bls12_381_q2_addcarryx_u64(&x683, &x684, x682, x644, x670); + fiat_bls12_381_q2_addcarryx_u64(&x685, &x686, x684, x646, x672); + fiat_bls12_381_q2_addcarryx_u64(&x687, &x688, x686, x648, x674); + fiat_bls12_381_q2_addcarryx_u64(&x689, &x690, x688, x650, x676); + fiat_bls12_381_q2_addcarryx_u64(&x691, &x692, x690, x652, x678); + fiat_bls12_381_q2_addcarryx_u64(&x693, &x694, x692, x654, x680); + x695 = ((uint64_t)x694 + x655); + fiat_bls12_381_q2_mulx_u64(&x696, &x697, x476, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x698, &x699, x476, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x700, &x701, x476, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x702, &x703, x476, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x704, &x705, x476, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x706, &x707, x476, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x708, &x709, 0x0, x707, x704); + fiat_bls12_381_q2_addcarryx_u64(&x710, &x711, x709, x705, x702); + fiat_bls12_381_q2_addcarryx_u64(&x712, &x713, x711, x703, x700); + fiat_bls12_381_q2_addcarryx_u64(&x714, &x715, x713, x701, x698); + fiat_bls12_381_q2_addcarryx_u64(&x716, &x717, x715, x699, x696); + x718 = (x717 + x697); + fiat_bls12_381_q2_addcarryx_u64(&x719, &x720, 0x0, x683, x706); + fiat_bls12_381_q2_addcarryx_u64(&x721, &x722, x720, x685, x708); + fiat_bls12_381_q2_addcarryx_u64(&x723, &x724, x722, x687, x710); + fiat_bls12_381_q2_addcarryx_u64(&x725, &x726, x724, x689, x712); + fiat_bls12_381_q2_addcarryx_u64(&x727, &x728, x726, x691, x714); + fiat_bls12_381_q2_addcarryx_u64(&x729, &x730, x728, x693, x716); + fiat_bls12_381_q2_addcarryx_u64(&x731, &x732, x730, x695, x718); + fiat_bls12_381_q2_mulx_u64(&x733, &x734, x719, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x735, &x736, x733, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x737, &x738, x733, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x739, &x740, x733, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x741, &x742, x733, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x743, &x744, x733, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x745, &x746, x733, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x747, &x748, 0x0, x746, x743); + fiat_bls12_381_q2_addcarryx_u64(&x749, &x750, x748, x744, x741); + fiat_bls12_381_q2_addcarryx_u64(&x751, &x752, x750, x742, x739); + fiat_bls12_381_q2_addcarryx_u64(&x753, &x754, x752, x740, x737); + fiat_bls12_381_q2_addcarryx_u64(&x755, &x756, x754, x738, x735); + x757 = (x756 + x736); + fiat_bls12_381_q2_addcarryx_u64(&x758, &x759, 0x0, x719, x745); + fiat_bls12_381_q2_addcarryx_u64(&x760, &x761, x759, x721, x747); + fiat_bls12_381_q2_addcarryx_u64(&x762, &x763, x761, x723, x749); + fiat_bls12_381_q2_addcarryx_u64(&x764, &x765, x763, x725, x751); + fiat_bls12_381_q2_addcarryx_u64(&x766, &x767, x765, x727, x753); + fiat_bls12_381_q2_addcarryx_u64(&x768, &x769, x767, x729, x755); + fiat_bls12_381_q2_addcarryx_u64(&x770, &x771, x769, x731, x757); + x772 = ((uint64_t)x771 + x732); + fiat_bls12_381_q2_mulx_u64(&x773, &x774, x477, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x775, &x776, x477, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x777, &x778, x477, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x779, &x780, x477, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x781, &x782, x477, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x783, &x784, x477, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x785, &x786, 0x0, x784, x781); + fiat_bls12_381_q2_addcarryx_u64(&x787, &x788, x786, x782, x779); + fiat_bls12_381_q2_addcarryx_u64(&x789, &x790, x788, x780, x777); + fiat_bls12_381_q2_addcarryx_u64(&x791, &x792, x790, x778, x775); + fiat_bls12_381_q2_addcarryx_u64(&x793, &x794, x792, x776, x773); + x795 = (x794 + x774); + fiat_bls12_381_q2_addcarryx_u64(&x796, &x797, 0x0, x760, x783); + fiat_bls12_381_q2_addcarryx_u64(&x798, &x799, x797, x762, x785); + fiat_bls12_381_q2_addcarryx_u64(&x800, &x801, x799, x764, x787); + fiat_bls12_381_q2_addcarryx_u64(&x802, &x803, x801, x766, x789); + fiat_bls12_381_q2_addcarryx_u64(&x804, &x805, x803, x768, x791); + fiat_bls12_381_q2_addcarryx_u64(&x806, &x807, x805, x770, x793); + fiat_bls12_381_q2_addcarryx_u64(&x808, &x809, x807, x772, x795); + fiat_bls12_381_q2_mulx_u64(&x810, &x811, x796, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x812, &x813, x810, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x814, &x815, x810, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x816, &x817, x810, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x818, &x819, x810, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x820, &x821, x810, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x822, &x823, x810, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x824, &x825, 0x0, x823, x820); + fiat_bls12_381_q2_addcarryx_u64(&x826, &x827, x825, x821, x818); + fiat_bls12_381_q2_addcarryx_u64(&x828, &x829, x827, x819, x816); + fiat_bls12_381_q2_addcarryx_u64(&x830, &x831, x829, x817, x814); + fiat_bls12_381_q2_addcarryx_u64(&x832, &x833, x831, x815, x812); + x834 = (x833 + x813); + fiat_bls12_381_q2_addcarryx_u64(&x835, &x836, 0x0, x796, x822); + fiat_bls12_381_q2_addcarryx_u64(&x837, &x838, x836, x798, x824); + fiat_bls12_381_q2_addcarryx_u64(&x839, &x840, x838, x800, x826); + fiat_bls12_381_q2_addcarryx_u64(&x841, &x842, x840, x802, x828); + fiat_bls12_381_q2_addcarryx_u64(&x843, &x844, x842, x804, x830); + fiat_bls12_381_q2_addcarryx_u64(&x845, &x846, x844, x806, x832); + fiat_bls12_381_q2_addcarryx_u64(&x847, &x848, x846, x808, x834); + x849 = ((uint64_t)x848 + x809); + fiat_bls12_381_q2_mulx_u64(&x850, &x851, x478, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x852, &x853, x478, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x854, &x855, x478, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x856, &x857, x478, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x858, &x859, x478, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x860, &x861, x478, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x862, &x863, 0x0, x861, x858); + fiat_bls12_381_q2_addcarryx_u64(&x864, &x865, x863, x859, x856); + fiat_bls12_381_q2_addcarryx_u64(&x866, &x867, x865, x857, x854); + fiat_bls12_381_q2_addcarryx_u64(&x868, &x869, x867, x855, x852); + fiat_bls12_381_q2_addcarryx_u64(&x870, &x871, x869, x853, x850); + x872 = (x871 + x851); + fiat_bls12_381_q2_addcarryx_u64(&x873, &x874, 0x0, x837, x860); + fiat_bls12_381_q2_addcarryx_u64(&x875, &x876, x874, x839, x862); + fiat_bls12_381_q2_addcarryx_u64(&x877, &x878, x876, x841, x864); + fiat_bls12_381_q2_addcarryx_u64(&x879, &x880, x878, x843, x866); + fiat_bls12_381_q2_addcarryx_u64(&x881, &x882, x880, x845, x868); + fiat_bls12_381_q2_addcarryx_u64(&x883, &x884, x882, x847, x870); + fiat_bls12_381_q2_addcarryx_u64(&x885, &x886, x884, x849, x872); + fiat_bls12_381_q2_mulx_u64(&x887, &x888, x873, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x889, &x890, x887, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x891, &x892, x887, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x893, &x894, x887, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x895, &x896, x887, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x897, &x898, x887, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x899, &x900, x887, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x901, &x902, 0x0, x900, x897); + fiat_bls12_381_q2_addcarryx_u64(&x903, &x904, x902, x898, x895); + fiat_bls12_381_q2_addcarryx_u64(&x905, &x906, x904, x896, x893); + fiat_bls12_381_q2_addcarryx_u64(&x907, &x908, x906, x894, x891); + fiat_bls12_381_q2_addcarryx_u64(&x909, &x910, x908, x892, x889); + x911 = (x910 + x890); + fiat_bls12_381_q2_addcarryx_u64(&x912, &x913, 0x0, x873, x899); + fiat_bls12_381_q2_addcarryx_u64(&x914, &x915, x913, x875, x901); + fiat_bls12_381_q2_addcarryx_u64(&x916, &x917, x915, x877, x903); + fiat_bls12_381_q2_addcarryx_u64(&x918, &x919, x917, x879, x905); + fiat_bls12_381_q2_addcarryx_u64(&x920, &x921, x919, x881, x907); + fiat_bls12_381_q2_addcarryx_u64(&x922, &x923, x921, x883, x909); + fiat_bls12_381_q2_addcarryx_u64(&x924, &x925, x923, x885, x911); + x926 = ((uint64_t)x925 + x886); + fiat_bls12_381_q2_subborrowx_u64(&x927, &x928, 0x0, x914, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x929, &x930, x928, x916, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x931, &x932, x930, x918, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x933, &x934, x932, x920, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x935, &x936, x934, x922, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x937, &x938, x936, x924, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x939, &x940, x938, x926, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x941, x940, x927, x914); + fiat_bls12_381_q2_cmovznz_u64(&x942, x940, x929, x916); + fiat_bls12_381_q2_cmovznz_u64(&x943, x940, x931, x918); + fiat_bls12_381_q2_cmovznz_u64(&x944, x940, x933, x920); + fiat_bls12_381_q2_cmovznz_u64(&x945, x940, x935, x922); + fiat_bls12_381_q2_cmovznz_u64(&x946, x940, x937, x924); + x947 = (arg1[1]); + x948 = (arg1[2]); + x949 = (arg1[3]); + x950 = (arg1[4]); + x951 = (arg1[5]); + x952 = (arg1[0]); + fiat_bls12_381_q2_mulx_u64(&x953, &x954, x952, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x955, &x956, x952, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x957, &x958, x952, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x959, &x960, x952, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x961, &x962, x952, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x963, &x964, x952, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x965, &x966, 0x0, x964, x961); + fiat_bls12_381_q2_addcarryx_u64(&x967, &x968, x966, x962, x959); + fiat_bls12_381_q2_addcarryx_u64(&x969, &x970, x968, x960, x957); + fiat_bls12_381_q2_addcarryx_u64(&x971, &x972, x970, x958, x955); + fiat_bls12_381_q2_addcarryx_u64(&x973, &x974, x972, x956, x953); + x975 = (x974 + x954); + fiat_bls12_381_q2_mulx_u64(&x976, &x977, x963, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x978, &x979, x976, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x980, &x981, x976, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x982, &x983, x976, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x984, &x985, x976, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x986, &x987, x976, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x988, &x989, x976, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x990, &x991, 0x0, x989, x986); + fiat_bls12_381_q2_addcarryx_u64(&x992, &x993, x991, x987, x984); + fiat_bls12_381_q2_addcarryx_u64(&x994, &x995, x993, x985, x982); + fiat_bls12_381_q2_addcarryx_u64(&x996, &x997, x995, x983, x980); + fiat_bls12_381_q2_addcarryx_u64(&x998, &x999, x997, x981, x978); + x1000 = (x999 + x979); + fiat_bls12_381_q2_addcarryx_u64(&x1001, &x1002, 0x0, x963, x988); + fiat_bls12_381_q2_addcarryx_u64(&x1003, &x1004, x1002, x965, x990); + fiat_bls12_381_q2_addcarryx_u64(&x1005, &x1006, x1004, x967, x992); + fiat_bls12_381_q2_addcarryx_u64(&x1007, &x1008, x1006, x969, x994); + fiat_bls12_381_q2_addcarryx_u64(&x1009, &x1010, x1008, x971, x996); + fiat_bls12_381_q2_addcarryx_u64(&x1011, &x1012, x1010, x973, x998); + fiat_bls12_381_q2_addcarryx_u64(&x1013, &x1014, x1012, x975, x1000); + fiat_bls12_381_q2_mulx_u64(&x1015, &x1016, x947, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x1017, &x1018, x947, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x1019, &x1020, x947, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x1021, &x1022, x947, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x1023, &x1024, x947, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x1025, &x1026, x947, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x1027, &x1028, 0x0, x1026, x1023); + fiat_bls12_381_q2_addcarryx_u64(&x1029, &x1030, x1028, x1024, x1021); + fiat_bls12_381_q2_addcarryx_u64(&x1031, &x1032, x1030, x1022, x1019); + fiat_bls12_381_q2_addcarryx_u64(&x1033, &x1034, x1032, x1020, x1017); + fiat_bls12_381_q2_addcarryx_u64(&x1035, &x1036, x1034, x1018, x1015); + x1037 = (x1036 + x1016); + fiat_bls12_381_q2_addcarryx_u64(&x1038, &x1039, 0x0, x1003, x1025); + fiat_bls12_381_q2_addcarryx_u64(&x1040, &x1041, x1039, x1005, x1027); + fiat_bls12_381_q2_addcarryx_u64(&x1042, &x1043, x1041, x1007, x1029); + fiat_bls12_381_q2_addcarryx_u64(&x1044, &x1045, x1043, x1009, x1031); + fiat_bls12_381_q2_addcarryx_u64(&x1046, &x1047, x1045, x1011, x1033); + fiat_bls12_381_q2_addcarryx_u64(&x1048, &x1049, x1047, x1013, x1035); + fiat_bls12_381_q2_addcarryx_u64(&x1050, &x1051, x1049, x1014, x1037); + fiat_bls12_381_q2_mulx_u64(&x1052, &x1053, x1038, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1054, &x1055, x1052, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1056, &x1057, x1052, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1058, &x1059, x1052, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1060, &x1061, x1052, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1062, &x1063, x1052, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1064, &x1065, x1052, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1066, &x1067, 0x0, x1065, x1062); + fiat_bls12_381_q2_addcarryx_u64(&x1068, &x1069, x1067, x1063, x1060); + fiat_bls12_381_q2_addcarryx_u64(&x1070, &x1071, x1069, x1061, x1058); + fiat_bls12_381_q2_addcarryx_u64(&x1072, &x1073, x1071, x1059, x1056); + fiat_bls12_381_q2_addcarryx_u64(&x1074, &x1075, x1073, x1057, x1054); + x1076 = (x1075 + x1055); + fiat_bls12_381_q2_addcarryx_u64(&x1077, &x1078, 0x0, x1038, x1064); + fiat_bls12_381_q2_addcarryx_u64(&x1079, &x1080, x1078, x1040, x1066); + fiat_bls12_381_q2_addcarryx_u64(&x1081, &x1082, x1080, x1042, x1068); + fiat_bls12_381_q2_addcarryx_u64(&x1083, &x1084, x1082, x1044, x1070); + fiat_bls12_381_q2_addcarryx_u64(&x1085, &x1086, x1084, x1046, x1072); + fiat_bls12_381_q2_addcarryx_u64(&x1087, &x1088, x1086, x1048, x1074); + fiat_bls12_381_q2_addcarryx_u64(&x1089, &x1090, x1088, x1050, x1076); + x1091 = ((uint64_t)x1090 + x1051); + fiat_bls12_381_q2_mulx_u64(&x1092, &x1093, x948, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x1094, &x1095, x948, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x1096, &x1097, x948, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x1098, &x1099, x948, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x1100, &x1101, x948, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x1102, &x1103, x948, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x1104, &x1105, 0x0, x1103, x1100); + fiat_bls12_381_q2_addcarryx_u64(&x1106, &x1107, x1105, x1101, x1098); + fiat_bls12_381_q2_addcarryx_u64(&x1108, &x1109, x1107, x1099, x1096); + fiat_bls12_381_q2_addcarryx_u64(&x1110, &x1111, x1109, x1097, x1094); + fiat_bls12_381_q2_addcarryx_u64(&x1112, &x1113, x1111, x1095, x1092); + x1114 = (x1113 + x1093); + fiat_bls12_381_q2_addcarryx_u64(&x1115, &x1116, 0x0, x1079, x1102); + fiat_bls12_381_q2_addcarryx_u64(&x1117, &x1118, x1116, x1081, x1104); + fiat_bls12_381_q2_addcarryx_u64(&x1119, &x1120, x1118, x1083, x1106); + fiat_bls12_381_q2_addcarryx_u64(&x1121, &x1122, x1120, x1085, x1108); + fiat_bls12_381_q2_addcarryx_u64(&x1123, &x1124, x1122, x1087, x1110); + fiat_bls12_381_q2_addcarryx_u64(&x1125, &x1126, x1124, x1089, x1112); + fiat_bls12_381_q2_addcarryx_u64(&x1127, &x1128, x1126, x1091, x1114); + fiat_bls12_381_q2_mulx_u64(&x1129, &x1130, x1115, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1131, &x1132, x1129, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1133, &x1134, x1129, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1135, &x1136, x1129, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1137, &x1138, x1129, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1139, &x1140, x1129, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1141, &x1142, x1129, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1143, &x1144, 0x0, x1142, x1139); + fiat_bls12_381_q2_addcarryx_u64(&x1145, &x1146, x1144, x1140, x1137); + fiat_bls12_381_q2_addcarryx_u64(&x1147, &x1148, x1146, x1138, x1135); + fiat_bls12_381_q2_addcarryx_u64(&x1149, &x1150, x1148, x1136, x1133); + fiat_bls12_381_q2_addcarryx_u64(&x1151, &x1152, x1150, x1134, x1131); + x1153 = (x1152 + x1132); + fiat_bls12_381_q2_addcarryx_u64(&x1154, &x1155, 0x0, x1115, x1141); + fiat_bls12_381_q2_addcarryx_u64(&x1156, &x1157, x1155, x1117, x1143); + fiat_bls12_381_q2_addcarryx_u64(&x1158, &x1159, x1157, x1119, x1145); + fiat_bls12_381_q2_addcarryx_u64(&x1160, &x1161, x1159, x1121, x1147); + fiat_bls12_381_q2_addcarryx_u64(&x1162, &x1163, x1161, x1123, x1149); + fiat_bls12_381_q2_addcarryx_u64(&x1164, &x1165, x1163, x1125, x1151); + fiat_bls12_381_q2_addcarryx_u64(&x1166, &x1167, x1165, x1127, x1153); + x1168 = ((uint64_t)x1167 + x1128); + fiat_bls12_381_q2_mulx_u64(&x1169, &x1170, x949, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x1171, &x1172, x949, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x1173, &x1174, x949, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x1175, &x1176, x949, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x1177, &x1178, x949, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x1179, &x1180, x949, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x1181, &x1182, 0x0, x1180, x1177); + fiat_bls12_381_q2_addcarryx_u64(&x1183, &x1184, x1182, x1178, x1175); + fiat_bls12_381_q2_addcarryx_u64(&x1185, &x1186, x1184, x1176, x1173); + fiat_bls12_381_q2_addcarryx_u64(&x1187, &x1188, x1186, x1174, x1171); + fiat_bls12_381_q2_addcarryx_u64(&x1189, &x1190, x1188, x1172, x1169); + x1191 = (x1190 + x1170); + fiat_bls12_381_q2_addcarryx_u64(&x1192, &x1193, 0x0, x1156, x1179); + fiat_bls12_381_q2_addcarryx_u64(&x1194, &x1195, x1193, x1158, x1181); + fiat_bls12_381_q2_addcarryx_u64(&x1196, &x1197, x1195, x1160, x1183); + fiat_bls12_381_q2_addcarryx_u64(&x1198, &x1199, x1197, x1162, x1185); + fiat_bls12_381_q2_addcarryx_u64(&x1200, &x1201, x1199, x1164, x1187); + fiat_bls12_381_q2_addcarryx_u64(&x1202, &x1203, x1201, x1166, x1189); + fiat_bls12_381_q2_addcarryx_u64(&x1204, &x1205, x1203, x1168, x1191); + fiat_bls12_381_q2_mulx_u64(&x1206, &x1207, x1192, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1208, &x1209, x1206, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1210, &x1211, x1206, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1212, &x1213, x1206, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1214, &x1215, x1206, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1216, &x1217, x1206, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1218, &x1219, x1206, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1220, &x1221, 0x0, x1219, x1216); + fiat_bls12_381_q2_addcarryx_u64(&x1222, &x1223, x1221, x1217, x1214); + fiat_bls12_381_q2_addcarryx_u64(&x1224, &x1225, x1223, x1215, x1212); + fiat_bls12_381_q2_addcarryx_u64(&x1226, &x1227, x1225, x1213, x1210); + fiat_bls12_381_q2_addcarryx_u64(&x1228, &x1229, x1227, x1211, x1208); + x1230 = (x1229 + x1209); + fiat_bls12_381_q2_addcarryx_u64(&x1231, &x1232, 0x0, x1192, x1218); + fiat_bls12_381_q2_addcarryx_u64(&x1233, &x1234, x1232, x1194, x1220); + fiat_bls12_381_q2_addcarryx_u64(&x1235, &x1236, x1234, x1196, x1222); + fiat_bls12_381_q2_addcarryx_u64(&x1237, &x1238, x1236, x1198, x1224); + fiat_bls12_381_q2_addcarryx_u64(&x1239, &x1240, x1238, x1200, x1226); + fiat_bls12_381_q2_addcarryx_u64(&x1241, &x1242, x1240, x1202, x1228); + fiat_bls12_381_q2_addcarryx_u64(&x1243, &x1244, x1242, x1204, x1230); + x1245 = ((uint64_t)x1244 + x1205); + fiat_bls12_381_q2_mulx_u64(&x1246, &x1247, x950, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x1248, &x1249, x950, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x1250, &x1251, x950, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x1252, &x1253, x950, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x1254, &x1255, x950, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x1256, &x1257, x950, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x1258, &x1259, 0x0, x1257, x1254); + fiat_bls12_381_q2_addcarryx_u64(&x1260, &x1261, x1259, x1255, x1252); + fiat_bls12_381_q2_addcarryx_u64(&x1262, &x1263, x1261, x1253, x1250); + fiat_bls12_381_q2_addcarryx_u64(&x1264, &x1265, x1263, x1251, x1248); + fiat_bls12_381_q2_addcarryx_u64(&x1266, &x1267, x1265, x1249, x1246); + x1268 = (x1267 + x1247); + fiat_bls12_381_q2_addcarryx_u64(&x1269, &x1270, 0x0, x1233, x1256); + fiat_bls12_381_q2_addcarryx_u64(&x1271, &x1272, x1270, x1235, x1258); + fiat_bls12_381_q2_addcarryx_u64(&x1273, &x1274, x1272, x1237, x1260); + fiat_bls12_381_q2_addcarryx_u64(&x1275, &x1276, x1274, x1239, x1262); + fiat_bls12_381_q2_addcarryx_u64(&x1277, &x1278, x1276, x1241, x1264); + fiat_bls12_381_q2_addcarryx_u64(&x1279, &x1280, x1278, x1243, x1266); + fiat_bls12_381_q2_addcarryx_u64(&x1281, &x1282, x1280, x1245, x1268); + fiat_bls12_381_q2_mulx_u64(&x1283, &x1284, x1269, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1285, &x1286, x1283, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1287, &x1288, x1283, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1289, &x1290, x1283, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1291, &x1292, x1283, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1293, &x1294, x1283, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1295, &x1296, x1283, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1297, &x1298, 0x0, x1296, x1293); + fiat_bls12_381_q2_addcarryx_u64(&x1299, &x1300, x1298, x1294, x1291); + fiat_bls12_381_q2_addcarryx_u64(&x1301, &x1302, x1300, x1292, x1289); + fiat_bls12_381_q2_addcarryx_u64(&x1303, &x1304, x1302, x1290, x1287); + fiat_bls12_381_q2_addcarryx_u64(&x1305, &x1306, x1304, x1288, x1285); + x1307 = (x1306 + x1286); + fiat_bls12_381_q2_addcarryx_u64(&x1308, &x1309, 0x0, x1269, x1295); + fiat_bls12_381_q2_addcarryx_u64(&x1310, &x1311, x1309, x1271, x1297); + fiat_bls12_381_q2_addcarryx_u64(&x1312, &x1313, x1311, x1273, x1299); + fiat_bls12_381_q2_addcarryx_u64(&x1314, &x1315, x1313, x1275, x1301); + fiat_bls12_381_q2_addcarryx_u64(&x1316, &x1317, x1315, x1277, x1303); + fiat_bls12_381_q2_addcarryx_u64(&x1318, &x1319, x1317, x1279, x1305); + fiat_bls12_381_q2_addcarryx_u64(&x1320, &x1321, x1319, x1281, x1307); + x1322 = ((uint64_t)x1321 + x1282); + fiat_bls12_381_q2_mulx_u64(&x1323, &x1324, x951, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x1325, &x1326, x951, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x1327, &x1328, x951, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x1329, &x1330, x951, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x1331, &x1332, x951, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x1333, &x1334, x951, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x1335, &x1336, 0x0, x1334, x1331); + fiat_bls12_381_q2_addcarryx_u64(&x1337, &x1338, x1336, x1332, x1329); + fiat_bls12_381_q2_addcarryx_u64(&x1339, &x1340, x1338, x1330, x1327); + fiat_bls12_381_q2_addcarryx_u64(&x1341, &x1342, x1340, x1328, x1325); + fiat_bls12_381_q2_addcarryx_u64(&x1343, &x1344, x1342, x1326, x1323); + x1345 = (x1344 + x1324); + fiat_bls12_381_q2_addcarryx_u64(&x1346, &x1347, 0x0, x1310, x1333); + fiat_bls12_381_q2_addcarryx_u64(&x1348, &x1349, x1347, x1312, x1335); + fiat_bls12_381_q2_addcarryx_u64(&x1350, &x1351, x1349, x1314, x1337); + fiat_bls12_381_q2_addcarryx_u64(&x1352, &x1353, x1351, x1316, x1339); + fiat_bls12_381_q2_addcarryx_u64(&x1354, &x1355, x1353, x1318, x1341); + fiat_bls12_381_q2_addcarryx_u64(&x1356, &x1357, x1355, x1320, x1343); + fiat_bls12_381_q2_addcarryx_u64(&x1358, &x1359, x1357, x1322, x1345); + fiat_bls12_381_q2_mulx_u64(&x1360, &x1361, x1346, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1362, &x1363, x1360, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1364, &x1365, x1360, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1366, &x1367, x1360, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1368, &x1369, x1360, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1370, &x1371, x1360, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1372, &x1373, x1360, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1374, &x1375, 0x0, x1373, x1370); + fiat_bls12_381_q2_addcarryx_u64(&x1376, &x1377, x1375, x1371, x1368); + fiat_bls12_381_q2_addcarryx_u64(&x1378, &x1379, x1377, x1369, x1366); + fiat_bls12_381_q2_addcarryx_u64(&x1380, &x1381, x1379, x1367, x1364); + fiat_bls12_381_q2_addcarryx_u64(&x1382, &x1383, x1381, x1365, x1362); + x1384 = (x1383 + x1363); + fiat_bls12_381_q2_addcarryx_u64(&x1385, &x1386, 0x0, x1346, x1372); + fiat_bls12_381_q2_addcarryx_u64(&x1387, &x1388, x1386, x1348, x1374); + fiat_bls12_381_q2_addcarryx_u64(&x1389, &x1390, x1388, x1350, x1376); + fiat_bls12_381_q2_addcarryx_u64(&x1391, &x1392, x1390, x1352, x1378); + fiat_bls12_381_q2_addcarryx_u64(&x1393, &x1394, x1392, x1354, x1380); + fiat_bls12_381_q2_addcarryx_u64(&x1395, &x1396, x1394, x1356, x1382); + fiat_bls12_381_q2_addcarryx_u64(&x1397, &x1398, x1396, x1358, x1384); + x1399 = ((uint64_t)x1398 + x1359); + fiat_bls12_381_q2_subborrowx_u64(&x1400, &x1401, 0x0, x1387, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x1402, &x1403, x1401, x1389, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x1404, &x1405, x1403, x1391, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x1406, &x1407, x1405, x1393, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x1408, &x1409, x1407, x1395, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x1410, &x1411, x1409, x1397, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x1412, &x1413, x1411, x1399, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x1414, x1413, x1400, x1387); + fiat_bls12_381_q2_cmovznz_u64(&x1415, x1413, x1402, x1389); + fiat_bls12_381_q2_cmovznz_u64(&x1416, x1413, x1404, x1391); + fiat_bls12_381_q2_cmovznz_u64(&x1417, x1413, x1406, x1393); + fiat_bls12_381_q2_cmovznz_u64(&x1418, x1413, x1408, x1395); + fiat_bls12_381_q2_cmovznz_u64(&x1419, x1413, x1410, x1397); + x1420 = (arg2[1]); + x1421 = (arg2[2]); + x1422 = (arg2[3]); + x1423 = (arg2[4]); + x1424 = (arg2[5]); + x1425 = (arg2[0]); + fiat_bls12_381_q2_mulx_u64(&x1426, &x1427, x1425, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x1428, &x1429, x1425, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x1430, &x1431, x1425, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x1432, &x1433, x1425, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x1434, &x1435, x1425, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x1436, &x1437, x1425, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x1438, &x1439, 0x0, x1437, x1434); + fiat_bls12_381_q2_addcarryx_u64(&x1440, &x1441, x1439, x1435, x1432); + fiat_bls12_381_q2_addcarryx_u64(&x1442, &x1443, x1441, x1433, x1430); + fiat_bls12_381_q2_addcarryx_u64(&x1444, &x1445, x1443, x1431, x1428); + fiat_bls12_381_q2_addcarryx_u64(&x1446, &x1447, x1445, x1429, x1426); + x1448 = (x1447 + x1427); + fiat_bls12_381_q2_mulx_u64(&x1449, &x1450, x1436, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1451, &x1452, x1449, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1453, &x1454, x1449, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1455, &x1456, x1449, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1457, &x1458, x1449, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1459, &x1460, x1449, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1461, &x1462, x1449, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1463, &x1464, 0x0, x1462, x1459); + fiat_bls12_381_q2_addcarryx_u64(&x1465, &x1466, x1464, x1460, x1457); + fiat_bls12_381_q2_addcarryx_u64(&x1467, &x1468, x1466, x1458, x1455); + fiat_bls12_381_q2_addcarryx_u64(&x1469, &x1470, x1468, x1456, x1453); + fiat_bls12_381_q2_addcarryx_u64(&x1471, &x1472, x1470, x1454, x1451); + x1473 = (x1472 + x1452); + fiat_bls12_381_q2_addcarryx_u64(&x1474, &x1475, 0x0, x1436, x1461); + fiat_bls12_381_q2_addcarryx_u64(&x1476, &x1477, x1475, x1438, x1463); + fiat_bls12_381_q2_addcarryx_u64(&x1478, &x1479, x1477, x1440, x1465); + fiat_bls12_381_q2_addcarryx_u64(&x1480, &x1481, x1479, x1442, x1467); + fiat_bls12_381_q2_addcarryx_u64(&x1482, &x1483, x1481, x1444, x1469); + fiat_bls12_381_q2_addcarryx_u64(&x1484, &x1485, x1483, x1446, x1471); + fiat_bls12_381_q2_addcarryx_u64(&x1486, &x1487, x1485, x1448, x1473); + fiat_bls12_381_q2_mulx_u64(&x1488, &x1489, x1420, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x1490, &x1491, x1420, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x1492, &x1493, x1420, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x1494, &x1495, x1420, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x1496, &x1497, x1420, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x1498, &x1499, x1420, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x1500, &x1501, 0x0, x1499, x1496); + fiat_bls12_381_q2_addcarryx_u64(&x1502, &x1503, x1501, x1497, x1494); + fiat_bls12_381_q2_addcarryx_u64(&x1504, &x1505, x1503, x1495, x1492); + fiat_bls12_381_q2_addcarryx_u64(&x1506, &x1507, x1505, x1493, x1490); + fiat_bls12_381_q2_addcarryx_u64(&x1508, &x1509, x1507, x1491, x1488); + x1510 = (x1509 + x1489); + fiat_bls12_381_q2_addcarryx_u64(&x1511, &x1512, 0x0, x1476, x1498); + fiat_bls12_381_q2_addcarryx_u64(&x1513, &x1514, x1512, x1478, x1500); + fiat_bls12_381_q2_addcarryx_u64(&x1515, &x1516, x1514, x1480, x1502); + fiat_bls12_381_q2_addcarryx_u64(&x1517, &x1518, x1516, x1482, x1504); + fiat_bls12_381_q2_addcarryx_u64(&x1519, &x1520, x1518, x1484, x1506); + fiat_bls12_381_q2_addcarryx_u64(&x1521, &x1522, x1520, x1486, x1508); + fiat_bls12_381_q2_addcarryx_u64(&x1523, &x1524, x1522, x1487, x1510); + fiat_bls12_381_q2_mulx_u64(&x1525, &x1526, x1511, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1527, &x1528, x1525, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1529, &x1530, x1525, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1531, &x1532, x1525, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1533, &x1534, x1525, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1535, &x1536, x1525, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1537, &x1538, x1525, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1539, &x1540, 0x0, x1538, x1535); + fiat_bls12_381_q2_addcarryx_u64(&x1541, &x1542, x1540, x1536, x1533); + fiat_bls12_381_q2_addcarryx_u64(&x1543, &x1544, x1542, x1534, x1531); + fiat_bls12_381_q2_addcarryx_u64(&x1545, &x1546, x1544, x1532, x1529); + fiat_bls12_381_q2_addcarryx_u64(&x1547, &x1548, x1546, x1530, x1527); + x1549 = (x1548 + x1528); + fiat_bls12_381_q2_addcarryx_u64(&x1550, &x1551, 0x0, x1511, x1537); + fiat_bls12_381_q2_addcarryx_u64(&x1552, &x1553, x1551, x1513, x1539); + fiat_bls12_381_q2_addcarryx_u64(&x1554, &x1555, x1553, x1515, x1541); + fiat_bls12_381_q2_addcarryx_u64(&x1556, &x1557, x1555, x1517, x1543); + fiat_bls12_381_q2_addcarryx_u64(&x1558, &x1559, x1557, x1519, x1545); + fiat_bls12_381_q2_addcarryx_u64(&x1560, &x1561, x1559, x1521, x1547); + fiat_bls12_381_q2_addcarryx_u64(&x1562, &x1563, x1561, x1523, x1549); + x1564 = ((uint64_t)x1563 + x1524); + fiat_bls12_381_q2_mulx_u64(&x1565, &x1566, x1421, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x1567, &x1568, x1421, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x1569, &x1570, x1421, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x1571, &x1572, x1421, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x1573, &x1574, x1421, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x1575, &x1576, x1421, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x1577, &x1578, 0x0, x1576, x1573); + fiat_bls12_381_q2_addcarryx_u64(&x1579, &x1580, x1578, x1574, x1571); + fiat_bls12_381_q2_addcarryx_u64(&x1581, &x1582, x1580, x1572, x1569); + fiat_bls12_381_q2_addcarryx_u64(&x1583, &x1584, x1582, x1570, x1567); + fiat_bls12_381_q2_addcarryx_u64(&x1585, &x1586, x1584, x1568, x1565); + x1587 = (x1586 + x1566); + fiat_bls12_381_q2_addcarryx_u64(&x1588, &x1589, 0x0, x1552, x1575); + fiat_bls12_381_q2_addcarryx_u64(&x1590, &x1591, x1589, x1554, x1577); + fiat_bls12_381_q2_addcarryx_u64(&x1592, &x1593, x1591, x1556, x1579); + fiat_bls12_381_q2_addcarryx_u64(&x1594, &x1595, x1593, x1558, x1581); + fiat_bls12_381_q2_addcarryx_u64(&x1596, &x1597, x1595, x1560, x1583); + fiat_bls12_381_q2_addcarryx_u64(&x1598, &x1599, x1597, x1562, x1585); + fiat_bls12_381_q2_addcarryx_u64(&x1600, &x1601, x1599, x1564, x1587); + fiat_bls12_381_q2_mulx_u64(&x1602, &x1603, x1588, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1604, &x1605, x1602, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1606, &x1607, x1602, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1608, &x1609, x1602, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1610, &x1611, x1602, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1612, &x1613, x1602, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1614, &x1615, x1602, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1616, &x1617, 0x0, x1615, x1612); + fiat_bls12_381_q2_addcarryx_u64(&x1618, &x1619, x1617, x1613, x1610); + fiat_bls12_381_q2_addcarryx_u64(&x1620, &x1621, x1619, x1611, x1608); + fiat_bls12_381_q2_addcarryx_u64(&x1622, &x1623, x1621, x1609, x1606); + fiat_bls12_381_q2_addcarryx_u64(&x1624, &x1625, x1623, x1607, x1604); + x1626 = (x1625 + x1605); + fiat_bls12_381_q2_addcarryx_u64(&x1627, &x1628, 0x0, x1588, x1614); + fiat_bls12_381_q2_addcarryx_u64(&x1629, &x1630, x1628, x1590, x1616); + fiat_bls12_381_q2_addcarryx_u64(&x1631, &x1632, x1630, x1592, x1618); + fiat_bls12_381_q2_addcarryx_u64(&x1633, &x1634, x1632, x1594, x1620); + fiat_bls12_381_q2_addcarryx_u64(&x1635, &x1636, x1634, x1596, x1622); + fiat_bls12_381_q2_addcarryx_u64(&x1637, &x1638, x1636, x1598, x1624); + fiat_bls12_381_q2_addcarryx_u64(&x1639, &x1640, x1638, x1600, x1626); + x1641 = ((uint64_t)x1640 + x1601); + fiat_bls12_381_q2_mulx_u64(&x1642, &x1643, x1422, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x1644, &x1645, x1422, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x1646, &x1647, x1422, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x1648, &x1649, x1422, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x1650, &x1651, x1422, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x1652, &x1653, x1422, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x1654, &x1655, 0x0, x1653, x1650); + fiat_bls12_381_q2_addcarryx_u64(&x1656, &x1657, x1655, x1651, x1648); + fiat_bls12_381_q2_addcarryx_u64(&x1658, &x1659, x1657, x1649, x1646); + fiat_bls12_381_q2_addcarryx_u64(&x1660, &x1661, x1659, x1647, x1644); + fiat_bls12_381_q2_addcarryx_u64(&x1662, &x1663, x1661, x1645, x1642); + x1664 = (x1663 + x1643); + fiat_bls12_381_q2_addcarryx_u64(&x1665, &x1666, 0x0, x1629, x1652); + fiat_bls12_381_q2_addcarryx_u64(&x1667, &x1668, x1666, x1631, x1654); + fiat_bls12_381_q2_addcarryx_u64(&x1669, &x1670, x1668, x1633, x1656); + fiat_bls12_381_q2_addcarryx_u64(&x1671, &x1672, x1670, x1635, x1658); + fiat_bls12_381_q2_addcarryx_u64(&x1673, &x1674, x1672, x1637, x1660); + fiat_bls12_381_q2_addcarryx_u64(&x1675, &x1676, x1674, x1639, x1662); + fiat_bls12_381_q2_addcarryx_u64(&x1677, &x1678, x1676, x1641, x1664); + fiat_bls12_381_q2_mulx_u64(&x1679, &x1680, x1665, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1681, &x1682, x1679, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1683, &x1684, x1679, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1685, &x1686, x1679, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1687, &x1688, x1679, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1689, &x1690, x1679, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1691, &x1692, x1679, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1693, &x1694, 0x0, x1692, x1689); + fiat_bls12_381_q2_addcarryx_u64(&x1695, &x1696, x1694, x1690, x1687); + fiat_bls12_381_q2_addcarryx_u64(&x1697, &x1698, x1696, x1688, x1685); + fiat_bls12_381_q2_addcarryx_u64(&x1699, &x1700, x1698, x1686, x1683); + fiat_bls12_381_q2_addcarryx_u64(&x1701, &x1702, x1700, x1684, x1681); + x1703 = (x1702 + x1682); + fiat_bls12_381_q2_addcarryx_u64(&x1704, &x1705, 0x0, x1665, x1691); + fiat_bls12_381_q2_addcarryx_u64(&x1706, &x1707, x1705, x1667, x1693); + fiat_bls12_381_q2_addcarryx_u64(&x1708, &x1709, x1707, x1669, x1695); + fiat_bls12_381_q2_addcarryx_u64(&x1710, &x1711, x1709, x1671, x1697); + fiat_bls12_381_q2_addcarryx_u64(&x1712, &x1713, x1711, x1673, x1699); + fiat_bls12_381_q2_addcarryx_u64(&x1714, &x1715, x1713, x1675, x1701); + fiat_bls12_381_q2_addcarryx_u64(&x1716, &x1717, x1715, x1677, x1703); + x1718 = ((uint64_t)x1717 + x1678); + fiat_bls12_381_q2_mulx_u64(&x1719, &x1720, x1423, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x1721, &x1722, x1423, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x1723, &x1724, x1423, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x1725, &x1726, x1423, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x1727, &x1728, x1423, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x1729, &x1730, x1423, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x1731, &x1732, 0x0, x1730, x1727); + fiat_bls12_381_q2_addcarryx_u64(&x1733, &x1734, x1732, x1728, x1725); + fiat_bls12_381_q2_addcarryx_u64(&x1735, &x1736, x1734, x1726, x1723); + fiat_bls12_381_q2_addcarryx_u64(&x1737, &x1738, x1736, x1724, x1721); + fiat_bls12_381_q2_addcarryx_u64(&x1739, &x1740, x1738, x1722, x1719); + x1741 = (x1740 + x1720); + fiat_bls12_381_q2_addcarryx_u64(&x1742, &x1743, 0x0, x1706, x1729); + fiat_bls12_381_q2_addcarryx_u64(&x1744, &x1745, x1743, x1708, x1731); + fiat_bls12_381_q2_addcarryx_u64(&x1746, &x1747, x1745, x1710, x1733); + fiat_bls12_381_q2_addcarryx_u64(&x1748, &x1749, x1747, x1712, x1735); + fiat_bls12_381_q2_addcarryx_u64(&x1750, &x1751, x1749, x1714, x1737); + fiat_bls12_381_q2_addcarryx_u64(&x1752, &x1753, x1751, x1716, x1739); + fiat_bls12_381_q2_addcarryx_u64(&x1754, &x1755, x1753, x1718, x1741); + fiat_bls12_381_q2_mulx_u64(&x1756, &x1757, x1742, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1758, &x1759, x1756, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1760, &x1761, x1756, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1762, &x1763, x1756, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1764, &x1765, x1756, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1766, &x1767, x1756, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1768, &x1769, x1756, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1770, &x1771, 0x0, x1769, x1766); + fiat_bls12_381_q2_addcarryx_u64(&x1772, &x1773, x1771, x1767, x1764); + fiat_bls12_381_q2_addcarryx_u64(&x1774, &x1775, x1773, x1765, x1762); + fiat_bls12_381_q2_addcarryx_u64(&x1776, &x1777, x1775, x1763, x1760); + fiat_bls12_381_q2_addcarryx_u64(&x1778, &x1779, x1777, x1761, x1758); + x1780 = (x1779 + x1759); + fiat_bls12_381_q2_addcarryx_u64(&x1781, &x1782, 0x0, x1742, x1768); + fiat_bls12_381_q2_addcarryx_u64(&x1783, &x1784, x1782, x1744, x1770); + fiat_bls12_381_q2_addcarryx_u64(&x1785, &x1786, x1784, x1746, x1772); + fiat_bls12_381_q2_addcarryx_u64(&x1787, &x1788, x1786, x1748, x1774); + fiat_bls12_381_q2_addcarryx_u64(&x1789, &x1790, x1788, x1750, x1776); + fiat_bls12_381_q2_addcarryx_u64(&x1791, &x1792, x1790, x1752, x1778); + fiat_bls12_381_q2_addcarryx_u64(&x1793, &x1794, x1792, x1754, x1780); + x1795 = ((uint64_t)x1794 + x1755); + fiat_bls12_381_q2_mulx_u64(&x1796, &x1797, x1424, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x1798, &x1799, x1424, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x1800, &x1801, x1424, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x1802, &x1803, x1424, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x1804, &x1805, x1424, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x1806, &x1807, x1424, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x1808, &x1809, 0x0, x1807, x1804); + fiat_bls12_381_q2_addcarryx_u64(&x1810, &x1811, x1809, x1805, x1802); + fiat_bls12_381_q2_addcarryx_u64(&x1812, &x1813, x1811, x1803, x1800); + fiat_bls12_381_q2_addcarryx_u64(&x1814, &x1815, x1813, x1801, x1798); + fiat_bls12_381_q2_addcarryx_u64(&x1816, &x1817, x1815, x1799, x1796); + x1818 = (x1817 + x1797); + fiat_bls12_381_q2_addcarryx_u64(&x1819, &x1820, 0x0, x1783, x1806); + fiat_bls12_381_q2_addcarryx_u64(&x1821, &x1822, x1820, x1785, x1808); + fiat_bls12_381_q2_addcarryx_u64(&x1823, &x1824, x1822, x1787, x1810); + fiat_bls12_381_q2_addcarryx_u64(&x1825, &x1826, x1824, x1789, x1812); + fiat_bls12_381_q2_addcarryx_u64(&x1827, &x1828, x1826, x1791, x1814); + fiat_bls12_381_q2_addcarryx_u64(&x1829, &x1830, x1828, x1793, x1816); + fiat_bls12_381_q2_addcarryx_u64(&x1831, &x1832, x1830, x1795, x1818); + fiat_bls12_381_q2_mulx_u64(&x1833, &x1834, x1819, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1835, &x1836, x1833, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1837, &x1838, x1833, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1839, &x1840, x1833, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1841, &x1842, x1833, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1843, &x1844, x1833, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1845, &x1846, x1833, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1847, &x1848, 0x0, x1846, x1843); + fiat_bls12_381_q2_addcarryx_u64(&x1849, &x1850, x1848, x1844, x1841); + fiat_bls12_381_q2_addcarryx_u64(&x1851, &x1852, x1850, x1842, x1839); + fiat_bls12_381_q2_addcarryx_u64(&x1853, &x1854, x1852, x1840, x1837); + fiat_bls12_381_q2_addcarryx_u64(&x1855, &x1856, x1854, x1838, x1835); + x1857 = (x1856 + x1836); + fiat_bls12_381_q2_addcarryx_u64(&x1858, &x1859, 0x0, x1819, x1845); + fiat_bls12_381_q2_addcarryx_u64(&x1860, &x1861, x1859, x1821, x1847); + fiat_bls12_381_q2_addcarryx_u64(&x1862, &x1863, x1861, x1823, x1849); + fiat_bls12_381_q2_addcarryx_u64(&x1864, &x1865, x1863, x1825, x1851); + fiat_bls12_381_q2_addcarryx_u64(&x1866, &x1867, x1865, x1827, x1853); + fiat_bls12_381_q2_addcarryx_u64(&x1868, &x1869, x1867, x1829, x1855); + fiat_bls12_381_q2_addcarryx_u64(&x1870, &x1871, x1869, x1831, x1857); + x1872 = ((uint64_t)x1871 + x1832); + fiat_bls12_381_q2_subborrowx_u64(&x1873, &x1874, 0x0, x1860, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x1875, &x1876, x1874, x1862, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x1877, &x1878, x1876, x1864, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x1879, &x1880, x1878, x1866, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x1881, &x1882, x1880, x1868, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x1883, &x1884, x1882, x1870, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x1885, &x1886, x1884, x1872, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x1887, x1886, x1873, x1860); + fiat_bls12_381_q2_cmovznz_u64(&x1888, x1886, x1875, x1862); + fiat_bls12_381_q2_cmovznz_u64(&x1889, x1886, x1877, x1864); + fiat_bls12_381_q2_cmovznz_u64(&x1890, x1886, x1879, x1866); + fiat_bls12_381_q2_cmovznz_u64(&x1891, x1886, x1881, x1868); + fiat_bls12_381_q2_cmovznz_u64(&x1892, x1886, x1883, x1870); + fiat_bls12_381_q2_addcarryx_u64(&x1893, &x1894, 0x0, x1414, x1887); + fiat_bls12_381_q2_addcarryx_u64(&x1895, &x1896, x1894, x1415, x1888); + fiat_bls12_381_q2_addcarryx_u64(&x1897, &x1898, x1896, x1416, x1889); + fiat_bls12_381_q2_addcarryx_u64(&x1899, &x1900, x1898, x1417, x1890); + fiat_bls12_381_q2_addcarryx_u64(&x1901, &x1902, x1900, x1418, x1891); + fiat_bls12_381_q2_addcarryx_u64(&x1903, &x1904, x1902, x1419, x1892); + fiat_bls12_381_q2_subborrowx_u64(&x1905, &x1906, 0x0, x1893, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x1907, &x1908, x1906, x1895, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x1909, &x1910, x1908, x1897, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x1911, &x1912, x1910, x1899, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x1913, &x1914, x1912, x1901, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x1915, &x1916, x1914, x1903, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x1917, &x1918, x1916, x1904, 0x0); + fiat_bls12_381_q2_subborrowx_u64(&x1919, &x1920, 0x0, x468, x941); + fiat_bls12_381_q2_subborrowx_u64(&x1921, &x1922, x1920, x469, x942); + fiat_bls12_381_q2_subborrowx_u64(&x1923, &x1924, x1922, x470, x943); + fiat_bls12_381_q2_subborrowx_u64(&x1925, &x1926, x1924, x471, x944); + fiat_bls12_381_q2_subborrowx_u64(&x1927, &x1928, x1926, x472, x945); + fiat_bls12_381_q2_subborrowx_u64(&x1929, &x1930, x1928, x473, x946); + fiat_bls12_381_q2_cmovznz_u64(&x1931, x1930, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_bls12_381_q2_addcarryx_u64(&x1932, &x1933, 0x0, x1919, (x1931 & UINT64_C(0xb9feffffffffaaab))); + fiat_bls12_381_q2_addcarryx_u64(&x1934, &x1935, x1933, x1921, (x1931 & UINT64_C(0x1eabfffeb153ffff))); + fiat_bls12_381_q2_addcarryx_u64(&x1936, &x1937, x1935, x1923, (x1931 & UINT64_C(0x6730d2a0f6b0f624))); + fiat_bls12_381_q2_addcarryx_u64(&x1938, &x1939, x1937, x1925, (x1931 & UINT64_C(0x64774b84f38512bf))); + fiat_bls12_381_q2_addcarryx_u64(&x1940, &x1941, x1939, x1927, (x1931 & UINT64_C(0x4b1ba7b6434bacd7))); + fiat_bls12_381_q2_addcarryx_u64(&x1942, &x1943, x1941, x1929, (x1931 & UINT64_C(0x1a0111ea397fe69a))); + fiat_bls12_381_q2_cmovznz_u64(&x1944, x1918, x1905, x1893); + fiat_bls12_381_q2_cmovznz_u64(&x1945, x1918, x1907, x1895); + fiat_bls12_381_q2_cmovznz_u64(&x1946, x1918, x1909, x1897); + fiat_bls12_381_q2_cmovznz_u64(&x1947, x1918, x1911, x1899); + fiat_bls12_381_q2_cmovznz_u64(&x1948, x1918, x1913, x1901); + fiat_bls12_381_q2_cmovznz_u64(&x1949, x1918, x1915, x1903); + out1[0] = x1932; + out1[1] = x1934; + out1[2] = x1936; + out1[3] = x1938; + out1[4] = x1940; + out1[5] = x1942; + out2[0] = x1944; + out2[1] = x1945; + out2[2] = x1946; + out2[3] = x1947; + out2[4] = x1948; + out2[5] = x1949; +} + +/* + * The function fiat_bls12_381_q2_mulFp2 multiplies two Fp2 field elements in the Montgomery domain. + * Postconditions: + * 0 ≤ eval arg1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[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]] + * arg4: [[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]] + * out2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_bls12_381_q2_mulFp2(uint64_t out1[6], uint64_t out2[6], const uint64_t arg1[6], const uint64_t arg2[6], const uint64_t arg3[6], const uint64_t arg4[6]) { + 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; + fiat_bls12_381_q2_uint1 x20; + uint64_t x21; + fiat_bls12_381_q2_uint1 x22; + uint64_t x23; + fiat_bls12_381_q2_uint1 x24; + uint64_t x25; + fiat_bls12_381_q2_uint1 x26; + uint64_t x27; + fiat_bls12_381_q2_uint1 x28; + uint64_t x29; + uint64_t x30; + uint64_t x31; + uint64_t x32; + uint64_t x33; + uint64_t x34; + uint64_t x35; + uint64_t 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; + fiat_bls12_381_q2_uint1 x45; + uint64_t x46; + fiat_bls12_381_q2_uint1 x47; + uint64_t x48; + fiat_bls12_381_q2_uint1 x49; + uint64_t x50; + fiat_bls12_381_q2_uint1 x51; + uint64_t x52; + fiat_bls12_381_q2_uint1 x53; + uint64_t x54; + uint64_t x55; + fiat_bls12_381_q2_uint1 x56; + uint64_t x57; + fiat_bls12_381_q2_uint1 x58; + uint64_t x59; + fiat_bls12_381_q2_uint1 x60; + uint64_t x61; + fiat_bls12_381_q2_uint1 x62; + uint64_t x63; + fiat_bls12_381_q2_uint1 x64; + uint64_t x65; + fiat_bls12_381_q2_uint1 x66; + uint64_t x67; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x82; + uint64_t x83; + fiat_bls12_381_q2_uint1 x84; + uint64_t x85; + fiat_bls12_381_q2_uint1 x86; + uint64_t x87; + fiat_bls12_381_q2_uint1 x88; + uint64_t x89; + fiat_bls12_381_q2_uint1 x90; + uint64_t x91; + uint64_t x92; + fiat_bls12_381_q2_uint1 x93; + uint64_t x94; + fiat_bls12_381_q2_uint1 x95; + uint64_t x96; + fiat_bls12_381_q2_uint1 x97; + uint64_t x98; + fiat_bls12_381_q2_uint1 x99; + uint64_t x100; + fiat_bls12_381_q2_uint1 x101; + uint64_t x102; + fiat_bls12_381_q2_uint1 x103; + uint64_t x104; + fiat_bls12_381_q2_uint1 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_bls12_381_q2_uint1 x121; + uint64_t x122; + fiat_bls12_381_q2_uint1 x123; + uint64_t x124; + fiat_bls12_381_q2_uint1 x125; + uint64_t x126; + fiat_bls12_381_q2_uint1 x127; + uint64_t x128; + fiat_bls12_381_q2_uint1 x129; + uint64_t x130; + uint64_t x131; + fiat_bls12_381_q2_uint1 x132; + uint64_t x133; + fiat_bls12_381_q2_uint1 x134; + uint64_t x135; + fiat_bls12_381_q2_uint1 x136; + uint64_t x137; + fiat_bls12_381_q2_uint1 x138; + uint64_t x139; + fiat_bls12_381_q2_uint1 x140; + uint64_t x141; + fiat_bls12_381_q2_uint1 x142; + uint64_t x143; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x159; + uint64_t x160; + fiat_bls12_381_q2_uint1 x161; + uint64_t x162; + fiat_bls12_381_q2_uint1 x163; + uint64_t x164; + fiat_bls12_381_q2_uint1 x165; + uint64_t x166; + fiat_bls12_381_q2_uint1 x167; + uint64_t x168; + uint64_t x169; + fiat_bls12_381_q2_uint1 x170; + uint64_t x171; + fiat_bls12_381_q2_uint1 x172; + uint64_t x173; + fiat_bls12_381_q2_uint1 x174; + uint64_t x175; + fiat_bls12_381_q2_uint1 x176; + uint64_t x177; + fiat_bls12_381_q2_uint1 x178; + uint64_t x179; + fiat_bls12_381_q2_uint1 x180; + uint64_t x181; + fiat_bls12_381_q2_uint1 x182; + uint64_t x183; + uint64_t x184; + uint64_t x185; + uint64_t x186; + uint64_t x187; + uint64_t x188; + uint64_t x189; + uint64_t x190; + uint64_t x191; + uint64_t x192; + uint64_t x193; + uint64_t x194; + uint64_t x195; + uint64_t x196; + uint64_t x197; + fiat_bls12_381_q2_uint1 x198; + uint64_t x199; + fiat_bls12_381_q2_uint1 x200; + uint64_t x201; + fiat_bls12_381_q2_uint1 x202; + uint64_t x203; + fiat_bls12_381_q2_uint1 x204; + uint64_t x205; + fiat_bls12_381_q2_uint1 x206; + uint64_t x207; + uint64_t x208; + fiat_bls12_381_q2_uint1 x209; + uint64_t x210; + fiat_bls12_381_q2_uint1 x211; + uint64_t x212; + fiat_bls12_381_q2_uint1 x213; + uint64_t x214; + fiat_bls12_381_q2_uint1 x215; + uint64_t x216; + fiat_bls12_381_q2_uint1 x217; + uint64_t x218; + fiat_bls12_381_q2_uint1 x219; + uint64_t x220; + fiat_bls12_381_q2_uint1 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; + uint64_t x234; + uint64_t x235; + fiat_bls12_381_q2_uint1 x236; + uint64_t x237; + fiat_bls12_381_q2_uint1 x238; + uint64_t x239; + fiat_bls12_381_q2_uint1 x240; + uint64_t x241; + fiat_bls12_381_q2_uint1 x242; + uint64_t x243; + fiat_bls12_381_q2_uint1 x244; + uint64_t x245; + uint64_t x246; + fiat_bls12_381_q2_uint1 x247; + uint64_t x248; + fiat_bls12_381_q2_uint1 x249; + uint64_t x250; + fiat_bls12_381_q2_uint1 x251; + uint64_t x252; + fiat_bls12_381_q2_uint1 x253; + uint64_t x254; + fiat_bls12_381_q2_uint1 x255; + uint64_t x256; + fiat_bls12_381_q2_uint1 x257; + uint64_t x258; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x275; + uint64_t x276; + fiat_bls12_381_q2_uint1 x277; + uint64_t x278; + fiat_bls12_381_q2_uint1 x279; + uint64_t x280; + fiat_bls12_381_q2_uint1 x281; + uint64_t x282; + fiat_bls12_381_q2_uint1 x283; + uint64_t x284; + uint64_t x285; + fiat_bls12_381_q2_uint1 x286; + uint64_t x287; + fiat_bls12_381_q2_uint1 x288; + uint64_t x289; + fiat_bls12_381_q2_uint1 x290; + uint64_t x291; + fiat_bls12_381_q2_uint1 x292; + uint64_t x293; + fiat_bls12_381_q2_uint1 x294; + uint64_t x295; + fiat_bls12_381_q2_uint1 x296; + uint64_t x297; + fiat_bls12_381_q2_uint1 x298; + uint64_t x299; + uint64_t x300; + uint64_t x301; + uint64_t x302; + uint64_t x303; + uint64_t x304; + uint64_t x305; + uint64_t x306; + uint64_t x307; + uint64_t x308; + uint64_t x309; + uint64_t x310; + uint64_t x311; + uint64_t x312; + fiat_bls12_381_q2_uint1 x313; + uint64_t x314; + fiat_bls12_381_q2_uint1 x315; + uint64_t x316; + fiat_bls12_381_q2_uint1 x317; + uint64_t x318; + fiat_bls12_381_q2_uint1 x319; + uint64_t x320; + fiat_bls12_381_q2_uint1 x321; + uint64_t x322; + uint64_t x323; + fiat_bls12_381_q2_uint1 x324; + uint64_t x325; + fiat_bls12_381_q2_uint1 x326; + uint64_t x327; + fiat_bls12_381_q2_uint1 x328; + uint64_t x329; + fiat_bls12_381_q2_uint1 x330; + uint64_t x331; + fiat_bls12_381_q2_uint1 x332; + uint64_t x333; + fiat_bls12_381_q2_uint1 x334; + uint64_t x335; + fiat_bls12_381_q2_uint1 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; + uint64_t x347; + uint64_t x348; + uint64_t x349; + uint64_t x350; + uint64_t x351; + fiat_bls12_381_q2_uint1 x352; + uint64_t x353; + fiat_bls12_381_q2_uint1 x354; + uint64_t x355; + fiat_bls12_381_q2_uint1 x356; + uint64_t x357; + fiat_bls12_381_q2_uint1 x358; + uint64_t x359; + fiat_bls12_381_q2_uint1 x360; + uint64_t x361; + uint64_t x362; + fiat_bls12_381_q2_uint1 x363; + uint64_t x364; + fiat_bls12_381_q2_uint1 x365; + uint64_t x366; + fiat_bls12_381_q2_uint1 x367; + uint64_t x368; + fiat_bls12_381_q2_uint1 x369; + uint64_t x370; + fiat_bls12_381_q2_uint1 x371; + uint64_t x372; + fiat_bls12_381_q2_uint1 x373; + uint64_t x374; + fiat_bls12_381_q2_uint1 x375; + uint64_t x376; + uint64_t x377; + uint64_t x378; + uint64_t x379; + uint64_t x380; + uint64_t x381; + uint64_t x382; + uint64_t x383; + uint64_t x384; + uint64_t x385; + uint64_t x386; + uint64_t x387; + uint64_t x388; + uint64_t x389; + fiat_bls12_381_q2_uint1 x390; + uint64_t x391; + fiat_bls12_381_q2_uint1 x392; + uint64_t x393; + fiat_bls12_381_q2_uint1 x394; + uint64_t x395; + fiat_bls12_381_q2_uint1 x396; + uint64_t x397; + fiat_bls12_381_q2_uint1 x398; + uint64_t x399; + uint64_t x400; + fiat_bls12_381_q2_uint1 x401; + uint64_t x402; + fiat_bls12_381_q2_uint1 x403; + uint64_t x404; + fiat_bls12_381_q2_uint1 x405; + uint64_t x406; + fiat_bls12_381_q2_uint1 x407; + uint64_t x408; + fiat_bls12_381_q2_uint1 x409; + uint64_t x410; + fiat_bls12_381_q2_uint1 x411; + uint64_t x412; + fiat_bls12_381_q2_uint1 x413; + uint64_t x414; + uint64_t 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; + fiat_bls12_381_q2_uint1 x429; + uint64_t x430; + fiat_bls12_381_q2_uint1 x431; + uint64_t x432; + fiat_bls12_381_q2_uint1 x433; + uint64_t x434; + fiat_bls12_381_q2_uint1 x435; + uint64_t x436; + fiat_bls12_381_q2_uint1 x437; + uint64_t x438; + uint64_t x439; + fiat_bls12_381_q2_uint1 x440; + uint64_t x441; + fiat_bls12_381_q2_uint1 x442; + uint64_t x443; + fiat_bls12_381_q2_uint1 x444; + uint64_t x445; + fiat_bls12_381_q2_uint1 x446; + uint64_t x447; + fiat_bls12_381_q2_uint1 x448; + uint64_t x449; + fiat_bls12_381_q2_uint1 x450; + uint64_t x451; + fiat_bls12_381_q2_uint1 x452; + uint64_t x453; + uint64_t x454; + fiat_bls12_381_q2_uint1 x455; + uint64_t x456; + fiat_bls12_381_q2_uint1 x457; + uint64_t x458; + fiat_bls12_381_q2_uint1 x459; + uint64_t x460; + fiat_bls12_381_q2_uint1 x461; + uint64_t x462; + fiat_bls12_381_q2_uint1 x463; + uint64_t x464; + fiat_bls12_381_q2_uint1 x465; + uint64_t x466; + fiat_bls12_381_q2_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; + uint64_t x489; + uint64_t x490; + uint64_t x491; + uint64_t x492; + fiat_bls12_381_q2_uint1 x493; + uint64_t x494; + fiat_bls12_381_q2_uint1 x495; + uint64_t x496; + fiat_bls12_381_q2_uint1 x497; + uint64_t x498; + fiat_bls12_381_q2_uint1 x499; + uint64_t x500; + fiat_bls12_381_q2_uint1 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; + uint64_t x517; + fiat_bls12_381_q2_uint1 x518; + uint64_t x519; + fiat_bls12_381_q2_uint1 x520; + uint64_t x521; + fiat_bls12_381_q2_uint1 x522; + uint64_t x523; + fiat_bls12_381_q2_uint1 x524; + uint64_t x525; + fiat_bls12_381_q2_uint1 x526; + uint64_t x527; + uint64_t x528; + fiat_bls12_381_q2_uint1 x529; + uint64_t x530; + fiat_bls12_381_q2_uint1 x531; + uint64_t x532; + fiat_bls12_381_q2_uint1 x533; + uint64_t x534; + fiat_bls12_381_q2_uint1 x535; + uint64_t x536; + fiat_bls12_381_q2_uint1 x537; + uint64_t x538; + fiat_bls12_381_q2_uint1 x539; + uint64_t x540; + fiat_bls12_381_q2_uint1 x541; + uint64_t x542; + uint64_t x543; + uint64_t x544; + uint64_t x545; + uint64_t x546; + uint64_t x547; + uint64_t x548; + uint64_t x549; + uint64_t x550; + uint64_t x551; + uint64_t x552; + uint64_t x553; + uint64_t x554; + fiat_bls12_381_q2_uint1 x555; + uint64_t x556; + fiat_bls12_381_q2_uint1 x557; + uint64_t x558; + fiat_bls12_381_q2_uint1 x559; + uint64_t x560; + fiat_bls12_381_q2_uint1 x561; + uint64_t x562; + fiat_bls12_381_q2_uint1 x563; + uint64_t x564; + uint64_t x565; + fiat_bls12_381_q2_uint1 x566; + uint64_t x567; + fiat_bls12_381_q2_uint1 x568; + uint64_t x569; + fiat_bls12_381_q2_uint1 x570; + uint64_t x571; + fiat_bls12_381_q2_uint1 x572; + uint64_t x573; + fiat_bls12_381_q2_uint1 x574; + uint64_t x575; + fiat_bls12_381_q2_uint1 x576; + uint64_t x577; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x594; + uint64_t x595; + fiat_bls12_381_q2_uint1 x596; + uint64_t x597; + fiat_bls12_381_q2_uint1 x598; + uint64_t x599; + fiat_bls12_381_q2_uint1 x600; + uint64_t x601; + fiat_bls12_381_q2_uint1 x602; + uint64_t x603; + uint64_t x604; + fiat_bls12_381_q2_uint1 x605; + uint64_t x606; + fiat_bls12_381_q2_uint1 x607; + uint64_t x608; + fiat_bls12_381_q2_uint1 x609; + uint64_t x610; + fiat_bls12_381_q2_uint1 x611; + uint64_t x612; + fiat_bls12_381_q2_uint1 x613; + uint64_t x614; + fiat_bls12_381_q2_uint1 x615; + uint64_t x616; + fiat_bls12_381_q2_uint1 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; + uint64_t x630; + uint64_t x631; + fiat_bls12_381_q2_uint1 x632; + uint64_t x633; + fiat_bls12_381_q2_uint1 x634; + uint64_t x635; + fiat_bls12_381_q2_uint1 x636; + uint64_t x637; + fiat_bls12_381_q2_uint1 x638; + uint64_t x639; + fiat_bls12_381_q2_uint1 x640; + uint64_t x641; + uint64_t x642; + fiat_bls12_381_q2_uint1 x643; + uint64_t x644; + fiat_bls12_381_q2_uint1 x645; + uint64_t x646; + fiat_bls12_381_q2_uint1 x647; + uint64_t x648; + fiat_bls12_381_q2_uint1 x649; + uint64_t x650; + fiat_bls12_381_q2_uint1 x651; + uint64_t x652; + fiat_bls12_381_q2_uint1 x653; + uint64_t x654; + fiat_bls12_381_q2_uint1 x655; + uint64_t x656; + uint64_t x657; + uint64_t x658; + uint64_t x659; + uint64_t x660; + uint64_t x661; + uint64_t x662; + uint64_t x663; + uint64_t x664; + uint64_t x665; + uint64_t x666; + uint64_t x667; + uint64_t x668; + uint64_t x669; + uint64_t x670; + fiat_bls12_381_q2_uint1 x671; + uint64_t x672; + fiat_bls12_381_q2_uint1 x673; + uint64_t x674; + fiat_bls12_381_q2_uint1 x675; + uint64_t x676; + fiat_bls12_381_q2_uint1 x677; + uint64_t x678; + fiat_bls12_381_q2_uint1 x679; + uint64_t x680; + uint64_t x681; + fiat_bls12_381_q2_uint1 x682; + uint64_t x683; + fiat_bls12_381_q2_uint1 x684; + uint64_t x685; + fiat_bls12_381_q2_uint1 x686; + uint64_t x687; + fiat_bls12_381_q2_uint1 x688; + uint64_t x689; + fiat_bls12_381_q2_uint1 x690; + uint64_t x691; + fiat_bls12_381_q2_uint1 x692; + uint64_t x693; + fiat_bls12_381_q2_uint1 x694; + uint64_t x695; + uint64_t x696; + uint64_t x697; + uint64_t x698; + uint64_t x699; + uint64_t x700; + uint64_t x701; + uint64_t x702; + uint64_t x703; + uint64_t x704; + uint64_t x705; + uint64_t x706; + uint64_t x707; + uint64_t x708; + fiat_bls12_381_q2_uint1 x709; + uint64_t x710; + fiat_bls12_381_q2_uint1 x711; + uint64_t x712; + fiat_bls12_381_q2_uint1 x713; + uint64_t x714; + fiat_bls12_381_q2_uint1 x715; + uint64_t x716; + fiat_bls12_381_q2_uint1 x717; + uint64_t x718; + uint64_t x719; + fiat_bls12_381_q2_uint1 x720; + uint64_t x721; + fiat_bls12_381_q2_uint1 x722; + uint64_t x723; + fiat_bls12_381_q2_uint1 x724; + uint64_t x725; + fiat_bls12_381_q2_uint1 x726; + uint64_t x727; + fiat_bls12_381_q2_uint1 x728; + uint64_t x729; + fiat_bls12_381_q2_uint1 x730; + uint64_t x731; + fiat_bls12_381_q2_uint1 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; + uint64_t x743; + uint64_t x744; + uint64_t x745; + uint64_t x746; + uint64_t x747; + fiat_bls12_381_q2_uint1 x748; + uint64_t x749; + fiat_bls12_381_q2_uint1 x750; + uint64_t x751; + fiat_bls12_381_q2_uint1 x752; + uint64_t x753; + fiat_bls12_381_q2_uint1 x754; + uint64_t x755; + fiat_bls12_381_q2_uint1 x756; + uint64_t x757; + uint64_t x758; + fiat_bls12_381_q2_uint1 x759; + uint64_t x760; + fiat_bls12_381_q2_uint1 x761; + uint64_t x762; + fiat_bls12_381_q2_uint1 x763; + uint64_t x764; + fiat_bls12_381_q2_uint1 x765; + uint64_t x766; + fiat_bls12_381_q2_uint1 x767; + uint64_t x768; + fiat_bls12_381_q2_uint1 x769; + uint64_t x770; + fiat_bls12_381_q2_uint1 x771; + uint64_t x772; + uint64_t x773; + uint64_t x774; + uint64_t x775; + uint64_t x776; + uint64_t x777; + uint64_t x778; + uint64_t x779; + uint64_t x780; + uint64_t x781; + uint64_t x782; + uint64_t x783; + uint64_t x784; + uint64_t x785; + fiat_bls12_381_q2_uint1 x786; + uint64_t x787; + fiat_bls12_381_q2_uint1 x788; + uint64_t x789; + fiat_bls12_381_q2_uint1 x790; + uint64_t x791; + fiat_bls12_381_q2_uint1 x792; + uint64_t x793; + fiat_bls12_381_q2_uint1 x794; + uint64_t x795; + uint64_t x796; + fiat_bls12_381_q2_uint1 x797; + uint64_t x798; + fiat_bls12_381_q2_uint1 x799; + uint64_t x800; + fiat_bls12_381_q2_uint1 x801; + uint64_t x802; + fiat_bls12_381_q2_uint1 x803; + uint64_t x804; + fiat_bls12_381_q2_uint1 x805; + uint64_t x806; + fiat_bls12_381_q2_uint1 x807; + uint64_t x808; + fiat_bls12_381_q2_uint1 x809; + uint64_t x810; + uint64_t x811; + uint64_t x812; + uint64_t x813; + uint64_t x814; + uint64_t x815; + uint64_t x816; + uint64_t x817; + uint64_t x818; + uint64_t x819; + uint64_t x820; + uint64_t x821; + uint64_t x822; + uint64_t x823; + uint64_t x824; + fiat_bls12_381_q2_uint1 x825; + uint64_t x826; + fiat_bls12_381_q2_uint1 x827; + uint64_t x828; + fiat_bls12_381_q2_uint1 x829; + uint64_t x830; + fiat_bls12_381_q2_uint1 x831; + uint64_t x832; + fiat_bls12_381_q2_uint1 x833; + uint64_t x834; + uint64_t x835; + fiat_bls12_381_q2_uint1 x836; + uint64_t x837; + fiat_bls12_381_q2_uint1 x838; + uint64_t x839; + fiat_bls12_381_q2_uint1 x840; + uint64_t x841; + fiat_bls12_381_q2_uint1 x842; + uint64_t x843; + fiat_bls12_381_q2_uint1 x844; + uint64_t x845; + fiat_bls12_381_q2_uint1 x846; + uint64_t x847; + fiat_bls12_381_q2_uint1 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; + uint64_t x859; + uint64_t x860; + uint64_t x861; + uint64_t x862; + fiat_bls12_381_q2_uint1 x863; + uint64_t x864; + fiat_bls12_381_q2_uint1 x865; + uint64_t x866; + fiat_bls12_381_q2_uint1 x867; + uint64_t x868; + fiat_bls12_381_q2_uint1 x869; + uint64_t x870; + fiat_bls12_381_q2_uint1 x871; + uint64_t x872; + uint64_t x873; + fiat_bls12_381_q2_uint1 x874; + uint64_t x875; + fiat_bls12_381_q2_uint1 x876; + uint64_t x877; + fiat_bls12_381_q2_uint1 x878; + uint64_t x879; + fiat_bls12_381_q2_uint1 x880; + uint64_t x881; + fiat_bls12_381_q2_uint1 x882; + uint64_t x883; + fiat_bls12_381_q2_uint1 x884; + uint64_t x885; + fiat_bls12_381_q2_uint1 x886; + uint64_t x887; + uint64_t x888; + uint64_t x889; + uint64_t x890; + uint64_t 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; + fiat_bls12_381_q2_uint1 x902; + uint64_t x903; + fiat_bls12_381_q2_uint1 x904; + uint64_t x905; + fiat_bls12_381_q2_uint1 x906; + uint64_t x907; + fiat_bls12_381_q2_uint1 x908; + uint64_t x909; + fiat_bls12_381_q2_uint1 x910; + uint64_t x911; + uint64_t x912; + fiat_bls12_381_q2_uint1 x913; + uint64_t x914; + fiat_bls12_381_q2_uint1 x915; + uint64_t x916; + fiat_bls12_381_q2_uint1 x917; + uint64_t x918; + fiat_bls12_381_q2_uint1 x919; + uint64_t x920; + fiat_bls12_381_q2_uint1 x921; + uint64_t x922; + fiat_bls12_381_q2_uint1 x923; + uint64_t x924; + fiat_bls12_381_q2_uint1 x925; + uint64_t x926; + uint64_t x927; + fiat_bls12_381_q2_uint1 x928; + uint64_t x929; + fiat_bls12_381_q2_uint1 x930; + uint64_t x931; + fiat_bls12_381_q2_uint1 x932; + uint64_t x933; + fiat_bls12_381_q2_uint1 x934; + uint64_t x935; + fiat_bls12_381_q2_uint1 x936; + uint64_t x937; + fiat_bls12_381_q2_uint1 x938; + uint64_t x939; + fiat_bls12_381_q2_uint1 x940; + uint64_t x941; + uint64_t x942; + uint64_t x943; + uint64_t x944; + uint64_t x945; + uint64_t x946; + uint64_t x947; + fiat_bls12_381_q2_uint1 x948; + uint64_t x949; + fiat_bls12_381_q2_uint1 x950; + uint64_t x951; + fiat_bls12_381_q2_uint1 x952; + uint64_t x953; + fiat_bls12_381_q2_uint1 x954; + uint64_t x955; + fiat_bls12_381_q2_uint1 x956; + uint64_t x957; + fiat_bls12_381_q2_uint1 x958; + uint64_t x959; + fiat_bls12_381_q2_uint1 x960; + uint64_t x961; + fiat_bls12_381_q2_uint1 x962; + uint64_t x963; + fiat_bls12_381_q2_uint1 x964; + uint64_t x965; + fiat_bls12_381_q2_uint1 x966; + uint64_t x967; + fiat_bls12_381_q2_uint1 x968; + uint64_t x969; + fiat_bls12_381_q2_uint1 x970; + uint64_t x971; + fiat_bls12_381_q2_uint1 x972; + uint64_t x973; + uint64_t x974; + uint64_t x975; + uint64_t x976; + uint64_t x977; + uint64_t x978; + uint64_t x979; + fiat_bls12_381_q2_uint1 x980; + uint64_t x981; + fiat_bls12_381_q2_uint1 x982; + uint64_t x983; + fiat_bls12_381_q2_uint1 x984; + uint64_t x985; + fiat_bls12_381_q2_uint1 x986; + uint64_t x987; + fiat_bls12_381_q2_uint1 x988; + uint64_t x989; + fiat_bls12_381_q2_uint1 x990; + uint64_t x991; + fiat_bls12_381_q2_uint1 x992; + uint64_t x993; + fiat_bls12_381_q2_uint1 x994; + uint64_t x995; + fiat_bls12_381_q2_uint1 x996; + uint64_t x997; + fiat_bls12_381_q2_uint1 x998; + uint64_t x999; + fiat_bls12_381_q2_uint1 x1000; + uint64_t x1001; + fiat_bls12_381_q2_uint1 x1002; + uint64_t x1003; + fiat_bls12_381_q2_uint1 x1004; + uint64_t x1005; + uint64_t x1006; + uint64_t x1007; + uint64_t x1008; + uint64_t x1009; + uint64_t x1010; + uint64_t x1011; + uint64_t x1012; + uint64_t x1013; + uint64_t x1014; + uint64_t x1015; + uint64_t x1016; + uint64_t x1017; + uint64_t x1018; + uint64_t x1019; + uint64_t x1020; + uint64_t x1021; + uint64_t x1022; + uint64_t x1023; + fiat_bls12_381_q2_uint1 x1024; + uint64_t x1025; + fiat_bls12_381_q2_uint1 x1026; + uint64_t x1027; + fiat_bls12_381_q2_uint1 x1028; + uint64_t x1029; + fiat_bls12_381_q2_uint1 x1030; + uint64_t x1031; + fiat_bls12_381_q2_uint1 x1032; + uint64_t x1033; + uint64_t x1034; + uint64_t x1035; + uint64_t x1036; + uint64_t x1037; + uint64_t x1038; + uint64_t x1039; + uint64_t x1040; + uint64_t x1041; + uint64_t x1042; + uint64_t x1043; + uint64_t x1044; + uint64_t x1045; + uint64_t x1046; + uint64_t x1047; + uint64_t x1048; + fiat_bls12_381_q2_uint1 x1049; + uint64_t x1050; + fiat_bls12_381_q2_uint1 x1051; + uint64_t x1052; + fiat_bls12_381_q2_uint1 x1053; + uint64_t x1054; + fiat_bls12_381_q2_uint1 x1055; + uint64_t x1056; + fiat_bls12_381_q2_uint1 x1057; + uint64_t x1058; + uint64_t x1059; + fiat_bls12_381_q2_uint1 x1060; + uint64_t x1061; + fiat_bls12_381_q2_uint1 x1062; + uint64_t x1063; + fiat_bls12_381_q2_uint1 x1064; + uint64_t x1065; + fiat_bls12_381_q2_uint1 x1066; + uint64_t x1067; + fiat_bls12_381_q2_uint1 x1068; + uint64_t x1069; + fiat_bls12_381_q2_uint1 x1070; + uint64_t x1071; + fiat_bls12_381_q2_uint1 x1072; + uint64_t x1073; + uint64_t x1074; + uint64_t x1075; + uint64_t x1076; + uint64_t x1077; + uint64_t x1078; + uint64_t x1079; + uint64_t x1080; + uint64_t x1081; + uint64_t x1082; + uint64_t x1083; + uint64_t x1084; + uint64_t x1085; + fiat_bls12_381_q2_uint1 x1086; + uint64_t x1087; + fiat_bls12_381_q2_uint1 x1088; + uint64_t x1089; + fiat_bls12_381_q2_uint1 x1090; + uint64_t x1091; + fiat_bls12_381_q2_uint1 x1092; + uint64_t x1093; + fiat_bls12_381_q2_uint1 x1094; + uint64_t x1095; + uint64_t x1096; + fiat_bls12_381_q2_uint1 x1097; + uint64_t x1098; + fiat_bls12_381_q2_uint1 x1099; + uint64_t x1100; + fiat_bls12_381_q2_uint1 x1101; + uint64_t x1102; + fiat_bls12_381_q2_uint1 x1103; + uint64_t x1104; + fiat_bls12_381_q2_uint1 x1105; + uint64_t x1106; + fiat_bls12_381_q2_uint1 x1107; + uint64_t x1108; + fiat_bls12_381_q2_uint1 x1109; + uint64_t x1110; + uint64_t x1111; + uint64_t x1112; + uint64_t x1113; + uint64_t x1114; + uint64_t x1115; + uint64_t x1116; + uint64_t x1117; + uint64_t x1118; + uint64_t x1119; + uint64_t x1120; + uint64_t x1121; + uint64_t x1122; + uint64_t x1123; + uint64_t x1124; + fiat_bls12_381_q2_uint1 x1125; + uint64_t x1126; + fiat_bls12_381_q2_uint1 x1127; + uint64_t x1128; + fiat_bls12_381_q2_uint1 x1129; + uint64_t x1130; + fiat_bls12_381_q2_uint1 x1131; + uint64_t x1132; + fiat_bls12_381_q2_uint1 x1133; + uint64_t x1134; + uint64_t x1135; + fiat_bls12_381_q2_uint1 x1136; + uint64_t x1137; + fiat_bls12_381_q2_uint1 x1138; + uint64_t x1139; + fiat_bls12_381_q2_uint1 x1140; + uint64_t x1141; + fiat_bls12_381_q2_uint1 x1142; + uint64_t x1143; + fiat_bls12_381_q2_uint1 x1144; + uint64_t x1145; + fiat_bls12_381_q2_uint1 x1146; + uint64_t x1147; + fiat_bls12_381_q2_uint1 x1148; + uint64_t x1149; + uint64_t x1150; + uint64_t x1151; + uint64_t x1152; + uint64_t x1153; + uint64_t x1154; + uint64_t x1155; + uint64_t x1156; + uint64_t x1157; + uint64_t x1158; + uint64_t x1159; + uint64_t x1160; + uint64_t x1161; + uint64_t x1162; + fiat_bls12_381_q2_uint1 x1163; + uint64_t x1164; + fiat_bls12_381_q2_uint1 x1165; + uint64_t x1166; + fiat_bls12_381_q2_uint1 x1167; + uint64_t x1168; + fiat_bls12_381_q2_uint1 x1169; + uint64_t x1170; + fiat_bls12_381_q2_uint1 x1171; + uint64_t x1172; + uint64_t x1173; + fiat_bls12_381_q2_uint1 x1174; + uint64_t x1175; + fiat_bls12_381_q2_uint1 x1176; + uint64_t x1177; + fiat_bls12_381_q2_uint1 x1178; + uint64_t x1179; + fiat_bls12_381_q2_uint1 x1180; + uint64_t x1181; + fiat_bls12_381_q2_uint1 x1182; + uint64_t x1183; + fiat_bls12_381_q2_uint1 x1184; + uint64_t x1185; + fiat_bls12_381_q2_uint1 x1186; + uint64_t x1187; + uint64_t x1188; + uint64_t x1189; + uint64_t x1190; + uint64_t x1191; + uint64_t x1192; + uint64_t x1193; + uint64_t x1194; + uint64_t x1195; + uint64_t x1196; + uint64_t x1197; + uint64_t x1198; + uint64_t x1199; + uint64_t x1200; + uint64_t x1201; + fiat_bls12_381_q2_uint1 x1202; + uint64_t x1203; + fiat_bls12_381_q2_uint1 x1204; + uint64_t x1205; + fiat_bls12_381_q2_uint1 x1206; + uint64_t x1207; + fiat_bls12_381_q2_uint1 x1208; + uint64_t x1209; + fiat_bls12_381_q2_uint1 x1210; + uint64_t x1211; + uint64_t x1212; + fiat_bls12_381_q2_uint1 x1213; + uint64_t x1214; + fiat_bls12_381_q2_uint1 x1215; + uint64_t x1216; + fiat_bls12_381_q2_uint1 x1217; + uint64_t x1218; + fiat_bls12_381_q2_uint1 x1219; + uint64_t x1220; + fiat_bls12_381_q2_uint1 x1221; + uint64_t x1222; + fiat_bls12_381_q2_uint1 x1223; + uint64_t x1224; + fiat_bls12_381_q2_uint1 x1225; + uint64_t x1226; + uint64_t x1227; + uint64_t x1228; + uint64_t x1229; + uint64_t x1230; + uint64_t x1231; + uint64_t x1232; + uint64_t x1233; + uint64_t x1234; + uint64_t x1235; + uint64_t x1236; + uint64_t x1237; + uint64_t x1238; + uint64_t x1239; + fiat_bls12_381_q2_uint1 x1240; + uint64_t x1241; + fiat_bls12_381_q2_uint1 x1242; + uint64_t x1243; + fiat_bls12_381_q2_uint1 x1244; + uint64_t x1245; + fiat_bls12_381_q2_uint1 x1246; + uint64_t x1247; + fiat_bls12_381_q2_uint1 x1248; + uint64_t x1249; + uint64_t x1250; + fiat_bls12_381_q2_uint1 x1251; + uint64_t x1252; + fiat_bls12_381_q2_uint1 x1253; + uint64_t x1254; + fiat_bls12_381_q2_uint1 x1255; + uint64_t x1256; + fiat_bls12_381_q2_uint1 x1257; + uint64_t x1258; + fiat_bls12_381_q2_uint1 x1259; + uint64_t x1260; + fiat_bls12_381_q2_uint1 x1261; + uint64_t x1262; + fiat_bls12_381_q2_uint1 x1263; + uint64_t x1264; + uint64_t x1265; + uint64_t x1266; + uint64_t x1267; + uint64_t x1268; + uint64_t x1269; + uint64_t x1270; + uint64_t x1271; + uint64_t x1272; + uint64_t x1273; + uint64_t x1274; + uint64_t x1275; + uint64_t x1276; + uint64_t x1277; + uint64_t x1278; + fiat_bls12_381_q2_uint1 x1279; + uint64_t x1280; + fiat_bls12_381_q2_uint1 x1281; + uint64_t x1282; + fiat_bls12_381_q2_uint1 x1283; + uint64_t x1284; + fiat_bls12_381_q2_uint1 x1285; + uint64_t x1286; + fiat_bls12_381_q2_uint1 x1287; + uint64_t x1288; + uint64_t x1289; + fiat_bls12_381_q2_uint1 x1290; + uint64_t x1291; + fiat_bls12_381_q2_uint1 x1292; + uint64_t x1293; + fiat_bls12_381_q2_uint1 x1294; + uint64_t x1295; + fiat_bls12_381_q2_uint1 x1296; + uint64_t x1297; + fiat_bls12_381_q2_uint1 x1298; + uint64_t x1299; + fiat_bls12_381_q2_uint1 x1300; + uint64_t x1301; + fiat_bls12_381_q2_uint1 x1302; + uint64_t x1303; + uint64_t x1304; + uint64_t x1305; + uint64_t x1306; + uint64_t x1307; + uint64_t x1308; + uint64_t x1309; + uint64_t x1310; + uint64_t x1311; + uint64_t x1312; + uint64_t x1313; + uint64_t x1314; + uint64_t x1315; + uint64_t x1316; + fiat_bls12_381_q2_uint1 x1317; + uint64_t x1318; + fiat_bls12_381_q2_uint1 x1319; + uint64_t x1320; + fiat_bls12_381_q2_uint1 x1321; + uint64_t x1322; + fiat_bls12_381_q2_uint1 x1323; + uint64_t x1324; + fiat_bls12_381_q2_uint1 x1325; + uint64_t x1326; + uint64_t x1327; + fiat_bls12_381_q2_uint1 x1328; + uint64_t x1329; + fiat_bls12_381_q2_uint1 x1330; + uint64_t x1331; + fiat_bls12_381_q2_uint1 x1332; + uint64_t x1333; + fiat_bls12_381_q2_uint1 x1334; + uint64_t x1335; + fiat_bls12_381_q2_uint1 x1336; + uint64_t x1337; + fiat_bls12_381_q2_uint1 x1338; + uint64_t x1339; + fiat_bls12_381_q2_uint1 x1340; + uint64_t x1341; + uint64_t x1342; + uint64_t x1343; + uint64_t x1344; + uint64_t x1345; + uint64_t x1346; + uint64_t x1347; + uint64_t x1348; + uint64_t x1349; + uint64_t x1350; + uint64_t x1351; + uint64_t x1352; + uint64_t x1353; + uint64_t x1354; + uint64_t x1355; + fiat_bls12_381_q2_uint1 x1356; + uint64_t x1357; + fiat_bls12_381_q2_uint1 x1358; + uint64_t x1359; + fiat_bls12_381_q2_uint1 x1360; + uint64_t x1361; + fiat_bls12_381_q2_uint1 x1362; + uint64_t x1363; + fiat_bls12_381_q2_uint1 x1364; + uint64_t x1365; + uint64_t x1366; + fiat_bls12_381_q2_uint1 x1367; + uint64_t x1368; + fiat_bls12_381_q2_uint1 x1369; + uint64_t x1370; + fiat_bls12_381_q2_uint1 x1371; + uint64_t x1372; + fiat_bls12_381_q2_uint1 x1373; + uint64_t x1374; + fiat_bls12_381_q2_uint1 x1375; + uint64_t x1376; + fiat_bls12_381_q2_uint1 x1377; + uint64_t x1378; + fiat_bls12_381_q2_uint1 x1379; + uint64_t x1380; + uint64_t x1381; + uint64_t x1382; + uint64_t x1383; + uint64_t x1384; + uint64_t x1385; + uint64_t x1386; + uint64_t x1387; + uint64_t x1388; + uint64_t x1389; + uint64_t x1390; + uint64_t x1391; + uint64_t x1392; + uint64_t x1393; + fiat_bls12_381_q2_uint1 x1394; + uint64_t x1395; + fiat_bls12_381_q2_uint1 x1396; + uint64_t x1397; + fiat_bls12_381_q2_uint1 x1398; + uint64_t x1399; + fiat_bls12_381_q2_uint1 x1400; + uint64_t x1401; + fiat_bls12_381_q2_uint1 x1402; + uint64_t x1403; + uint64_t x1404; + fiat_bls12_381_q2_uint1 x1405; + uint64_t x1406; + fiat_bls12_381_q2_uint1 x1407; + uint64_t x1408; + fiat_bls12_381_q2_uint1 x1409; + uint64_t x1410; + fiat_bls12_381_q2_uint1 x1411; + uint64_t x1412; + fiat_bls12_381_q2_uint1 x1413; + uint64_t x1414; + fiat_bls12_381_q2_uint1 x1415; + uint64_t x1416; + fiat_bls12_381_q2_uint1 x1417; + uint64_t x1418; + uint64_t x1419; + uint64_t x1420; + uint64_t x1421; + uint64_t x1422; + uint64_t x1423; + uint64_t x1424; + uint64_t x1425; + uint64_t x1426; + uint64_t x1427; + uint64_t x1428; + uint64_t x1429; + uint64_t x1430; + uint64_t x1431; + uint64_t x1432; + fiat_bls12_381_q2_uint1 x1433; + uint64_t x1434; + fiat_bls12_381_q2_uint1 x1435; + uint64_t x1436; + fiat_bls12_381_q2_uint1 x1437; + uint64_t x1438; + fiat_bls12_381_q2_uint1 x1439; + uint64_t x1440; + fiat_bls12_381_q2_uint1 x1441; + uint64_t x1442; + uint64_t x1443; + fiat_bls12_381_q2_uint1 x1444; + uint64_t x1445; + fiat_bls12_381_q2_uint1 x1446; + uint64_t x1447; + fiat_bls12_381_q2_uint1 x1448; + uint64_t x1449; + fiat_bls12_381_q2_uint1 x1450; + uint64_t x1451; + fiat_bls12_381_q2_uint1 x1452; + uint64_t x1453; + fiat_bls12_381_q2_uint1 x1454; + uint64_t x1455; + fiat_bls12_381_q2_uint1 x1456; + uint64_t x1457; + uint64_t x1458; + fiat_bls12_381_q2_uint1 x1459; + uint64_t x1460; + fiat_bls12_381_q2_uint1 x1461; + uint64_t x1462; + fiat_bls12_381_q2_uint1 x1463; + uint64_t x1464; + fiat_bls12_381_q2_uint1 x1465; + uint64_t x1466; + fiat_bls12_381_q2_uint1 x1467; + uint64_t x1468; + fiat_bls12_381_q2_uint1 x1469; + uint64_t x1470; + fiat_bls12_381_q2_uint1 x1471; + uint64_t x1472; + uint64_t x1473; + uint64_t x1474; + uint64_t x1475; + uint64_t x1476; + uint64_t x1477; + uint64_t x1478; + fiat_bls12_381_q2_uint1 x1479; + uint64_t x1480; + fiat_bls12_381_q2_uint1 x1481; + uint64_t x1482; + fiat_bls12_381_q2_uint1 x1483; + uint64_t x1484; + fiat_bls12_381_q2_uint1 x1485; + uint64_t x1486; + fiat_bls12_381_q2_uint1 x1487; + uint64_t x1488; + fiat_bls12_381_q2_uint1 x1489; + uint64_t x1490; + uint64_t x1491; + fiat_bls12_381_q2_uint1 x1492; + uint64_t x1493; + fiat_bls12_381_q2_uint1 x1494; + uint64_t x1495; + fiat_bls12_381_q2_uint1 x1496; + uint64_t x1497; + fiat_bls12_381_q2_uint1 x1498; + uint64_t x1499; + fiat_bls12_381_q2_uint1 x1500; + uint64_t x1501; + fiat_bls12_381_q2_uint1 x1502; + uint64_t x1503; + fiat_bls12_381_q2_uint1 x1504; + uint64_t x1505; + fiat_bls12_381_q2_uint1 x1506; + uint64_t x1507; + fiat_bls12_381_q2_uint1 x1508; + uint64_t x1509; + fiat_bls12_381_q2_uint1 x1510; + uint64_t x1511; + fiat_bls12_381_q2_uint1 x1512; + uint64_t x1513; + fiat_bls12_381_q2_uint1 x1514; + uint64_t x1515; + uint64_t x1516; + fiat_bls12_381_q2_uint1 x1517; + uint64_t x1518; + fiat_bls12_381_q2_uint1 x1519; + uint64_t x1520; + fiat_bls12_381_q2_uint1 x1521; + uint64_t x1522; + fiat_bls12_381_q2_uint1 x1523; + uint64_t x1524; + fiat_bls12_381_q2_uint1 x1525; + uint64_t x1526; + fiat_bls12_381_q2_uint1 x1527; + uint64_t x1528; + fiat_bls12_381_q2_uint1 x1529; + uint64_t x1530; + fiat_bls12_381_q2_uint1 x1531; + uint64_t x1532; + fiat_bls12_381_q2_uint1 x1533; + uint64_t x1534; + fiat_bls12_381_q2_uint1 x1535; + uint64_t x1536; + fiat_bls12_381_q2_uint1 x1537; + uint64_t x1538; + fiat_bls12_381_q2_uint1 x1539; + uint64_t x1540; + uint64_t x1541; + fiat_bls12_381_q2_uint1 x1542; + uint64_t x1543; + fiat_bls12_381_q2_uint1 x1544; + uint64_t x1545; + fiat_bls12_381_q2_uint1 x1546; + uint64_t x1547; + fiat_bls12_381_q2_uint1 x1548; + uint64_t x1549; + fiat_bls12_381_q2_uint1 x1550; + uint64_t x1551; + fiat_bls12_381_q2_uint1 x1552; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[0]); + fiat_bls12_381_q2_mulx_u64(&x7, &x8, x6, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x9, &x10, x6, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x11, &x12, x6, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x13, &x14, x6, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x15, &x16, x6, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x17, &x18, x6, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x19, &x20, 0x0, x18, x15); + fiat_bls12_381_q2_addcarryx_u64(&x21, &x22, x20, x16, x13); + fiat_bls12_381_q2_addcarryx_u64(&x23, &x24, x22, x14, x11); + fiat_bls12_381_q2_addcarryx_u64(&x25, &x26, x24, x12, x9); + fiat_bls12_381_q2_addcarryx_u64(&x27, &x28, x26, x10, x7); + x29 = (x28 + x8); + fiat_bls12_381_q2_mulx_u64(&x30, &x31, x17, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x32, &x33, x30, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x34, &x35, x30, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x36, &x37, x30, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x38, &x39, x30, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x40, &x41, x30, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x42, &x43, x30, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x44, &x45, 0x0, x43, x40); + fiat_bls12_381_q2_addcarryx_u64(&x46, &x47, x45, x41, x38); + fiat_bls12_381_q2_addcarryx_u64(&x48, &x49, x47, x39, x36); + fiat_bls12_381_q2_addcarryx_u64(&x50, &x51, x49, x37, x34); + fiat_bls12_381_q2_addcarryx_u64(&x52, &x53, x51, x35, x32); + x54 = (x53 + x33); + fiat_bls12_381_q2_addcarryx_u64(&x55, &x56, 0x0, x17, x42); + fiat_bls12_381_q2_addcarryx_u64(&x57, &x58, x56, x19, x44); + fiat_bls12_381_q2_addcarryx_u64(&x59, &x60, x58, x21, x46); + fiat_bls12_381_q2_addcarryx_u64(&x61, &x62, x60, x23, x48); + fiat_bls12_381_q2_addcarryx_u64(&x63, &x64, x62, x25, x50); + fiat_bls12_381_q2_addcarryx_u64(&x65, &x66, x64, x27, x52); + fiat_bls12_381_q2_addcarryx_u64(&x67, &x68, x66, x29, x54); + fiat_bls12_381_q2_mulx_u64(&x69, &x70, x1, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x71, &x72, x1, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x73, &x74, x1, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x75, &x76, x1, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x77, &x78, x1, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x79, &x80, x1, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x81, &x82, 0x0, x80, x77); + fiat_bls12_381_q2_addcarryx_u64(&x83, &x84, x82, x78, x75); + fiat_bls12_381_q2_addcarryx_u64(&x85, &x86, x84, x76, x73); + fiat_bls12_381_q2_addcarryx_u64(&x87, &x88, x86, x74, x71); + fiat_bls12_381_q2_addcarryx_u64(&x89, &x90, x88, x72, x69); + x91 = (x90 + x70); + fiat_bls12_381_q2_addcarryx_u64(&x92, &x93, 0x0, x57, x79); + fiat_bls12_381_q2_addcarryx_u64(&x94, &x95, x93, x59, x81); + fiat_bls12_381_q2_addcarryx_u64(&x96, &x97, x95, x61, x83); + fiat_bls12_381_q2_addcarryx_u64(&x98, &x99, x97, x63, x85); + fiat_bls12_381_q2_addcarryx_u64(&x100, &x101, x99, x65, x87); + fiat_bls12_381_q2_addcarryx_u64(&x102, &x103, x101, x67, x89); + fiat_bls12_381_q2_addcarryx_u64(&x104, &x105, x103, x68, x91); + fiat_bls12_381_q2_mulx_u64(&x106, &x107, x92, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x108, &x109, x106, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x110, &x111, x106, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x112, &x113, x106, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x114, &x115, x106, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x116, &x117, x106, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x118, &x119, x106, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x120, &x121, 0x0, x119, x116); + fiat_bls12_381_q2_addcarryx_u64(&x122, &x123, x121, x117, x114); + fiat_bls12_381_q2_addcarryx_u64(&x124, &x125, x123, x115, x112); + fiat_bls12_381_q2_addcarryx_u64(&x126, &x127, x125, x113, x110); + fiat_bls12_381_q2_addcarryx_u64(&x128, &x129, x127, x111, x108); + x130 = (x129 + x109); + fiat_bls12_381_q2_addcarryx_u64(&x131, &x132, 0x0, x92, x118); + fiat_bls12_381_q2_addcarryx_u64(&x133, &x134, x132, x94, x120); + fiat_bls12_381_q2_addcarryx_u64(&x135, &x136, x134, x96, x122); + fiat_bls12_381_q2_addcarryx_u64(&x137, &x138, x136, x98, x124); + fiat_bls12_381_q2_addcarryx_u64(&x139, &x140, x138, x100, x126); + fiat_bls12_381_q2_addcarryx_u64(&x141, &x142, x140, x102, x128); + fiat_bls12_381_q2_addcarryx_u64(&x143, &x144, x142, x104, x130); + x145 = ((uint64_t)x144 + x105); + fiat_bls12_381_q2_mulx_u64(&x146, &x147, x2, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x148, &x149, x2, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x150, &x151, x2, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x152, &x153, x2, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x154, &x155, x2, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x156, &x157, x2, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x158, &x159, 0x0, x157, x154); + fiat_bls12_381_q2_addcarryx_u64(&x160, &x161, x159, x155, x152); + fiat_bls12_381_q2_addcarryx_u64(&x162, &x163, x161, x153, x150); + fiat_bls12_381_q2_addcarryx_u64(&x164, &x165, x163, x151, x148); + fiat_bls12_381_q2_addcarryx_u64(&x166, &x167, x165, x149, x146); + x168 = (x167 + x147); + fiat_bls12_381_q2_addcarryx_u64(&x169, &x170, 0x0, x133, x156); + fiat_bls12_381_q2_addcarryx_u64(&x171, &x172, x170, x135, x158); + fiat_bls12_381_q2_addcarryx_u64(&x173, &x174, x172, x137, x160); + fiat_bls12_381_q2_addcarryx_u64(&x175, &x176, x174, x139, x162); + fiat_bls12_381_q2_addcarryx_u64(&x177, &x178, x176, x141, x164); + fiat_bls12_381_q2_addcarryx_u64(&x179, &x180, x178, x143, x166); + fiat_bls12_381_q2_addcarryx_u64(&x181, &x182, x180, x145, x168); + fiat_bls12_381_q2_mulx_u64(&x183, &x184, x169, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x185, &x186, x183, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x187, &x188, x183, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x189, &x190, x183, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x191, &x192, x183, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x193, &x194, x183, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x195, &x196, x183, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x197, &x198, 0x0, x196, x193); + fiat_bls12_381_q2_addcarryx_u64(&x199, &x200, x198, x194, x191); + fiat_bls12_381_q2_addcarryx_u64(&x201, &x202, x200, x192, x189); + fiat_bls12_381_q2_addcarryx_u64(&x203, &x204, x202, x190, x187); + fiat_bls12_381_q2_addcarryx_u64(&x205, &x206, x204, x188, x185); + x207 = (x206 + x186); + fiat_bls12_381_q2_addcarryx_u64(&x208, &x209, 0x0, x169, x195); + fiat_bls12_381_q2_addcarryx_u64(&x210, &x211, x209, x171, x197); + fiat_bls12_381_q2_addcarryx_u64(&x212, &x213, x211, x173, x199); + fiat_bls12_381_q2_addcarryx_u64(&x214, &x215, x213, x175, x201); + fiat_bls12_381_q2_addcarryx_u64(&x216, &x217, x215, x177, x203); + fiat_bls12_381_q2_addcarryx_u64(&x218, &x219, x217, x179, x205); + fiat_bls12_381_q2_addcarryx_u64(&x220, &x221, x219, x181, x207); + x222 = ((uint64_t)x221 + x182); + fiat_bls12_381_q2_mulx_u64(&x223, &x224, x3, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x225, &x226, x3, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x227, &x228, x3, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x229, &x230, x3, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x231, &x232, x3, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x233, &x234, x3, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x235, &x236, 0x0, x234, x231); + fiat_bls12_381_q2_addcarryx_u64(&x237, &x238, x236, x232, x229); + fiat_bls12_381_q2_addcarryx_u64(&x239, &x240, x238, x230, x227); + fiat_bls12_381_q2_addcarryx_u64(&x241, &x242, x240, x228, x225); + fiat_bls12_381_q2_addcarryx_u64(&x243, &x244, x242, x226, x223); + x245 = (x244 + x224); + fiat_bls12_381_q2_addcarryx_u64(&x246, &x247, 0x0, x210, x233); + fiat_bls12_381_q2_addcarryx_u64(&x248, &x249, x247, x212, x235); + fiat_bls12_381_q2_addcarryx_u64(&x250, &x251, x249, x214, x237); + fiat_bls12_381_q2_addcarryx_u64(&x252, &x253, x251, x216, x239); + fiat_bls12_381_q2_addcarryx_u64(&x254, &x255, x253, x218, x241); + fiat_bls12_381_q2_addcarryx_u64(&x256, &x257, x255, x220, x243); + fiat_bls12_381_q2_addcarryx_u64(&x258, &x259, x257, x222, x245); + fiat_bls12_381_q2_mulx_u64(&x260, &x261, x246, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x262, &x263, x260, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x264, &x265, x260, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x266, &x267, x260, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x268, &x269, x260, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x270, &x271, x260, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x272, &x273, x260, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x274, &x275, 0x0, x273, x270); + fiat_bls12_381_q2_addcarryx_u64(&x276, &x277, x275, x271, x268); + fiat_bls12_381_q2_addcarryx_u64(&x278, &x279, x277, x269, x266); + fiat_bls12_381_q2_addcarryx_u64(&x280, &x281, x279, x267, x264); + fiat_bls12_381_q2_addcarryx_u64(&x282, &x283, x281, x265, x262); + x284 = (x283 + x263); + fiat_bls12_381_q2_addcarryx_u64(&x285, &x286, 0x0, x246, x272); + fiat_bls12_381_q2_addcarryx_u64(&x287, &x288, x286, x248, x274); + fiat_bls12_381_q2_addcarryx_u64(&x289, &x290, x288, x250, x276); + fiat_bls12_381_q2_addcarryx_u64(&x291, &x292, x290, x252, x278); + fiat_bls12_381_q2_addcarryx_u64(&x293, &x294, x292, x254, x280); + fiat_bls12_381_q2_addcarryx_u64(&x295, &x296, x294, x256, x282); + fiat_bls12_381_q2_addcarryx_u64(&x297, &x298, x296, x258, x284); + x299 = ((uint64_t)x298 + x259); + fiat_bls12_381_q2_mulx_u64(&x300, &x301, x4, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x302, &x303, x4, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x304, &x305, x4, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x306, &x307, x4, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x308, &x309, x4, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x310, &x311, x4, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x312, &x313, 0x0, x311, x308); + fiat_bls12_381_q2_addcarryx_u64(&x314, &x315, x313, x309, x306); + fiat_bls12_381_q2_addcarryx_u64(&x316, &x317, x315, x307, x304); + fiat_bls12_381_q2_addcarryx_u64(&x318, &x319, x317, x305, x302); + fiat_bls12_381_q2_addcarryx_u64(&x320, &x321, x319, x303, x300); + x322 = (x321 + x301); + fiat_bls12_381_q2_addcarryx_u64(&x323, &x324, 0x0, x287, x310); + fiat_bls12_381_q2_addcarryx_u64(&x325, &x326, x324, x289, x312); + fiat_bls12_381_q2_addcarryx_u64(&x327, &x328, x326, x291, x314); + fiat_bls12_381_q2_addcarryx_u64(&x329, &x330, x328, x293, x316); + fiat_bls12_381_q2_addcarryx_u64(&x331, &x332, x330, x295, x318); + fiat_bls12_381_q2_addcarryx_u64(&x333, &x334, x332, x297, x320); + fiat_bls12_381_q2_addcarryx_u64(&x335, &x336, x334, x299, x322); + fiat_bls12_381_q2_mulx_u64(&x337, &x338, x323, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x339, &x340, x337, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x341, &x342, x337, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x343, &x344, x337, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x345, &x346, x337, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x347, &x348, x337, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x349, &x350, x337, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x351, &x352, 0x0, x350, x347); + fiat_bls12_381_q2_addcarryx_u64(&x353, &x354, x352, x348, x345); + fiat_bls12_381_q2_addcarryx_u64(&x355, &x356, x354, x346, x343); + fiat_bls12_381_q2_addcarryx_u64(&x357, &x358, x356, x344, x341); + fiat_bls12_381_q2_addcarryx_u64(&x359, &x360, x358, x342, x339); + x361 = (x360 + x340); + fiat_bls12_381_q2_addcarryx_u64(&x362, &x363, 0x0, x323, x349); + fiat_bls12_381_q2_addcarryx_u64(&x364, &x365, x363, x325, x351); + fiat_bls12_381_q2_addcarryx_u64(&x366, &x367, x365, x327, x353); + fiat_bls12_381_q2_addcarryx_u64(&x368, &x369, x367, x329, x355); + fiat_bls12_381_q2_addcarryx_u64(&x370, &x371, x369, x331, x357); + fiat_bls12_381_q2_addcarryx_u64(&x372, &x373, x371, x333, x359); + fiat_bls12_381_q2_addcarryx_u64(&x374, &x375, x373, x335, x361); + x376 = ((uint64_t)x375 + x336); + fiat_bls12_381_q2_mulx_u64(&x377, &x378, x5, (arg3[5])); + fiat_bls12_381_q2_mulx_u64(&x379, &x380, x5, (arg3[4])); + fiat_bls12_381_q2_mulx_u64(&x381, &x382, x5, (arg3[3])); + fiat_bls12_381_q2_mulx_u64(&x383, &x384, x5, (arg3[2])); + fiat_bls12_381_q2_mulx_u64(&x385, &x386, x5, (arg3[1])); + fiat_bls12_381_q2_mulx_u64(&x387, &x388, x5, (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x389, &x390, 0x0, x388, x385); + fiat_bls12_381_q2_addcarryx_u64(&x391, &x392, x390, x386, x383); + fiat_bls12_381_q2_addcarryx_u64(&x393, &x394, x392, x384, x381); + fiat_bls12_381_q2_addcarryx_u64(&x395, &x396, x394, x382, x379); + fiat_bls12_381_q2_addcarryx_u64(&x397, &x398, x396, x380, x377); + x399 = (x398 + x378); + fiat_bls12_381_q2_addcarryx_u64(&x400, &x401, 0x0, x364, x387); + fiat_bls12_381_q2_addcarryx_u64(&x402, &x403, x401, x366, x389); + fiat_bls12_381_q2_addcarryx_u64(&x404, &x405, x403, x368, x391); + fiat_bls12_381_q2_addcarryx_u64(&x406, &x407, x405, x370, x393); + fiat_bls12_381_q2_addcarryx_u64(&x408, &x409, x407, x372, x395); + fiat_bls12_381_q2_addcarryx_u64(&x410, &x411, x409, x374, x397); + fiat_bls12_381_q2_addcarryx_u64(&x412, &x413, x411, x376, x399); + fiat_bls12_381_q2_mulx_u64(&x414, &x415, x400, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x416, &x417, x414, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x418, &x419, x414, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x420, &x421, x414, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x422, &x423, x414, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x424, &x425, x414, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x426, &x427, x414, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x428, &x429, 0x0, x427, x424); + fiat_bls12_381_q2_addcarryx_u64(&x430, &x431, x429, x425, x422); + fiat_bls12_381_q2_addcarryx_u64(&x432, &x433, x431, x423, x420); + fiat_bls12_381_q2_addcarryx_u64(&x434, &x435, x433, x421, x418); + fiat_bls12_381_q2_addcarryx_u64(&x436, &x437, x435, x419, x416); + x438 = (x437 + x417); + fiat_bls12_381_q2_addcarryx_u64(&x439, &x440, 0x0, x400, x426); + fiat_bls12_381_q2_addcarryx_u64(&x441, &x442, x440, x402, x428); + fiat_bls12_381_q2_addcarryx_u64(&x443, &x444, x442, x404, x430); + fiat_bls12_381_q2_addcarryx_u64(&x445, &x446, x444, x406, x432); + fiat_bls12_381_q2_addcarryx_u64(&x447, &x448, x446, x408, x434); + fiat_bls12_381_q2_addcarryx_u64(&x449, &x450, x448, x410, x436); + fiat_bls12_381_q2_addcarryx_u64(&x451, &x452, x450, x412, x438); + x453 = ((uint64_t)x452 + x413); + fiat_bls12_381_q2_subborrowx_u64(&x454, &x455, 0x0, x441, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x456, &x457, x455, x443, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x458, &x459, x457, x445, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x460, &x461, x459, x447, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x462, &x463, x461, x449, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x464, &x465, x463, x451, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x466, &x467, x465, x453, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x468, x467, x454, x441); + fiat_bls12_381_q2_cmovznz_u64(&x469, x467, x456, x443); + fiat_bls12_381_q2_cmovznz_u64(&x470, x467, x458, x445); + fiat_bls12_381_q2_cmovznz_u64(&x471, x467, x460, x447); + fiat_bls12_381_q2_cmovznz_u64(&x472, x467, x462, x449); + fiat_bls12_381_q2_cmovznz_u64(&x473, x467, x464, x451); + x474 = (arg2[1]); + x475 = (arg2[2]); + x476 = (arg2[3]); + x477 = (arg2[4]); + x478 = (arg2[5]); + x479 = (arg2[0]); + fiat_bls12_381_q2_mulx_u64(&x480, &x481, x479, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x482, &x483, x479, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x484, &x485, x479, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x486, &x487, x479, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x488, &x489, x479, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x490, &x491, x479, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x492, &x493, 0x0, x491, x488); + fiat_bls12_381_q2_addcarryx_u64(&x494, &x495, x493, x489, x486); + fiat_bls12_381_q2_addcarryx_u64(&x496, &x497, x495, x487, x484); + fiat_bls12_381_q2_addcarryx_u64(&x498, &x499, x497, x485, x482); + fiat_bls12_381_q2_addcarryx_u64(&x500, &x501, x499, x483, x480); + x502 = (x501 + x481); + fiat_bls12_381_q2_mulx_u64(&x503, &x504, x490, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x505, &x506, x503, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x507, &x508, x503, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x509, &x510, x503, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x511, &x512, x503, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x513, &x514, x503, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x515, &x516, x503, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x517, &x518, 0x0, x516, x513); + fiat_bls12_381_q2_addcarryx_u64(&x519, &x520, x518, x514, x511); + fiat_bls12_381_q2_addcarryx_u64(&x521, &x522, x520, x512, x509); + fiat_bls12_381_q2_addcarryx_u64(&x523, &x524, x522, x510, x507); + fiat_bls12_381_q2_addcarryx_u64(&x525, &x526, x524, x508, x505); + x527 = (x526 + x506); + fiat_bls12_381_q2_addcarryx_u64(&x528, &x529, 0x0, x490, x515); + fiat_bls12_381_q2_addcarryx_u64(&x530, &x531, x529, x492, x517); + fiat_bls12_381_q2_addcarryx_u64(&x532, &x533, x531, x494, x519); + fiat_bls12_381_q2_addcarryx_u64(&x534, &x535, x533, x496, x521); + fiat_bls12_381_q2_addcarryx_u64(&x536, &x537, x535, x498, x523); + fiat_bls12_381_q2_addcarryx_u64(&x538, &x539, x537, x500, x525); + fiat_bls12_381_q2_addcarryx_u64(&x540, &x541, x539, x502, x527); + fiat_bls12_381_q2_mulx_u64(&x542, &x543, x474, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x544, &x545, x474, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x546, &x547, x474, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x548, &x549, x474, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x550, &x551, x474, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x552, &x553, x474, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x554, &x555, 0x0, x553, x550); + fiat_bls12_381_q2_addcarryx_u64(&x556, &x557, x555, x551, x548); + fiat_bls12_381_q2_addcarryx_u64(&x558, &x559, x557, x549, x546); + fiat_bls12_381_q2_addcarryx_u64(&x560, &x561, x559, x547, x544); + fiat_bls12_381_q2_addcarryx_u64(&x562, &x563, x561, x545, x542); + x564 = (x563 + x543); + fiat_bls12_381_q2_addcarryx_u64(&x565, &x566, 0x0, x530, x552); + fiat_bls12_381_q2_addcarryx_u64(&x567, &x568, x566, x532, x554); + fiat_bls12_381_q2_addcarryx_u64(&x569, &x570, x568, x534, x556); + fiat_bls12_381_q2_addcarryx_u64(&x571, &x572, x570, x536, x558); + fiat_bls12_381_q2_addcarryx_u64(&x573, &x574, x572, x538, x560); + fiat_bls12_381_q2_addcarryx_u64(&x575, &x576, x574, x540, x562); + fiat_bls12_381_q2_addcarryx_u64(&x577, &x578, x576, x541, x564); + fiat_bls12_381_q2_mulx_u64(&x579, &x580, x565, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x581, &x582, x579, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x583, &x584, x579, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x585, &x586, x579, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x587, &x588, x579, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x589, &x590, x579, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x591, &x592, x579, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x593, &x594, 0x0, x592, x589); + fiat_bls12_381_q2_addcarryx_u64(&x595, &x596, x594, x590, x587); + fiat_bls12_381_q2_addcarryx_u64(&x597, &x598, x596, x588, x585); + fiat_bls12_381_q2_addcarryx_u64(&x599, &x600, x598, x586, x583); + fiat_bls12_381_q2_addcarryx_u64(&x601, &x602, x600, x584, x581); + x603 = (x602 + x582); + fiat_bls12_381_q2_addcarryx_u64(&x604, &x605, 0x0, x565, x591); + fiat_bls12_381_q2_addcarryx_u64(&x606, &x607, x605, x567, x593); + fiat_bls12_381_q2_addcarryx_u64(&x608, &x609, x607, x569, x595); + fiat_bls12_381_q2_addcarryx_u64(&x610, &x611, x609, x571, x597); + fiat_bls12_381_q2_addcarryx_u64(&x612, &x613, x611, x573, x599); + fiat_bls12_381_q2_addcarryx_u64(&x614, &x615, x613, x575, x601); + fiat_bls12_381_q2_addcarryx_u64(&x616, &x617, x615, x577, x603); + x618 = ((uint64_t)x617 + x578); + fiat_bls12_381_q2_mulx_u64(&x619, &x620, x475, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x621, &x622, x475, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x623, &x624, x475, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x625, &x626, x475, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x627, &x628, x475, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x629, &x630, x475, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x631, &x632, 0x0, x630, x627); + fiat_bls12_381_q2_addcarryx_u64(&x633, &x634, x632, x628, x625); + fiat_bls12_381_q2_addcarryx_u64(&x635, &x636, x634, x626, x623); + fiat_bls12_381_q2_addcarryx_u64(&x637, &x638, x636, x624, x621); + fiat_bls12_381_q2_addcarryx_u64(&x639, &x640, x638, x622, x619); + x641 = (x640 + x620); + fiat_bls12_381_q2_addcarryx_u64(&x642, &x643, 0x0, x606, x629); + fiat_bls12_381_q2_addcarryx_u64(&x644, &x645, x643, x608, x631); + fiat_bls12_381_q2_addcarryx_u64(&x646, &x647, x645, x610, x633); + fiat_bls12_381_q2_addcarryx_u64(&x648, &x649, x647, x612, x635); + fiat_bls12_381_q2_addcarryx_u64(&x650, &x651, x649, x614, x637); + fiat_bls12_381_q2_addcarryx_u64(&x652, &x653, x651, x616, x639); + fiat_bls12_381_q2_addcarryx_u64(&x654, &x655, x653, x618, x641); + fiat_bls12_381_q2_mulx_u64(&x656, &x657, x642, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x658, &x659, x656, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x660, &x661, x656, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x662, &x663, x656, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x664, &x665, x656, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x666, &x667, x656, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x668, &x669, x656, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x670, &x671, 0x0, x669, x666); + fiat_bls12_381_q2_addcarryx_u64(&x672, &x673, x671, x667, x664); + fiat_bls12_381_q2_addcarryx_u64(&x674, &x675, x673, x665, x662); + fiat_bls12_381_q2_addcarryx_u64(&x676, &x677, x675, x663, x660); + fiat_bls12_381_q2_addcarryx_u64(&x678, &x679, x677, x661, x658); + x680 = (x679 + x659); + fiat_bls12_381_q2_addcarryx_u64(&x681, &x682, 0x0, x642, x668); + fiat_bls12_381_q2_addcarryx_u64(&x683, &x684, x682, x644, x670); + fiat_bls12_381_q2_addcarryx_u64(&x685, &x686, x684, x646, x672); + fiat_bls12_381_q2_addcarryx_u64(&x687, &x688, x686, x648, x674); + fiat_bls12_381_q2_addcarryx_u64(&x689, &x690, x688, x650, x676); + fiat_bls12_381_q2_addcarryx_u64(&x691, &x692, x690, x652, x678); + fiat_bls12_381_q2_addcarryx_u64(&x693, &x694, x692, x654, x680); + x695 = ((uint64_t)x694 + x655); + fiat_bls12_381_q2_mulx_u64(&x696, &x697, x476, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x698, &x699, x476, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x700, &x701, x476, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x702, &x703, x476, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x704, &x705, x476, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x706, &x707, x476, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x708, &x709, 0x0, x707, x704); + fiat_bls12_381_q2_addcarryx_u64(&x710, &x711, x709, x705, x702); + fiat_bls12_381_q2_addcarryx_u64(&x712, &x713, x711, x703, x700); + fiat_bls12_381_q2_addcarryx_u64(&x714, &x715, x713, x701, x698); + fiat_bls12_381_q2_addcarryx_u64(&x716, &x717, x715, x699, x696); + x718 = (x717 + x697); + fiat_bls12_381_q2_addcarryx_u64(&x719, &x720, 0x0, x683, x706); + fiat_bls12_381_q2_addcarryx_u64(&x721, &x722, x720, x685, x708); + fiat_bls12_381_q2_addcarryx_u64(&x723, &x724, x722, x687, x710); + fiat_bls12_381_q2_addcarryx_u64(&x725, &x726, x724, x689, x712); + fiat_bls12_381_q2_addcarryx_u64(&x727, &x728, x726, x691, x714); + fiat_bls12_381_q2_addcarryx_u64(&x729, &x730, x728, x693, x716); + fiat_bls12_381_q2_addcarryx_u64(&x731, &x732, x730, x695, x718); + fiat_bls12_381_q2_mulx_u64(&x733, &x734, x719, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x735, &x736, x733, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x737, &x738, x733, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x739, &x740, x733, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x741, &x742, x733, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x743, &x744, x733, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x745, &x746, x733, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x747, &x748, 0x0, x746, x743); + fiat_bls12_381_q2_addcarryx_u64(&x749, &x750, x748, x744, x741); + fiat_bls12_381_q2_addcarryx_u64(&x751, &x752, x750, x742, x739); + fiat_bls12_381_q2_addcarryx_u64(&x753, &x754, x752, x740, x737); + fiat_bls12_381_q2_addcarryx_u64(&x755, &x756, x754, x738, x735); + x757 = (x756 + x736); + fiat_bls12_381_q2_addcarryx_u64(&x758, &x759, 0x0, x719, x745); + fiat_bls12_381_q2_addcarryx_u64(&x760, &x761, x759, x721, x747); + fiat_bls12_381_q2_addcarryx_u64(&x762, &x763, x761, x723, x749); + fiat_bls12_381_q2_addcarryx_u64(&x764, &x765, x763, x725, x751); + fiat_bls12_381_q2_addcarryx_u64(&x766, &x767, x765, x727, x753); + fiat_bls12_381_q2_addcarryx_u64(&x768, &x769, x767, x729, x755); + fiat_bls12_381_q2_addcarryx_u64(&x770, &x771, x769, x731, x757); + x772 = ((uint64_t)x771 + x732); + fiat_bls12_381_q2_mulx_u64(&x773, &x774, x477, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x775, &x776, x477, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x777, &x778, x477, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x779, &x780, x477, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x781, &x782, x477, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x783, &x784, x477, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x785, &x786, 0x0, x784, x781); + fiat_bls12_381_q2_addcarryx_u64(&x787, &x788, x786, x782, x779); + fiat_bls12_381_q2_addcarryx_u64(&x789, &x790, x788, x780, x777); + fiat_bls12_381_q2_addcarryx_u64(&x791, &x792, x790, x778, x775); + fiat_bls12_381_q2_addcarryx_u64(&x793, &x794, x792, x776, x773); + x795 = (x794 + x774); + fiat_bls12_381_q2_addcarryx_u64(&x796, &x797, 0x0, x760, x783); + fiat_bls12_381_q2_addcarryx_u64(&x798, &x799, x797, x762, x785); + fiat_bls12_381_q2_addcarryx_u64(&x800, &x801, x799, x764, x787); + fiat_bls12_381_q2_addcarryx_u64(&x802, &x803, x801, x766, x789); + fiat_bls12_381_q2_addcarryx_u64(&x804, &x805, x803, x768, x791); + fiat_bls12_381_q2_addcarryx_u64(&x806, &x807, x805, x770, x793); + fiat_bls12_381_q2_addcarryx_u64(&x808, &x809, x807, x772, x795); + fiat_bls12_381_q2_mulx_u64(&x810, &x811, x796, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x812, &x813, x810, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x814, &x815, x810, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x816, &x817, x810, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x818, &x819, x810, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x820, &x821, x810, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x822, &x823, x810, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x824, &x825, 0x0, x823, x820); + fiat_bls12_381_q2_addcarryx_u64(&x826, &x827, x825, x821, x818); + fiat_bls12_381_q2_addcarryx_u64(&x828, &x829, x827, x819, x816); + fiat_bls12_381_q2_addcarryx_u64(&x830, &x831, x829, x817, x814); + fiat_bls12_381_q2_addcarryx_u64(&x832, &x833, x831, x815, x812); + x834 = (x833 + x813); + fiat_bls12_381_q2_addcarryx_u64(&x835, &x836, 0x0, x796, x822); + fiat_bls12_381_q2_addcarryx_u64(&x837, &x838, x836, x798, x824); + fiat_bls12_381_q2_addcarryx_u64(&x839, &x840, x838, x800, x826); + fiat_bls12_381_q2_addcarryx_u64(&x841, &x842, x840, x802, x828); + fiat_bls12_381_q2_addcarryx_u64(&x843, &x844, x842, x804, x830); + fiat_bls12_381_q2_addcarryx_u64(&x845, &x846, x844, x806, x832); + fiat_bls12_381_q2_addcarryx_u64(&x847, &x848, x846, x808, x834); + x849 = ((uint64_t)x848 + x809); + fiat_bls12_381_q2_mulx_u64(&x850, &x851, x478, (arg4[5])); + fiat_bls12_381_q2_mulx_u64(&x852, &x853, x478, (arg4[4])); + fiat_bls12_381_q2_mulx_u64(&x854, &x855, x478, (arg4[3])); + fiat_bls12_381_q2_mulx_u64(&x856, &x857, x478, (arg4[2])); + fiat_bls12_381_q2_mulx_u64(&x858, &x859, x478, (arg4[1])); + fiat_bls12_381_q2_mulx_u64(&x860, &x861, x478, (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x862, &x863, 0x0, x861, x858); + fiat_bls12_381_q2_addcarryx_u64(&x864, &x865, x863, x859, x856); + fiat_bls12_381_q2_addcarryx_u64(&x866, &x867, x865, x857, x854); + fiat_bls12_381_q2_addcarryx_u64(&x868, &x869, x867, x855, x852); + fiat_bls12_381_q2_addcarryx_u64(&x870, &x871, x869, x853, x850); + x872 = (x871 + x851); + fiat_bls12_381_q2_addcarryx_u64(&x873, &x874, 0x0, x837, x860); + fiat_bls12_381_q2_addcarryx_u64(&x875, &x876, x874, x839, x862); + fiat_bls12_381_q2_addcarryx_u64(&x877, &x878, x876, x841, x864); + fiat_bls12_381_q2_addcarryx_u64(&x879, &x880, x878, x843, x866); + fiat_bls12_381_q2_addcarryx_u64(&x881, &x882, x880, x845, x868); + fiat_bls12_381_q2_addcarryx_u64(&x883, &x884, x882, x847, x870); + fiat_bls12_381_q2_addcarryx_u64(&x885, &x886, x884, x849, x872); + fiat_bls12_381_q2_mulx_u64(&x887, &x888, x873, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x889, &x890, x887, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x891, &x892, x887, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x893, &x894, x887, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x895, &x896, x887, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x897, &x898, x887, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x899, &x900, x887, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x901, &x902, 0x0, x900, x897); + fiat_bls12_381_q2_addcarryx_u64(&x903, &x904, x902, x898, x895); + fiat_bls12_381_q2_addcarryx_u64(&x905, &x906, x904, x896, x893); + fiat_bls12_381_q2_addcarryx_u64(&x907, &x908, x906, x894, x891); + fiat_bls12_381_q2_addcarryx_u64(&x909, &x910, x908, x892, x889); + x911 = (x910 + x890); + fiat_bls12_381_q2_addcarryx_u64(&x912, &x913, 0x0, x873, x899); + fiat_bls12_381_q2_addcarryx_u64(&x914, &x915, x913, x875, x901); + fiat_bls12_381_q2_addcarryx_u64(&x916, &x917, x915, x877, x903); + fiat_bls12_381_q2_addcarryx_u64(&x918, &x919, x917, x879, x905); + fiat_bls12_381_q2_addcarryx_u64(&x920, &x921, x919, x881, x907); + fiat_bls12_381_q2_addcarryx_u64(&x922, &x923, x921, x883, x909); + fiat_bls12_381_q2_addcarryx_u64(&x924, &x925, x923, x885, x911); + x926 = ((uint64_t)x925 + x886); + fiat_bls12_381_q2_subborrowx_u64(&x927, &x928, 0x0, x914, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x929, &x930, x928, x916, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x931, &x932, x930, x918, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x933, &x934, x932, x920, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x935, &x936, x934, x922, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x937, &x938, x936, x924, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x939, &x940, x938, x926, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x941, x940, x927, x914); + fiat_bls12_381_q2_cmovznz_u64(&x942, x940, x929, x916); + fiat_bls12_381_q2_cmovznz_u64(&x943, x940, x931, x918); + fiat_bls12_381_q2_cmovznz_u64(&x944, x940, x933, x920); + fiat_bls12_381_q2_cmovznz_u64(&x945, x940, x935, x922); + fiat_bls12_381_q2_cmovznz_u64(&x946, x940, x937, x924); + fiat_bls12_381_q2_addcarryx_u64(&x947, &x948, 0x0, (arg1[0]), (arg2[0])); + fiat_bls12_381_q2_addcarryx_u64(&x949, &x950, x948, (arg1[1]), (arg2[1])); + fiat_bls12_381_q2_addcarryx_u64(&x951, &x952, x950, (arg1[2]), (arg2[2])); + fiat_bls12_381_q2_addcarryx_u64(&x953, &x954, x952, (arg1[3]), (arg2[3])); + fiat_bls12_381_q2_addcarryx_u64(&x955, &x956, x954, (arg1[4]), (arg2[4])); + fiat_bls12_381_q2_addcarryx_u64(&x957, &x958, x956, (arg1[5]), (arg2[5])); + fiat_bls12_381_q2_subborrowx_u64(&x959, &x960, 0x0, x947, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x961, &x962, x960, x949, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x963, &x964, x962, x951, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x965, &x966, x964, x953, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x967, &x968, x966, x955, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x969, &x970, x968, x957, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x971, &x972, x970, x958, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x973, x972, x959, x947); + fiat_bls12_381_q2_cmovznz_u64(&x974, x972, x961, x949); + fiat_bls12_381_q2_cmovznz_u64(&x975, x972, x963, x951); + fiat_bls12_381_q2_cmovznz_u64(&x976, x972, x965, x953); + fiat_bls12_381_q2_cmovznz_u64(&x977, x972, x967, x955); + fiat_bls12_381_q2_cmovznz_u64(&x978, x972, x969, x957); + fiat_bls12_381_q2_addcarryx_u64(&x979, &x980, 0x0, (arg3[0]), (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x981, &x982, x980, (arg3[1]), (arg4[1])); + fiat_bls12_381_q2_addcarryx_u64(&x983, &x984, x982, (arg3[2]), (arg4[2])); + fiat_bls12_381_q2_addcarryx_u64(&x985, &x986, x984, (arg3[3]), (arg4[3])); + fiat_bls12_381_q2_addcarryx_u64(&x987, &x988, x986, (arg3[4]), (arg4[4])); + fiat_bls12_381_q2_addcarryx_u64(&x989, &x990, x988, (arg3[5]), (arg4[5])); + fiat_bls12_381_q2_subborrowx_u64(&x991, &x992, 0x0, x979, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x993, &x994, x992, x981, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x995, &x996, x994, x983, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x997, &x998, x996, x985, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x999, &x1000, x998, x987, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x1001, &x1002, x1000, x989, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x1003, &x1004, x1002, x990, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x1005, x1004, x991, x979); + fiat_bls12_381_q2_cmovznz_u64(&x1006, x1004, x993, x981); + fiat_bls12_381_q2_cmovznz_u64(&x1007, x1004, x995, x983); + fiat_bls12_381_q2_cmovznz_u64(&x1008, x1004, x997, x985); + fiat_bls12_381_q2_cmovznz_u64(&x1009, x1004, x999, x987); + fiat_bls12_381_q2_cmovznz_u64(&x1010, x1004, x1001, x989); + fiat_bls12_381_q2_mulx_u64(&x1011, &x1012, x973, x1010); + fiat_bls12_381_q2_mulx_u64(&x1013, &x1014, x973, x1009); + fiat_bls12_381_q2_mulx_u64(&x1015, &x1016, x973, x1008); + fiat_bls12_381_q2_mulx_u64(&x1017, &x1018, x973, x1007); + fiat_bls12_381_q2_mulx_u64(&x1019, &x1020, x973, x1006); + fiat_bls12_381_q2_mulx_u64(&x1021, &x1022, x973, x1005); + fiat_bls12_381_q2_addcarryx_u64(&x1023, &x1024, 0x0, x1022, x1019); + fiat_bls12_381_q2_addcarryx_u64(&x1025, &x1026, x1024, x1020, x1017); + fiat_bls12_381_q2_addcarryx_u64(&x1027, &x1028, x1026, x1018, x1015); + fiat_bls12_381_q2_addcarryx_u64(&x1029, &x1030, x1028, x1016, x1013); + fiat_bls12_381_q2_addcarryx_u64(&x1031, &x1032, x1030, x1014, x1011); + x1033 = (x1032 + x1012); + fiat_bls12_381_q2_mulx_u64(&x1034, &x1035, x1021, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1036, &x1037, x1034, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1038, &x1039, x1034, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1040, &x1041, x1034, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1042, &x1043, x1034, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1044, &x1045, x1034, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1046, &x1047, x1034, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1048, &x1049, 0x0, x1047, x1044); + fiat_bls12_381_q2_addcarryx_u64(&x1050, &x1051, x1049, x1045, x1042); + fiat_bls12_381_q2_addcarryx_u64(&x1052, &x1053, x1051, x1043, x1040); + fiat_bls12_381_q2_addcarryx_u64(&x1054, &x1055, x1053, x1041, x1038); + fiat_bls12_381_q2_addcarryx_u64(&x1056, &x1057, x1055, x1039, x1036); + x1058 = (x1057 + x1037); + fiat_bls12_381_q2_addcarryx_u64(&x1059, &x1060, 0x0, x1021, x1046); + fiat_bls12_381_q2_addcarryx_u64(&x1061, &x1062, x1060, x1023, x1048); + fiat_bls12_381_q2_addcarryx_u64(&x1063, &x1064, x1062, x1025, x1050); + fiat_bls12_381_q2_addcarryx_u64(&x1065, &x1066, x1064, x1027, x1052); + fiat_bls12_381_q2_addcarryx_u64(&x1067, &x1068, x1066, x1029, x1054); + fiat_bls12_381_q2_addcarryx_u64(&x1069, &x1070, x1068, x1031, x1056); + fiat_bls12_381_q2_addcarryx_u64(&x1071, &x1072, x1070, x1033, x1058); + fiat_bls12_381_q2_mulx_u64(&x1073, &x1074, x974, x1010); + fiat_bls12_381_q2_mulx_u64(&x1075, &x1076, x974, x1009); + fiat_bls12_381_q2_mulx_u64(&x1077, &x1078, x974, x1008); + fiat_bls12_381_q2_mulx_u64(&x1079, &x1080, x974, x1007); + fiat_bls12_381_q2_mulx_u64(&x1081, &x1082, x974, x1006); + fiat_bls12_381_q2_mulx_u64(&x1083, &x1084, x974, x1005); + fiat_bls12_381_q2_addcarryx_u64(&x1085, &x1086, 0x0, x1084, x1081); + fiat_bls12_381_q2_addcarryx_u64(&x1087, &x1088, x1086, x1082, x1079); + fiat_bls12_381_q2_addcarryx_u64(&x1089, &x1090, x1088, x1080, x1077); + fiat_bls12_381_q2_addcarryx_u64(&x1091, &x1092, x1090, x1078, x1075); + fiat_bls12_381_q2_addcarryx_u64(&x1093, &x1094, x1092, x1076, x1073); + x1095 = (x1094 + x1074); + fiat_bls12_381_q2_addcarryx_u64(&x1096, &x1097, 0x0, x1061, x1083); + fiat_bls12_381_q2_addcarryx_u64(&x1098, &x1099, x1097, x1063, x1085); + fiat_bls12_381_q2_addcarryx_u64(&x1100, &x1101, x1099, x1065, x1087); + fiat_bls12_381_q2_addcarryx_u64(&x1102, &x1103, x1101, x1067, x1089); + fiat_bls12_381_q2_addcarryx_u64(&x1104, &x1105, x1103, x1069, x1091); + fiat_bls12_381_q2_addcarryx_u64(&x1106, &x1107, x1105, x1071, x1093); + fiat_bls12_381_q2_addcarryx_u64(&x1108, &x1109, x1107, x1072, x1095); + fiat_bls12_381_q2_mulx_u64(&x1110, &x1111, x1096, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1112, &x1113, x1110, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1114, &x1115, x1110, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1116, &x1117, x1110, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1118, &x1119, x1110, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1120, &x1121, x1110, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1122, &x1123, x1110, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1124, &x1125, 0x0, x1123, x1120); + fiat_bls12_381_q2_addcarryx_u64(&x1126, &x1127, x1125, x1121, x1118); + fiat_bls12_381_q2_addcarryx_u64(&x1128, &x1129, x1127, x1119, x1116); + fiat_bls12_381_q2_addcarryx_u64(&x1130, &x1131, x1129, x1117, x1114); + fiat_bls12_381_q2_addcarryx_u64(&x1132, &x1133, x1131, x1115, x1112); + x1134 = (x1133 + x1113); + fiat_bls12_381_q2_addcarryx_u64(&x1135, &x1136, 0x0, x1096, x1122); + fiat_bls12_381_q2_addcarryx_u64(&x1137, &x1138, x1136, x1098, x1124); + fiat_bls12_381_q2_addcarryx_u64(&x1139, &x1140, x1138, x1100, x1126); + fiat_bls12_381_q2_addcarryx_u64(&x1141, &x1142, x1140, x1102, x1128); + fiat_bls12_381_q2_addcarryx_u64(&x1143, &x1144, x1142, x1104, x1130); + fiat_bls12_381_q2_addcarryx_u64(&x1145, &x1146, x1144, x1106, x1132); + fiat_bls12_381_q2_addcarryx_u64(&x1147, &x1148, x1146, x1108, x1134); + x1149 = ((uint64_t)x1148 + x1109); + fiat_bls12_381_q2_mulx_u64(&x1150, &x1151, x975, x1010); + fiat_bls12_381_q2_mulx_u64(&x1152, &x1153, x975, x1009); + fiat_bls12_381_q2_mulx_u64(&x1154, &x1155, x975, x1008); + fiat_bls12_381_q2_mulx_u64(&x1156, &x1157, x975, x1007); + fiat_bls12_381_q2_mulx_u64(&x1158, &x1159, x975, x1006); + fiat_bls12_381_q2_mulx_u64(&x1160, &x1161, x975, x1005); + fiat_bls12_381_q2_addcarryx_u64(&x1162, &x1163, 0x0, x1161, x1158); + fiat_bls12_381_q2_addcarryx_u64(&x1164, &x1165, x1163, x1159, x1156); + fiat_bls12_381_q2_addcarryx_u64(&x1166, &x1167, x1165, x1157, x1154); + fiat_bls12_381_q2_addcarryx_u64(&x1168, &x1169, x1167, x1155, x1152); + fiat_bls12_381_q2_addcarryx_u64(&x1170, &x1171, x1169, x1153, x1150); + x1172 = (x1171 + x1151); + fiat_bls12_381_q2_addcarryx_u64(&x1173, &x1174, 0x0, x1137, x1160); + fiat_bls12_381_q2_addcarryx_u64(&x1175, &x1176, x1174, x1139, x1162); + fiat_bls12_381_q2_addcarryx_u64(&x1177, &x1178, x1176, x1141, x1164); + fiat_bls12_381_q2_addcarryx_u64(&x1179, &x1180, x1178, x1143, x1166); + fiat_bls12_381_q2_addcarryx_u64(&x1181, &x1182, x1180, x1145, x1168); + fiat_bls12_381_q2_addcarryx_u64(&x1183, &x1184, x1182, x1147, x1170); + fiat_bls12_381_q2_addcarryx_u64(&x1185, &x1186, x1184, x1149, x1172); + fiat_bls12_381_q2_mulx_u64(&x1187, &x1188, x1173, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1189, &x1190, x1187, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1191, &x1192, x1187, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1193, &x1194, x1187, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1195, &x1196, x1187, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1197, &x1198, x1187, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1199, &x1200, x1187, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1201, &x1202, 0x0, x1200, x1197); + fiat_bls12_381_q2_addcarryx_u64(&x1203, &x1204, x1202, x1198, x1195); + fiat_bls12_381_q2_addcarryx_u64(&x1205, &x1206, x1204, x1196, x1193); + fiat_bls12_381_q2_addcarryx_u64(&x1207, &x1208, x1206, x1194, x1191); + fiat_bls12_381_q2_addcarryx_u64(&x1209, &x1210, x1208, x1192, x1189); + x1211 = (x1210 + x1190); + fiat_bls12_381_q2_addcarryx_u64(&x1212, &x1213, 0x0, x1173, x1199); + fiat_bls12_381_q2_addcarryx_u64(&x1214, &x1215, x1213, x1175, x1201); + fiat_bls12_381_q2_addcarryx_u64(&x1216, &x1217, x1215, x1177, x1203); + fiat_bls12_381_q2_addcarryx_u64(&x1218, &x1219, x1217, x1179, x1205); + fiat_bls12_381_q2_addcarryx_u64(&x1220, &x1221, x1219, x1181, x1207); + fiat_bls12_381_q2_addcarryx_u64(&x1222, &x1223, x1221, x1183, x1209); + fiat_bls12_381_q2_addcarryx_u64(&x1224, &x1225, x1223, x1185, x1211); + x1226 = ((uint64_t)x1225 + x1186); + fiat_bls12_381_q2_mulx_u64(&x1227, &x1228, x976, x1010); + fiat_bls12_381_q2_mulx_u64(&x1229, &x1230, x976, x1009); + fiat_bls12_381_q2_mulx_u64(&x1231, &x1232, x976, x1008); + fiat_bls12_381_q2_mulx_u64(&x1233, &x1234, x976, x1007); + fiat_bls12_381_q2_mulx_u64(&x1235, &x1236, x976, x1006); + fiat_bls12_381_q2_mulx_u64(&x1237, &x1238, x976, x1005); + fiat_bls12_381_q2_addcarryx_u64(&x1239, &x1240, 0x0, x1238, x1235); + fiat_bls12_381_q2_addcarryx_u64(&x1241, &x1242, x1240, x1236, x1233); + fiat_bls12_381_q2_addcarryx_u64(&x1243, &x1244, x1242, x1234, x1231); + fiat_bls12_381_q2_addcarryx_u64(&x1245, &x1246, x1244, x1232, x1229); + fiat_bls12_381_q2_addcarryx_u64(&x1247, &x1248, x1246, x1230, x1227); + x1249 = (x1248 + x1228); + fiat_bls12_381_q2_addcarryx_u64(&x1250, &x1251, 0x0, x1214, x1237); + fiat_bls12_381_q2_addcarryx_u64(&x1252, &x1253, x1251, x1216, x1239); + fiat_bls12_381_q2_addcarryx_u64(&x1254, &x1255, x1253, x1218, x1241); + fiat_bls12_381_q2_addcarryx_u64(&x1256, &x1257, x1255, x1220, x1243); + fiat_bls12_381_q2_addcarryx_u64(&x1258, &x1259, x1257, x1222, x1245); + fiat_bls12_381_q2_addcarryx_u64(&x1260, &x1261, x1259, x1224, x1247); + fiat_bls12_381_q2_addcarryx_u64(&x1262, &x1263, x1261, x1226, x1249); + fiat_bls12_381_q2_mulx_u64(&x1264, &x1265, x1250, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1266, &x1267, x1264, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1268, &x1269, x1264, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1270, &x1271, x1264, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1272, &x1273, x1264, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1274, &x1275, x1264, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1276, &x1277, x1264, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1278, &x1279, 0x0, x1277, x1274); + fiat_bls12_381_q2_addcarryx_u64(&x1280, &x1281, x1279, x1275, x1272); + fiat_bls12_381_q2_addcarryx_u64(&x1282, &x1283, x1281, x1273, x1270); + fiat_bls12_381_q2_addcarryx_u64(&x1284, &x1285, x1283, x1271, x1268); + fiat_bls12_381_q2_addcarryx_u64(&x1286, &x1287, x1285, x1269, x1266); + x1288 = (x1287 + x1267); + fiat_bls12_381_q2_addcarryx_u64(&x1289, &x1290, 0x0, x1250, x1276); + fiat_bls12_381_q2_addcarryx_u64(&x1291, &x1292, x1290, x1252, x1278); + fiat_bls12_381_q2_addcarryx_u64(&x1293, &x1294, x1292, x1254, x1280); + fiat_bls12_381_q2_addcarryx_u64(&x1295, &x1296, x1294, x1256, x1282); + fiat_bls12_381_q2_addcarryx_u64(&x1297, &x1298, x1296, x1258, x1284); + fiat_bls12_381_q2_addcarryx_u64(&x1299, &x1300, x1298, x1260, x1286); + fiat_bls12_381_q2_addcarryx_u64(&x1301, &x1302, x1300, x1262, x1288); + x1303 = ((uint64_t)x1302 + x1263); + fiat_bls12_381_q2_mulx_u64(&x1304, &x1305, x977, x1010); + fiat_bls12_381_q2_mulx_u64(&x1306, &x1307, x977, x1009); + fiat_bls12_381_q2_mulx_u64(&x1308, &x1309, x977, x1008); + fiat_bls12_381_q2_mulx_u64(&x1310, &x1311, x977, x1007); + fiat_bls12_381_q2_mulx_u64(&x1312, &x1313, x977, x1006); + fiat_bls12_381_q2_mulx_u64(&x1314, &x1315, x977, x1005); + fiat_bls12_381_q2_addcarryx_u64(&x1316, &x1317, 0x0, x1315, x1312); + fiat_bls12_381_q2_addcarryx_u64(&x1318, &x1319, x1317, x1313, x1310); + fiat_bls12_381_q2_addcarryx_u64(&x1320, &x1321, x1319, x1311, x1308); + fiat_bls12_381_q2_addcarryx_u64(&x1322, &x1323, x1321, x1309, x1306); + fiat_bls12_381_q2_addcarryx_u64(&x1324, &x1325, x1323, x1307, x1304); + x1326 = (x1325 + x1305); + fiat_bls12_381_q2_addcarryx_u64(&x1327, &x1328, 0x0, x1291, x1314); + fiat_bls12_381_q2_addcarryx_u64(&x1329, &x1330, x1328, x1293, x1316); + fiat_bls12_381_q2_addcarryx_u64(&x1331, &x1332, x1330, x1295, x1318); + fiat_bls12_381_q2_addcarryx_u64(&x1333, &x1334, x1332, x1297, x1320); + fiat_bls12_381_q2_addcarryx_u64(&x1335, &x1336, x1334, x1299, x1322); + fiat_bls12_381_q2_addcarryx_u64(&x1337, &x1338, x1336, x1301, x1324); + fiat_bls12_381_q2_addcarryx_u64(&x1339, &x1340, x1338, x1303, x1326); + fiat_bls12_381_q2_mulx_u64(&x1341, &x1342, x1327, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1343, &x1344, x1341, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1345, &x1346, x1341, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1347, &x1348, x1341, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1349, &x1350, x1341, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1351, &x1352, x1341, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1353, &x1354, x1341, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1355, &x1356, 0x0, x1354, x1351); + fiat_bls12_381_q2_addcarryx_u64(&x1357, &x1358, x1356, x1352, x1349); + fiat_bls12_381_q2_addcarryx_u64(&x1359, &x1360, x1358, x1350, x1347); + fiat_bls12_381_q2_addcarryx_u64(&x1361, &x1362, x1360, x1348, x1345); + fiat_bls12_381_q2_addcarryx_u64(&x1363, &x1364, x1362, x1346, x1343); + x1365 = (x1364 + x1344); + fiat_bls12_381_q2_addcarryx_u64(&x1366, &x1367, 0x0, x1327, x1353); + fiat_bls12_381_q2_addcarryx_u64(&x1368, &x1369, x1367, x1329, x1355); + fiat_bls12_381_q2_addcarryx_u64(&x1370, &x1371, x1369, x1331, x1357); + fiat_bls12_381_q2_addcarryx_u64(&x1372, &x1373, x1371, x1333, x1359); + fiat_bls12_381_q2_addcarryx_u64(&x1374, &x1375, x1373, x1335, x1361); + fiat_bls12_381_q2_addcarryx_u64(&x1376, &x1377, x1375, x1337, x1363); + fiat_bls12_381_q2_addcarryx_u64(&x1378, &x1379, x1377, x1339, x1365); + x1380 = ((uint64_t)x1379 + x1340); + fiat_bls12_381_q2_mulx_u64(&x1381, &x1382, x978, x1010); + fiat_bls12_381_q2_mulx_u64(&x1383, &x1384, x978, x1009); + fiat_bls12_381_q2_mulx_u64(&x1385, &x1386, x978, x1008); + fiat_bls12_381_q2_mulx_u64(&x1387, &x1388, x978, x1007); + fiat_bls12_381_q2_mulx_u64(&x1389, &x1390, x978, x1006); + fiat_bls12_381_q2_mulx_u64(&x1391, &x1392, x978, x1005); + fiat_bls12_381_q2_addcarryx_u64(&x1393, &x1394, 0x0, x1392, x1389); + fiat_bls12_381_q2_addcarryx_u64(&x1395, &x1396, x1394, x1390, x1387); + fiat_bls12_381_q2_addcarryx_u64(&x1397, &x1398, x1396, x1388, x1385); + fiat_bls12_381_q2_addcarryx_u64(&x1399, &x1400, x1398, x1386, x1383); + fiat_bls12_381_q2_addcarryx_u64(&x1401, &x1402, x1400, x1384, x1381); + x1403 = (x1402 + x1382); + fiat_bls12_381_q2_addcarryx_u64(&x1404, &x1405, 0x0, x1368, x1391); + fiat_bls12_381_q2_addcarryx_u64(&x1406, &x1407, x1405, x1370, x1393); + fiat_bls12_381_q2_addcarryx_u64(&x1408, &x1409, x1407, x1372, x1395); + fiat_bls12_381_q2_addcarryx_u64(&x1410, &x1411, x1409, x1374, x1397); + fiat_bls12_381_q2_addcarryx_u64(&x1412, &x1413, x1411, x1376, x1399); + fiat_bls12_381_q2_addcarryx_u64(&x1414, &x1415, x1413, x1378, x1401); + fiat_bls12_381_q2_addcarryx_u64(&x1416, &x1417, x1415, x1380, x1403); + fiat_bls12_381_q2_mulx_u64(&x1418, &x1419, x1404, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x1420, &x1421, x1418, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x1422, &x1423, x1418, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x1424, &x1425, x1418, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x1426, &x1427, x1418, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x1428, &x1429, x1418, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x1430, &x1431, x1418, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x1432, &x1433, 0x0, x1431, x1428); + fiat_bls12_381_q2_addcarryx_u64(&x1434, &x1435, x1433, x1429, x1426); + fiat_bls12_381_q2_addcarryx_u64(&x1436, &x1437, x1435, x1427, x1424); + fiat_bls12_381_q2_addcarryx_u64(&x1438, &x1439, x1437, x1425, x1422); + fiat_bls12_381_q2_addcarryx_u64(&x1440, &x1441, x1439, x1423, x1420); + x1442 = (x1441 + x1421); + fiat_bls12_381_q2_addcarryx_u64(&x1443, &x1444, 0x0, x1404, x1430); + fiat_bls12_381_q2_addcarryx_u64(&x1445, &x1446, x1444, x1406, x1432); + fiat_bls12_381_q2_addcarryx_u64(&x1447, &x1448, x1446, x1408, x1434); + fiat_bls12_381_q2_addcarryx_u64(&x1449, &x1450, x1448, x1410, x1436); + fiat_bls12_381_q2_addcarryx_u64(&x1451, &x1452, x1450, x1412, x1438); + fiat_bls12_381_q2_addcarryx_u64(&x1453, &x1454, x1452, x1414, x1440); + fiat_bls12_381_q2_addcarryx_u64(&x1455, &x1456, x1454, x1416, x1442); + x1457 = ((uint64_t)x1456 + x1417); + fiat_bls12_381_q2_subborrowx_u64(&x1458, &x1459, 0x0, x1445, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x1460, &x1461, x1459, x1447, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x1462, &x1463, x1461, x1449, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x1464, &x1465, x1463, x1451, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x1466, &x1467, x1465, x1453, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x1468, &x1469, x1467, x1455, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x1470, &x1471, x1469, x1457, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x1472, x1471, x1458, x1445); + fiat_bls12_381_q2_cmovznz_u64(&x1473, x1471, x1460, x1447); + fiat_bls12_381_q2_cmovznz_u64(&x1474, x1471, x1462, x1449); + fiat_bls12_381_q2_cmovznz_u64(&x1475, x1471, x1464, x1451); + fiat_bls12_381_q2_cmovznz_u64(&x1476, x1471, x1466, x1453); + fiat_bls12_381_q2_cmovznz_u64(&x1477, x1471, x1468, x1455); + fiat_bls12_381_q2_subborrowx_u64(&x1478, &x1479, 0x0, x1472, x468); + fiat_bls12_381_q2_subborrowx_u64(&x1480, &x1481, x1479, x1473, x469); + fiat_bls12_381_q2_subborrowx_u64(&x1482, &x1483, x1481, x1474, x470); + fiat_bls12_381_q2_subborrowx_u64(&x1484, &x1485, x1483, x1475, x471); + fiat_bls12_381_q2_subborrowx_u64(&x1486, &x1487, x1485, x1476, x472); + fiat_bls12_381_q2_subborrowx_u64(&x1488, &x1489, x1487, x1477, x473); + fiat_bls12_381_q2_cmovznz_u64(&x1490, x1489, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_bls12_381_q2_addcarryx_u64(&x1491, &x1492, 0x0, x1478, (x1490 & UINT64_C(0xb9feffffffffaaab))); + fiat_bls12_381_q2_addcarryx_u64(&x1493, &x1494, x1492, x1480, (x1490 & UINT64_C(0x1eabfffeb153ffff))); + fiat_bls12_381_q2_addcarryx_u64(&x1495, &x1496, x1494, x1482, (x1490 & UINT64_C(0x6730d2a0f6b0f624))); + fiat_bls12_381_q2_addcarryx_u64(&x1497, &x1498, x1496, x1484, (x1490 & UINT64_C(0x64774b84f38512bf))); + fiat_bls12_381_q2_addcarryx_u64(&x1499, &x1500, x1498, x1486, (x1490 & UINT64_C(0x4b1ba7b6434bacd7))); + fiat_bls12_381_q2_addcarryx_u64(&x1501, &x1502, x1500, x1488, (x1490 & UINT64_C(0x1a0111ea397fe69a))); + fiat_bls12_381_q2_subborrowx_u64(&x1503, &x1504, 0x0, x1491, x941); + fiat_bls12_381_q2_subborrowx_u64(&x1505, &x1506, x1504, x1493, x942); + fiat_bls12_381_q2_subborrowx_u64(&x1507, &x1508, x1506, x1495, x943); + fiat_bls12_381_q2_subborrowx_u64(&x1509, &x1510, x1508, x1497, x944); + fiat_bls12_381_q2_subborrowx_u64(&x1511, &x1512, x1510, x1499, x945); + fiat_bls12_381_q2_subborrowx_u64(&x1513, &x1514, x1512, x1501, x946); + fiat_bls12_381_q2_cmovznz_u64(&x1515, x1514, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_bls12_381_q2_addcarryx_u64(&x1516, &x1517, 0x0, x1503, (x1515 & UINT64_C(0xb9feffffffffaaab))); + fiat_bls12_381_q2_addcarryx_u64(&x1518, &x1519, x1517, x1505, (x1515 & UINT64_C(0x1eabfffeb153ffff))); + fiat_bls12_381_q2_addcarryx_u64(&x1520, &x1521, x1519, x1507, (x1515 & UINT64_C(0x6730d2a0f6b0f624))); + fiat_bls12_381_q2_addcarryx_u64(&x1522, &x1523, x1521, x1509, (x1515 & UINT64_C(0x64774b84f38512bf))); + fiat_bls12_381_q2_addcarryx_u64(&x1524, &x1525, x1523, x1511, (x1515 & UINT64_C(0x4b1ba7b6434bacd7))); + fiat_bls12_381_q2_addcarryx_u64(&x1526, &x1527, x1525, x1513, (x1515 & UINT64_C(0x1a0111ea397fe69a))); + fiat_bls12_381_q2_subborrowx_u64(&x1528, &x1529, 0x0, x468, x941); + fiat_bls12_381_q2_subborrowx_u64(&x1530, &x1531, x1529, x469, x942); + fiat_bls12_381_q2_subborrowx_u64(&x1532, &x1533, x1531, x470, x943); + fiat_bls12_381_q2_subborrowx_u64(&x1534, &x1535, x1533, x471, x944); + fiat_bls12_381_q2_subborrowx_u64(&x1536, &x1537, x1535, x472, x945); + fiat_bls12_381_q2_subborrowx_u64(&x1538, &x1539, x1537, x473, x946); + fiat_bls12_381_q2_cmovznz_u64(&x1540, x1539, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_bls12_381_q2_addcarryx_u64(&x1541, &x1542, 0x0, x1528, (x1540 & UINT64_C(0xb9feffffffffaaab))); + fiat_bls12_381_q2_addcarryx_u64(&x1543, &x1544, x1542, x1530, (x1540 & UINT64_C(0x1eabfffeb153ffff))); + fiat_bls12_381_q2_addcarryx_u64(&x1545, &x1546, x1544, x1532, (x1540 & UINT64_C(0x6730d2a0f6b0f624))); + fiat_bls12_381_q2_addcarryx_u64(&x1547, &x1548, x1546, x1534, (x1540 & UINT64_C(0x64774b84f38512bf))); + fiat_bls12_381_q2_addcarryx_u64(&x1549, &x1550, x1548, x1536, (x1540 & UINT64_C(0x4b1ba7b6434bacd7))); + fiat_bls12_381_q2_addcarryx_u64(&x1551, &x1552, x1550, x1538, (x1540 & UINT64_C(0x1a0111ea397fe69a))); + out1[0] = x1541; + out1[1] = x1543; + out1[2] = x1545; + out1[3] = x1547; + out1[4] = x1549; + out1[5] = x1551; + out2[0] = x1516; + out2[1] = x1518; + out2[2] = x1520; + out2[3] = x1522; + out2[4] = x1524; + out2[5] = x1526; +} + +/* + * The function fiat_bls12_381_q2_addFp2 adds two Fp2 field elements in the Montgomery domain. + * Postconditions: + * 0 ≤ eval arg1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[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]] + * arg4: [[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]] + * out2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_bls12_381_q2_addFp2(uint64_t out1[6], uint64_t out2[6], const uint64_t arg1[6], const uint64_t arg2[6], const uint64_t arg3[6], const uint64_t arg4[6]) { + uint64_t x1; + fiat_bls12_381_q2_uint1 x2; + uint64_t x3; + fiat_bls12_381_q2_uint1 x4; + uint64_t x5; + fiat_bls12_381_q2_uint1 x6; + uint64_t x7; + fiat_bls12_381_q2_uint1 x8; + uint64_t x9; + fiat_bls12_381_q2_uint1 x10; + uint64_t x11; + fiat_bls12_381_q2_uint1 x12; + uint64_t x13; + fiat_bls12_381_q2_uint1 x14; + uint64_t x15; + fiat_bls12_381_q2_uint1 x16; + uint64_t x17; + fiat_bls12_381_q2_uint1 x18; + uint64_t x19; + fiat_bls12_381_q2_uint1 x20; + uint64_t x21; + fiat_bls12_381_q2_uint1 x22; + uint64_t x23; + fiat_bls12_381_q2_uint1 x24; + uint64_t x25; + fiat_bls12_381_q2_uint1 x26; + uint64_t x27; + fiat_bls12_381_q2_uint1 x28; + uint64_t x29; + fiat_bls12_381_q2_uint1 x30; + uint64_t x31; + fiat_bls12_381_q2_uint1 x32; + uint64_t x33; + fiat_bls12_381_q2_uint1 x34; + uint64_t x35; + fiat_bls12_381_q2_uint1 x36; + uint64_t x37; + fiat_bls12_381_q2_uint1 x38; + uint64_t x39; + fiat_bls12_381_q2_uint1 x40; + uint64_t x41; + fiat_bls12_381_q2_uint1 x42; + uint64_t x43; + fiat_bls12_381_q2_uint1 x44; + uint64_t x45; + fiat_bls12_381_q2_uint1 x46; + uint64_t x47; + fiat_bls12_381_q2_uint1 x48; + uint64_t x49; + fiat_bls12_381_q2_uint1 x50; + uint64_t x51; + fiat_bls12_381_q2_uint1 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_bls12_381_q2_addcarryx_u64(&x1, &x2, 0x0, (arg2[0]), (arg4[0])); + fiat_bls12_381_q2_addcarryx_u64(&x3, &x4, x2, (arg2[1]), (arg4[1])); + fiat_bls12_381_q2_addcarryx_u64(&x5, &x6, x4, (arg2[2]), (arg4[2])); + fiat_bls12_381_q2_addcarryx_u64(&x7, &x8, x6, (arg2[3]), (arg4[3])); + fiat_bls12_381_q2_addcarryx_u64(&x9, &x10, x8, (arg2[4]), (arg4[4])); + fiat_bls12_381_q2_addcarryx_u64(&x11, &x12, x10, (arg2[5]), (arg4[5])); + fiat_bls12_381_q2_subborrowx_u64(&x13, &x14, 0x0, x1, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x15, &x16, x14, x3, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x17, &x18, x16, x5, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x19, &x20, x18, x7, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x21, &x22, x20, x9, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x23, &x24, x22, x11, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x25, &x26, x24, x12, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x27, &x28, 0x0, (arg1[0]), (arg3[0])); + fiat_bls12_381_q2_addcarryx_u64(&x29, &x30, x28, (arg1[1]), (arg3[1])); + fiat_bls12_381_q2_addcarryx_u64(&x31, &x32, x30, (arg1[2]), (arg3[2])); + fiat_bls12_381_q2_addcarryx_u64(&x33, &x34, x32, (arg1[3]), (arg3[3])); + fiat_bls12_381_q2_addcarryx_u64(&x35, &x36, x34, (arg1[4]), (arg3[4])); + fiat_bls12_381_q2_addcarryx_u64(&x37, &x38, x36, (arg1[5]), (arg3[5])); + fiat_bls12_381_q2_subborrowx_u64(&x39, &x40, 0x0, x27, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x41, &x42, x40, x29, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x43, &x44, x42, x31, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x45, &x46, x44, x33, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x47, &x48, x46, x35, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x49, &x50, x48, x37, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x51, &x52, x50, x38, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x53, x52, x39, x27); + fiat_bls12_381_q2_cmovznz_u64(&x54, x52, x41, x29); + fiat_bls12_381_q2_cmovznz_u64(&x55, x52, x43, x31); + fiat_bls12_381_q2_cmovznz_u64(&x56, x52, x45, x33); + fiat_bls12_381_q2_cmovznz_u64(&x57, x52, x47, x35); + fiat_bls12_381_q2_cmovznz_u64(&x58, x52, x49, x37); + fiat_bls12_381_q2_cmovznz_u64(&x59, x26, x13, x1); + fiat_bls12_381_q2_cmovznz_u64(&x60, x26, x15, x3); + fiat_bls12_381_q2_cmovznz_u64(&x61, x26, x17, x5); + fiat_bls12_381_q2_cmovznz_u64(&x62, x26, x19, x7); + fiat_bls12_381_q2_cmovznz_u64(&x63, x26, x21, x9); + fiat_bls12_381_q2_cmovznz_u64(&x64, x26, x23, x11); + out1[0] = x53; + out1[1] = x54; + out1[2] = x55; + out1[3] = x56; + out1[4] = x57; + out1[5] = x58; + out2[0] = x59; + out2[1] = x60; + out2[2] = x61; + out2[3] = x62; + out2[4] = x63; + out2[5] = x64; +} + +/* + * The function fiat_bls12_381_q2_subFp2 subtracts two Fp2 field elements in the Montgomery domain. + * Postconditions: + * 0 ≤ eval arg1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[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]] + * arg4: [[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]] + * out2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_bls12_381_q2_subFp2(uint64_t out1[6], uint64_t out2[6], const uint64_t arg1[6], const uint64_t arg2[6], const uint64_t arg3[6], const uint64_t arg4[6]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + fiat_bls12_381_q2_uint1 x8; + uint64_t x9; + fiat_bls12_381_q2_uint1 x10; + uint64_t x11; + fiat_bls12_381_q2_uint1 x12; + uint64_t x13; + fiat_bls12_381_q2_uint1 x14; + uint64_t x15; + fiat_bls12_381_q2_uint1 x16; + uint64_t x17; + fiat_bls12_381_q2_uint1 x18; + uint64_t x19; + uint64_t x20; + fiat_bls12_381_q2_uint1 x21; + uint64_t x22; + fiat_bls12_381_q2_uint1 x23; + uint64_t x24; + fiat_bls12_381_q2_uint1 x25; + uint64_t x26; + fiat_bls12_381_q2_uint1 x27; + uint64_t x28; + fiat_bls12_381_q2_uint1 x29; + uint64_t x30; + fiat_bls12_381_q2_uint1 x31; + uint64_t x32; + uint64_t x33; + uint64_t x34; + uint64_t x35; + uint64_t x36; + uint64_t x37; + uint64_t x38; + fiat_bls12_381_q2_uint1 x39; + uint64_t x40; + fiat_bls12_381_q2_uint1 x41; + uint64_t x42; + fiat_bls12_381_q2_uint1 x43; + uint64_t x44; + fiat_bls12_381_q2_uint1 x45; + uint64_t x46; + fiat_bls12_381_q2_uint1 x47; + uint64_t x48; + fiat_bls12_381_q2_uint1 x49; + uint64_t x50; + uint64_t x51; + fiat_bls12_381_q2_uint1 x52; + uint64_t x53; + fiat_bls12_381_q2_uint1 x54; + uint64_t x55; + fiat_bls12_381_q2_uint1 x56; + uint64_t x57; + fiat_bls12_381_q2_uint1 x58; + uint64_t x59; + fiat_bls12_381_q2_uint1 x60; + uint64_t x61; + fiat_bls12_381_q2_uint1 x62; + x1 = (arg4[5]); + x2 = (arg4[4]); + x3 = (arg4[3]); + x4 = (arg4[2]); + x5 = (arg4[1]); + x6 = (arg4[0]); + fiat_bls12_381_q2_subborrowx_u64(&x7, &x8, 0x0, (arg2[0]), x6); + fiat_bls12_381_q2_subborrowx_u64(&x9, &x10, x8, (arg2[1]), x5); + fiat_bls12_381_q2_subborrowx_u64(&x11, &x12, x10, (arg2[2]), x4); + fiat_bls12_381_q2_subborrowx_u64(&x13, &x14, x12, (arg2[3]), x3); + fiat_bls12_381_q2_subborrowx_u64(&x15, &x16, x14, (arg2[4]), x2); + fiat_bls12_381_q2_subborrowx_u64(&x17, &x18, x16, (arg2[5]), x1); + fiat_bls12_381_q2_cmovznz_u64(&x19, x18, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_bls12_381_q2_addcarryx_u64(&x20, &x21, 0x0, x7, (x19 & UINT64_C(0xb9feffffffffaaab))); + fiat_bls12_381_q2_addcarryx_u64(&x22, &x23, x21, x9, (x19 & UINT64_C(0x1eabfffeb153ffff))); + fiat_bls12_381_q2_addcarryx_u64(&x24, &x25, x23, x11, (x19 & UINT64_C(0x6730d2a0f6b0f624))); + fiat_bls12_381_q2_addcarryx_u64(&x26, &x27, x25, x13, (x19 & UINT64_C(0x64774b84f38512bf))); + fiat_bls12_381_q2_addcarryx_u64(&x28, &x29, x27, x15, (x19 & UINT64_C(0x4b1ba7b6434bacd7))); + fiat_bls12_381_q2_addcarryx_u64(&x30, &x31, x29, x17, (x19 & UINT64_C(0x1a0111ea397fe69a))); + x32 = (arg3[5]); + x33 = (arg3[4]); + x34 = (arg3[3]); + x35 = (arg3[2]); + x36 = (arg3[1]); + x37 = (arg3[0]); + fiat_bls12_381_q2_subborrowx_u64(&x38, &x39, 0x0, (arg1[0]), x37); + fiat_bls12_381_q2_subborrowx_u64(&x40, &x41, x39, (arg1[1]), x36); + fiat_bls12_381_q2_subborrowx_u64(&x42, &x43, x41, (arg1[2]), x35); + fiat_bls12_381_q2_subborrowx_u64(&x44, &x45, x43, (arg1[3]), x34); + fiat_bls12_381_q2_subborrowx_u64(&x46, &x47, x45, (arg1[4]), x33); + fiat_bls12_381_q2_subborrowx_u64(&x48, &x49, x47, (arg1[5]), x32); + fiat_bls12_381_q2_cmovznz_u64(&x50, x49, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_bls12_381_q2_addcarryx_u64(&x51, &x52, 0x0, x38, (x50 & UINT64_C(0xb9feffffffffaaab))); + fiat_bls12_381_q2_addcarryx_u64(&x53, &x54, x52, x40, (x50 & UINT64_C(0x1eabfffeb153ffff))); + fiat_bls12_381_q2_addcarryx_u64(&x55, &x56, x54, x42, (x50 & UINT64_C(0x6730d2a0f6b0f624))); + fiat_bls12_381_q2_addcarryx_u64(&x57, &x58, x56, x44, (x50 & UINT64_C(0x64774b84f38512bf))); + fiat_bls12_381_q2_addcarryx_u64(&x59, &x60, x58, x46, (x50 & UINT64_C(0x4b1ba7b6434bacd7))); + fiat_bls12_381_q2_addcarryx_u64(&x61, &x62, x60, x48, (x50 & UINT64_C(0x1a0111ea397fe69a))); + out1[0] = x51; + out1[1] = x53; + out1[2] = x55; + out1[3] = x57; + out1[4] = x59; + out1[5] = x61; + out2[0] = x20; + out2[1] = x22; + out2[2] = x24; + out2[3] = x26; + out2[4] = x28; + out2[5] = x30; +} + +/* + * The function fiat_bls12_381_q2_square squares a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_bls12_381_q2_square(uint64_t out1[6], const uint64_t arg1[6]) { + 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; + fiat_bls12_381_q2_uint1 x20; + uint64_t x21; + fiat_bls12_381_q2_uint1 x22; + uint64_t x23; + fiat_bls12_381_q2_uint1 x24; + uint64_t x25; + fiat_bls12_381_q2_uint1 x26; + uint64_t x27; + fiat_bls12_381_q2_uint1 x28; + uint64_t x29; + uint64_t x30; + uint64_t x31; + uint64_t x32; + uint64_t x33; + uint64_t x34; + uint64_t x35; + uint64_t 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; + fiat_bls12_381_q2_uint1 x45; + uint64_t x46; + fiat_bls12_381_q2_uint1 x47; + uint64_t x48; + fiat_bls12_381_q2_uint1 x49; + uint64_t x50; + fiat_bls12_381_q2_uint1 x51; + uint64_t x52; + fiat_bls12_381_q2_uint1 x53; + uint64_t x54; + uint64_t x55; + fiat_bls12_381_q2_uint1 x56; + uint64_t x57; + fiat_bls12_381_q2_uint1 x58; + uint64_t x59; + fiat_bls12_381_q2_uint1 x60; + uint64_t x61; + fiat_bls12_381_q2_uint1 x62; + uint64_t x63; + fiat_bls12_381_q2_uint1 x64; + uint64_t x65; + fiat_bls12_381_q2_uint1 x66; + uint64_t x67; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x82; + uint64_t x83; + fiat_bls12_381_q2_uint1 x84; + uint64_t x85; + fiat_bls12_381_q2_uint1 x86; + uint64_t x87; + fiat_bls12_381_q2_uint1 x88; + uint64_t x89; + fiat_bls12_381_q2_uint1 x90; + uint64_t x91; + uint64_t x92; + fiat_bls12_381_q2_uint1 x93; + uint64_t x94; + fiat_bls12_381_q2_uint1 x95; + uint64_t x96; + fiat_bls12_381_q2_uint1 x97; + uint64_t x98; + fiat_bls12_381_q2_uint1 x99; + uint64_t x100; + fiat_bls12_381_q2_uint1 x101; + uint64_t x102; + fiat_bls12_381_q2_uint1 x103; + uint64_t x104; + fiat_bls12_381_q2_uint1 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_bls12_381_q2_uint1 x121; + uint64_t x122; + fiat_bls12_381_q2_uint1 x123; + uint64_t x124; + fiat_bls12_381_q2_uint1 x125; + uint64_t x126; + fiat_bls12_381_q2_uint1 x127; + uint64_t x128; + fiat_bls12_381_q2_uint1 x129; + uint64_t x130; + uint64_t x131; + fiat_bls12_381_q2_uint1 x132; + uint64_t x133; + fiat_bls12_381_q2_uint1 x134; + uint64_t x135; + fiat_bls12_381_q2_uint1 x136; + uint64_t x137; + fiat_bls12_381_q2_uint1 x138; + uint64_t x139; + fiat_bls12_381_q2_uint1 x140; + uint64_t x141; + fiat_bls12_381_q2_uint1 x142; + uint64_t x143; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x159; + uint64_t x160; + fiat_bls12_381_q2_uint1 x161; + uint64_t x162; + fiat_bls12_381_q2_uint1 x163; + uint64_t x164; + fiat_bls12_381_q2_uint1 x165; + uint64_t x166; + fiat_bls12_381_q2_uint1 x167; + uint64_t x168; + uint64_t x169; + fiat_bls12_381_q2_uint1 x170; + uint64_t x171; + fiat_bls12_381_q2_uint1 x172; + uint64_t x173; + fiat_bls12_381_q2_uint1 x174; + uint64_t x175; + fiat_bls12_381_q2_uint1 x176; + uint64_t x177; + fiat_bls12_381_q2_uint1 x178; + uint64_t x179; + fiat_bls12_381_q2_uint1 x180; + uint64_t x181; + fiat_bls12_381_q2_uint1 x182; + uint64_t x183; + uint64_t x184; + uint64_t x185; + uint64_t x186; + uint64_t x187; + uint64_t x188; + uint64_t x189; + uint64_t x190; + uint64_t x191; + uint64_t x192; + uint64_t x193; + uint64_t x194; + uint64_t x195; + uint64_t x196; + uint64_t x197; + fiat_bls12_381_q2_uint1 x198; + uint64_t x199; + fiat_bls12_381_q2_uint1 x200; + uint64_t x201; + fiat_bls12_381_q2_uint1 x202; + uint64_t x203; + fiat_bls12_381_q2_uint1 x204; + uint64_t x205; + fiat_bls12_381_q2_uint1 x206; + uint64_t x207; + uint64_t x208; + fiat_bls12_381_q2_uint1 x209; + uint64_t x210; + fiat_bls12_381_q2_uint1 x211; + uint64_t x212; + fiat_bls12_381_q2_uint1 x213; + uint64_t x214; + fiat_bls12_381_q2_uint1 x215; + uint64_t x216; + fiat_bls12_381_q2_uint1 x217; + uint64_t x218; + fiat_bls12_381_q2_uint1 x219; + uint64_t x220; + fiat_bls12_381_q2_uint1 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; + uint64_t x234; + uint64_t x235; + fiat_bls12_381_q2_uint1 x236; + uint64_t x237; + fiat_bls12_381_q2_uint1 x238; + uint64_t x239; + fiat_bls12_381_q2_uint1 x240; + uint64_t x241; + fiat_bls12_381_q2_uint1 x242; + uint64_t x243; + fiat_bls12_381_q2_uint1 x244; + uint64_t x245; + uint64_t x246; + fiat_bls12_381_q2_uint1 x247; + uint64_t x248; + fiat_bls12_381_q2_uint1 x249; + uint64_t x250; + fiat_bls12_381_q2_uint1 x251; + uint64_t x252; + fiat_bls12_381_q2_uint1 x253; + uint64_t x254; + fiat_bls12_381_q2_uint1 x255; + uint64_t x256; + fiat_bls12_381_q2_uint1 x257; + uint64_t x258; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x275; + uint64_t x276; + fiat_bls12_381_q2_uint1 x277; + uint64_t x278; + fiat_bls12_381_q2_uint1 x279; + uint64_t x280; + fiat_bls12_381_q2_uint1 x281; + uint64_t x282; + fiat_bls12_381_q2_uint1 x283; + uint64_t x284; + uint64_t x285; + fiat_bls12_381_q2_uint1 x286; + uint64_t x287; + fiat_bls12_381_q2_uint1 x288; + uint64_t x289; + fiat_bls12_381_q2_uint1 x290; + uint64_t x291; + fiat_bls12_381_q2_uint1 x292; + uint64_t x293; + fiat_bls12_381_q2_uint1 x294; + uint64_t x295; + fiat_bls12_381_q2_uint1 x296; + uint64_t x297; + fiat_bls12_381_q2_uint1 x298; + uint64_t x299; + uint64_t x300; + uint64_t x301; + uint64_t x302; + uint64_t x303; + uint64_t x304; + uint64_t x305; + uint64_t x306; + uint64_t x307; + uint64_t x308; + uint64_t x309; + uint64_t x310; + uint64_t x311; + uint64_t x312; + fiat_bls12_381_q2_uint1 x313; + uint64_t x314; + fiat_bls12_381_q2_uint1 x315; + uint64_t x316; + fiat_bls12_381_q2_uint1 x317; + uint64_t x318; + fiat_bls12_381_q2_uint1 x319; + uint64_t x320; + fiat_bls12_381_q2_uint1 x321; + uint64_t x322; + uint64_t x323; + fiat_bls12_381_q2_uint1 x324; + uint64_t x325; + fiat_bls12_381_q2_uint1 x326; + uint64_t x327; + fiat_bls12_381_q2_uint1 x328; + uint64_t x329; + fiat_bls12_381_q2_uint1 x330; + uint64_t x331; + fiat_bls12_381_q2_uint1 x332; + uint64_t x333; + fiat_bls12_381_q2_uint1 x334; + uint64_t x335; + fiat_bls12_381_q2_uint1 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; + uint64_t x347; + uint64_t x348; + uint64_t x349; + uint64_t x350; + uint64_t x351; + fiat_bls12_381_q2_uint1 x352; + uint64_t x353; + fiat_bls12_381_q2_uint1 x354; + uint64_t x355; + fiat_bls12_381_q2_uint1 x356; + uint64_t x357; + fiat_bls12_381_q2_uint1 x358; + uint64_t x359; + fiat_bls12_381_q2_uint1 x360; + uint64_t x361; + uint64_t x362; + fiat_bls12_381_q2_uint1 x363; + uint64_t x364; + fiat_bls12_381_q2_uint1 x365; + uint64_t x366; + fiat_bls12_381_q2_uint1 x367; + uint64_t x368; + fiat_bls12_381_q2_uint1 x369; + uint64_t x370; + fiat_bls12_381_q2_uint1 x371; + uint64_t x372; + fiat_bls12_381_q2_uint1 x373; + uint64_t x374; + fiat_bls12_381_q2_uint1 x375; + uint64_t x376; + uint64_t x377; + uint64_t x378; + uint64_t x379; + uint64_t x380; + uint64_t x381; + uint64_t x382; + uint64_t x383; + uint64_t x384; + uint64_t x385; + uint64_t x386; + uint64_t x387; + uint64_t x388; + uint64_t x389; + fiat_bls12_381_q2_uint1 x390; + uint64_t x391; + fiat_bls12_381_q2_uint1 x392; + uint64_t x393; + fiat_bls12_381_q2_uint1 x394; + uint64_t x395; + fiat_bls12_381_q2_uint1 x396; + uint64_t x397; + fiat_bls12_381_q2_uint1 x398; + uint64_t x399; + uint64_t x400; + fiat_bls12_381_q2_uint1 x401; + uint64_t x402; + fiat_bls12_381_q2_uint1 x403; + uint64_t x404; + fiat_bls12_381_q2_uint1 x405; + uint64_t x406; + fiat_bls12_381_q2_uint1 x407; + uint64_t x408; + fiat_bls12_381_q2_uint1 x409; + uint64_t x410; + fiat_bls12_381_q2_uint1 x411; + uint64_t x412; + fiat_bls12_381_q2_uint1 x413; + uint64_t x414; + uint64_t 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; + fiat_bls12_381_q2_uint1 x429; + uint64_t x430; + fiat_bls12_381_q2_uint1 x431; + uint64_t x432; + fiat_bls12_381_q2_uint1 x433; + uint64_t x434; + fiat_bls12_381_q2_uint1 x435; + uint64_t x436; + fiat_bls12_381_q2_uint1 x437; + uint64_t x438; + uint64_t x439; + fiat_bls12_381_q2_uint1 x440; + uint64_t x441; + fiat_bls12_381_q2_uint1 x442; + uint64_t x443; + fiat_bls12_381_q2_uint1 x444; + uint64_t x445; + fiat_bls12_381_q2_uint1 x446; + uint64_t x447; + fiat_bls12_381_q2_uint1 x448; + uint64_t x449; + fiat_bls12_381_q2_uint1 x450; + uint64_t x451; + fiat_bls12_381_q2_uint1 x452; + uint64_t x453; + uint64_t x454; + fiat_bls12_381_q2_uint1 x455; + uint64_t x456; + fiat_bls12_381_q2_uint1 x457; + uint64_t x458; + fiat_bls12_381_q2_uint1 x459; + uint64_t x460; + fiat_bls12_381_q2_uint1 x461; + uint64_t x462; + fiat_bls12_381_q2_uint1 x463; + uint64_t x464; + fiat_bls12_381_q2_uint1 x465; + uint64_t x466; + fiat_bls12_381_q2_uint1 x467; + uint64_t x468; + uint64_t x469; + uint64_t x470; + uint64_t x471; + uint64_t x472; + uint64_t x473; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[0]); + fiat_bls12_381_q2_mulx_u64(&x7, &x8, x6, (arg1[5])); + fiat_bls12_381_q2_mulx_u64(&x9, &x10, x6, (arg1[4])); + fiat_bls12_381_q2_mulx_u64(&x11, &x12, x6, (arg1[3])); + fiat_bls12_381_q2_mulx_u64(&x13, &x14, x6, (arg1[2])); + fiat_bls12_381_q2_mulx_u64(&x15, &x16, x6, (arg1[1])); + fiat_bls12_381_q2_mulx_u64(&x17, &x18, x6, (arg1[0])); + fiat_bls12_381_q2_addcarryx_u64(&x19, &x20, 0x0, x18, x15); + fiat_bls12_381_q2_addcarryx_u64(&x21, &x22, x20, x16, x13); + fiat_bls12_381_q2_addcarryx_u64(&x23, &x24, x22, x14, x11); + fiat_bls12_381_q2_addcarryx_u64(&x25, &x26, x24, x12, x9); + fiat_bls12_381_q2_addcarryx_u64(&x27, &x28, x26, x10, x7); + x29 = (x28 + x8); + fiat_bls12_381_q2_mulx_u64(&x30, &x31, x17, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x32, &x33, x30, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x34, &x35, x30, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x36, &x37, x30, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x38, &x39, x30, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x40, &x41, x30, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x42, &x43, x30, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x44, &x45, 0x0, x43, x40); + fiat_bls12_381_q2_addcarryx_u64(&x46, &x47, x45, x41, x38); + fiat_bls12_381_q2_addcarryx_u64(&x48, &x49, x47, x39, x36); + fiat_bls12_381_q2_addcarryx_u64(&x50, &x51, x49, x37, x34); + fiat_bls12_381_q2_addcarryx_u64(&x52, &x53, x51, x35, x32); + x54 = (x53 + x33); + fiat_bls12_381_q2_addcarryx_u64(&x55, &x56, 0x0, x17, x42); + fiat_bls12_381_q2_addcarryx_u64(&x57, &x58, x56, x19, x44); + fiat_bls12_381_q2_addcarryx_u64(&x59, &x60, x58, x21, x46); + fiat_bls12_381_q2_addcarryx_u64(&x61, &x62, x60, x23, x48); + fiat_bls12_381_q2_addcarryx_u64(&x63, &x64, x62, x25, x50); + fiat_bls12_381_q2_addcarryx_u64(&x65, &x66, x64, x27, x52); + fiat_bls12_381_q2_addcarryx_u64(&x67, &x68, x66, x29, x54); + fiat_bls12_381_q2_mulx_u64(&x69, &x70, x1, (arg1[5])); + fiat_bls12_381_q2_mulx_u64(&x71, &x72, x1, (arg1[4])); + fiat_bls12_381_q2_mulx_u64(&x73, &x74, x1, (arg1[3])); + fiat_bls12_381_q2_mulx_u64(&x75, &x76, x1, (arg1[2])); + fiat_bls12_381_q2_mulx_u64(&x77, &x78, x1, (arg1[1])); + fiat_bls12_381_q2_mulx_u64(&x79, &x80, x1, (arg1[0])); + fiat_bls12_381_q2_addcarryx_u64(&x81, &x82, 0x0, x80, x77); + fiat_bls12_381_q2_addcarryx_u64(&x83, &x84, x82, x78, x75); + fiat_bls12_381_q2_addcarryx_u64(&x85, &x86, x84, x76, x73); + fiat_bls12_381_q2_addcarryx_u64(&x87, &x88, x86, x74, x71); + fiat_bls12_381_q2_addcarryx_u64(&x89, &x90, x88, x72, x69); + x91 = (x90 + x70); + fiat_bls12_381_q2_addcarryx_u64(&x92, &x93, 0x0, x57, x79); + fiat_bls12_381_q2_addcarryx_u64(&x94, &x95, x93, x59, x81); + fiat_bls12_381_q2_addcarryx_u64(&x96, &x97, x95, x61, x83); + fiat_bls12_381_q2_addcarryx_u64(&x98, &x99, x97, x63, x85); + fiat_bls12_381_q2_addcarryx_u64(&x100, &x101, x99, x65, x87); + fiat_bls12_381_q2_addcarryx_u64(&x102, &x103, x101, x67, x89); + fiat_bls12_381_q2_addcarryx_u64(&x104, &x105, x103, x68, x91); + fiat_bls12_381_q2_mulx_u64(&x106, &x107, x92, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x108, &x109, x106, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x110, &x111, x106, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x112, &x113, x106, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x114, &x115, x106, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x116, &x117, x106, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x118, &x119, x106, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x120, &x121, 0x0, x119, x116); + fiat_bls12_381_q2_addcarryx_u64(&x122, &x123, x121, x117, x114); + fiat_bls12_381_q2_addcarryx_u64(&x124, &x125, x123, x115, x112); + fiat_bls12_381_q2_addcarryx_u64(&x126, &x127, x125, x113, x110); + fiat_bls12_381_q2_addcarryx_u64(&x128, &x129, x127, x111, x108); + x130 = (x129 + x109); + fiat_bls12_381_q2_addcarryx_u64(&x131, &x132, 0x0, x92, x118); + fiat_bls12_381_q2_addcarryx_u64(&x133, &x134, x132, x94, x120); + fiat_bls12_381_q2_addcarryx_u64(&x135, &x136, x134, x96, x122); + fiat_bls12_381_q2_addcarryx_u64(&x137, &x138, x136, x98, x124); + fiat_bls12_381_q2_addcarryx_u64(&x139, &x140, x138, x100, x126); + fiat_bls12_381_q2_addcarryx_u64(&x141, &x142, x140, x102, x128); + fiat_bls12_381_q2_addcarryx_u64(&x143, &x144, x142, x104, x130); + x145 = ((uint64_t)x144 + x105); + fiat_bls12_381_q2_mulx_u64(&x146, &x147, x2, (arg1[5])); + fiat_bls12_381_q2_mulx_u64(&x148, &x149, x2, (arg1[4])); + fiat_bls12_381_q2_mulx_u64(&x150, &x151, x2, (arg1[3])); + fiat_bls12_381_q2_mulx_u64(&x152, &x153, x2, (arg1[2])); + fiat_bls12_381_q2_mulx_u64(&x154, &x155, x2, (arg1[1])); + fiat_bls12_381_q2_mulx_u64(&x156, &x157, x2, (arg1[0])); + fiat_bls12_381_q2_addcarryx_u64(&x158, &x159, 0x0, x157, x154); + fiat_bls12_381_q2_addcarryx_u64(&x160, &x161, x159, x155, x152); + fiat_bls12_381_q2_addcarryx_u64(&x162, &x163, x161, x153, x150); + fiat_bls12_381_q2_addcarryx_u64(&x164, &x165, x163, x151, x148); + fiat_bls12_381_q2_addcarryx_u64(&x166, &x167, x165, x149, x146); + x168 = (x167 + x147); + fiat_bls12_381_q2_addcarryx_u64(&x169, &x170, 0x0, x133, x156); + fiat_bls12_381_q2_addcarryx_u64(&x171, &x172, x170, x135, x158); + fiat_bls12_381_q2_addcarryx_u64(&x173, &x174, x172, x137, x160); + fiat_bls12_381_q2_addcarryx_u64(&x175, &x176, x174, x139, x162); + fiat_bls12_381_q2_addcarryx_u64(&x177, &x178, x176, x141, x164); + fiat_bls12_381_q2_addcarryx_u64(&x179, &x180, x178, x143, x166); + fiat_bls12_381_q2_addcarryx_u64(&x181, &x182, x180, x145, x168); + fiat_bls12_381_q2_mulx_u64(&x183, &x184, x169, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x185, &x186, x183, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x187, &x188, x183, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x189, &x190, x183, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x191, &x192, x183, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x193, &x194, x183, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x195, &x196, x183, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x197, &x198, 0x0, x196, x193); + fiat_bls12_381_q2_addcarryx_u64(&x199, &x200, x198, x194, x191); + fiat_bls12_381_q2_addcarryx_u64(&x201, &x202, x200, x192, x189); + fiat_bls12_381_q2_addcarryx_u64(&x203, &x204, x202, x190, x187); + fiat_bls12_381_q2_addcarryx_u64(&x205, &x206, x204, x188, x185); + x207 = (x206 + x186); + fiat_bls12_381_q2_addcarryx_u64(&x208, &x209, 0x0, x169, x195); + fiat_bls12_381_q2_addcarryx_u64(&x210, &x211, x209, x171, x197); + fiat_bls12_381_q2_addcarryx_u64(&x212, &x213, x211, x173, x199); + fiat_bls12_381_q2_addcarryx_u64(&x214, &x215, x213, x175, x201); + fiat_bls12_381_q2_addcarryx_u64(&x216, &x217, x215, x177, x203); + fiat_bls12_381_q2_addcarryx_u64(&x218, &x219, x217, x179, x205); + fiat_bls12_381_q2_addcarryx_u64(&x220, &x221, x219, x181, x207); + x222 = ((uint64_t)x221 + x182); + fiat_bls12_381_q2_mulx_u64(&x223, &x224, x3, (arg1[5])); + fiat_bls12_381_q2_mulx_u64(&x225, &x226, x3, (arg1[4])); + fiat_bls12_381_q2_mulx_u64(&x227, &x228, x3, (arg1[3])); + fiat_bls12_381_q2_mulx_u64(&x229, &x230, x3, (arg1[2])); + fiat_bls12_381_q2_mulx_u64(&x231, &x232, x3, (arg1[1])); + fiat_bls12_381_q2_mulx_u64(&x233, &x234, x3, (arg1[0])); + fiat_bls12_381_q2_addcarryx_u64(&x235, &x236, 0x0, x234, x231); + fiat_bls12_381_q2_addcarryx_u64(&x237, &x238, x236, x232, x229); + fiat_bls12_381_q2_addcarryx_u64(&x239, &x240, x238, x230, x227); + fiat_bls12_381_q2_addcarryx_u64(&x241, &x242, x240, x228, x225); + fiat_bls12_381_q2_addcarryx_u64(&x243, &x244, x242, x226, x223); + x245 = (x244 + x224); + fiat_bls12_381_q2_addcarryx_u64(&x246, &x247, 0x0, x210, x233); + fiat_bls12_381_q2_addcarryx_u64(&x248, &x249, x247, x212, x235); + fiat_bls12_381_q2_addcarryx_u64(&x250, &x251, x249, x214, x237); + fiat_bls12_381_q2_addcarryx_u64(&x252, &x253, x251, x216, x239); + fiat_bls12_381_q2_addcarryx_u64(&x254, &x255, x253, x218, x241); + fiat_bls12_381_q2_addcarryx_u64(&x256, &x257, x255, x220, x243); + fiat_bls12_381_q2_addcarryx_u64(&x258, &x259, x257, x222, x245); + fiat_bls12_381_q2_mulx_u64(&x260, &x261, x246, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x262, &x263, x260, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x264, &x265, x260, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x266, &x267, x260, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x268, &x269, x260, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x270, &x271, x260, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x272, &x273, x260, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x274, &x275, 0x0, x273, x270); + fiat_bls12_381_q2_addcarryx_u64(&x276, &x277, x275, x271, x268); + fiat_bls12_381_q2_addcarryx_u64(&x278, &x279, x277, x269, x266); + fiat_bls12_381_q2_addcarryx_u64(&x280, &x281, x279, x267, x264); + fiat_bls12_381_q2_addcarryx_u64(&x282, &x283, x281, x265, x262); + x284 = (x283 + x263); + fiat_bls12_381_q2_addcarryx_u64(&x285, &x286, 0x0, x246, x272); + fiat_bls12_381_q2_addcarryx_u64(&x287, &x288, x286, x248, x274); + fiat_bls12_381_q2_addcarryx_u64(&x289, &x290, x288, x250, x276); + fiat_bls12_381_q2_addcarryx_u64(&x291, &x292, x290, x252, x278); + fiat_bls12_381_q2_addcarryx_u64(&x293, &x294, x292, x254, x280); + fiat_bls12_381_q2_addcarryx_u64(&x295, &x296, x294, x256, x282); + fiat_bls12_381_q2_addcarryx_u64(&x297, &x298, x296, x258, x284); + x299 = ((uint64_t)x298 + x259); + fiat_bls12_381_q2_mulx_u64(&x300, &x301, x4, (arg1[5])); + fiat_bls12_381_q2_mulx_u64(&x302, &x303, x4, (arg1[4])); + fiat_bls12_381_q2_mulx_u64(&x304, &x305, x4, (arg1[3])); + fiat_bls12_381_q2_mulx_u64(&x306, &x307, x4, (arg1[2])); + fiat_bls12_381_q2_mulx_u64(&x308, &x309, x4, (arg1[1])); + fiat_bls12_381_q2_mulx_u64(&x310, &x311, x4, (arg1[0])); + fiat_bls12_381_q2_addcarryx_u64(&x312, &x313, 0x0, x311, x308); + fiat_bls12_381_q2_addcarryx_u64(&x314, &x315, x313, x309, x306); + fiat_bls12_381_q2_addcarryx_u64(&x316, &x317, x315, x307, x304); + fiat_bls12_381_q2_addcarryx_u64(&x318, &x319, x317, x305, x302); + fiat_bls12_381_q2_addcarryx_u64(&x320, &x321, x319, x303, x300); + x322 = (x321 + x301); + fiat_bls12_381_q2_addcarryx_u64(&x323, &x324, 0x0, x287, x310); + fiat_bls12_381_q2_addcarryx_u64(&x325, &x326, x324, x289, x312); + fiat_bls12_381_q2_addcarryx_u64(&x327, &x328, x326, x291, x314); + fiat_bls12_381_q2_addcarryx_u64(&x329, &x330, x328, x293, x316); + fiat_bls12_381_q2_addcarryx_u64(&x331, &x332, x330, x295, x318); + fiat_bls12_381_q2_addcarryx_u64(&x333, &x334, x332, x297, x320); + fiat_bls12_381_q2_addcarryx_u64(&x335, &x336, x334, x299, x322); + fiat_bls12_381_q2_mulx_u64(&x337, &x338, x323, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x339, &x340, x337, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x341, &x342, x337, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x343, &x344, x337, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x345, &x346, x337, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x347, &x348, x337, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x349, &x350, x337, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x351, &x352, 0x0, x350, x347); + fiat_bls12_381_q2_addcarryx_u64(&x353, &x354, x352, x348, x345); + fiat_bls12_381_q2_addcarryx_u64(&x355, &x356, x354, x346, x343); + fiat_bls12_381_q2_addcarryx_u64(&x357, &x358, x356, x344, x341); + fiat_bls12_381_q2_addcarryx_u64(&x359, &x360, x358, x342, x339); + x361 = (x360 + x340); + fiat_bls12_381_q2_addcarryx_u64(&x362, &x363, 0x0, x323, x349); + fiat_bls12_381_q2_addcarryx_u64(&x364, &x365, x363, x325, x351); + fiat_bls12_381_q2_addcarryx_u64(&x366, &x367, x365, x327, x353); + fiat_bls12_381_q2_addcarryx_u64(&x368, &x369, x367, x329, x355); + fiat_bls12_381_q2_addcarryx_u64(&x370, &x371, x369, x331, x357); + fiat_bls12_381_q2_addcarryx_u64(&x372, &x373, x371, x333, x359); + fiat_bls12_381_q2_addcarryx_u64(&x374, &x375, x373, x335, x361); + x376 = ((uint64_t)x375 + x336); + fiat_bls12_381_q2_mulx_u64(&x377, &x378, x5, (arg1[5])); + fiat_bls12_381_q2_mulx_u64(&x379, &x380, x5, (arg1[4])); + fiat_bls12_381_q2_mulx_u64(&x381, &x382, x5, (arg1[3])); + fiat_bls12_381_q2_mulx_u64(&x383, &x384, x5, (arg1[2])); + fiat_bls12_381_q2_mulx_u64(&x385, &x386, x5, (arg1[1])); + fiat_bls12_381_q2_mulx_u64(&x387, &x388, x5, (arg1[0])); + fiat_bls12_381_q2_addcarryx_u64(&x389, &x390, 0x0, x388, x385); + fiat_bls12_381_q2_addcarryx_u64(&x391, &x392, x390, x386, x383); + fiat_bls12_381_q2_addcarryx_u64(&x393, &x394, x392, x384, x381); + fiat_bls12_381_q2_addcarryx_u64(&x395, &x396, x394, x382, x379); + fiat_bls12_381_q2_addcarryx_u64(&x397, &x398, x396, x380, x377); + x399 = (x398 + x378); + fiat_bls12_381_q2_addcarryx_u64(&x400, &x401, 0x0, x364, x387); + fiat_bls12_381_q2_addcarryx_u64(&x402, &x403, x401, x366, x389); + fiat_bls12_381_q2_addcarryx_u64(&x404, &x405, x403, x368, x391); + fiat_bls12_381_q2_addcarryx_u64(&x406, &x407, x405, x370, x393); + fiat_bls12_381_q2_addcarryx_u64(&x408, &x409, x407, x372, x395); + fiat_bls12_381_q2_addcarryx_u64(&x410, &x411, x409, x374, x397); + fiat_bls12_381_q2_addcarryx_u64(&x412, &x413, x411, x376, x399); + fiat_bls12_381_q2_mulx_u64(&x414, &x415, x400, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x416, &x417, x414, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x418, &x419, x414, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x420, &x421, x414, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x422, &x423, x414, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x424, &x425, x414, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x426, &x427, x414, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x428, &x429, 0x0, x427, x424); + fiat_bls12_381_q2_addcarryx_u64(&x430, &x431, x429, x425, x422); + fiat_bls12_381_q2_addcarryx_u64(&x432, &x433, x431, x423, x420); + fiat_bls12_381_q2_addcarryx_u64(&x434, &x435, x433, x421, x418); + fiat_bls12_381_q2_addcarryx_u64(&x436, &x437, x435, x419, x416); + x438 = (x437 + x417); + fiat_bls12_381_q2_addcarryx_u64(&x439, &x440, 0x0, x400, x426); + fiat_bls12_381_q2_addcarryx_u64(&x441, &x442, x440, x402, x428); + fiat_bls12_381_q2_addcarryx_u64(&x443, &x444, x442, x404, x430); + fiat_bls12_381_q2_addcarryx_u64(&x445, &x446, x444, x406, x432); + fiat_bls12_381_q2_addcarryx_u64(&x447, &x448, x446, x408, x434); + fiat_bls12_381_q2_addcarryx_u64(&x449, &x450, x448, x410, x436); + fiat_bls12_381_q2_addcarryx_u64(&x451, &x452, x450, x412, x438); + x453 = ((uint64_t)x452 + x413); + fiat_bls12_381_q2_subborrowx_u64(&x454, &x455, 0x0, x441, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x456, &x457, x455, x443, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x458, &x459, x457, x445, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x460, &x461, x459, x447, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x462, &x463, x461, x449, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x464, &x465, x463, x451, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x466, &x467, x465, x453, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x468, x467, x454, x441); + fiat_bls12_381_q2_cmovznz_u64(&x469, x467, x456, x443); + fiat_bls12_381_q2_cmovznz_u64(&x470, x467, x458, x445); + fiat_bls12_381_q2_cmovznz_u64(&x471, x467, x460, x447); + fiat_bls12_381_q2_cmovznz_u64(&x472, x467, x462, x449); + fiat_bls12_381_q2_cmovznz_u64(&x473, x467, x464, x451); + out1[0] = x468; + out1[1] = x469; + out1[2] = x470; + out1[3] = x471; + out1[4] = x472; + out1[5] = x473; +} + +static void fiat_bls12_381_q2_squareFp2(uint64_t out1[6], uint64_t out2[6], const uint64_t arg1[6], const uint64_t arg2[6]) { + 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; + fiat_bls12_381_q2_uint1 x20; + uint64_t x21; + fiat_bls12_381_q2_uint1 x22; + uint64_t x23; + fiat_bls12_381_q2_uint1 x24; + uint64_t x25; + fiat_bls12_381_q2_uint1 x26; + uint64_t x27; + fiat_bls12_381_q2_uint1 x28; + uint64_t x29; + uint64_t x30; + uint64_t x31; + uint64_t x32; + uint64_t x33; + uint64_t x34; + uint64_t x35; + uint64_t 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; + fiat_bls12_381_q2_uint1 x45; + uint64_t x46; + fiat_bls12_381_q2_uint1 x47; + uint64_t x48; + fiat_bls12_381_q2_uint1 x49; + uint64_t x50; + fiat_bls12_381_q2_uint1 x51; + uint64_t x52; + fiat_bls12_381_q2_uint1 x53; + uint64_t x54; + uint64_t x55; + fiat_bls12_381_q2_uint1 x56; + uint64_t x57; + fiat_bls12_381_q2_uint1 x58; + uint64_t x59; + fiat_bls12_381_q2_uint1 x60; + uint64_t x61; + fiat_bls12_381_q2_uint1 x62; + uint64_t x63; + fiat_bls12_381_q2_uint1 x64; + uint64_t x65; + fiat_bls12_381_q2_uint1 x66; + uint64_t x67; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x82; + uint64_t x83; + fiat_bls12_381_q2_uint1 x84; + uint64_t x85; + fiat_bls12_381_q2_uint1 x86; + uint64_t x87; + fiat_bls12_381_q2_uint1 x88; + uint64_t x89; + fiat_bls12_381_q2_uint1 x90; + uint64_t x91; + uint64_t x92; + fiat_bls12_381_q2_uint1 x93; + uint64_t x94; + fiat_bls12_381_q2_uint1 x95; + uint64_t x96; + fiat_bls12_381_q2_uint1 x97; + uint64_t x98; + fiat_bls12_381_q2_uint1 x99; + uint64_t x100; + fiat_bls12_381_q2_uint1 x101; + uint64_t x102; + fiat_bls12_381_q2_uint1 x103; + uint64_t x104; + fiat_bls12_381_q2_uint1 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_bls12_381_q2_uint1 x121; + uint64_t x122; + fiat_bls12_381_q2_uint1 x123; + uint64_t x124; + fiat_bls12_381_q2_uint1 x125; + uint64_t x126; + fiat_bls12_381_q2_uint1 x127; + uint64_t x128; + fiat_bls12_381_q2_uint1 x129; + uint64_t x130; + uint64_t x131; + fiat_bls12_381_q2_uint1 x132; + uint64_t x133; + fiat_bls12_381_q2_uint1 x134; + uint64_t x135; + fiat_bls12_381_q2_uint1 x136; + uint64_t x137; + fiat_bls12_381_q2_uint1 x138; + uint64_t x139; + fiat_bls12_381_q2_uint1 x140; + uint64_t x141; + fiat_bls12_381_q2_uint1 x142; + uint64_t x143; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x159; + uint64_t x160; + fiat_bls12_381_q2_uint1 x161; + uint64_t x162; + fiat_bls12_381_q2_uint1 x163; + uint64_t x164; + fiat_bls12_381_q2_uint1 x165; + uint64_t x166; + fiat_bls12_381_q2_uint1 x167; + uint64_t x168; + uint64_t x169; + fiat_bls12_381_q2_uint1 x170; + uint64_t x171; + fiat_bls12_381_q2_uint1 x172; + uint64_t x173; + fiat_bls12_381_q2_uint1 x174; + uint64_t x175; + fiat_bls12_381_q2_uint1 x176; + uint64_t x177; + fiat_bls12_381_q2_uint1 x178; + uint64_t x179; + fiat_bls12_381_q2_uint1 x180; + uint64_t x181; + fiat_bls12_381_q2_uint1 x182; + uint64_t x183; + uint64_t x184; + uint64_t x185; + uint64_t x186; + uint64_t x187; + uint64_t x188; + uint64_t x189; + uint64_t x190; + uint64_t x191; + uint64_t x192; + uint64_t x193; + uint64_t x194; + uint64_t x195; + uint64_t x196; + uint64_t x197; + fiat_bls12_381_q2_uint1 x198; + uint64_t x199; + fiat_bls12_381_q2_uint1 x200; + uint64_t x201; + fiat_bls12_381_q2_uint1 x202; + uint64_t x203; + fiat_bls12_381_q2_uint1 x204; + uint64_t x205; + fiat_bls12_381_q2_uint1 x206; + uint64_t x207; + uint64_t x208; + fiat_bls12_381_q2_uint1 x209; + uint64_t x210; + fiat_bls12_381_q2_uint1 x211; + uint64_t x212; + fiat_bls12_381_q2_uint1 x213; + uint64_t x214; + fiat_bls12_381_q2_uint1 x215; + uint64_t x216; + fiat_bls12_381_q2_uint1 x217; + uint64_t x218; + fiat_bls12_381_q2_uint1 x219; + uint64_t x220; + fiat_bls12_381_q2_uint1 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; + uint64_t x234; + uint64_t x235; + fiat_bls12_381_q2_uint1 x236; + uint64_t x237; + fiat_bls12_381_q2_uint1 x238; + uint64_t x239; + fiat_bls12_381_q2_uint1 x240; + uint64_t x241; + fiat_bls12_381_q2_uint1 x242; + uint64_t x243; + fiat_bls12_381_q2_uint1 x244; + uint64_t x245; + uint64_t x246; + fiat_bls12_381_q2_uint1 x247; + uint64_t x248; + fiat_bls12_381_q2_uint1 x249; + uint64_t x250; + fiat_bls12_381_q2_uint1 x251; + uint64_t x252; + fiat_bls12_381_q2_uint1 x253; + uint64_t x254; + fiat_bls12_381_q2_uint1 x255; + uint64_t x256; + fiat_bls12_381_q2_uint1 x257; + uint64_t x258; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x275; + uint64_t x276; + fiat_bls12_381_q2_uint1 x277; + uint64_t x278; + fiat_bls12_381_q2_uint1 x279; + uint64_t x280; + fiat_bls12_381_q2_uint1 x281; + uint64_t x282; + fiat_bls12_381_q2_uint1 x283; + uint64_t x284; + uint64_t x285; + fiat_bls12_381_q2_uint1 x286; + uint64_t x287; + fiat_bls12_381_q2_uint1 x288; + uint64_t x289; + fiat_bls12_381_q2_uint1 x290; + uint64_t x291; + fiat_bls12_381_q2_uint1 x292; + uint64_t x293; + fiat_bls12_381_q2_uint1 x294; + uint64_t x295; + fiat_bls12_381_q2_uint1 x296; + uint64_t x297; + fiat_bls12_381_q2_uint1 x298; + uint64_t x299; + uint64_t x300; + uint64_t x301; + uint64_t x302; + uint64_t x303; + uint64_t x304; + uint64_t x305; + uint64_t x306; + uint64_t x307; + uint64_t x308; + uint64_t x309; + uint64_t x310; + uint64_t x311; + uint64_t x312; + fiat_bls12_381_q2_uint1 x313; + uint64_t x314; + fiat_bls12_381_q2_uint1 x315; + uint64_t x316; + fiat_bls12_381_q2_uint1 x317; + uint64_t x318; + fiat_bls12_381_q2_uint1 x319; + uint64_t x320; + fiat_bls12_381_q2_uint1 x321; + uint64_t x322; + uint64_t x323; + fiat_bls12_381_q2_uint1 x324; + uint64_t x325; + fiat_bls12_381_q2_uint1 x326; + uint64_t x327; + fiat_bls12_381_q2_uint1 x328; + uint64_t x329; + fiat_bls12_381_q2_uint1 x330; + uint64_t x331; + fiat_bls12_381_q2_uint1 x332; + uint64_t x333; + fiat_bls12_381_q2_uint1 x334; + uint64_t x335; + fiat_bls12_381_q2_uint1 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; + uint64_t x347; + uint64_t x348; + uint64_t x349; + uint64_t x350; + uint64_t x351; + fiat_bls12_381_q2_uint1 x352; + uint64_t x353; + fiat_bls12_381_q2_uint1 x354; + uint64_t x355; + fiat_bls12_381_q2_uint1 x356; + uint64_t x357; + fiat_bls12_381_q2_uint1 x358; + uint64_t x359; + fiat_bls12_381_q2_uint1 x360; + uint64_t x361; + uint64_t x362; + fiat_bls12_381_q2_uint1 x363; + uint64_t x364; + fiat_bls12_381_q2_uint1 x365; + uint64_t x366; + fiat_bls12_381_q2_uint1 x367; + uint64_t x368; + fiat_bls12_381_q2_uint1 x369; + uint64_t x370; + fiat_bls12_381_q2_uint1 x371; + uint64_t x372; + fiat_bls12_381_q2_uint1 x373; + uint64_t x374; + fiat_bls12_381_q2_uint1 x375; + uint64_t x376; + uint64_t x377; + uint64_t x378; + uint64_t x379; + uint64_t x380; + uint64_t x381; + uint64_t x382; + uint64_t x383; + uint64_t x384; + uint64_t x385; + uint64_t x386; + uint64_t x387; + uint64_t x388; + uint64_t x389; + fiat_bls12_381_q2_uint1 x390; + uint64_t x391; + fiat_bls12_381_q2_uint1 x392; + uint64_t x393; + fiat_bls12_381_q2_uint1 x394; + uint64_t x395; + fiat_bls12_381_q2_uint1 x396; + uint64_t x397; + fiat_bls12_381_q2_uint1 x398; + uint64_t x399; + uint64_t x400; + fiat_bls12_381_q2_uint1 x401; + uint64_t x402; + fiat_bls12_381_q2_uint1 x403; + uint64_t x404; + fiat_bls12_381_q2_uint1 x405; + uint64_t x406; + fiat_bls12_381_q2_uint1 x407; + uint64_t x408; + fiat_bls12_381_q2_uint1 x409; + uint64_t x410; + fiat_bls12_381_q2_uint1 x411; + uint64_t x412; + fiat_bls12_381_q2_uint1 x413; + uint64_t x414; + uint64_t 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; + fiat_bls12_381_q2_uint1 x429; + uint64_t x430; + fiat_bls12_381_q2_uint1 x431; + uint64_t x432; + fiat_bls12_381_q2_uint1 x433; + uint64_t x434; + fiat_bls12_381_q2_uint1 x435; + uint64_t x436; + fiat_bls12_381_q2_uint1 x437; + uint64_t x438; + uint64_t x439; + fiat_bls12_381_q2_uint1 x440; + uint64_t x441; + fiat_bls12_381_q2_uint1 x442; + uint64_t x443; + fiat_bls12_381_q2_uint1 x444; + uint64_t x445; + fiat_bls12_381_q2_uint1 x446; + uint64_t x447; + fiat_bls12_381_q2_uint1 x448; + uint64_t x449; + fiat_bls12_381_q2_uint1 x450; + uint64_t x451; + fiat_bls12_381_q2_uint1 x452; + uint64_t x453; + uint64_t x454; + fiat_bls12_381_q2_uint1 x455; + uint64_t x456; + fiat_bls12_381_q2_uint1 x457; + uint64_t x458; + fiat_bls12_381_q2_uint1 x459; + uint64_t x460; + fiat_bls12_381_q2_uint1 x461; + uint64_t x462; + fiat_bls12_381_q2_uint1 x463; + uint64_t x464; + fiat_bls12_381_q2_uint1 x465; + uint64_t x466; + fiat_bls12_381_q2_uint1 x467; + uint64_t x468; + uint64_t x469; + uint64_t x470; + uint64_t x471; + uint64_t x472; + uint64_t x473; + uint64_t x474; + fiat_bls12_381_q2_uint1 x475; + uint64_t x476; + fiat_bls12_381_q2_uint1 x477; + uint64_t x478; + fiat_bls12_381_q2_uint1 x479; + uint64_t x480; + fiat_bls12_381_q2_uint1 x481; + uint64_t x482; + fiat_bls12_381_q2_uint1 x483; + uint64_t x484; + fiat_bls12_381_q2_uint1 x485; + uint64_t x486; + fiat_bls12_381_q2_uint1 x487; + uint64_t x488; + fiat_bls12_381_q2_uint1 x489; + uint64_t x490; + fiat_bls12_381_q2_uint1 x491; + uint64_t x492; + fiat_bls12_381_q2_uint1 x493; + uint64_t x494; + fiat_bls12_381_q2_uint1 x495; + uint64_t x496; + fiat_bls12_381_q2_uint1 x497; + uint64_t x498; + fiat_bls12_381_q2_uint1 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_bls12_381_q2_uint1 x513; + uint64_t x514; + fiat_bls12_381_q2_uint1 x515; + uint64_t x516; + fiat_bls12_381_q2_uint1 x517; + uint64_t x518; + fiat_bls12_381_q2_uint1 x519; + uint64_t x520; + fiat_bls12_381_q2_uint1 x521; + uint64_t x522; + fiat_bls12_381_q2_uint1 x523; + uint64_t x524; + uint64_t x525; + fiat_bls12_381_q2_uint1 x526; + uint64_t x527; + fiat_bls12_381_q2_uint1 x528; + uint64_t x529; + fiat_bls12_381_q2_uint1 x530; + uint64_t x531; + fiat_bls12_381_q2_uint1 x532; + uint64_t x533; + fiat_bls12_381_q2_uint1 x534; + uint64_t x535; + fiat_bls12_381_q2_uint1 x536; + uint64_t x537; + fiat_bls12_381_q2_uint1 x538; + uint64_t x539; + fiat_bls12_381_q2_uint1 x540; + uint64_t x541; + fiat_bls12_381_q2_uint1 x542; + uint64_t x543; + fiat_bls12_381_q2_uint1 x544; + uint64_t x545; + fiat_bls12_381_q2_uint1 x546; + uint64_t x547; + fiat_bls12_381_q2_uint1 x548; + uint64_t x549; + fiat_bls12_381_q2_uint1 x550; + uint64_t x551; + fiat_bls12_381_q2_uint1 x552; + uint64_t x553; + fiat_bls12_381_q2_uint1 x554; + uint64_t x555; + fiat_bls12_381_q2_uint1 x556; + uint64_t x557; + fiat_bls12_381_q2_uint1 x558; + uint64_t x559; + fiat_bls12_381_q2_uint1 x560; + uint64_t x561; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x576; + uint64_t x577; + fiat_bls12_381_q2_uint1 x578; + uint64_t x579; + fiat_bls12_381_q2_uint1 x580; + uint64_t x581; + fiat_bls12_381_q2_uint1 x582; + uint64_t x583; + fiat_bls12_381_q2_uint1 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; + uint64_t x595; + uint64_t x596; + uint64_t x597; + uint64_t x598; + uint64_t x599; + uint64_t x600; + fiat_bls12_381_q2_uint1 x601; + uint64_t x602; + fiat_bls12_381_q2_uint1 x603; + uint64_t x604; + fiat_bls12_381_q2_uint1 x605; + uint64_t x606; + fiat_bls12_381_q2_uint1 x607; + uint64_t x608; + fiat_bls12_381_q2_uint1 x609; + uint64_t x610; + uint64_t x611; + fiat_bls12_381_q2_uint1 x612; + uint64_t x613; + fiat_bls12_381_q2_uint1 x614; + uint64_t x615; + fiat_bls12_381_q2_uint1 x616; + uint64_t x617; + fiat_bls12_381_q2_uint1 x618; + uint64_t x619; + fiat_bls12_381_q2_uint1 x620; + uint64_t x621; + fiat_bls12_381_q2_uint1 x622; + uint64_t x623; + fiat_bls12_381_q2_uint1 x624; + uint64_t x625; + uint64_t x626; + uint64_t 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; + fiat_bls12_381_q2_uint1 x638; + uint64_t x639; + fiat_bls12_381_q2_uint1 x640; + uint64_t x641; + fiat_bls12_381_q2_uint1 x642; + uint64_t x643; + fiat_bls12_381_q2_uint1 x644; + uint64_t x645; + fiat_bls12_381_q2_uint1 x646; + uint64_t x647; + uint64_t x648; + fiat_bls12_381_q2_uint1 x649; + uint64_t x650; + fiat_bls12_381_q2_uint1 x651; + uint64_t x652; + fiat_bls12_381_q2_uint1 x653; + uint64_t x654; + fiat_bls12_381_q2_uint1 x655; + uint64_t x656; + fiat_bls12_381_q2_uint1 x657; + uint64_t x658; + fiat_bls12_381_q2_uint1 x659; + uint64_t x660; + fiat_bls12_381_q2_uint1 x661; + uint64_t x662; + uint64_t x663; + uint64_t x664; + uint64_t 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; + fiat_bls12_381_q2_uint1 x677; + uint64_t x678; + fiat_bls12_381_q2_uint1 x679; + uint64_t x680; + fiat_bls12_381_q2_uint1 x681; + uint64_t x682; + fiat_bls12_381_q2_uint1 x683; + uint64_t x684; + fiat_bls12_381_q2_uint1 x685; + uint64_t x686; + uint64_t x687; + fiat_bls12_381_q2_uint1 x688; + uint64_t x689; + fiat_bls12_381_q2_uint1 x690; + uint64_t x691; + fiat_bls12_381_q2_uint1 x692; + uint64_t x693; + fiat_bls12_381_q2_uint1 x694; + uint64_t x695; + fiat_bls12_381_q2_uint1 x696; + uint64_t x697; + fiat_bls12_381_q2_uint1 x698; + uint64_t x699; + fiat_bls12_381_q2_uint1 x700; + uint64_t x701; + uint64_t x702; + uint64_t x703; + uint64_t x704; + uint64_t x705; + uint64_t x706; + uint64_t x707; + uint64_t x708; + uint64_t x709; + uint64_t x710; + uint64_t x711; + uint64_t x712; + uint64_t x713; + uint64_t x714; + fiat_bls12_381_q2_uint1 x715; + uint64_t x716; + fiat_bls12_381_q2_uint1 x717; + uint64_t x718; + fiat_bls12_381_q2_uint1 x719; + uint64_t x720; + fiat_bls12_381_q2_uint1 x721; + uint64_t x722; + fiat_bls12_381_q2_uint1 x723; + uint64_t x724; + uint64_t x725; + fiat_bls12_381_q2_uint1 x726; + uint64_t x727; + fiat_bls12_381_q2_uint1 x728; + uint64_t x729; + fiat_bls12_381_q2_uint1 x730; + uint64_t x731; + fiat_bls12_381_q2_uint1 x732; + uint64_t x733; + fiat_bls12_381_q2_uint1 x734; + uint64_t x735; + fiat_bls12_381_q2_uint1 x736; + uint64_t x737; + fiat_bls12_381_q2_uint1 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; + uint64_t x753; + fiat_bls12_381_q2_uint1 x754; + uint64_t x755; + fiat_bls12_381_q2_uint1 x756; + uint64_t x757; + fiat_bls12_381_q2_uint1 x758; + uint64_t x759; + fiat_bls12_381_q2_uint1 x760; + uint64_t x761; + fiat_bls12_381_q2_uint1 x762; + uint64_t x763; + uint64_t x764; + fiat_bls12_381_q2_uint1 x765; + uint64_t x766; + fiat_bls12_381_q2_uint1 x767; + uint64_t x768; + fiat_bls12_381_q2_uint1 x769; + uint64_t x770; + fiat_bls12_381_q2_uint1 x771; + uint64_t x772; + fiat_bls12_381_q2_uint1 x773; + uint64_t x774; + fiat_bls12_381_q2_uint1 x775; + uint64_t x776; + fiat_bls12_381_q2_uint1 x777; + uint64_t 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; + fiat_bls12_381_q2_uint1 x792; + uint64_t x793; + fiat_bls12_381_q2_uint1 x794; + uint64_t x795; + fiat_bls12_381_q2_uint1 x796; + uint64_t x797; + fiat_bls12_381_q2_uint1 x798; + uint64_t x799; + fiat_bls12_381_q2_uint1 x800; + uint64_t x801; + uint64_t x802; + fiat_bls12_381_q2_uint1 x803; + uint64_t x804; + fiat_bls12_381_q2_uint1 x805; + uint64_t x806; + fiat_bls12_381_q2_uint1 x807; + uint64_t x808; + fiat_bls12_381_q2_uint1 x809; + uint64_t x810; + fiat_bls12_381_q2_uint1 x811; + uint64_t x812; + fiat_bls12_381_q2_uint1 x813; + uint64_t x814; + fiat_bls12_381_q2_uint1 x815; + uint64_t x816; + uint64_t x817; + uint64_t x818; + uint64_t x819; + uint64_t x820; + uint64_t x821; + uint64_t x822; + uint64_t x823; + uint64_t x824; + uint64_t x825; + uint64_t x826; + uint64_t x827; + uint64_t x828; + uint64_t x829; + uint64_t x830; + fiat_bls12_381_q2_uint1 x831; + uint64_t x832; + fiat_bls12_381_q2_uint1 x833; + uint64_t x834; + fiat_bls12_381_q2_uint1 x835; + uint64_t x836; + fiat_bls12_381_q2_uint1 x837; + uint64_t x838; + fiat_bls12_381_q2_uint1 x839; + uint64_t x840; + uint64_t x841; + fiat_bls12_381_q2_uint1 x842; + uint64_t x843; + fiat_bls12_381_q2_uint1 x844; + uint64_t x845; + fiat_bls12_381_q2_uint1 x846; + uint64_t x847; + fiat_bls12_381_q2_uint1 x848; + uint64_t x849; + fiat_bls12_381_q2_uint1 x850; + uint64_t x851; + fiat_bls12_381_q2_uint1 x852; + uint64_t x853; + fiat_bls12_381_q2_uint1 x854; + uint64_t x855; + uint64_t x856; + uint64_t x857; + uint64_t x858; + uint64_t x859; + uint64_t x860; + uint64_t x861; + uint64_t x862; + uint64_t x863; + uint64_t x864; + uint64_t x865; + uint64_t x866; + uint64_t x867; + uint64_t x868; + fiat_bls12_381_q2_uint1 x869; + uint64_t x870; + fiat_bls12_381_q2_uint1 x871; + uint64_t x872; + fiat_bls12_381_q2_uint1 x873; + uint64_t x874; + fiat_bls12_381_q2_uint1 x875; + uint64_t x876; + fiat_bls12_381_q2_uint1 x877; + uint64_t x878; + uint64_t x879; + fiat_bls12_381_q2_uint1 x880; + uint64_t x881; + fiat_bls12_381_q2_uint1 x882; + uint64_t x883; + fiat_bls12_381_q2_uint1 x884; + uint64_t x885; + fiat_bls12_381_q2_uint1 x886; + uint64_t x887; + fiat_bls12_381_q2_uint1 x888; + uint64_t x889; + fiat_bls12_381_q2_uint1 x890; + uint64_t x891; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x908; + uint64_t x909; + fiat_bls12_381_q2_uint1 x910; + uint64_t x911; + fiat_bls12_381_q2_uint1 x912; + uint64_t x913; + fiat_bls12_381_q2_uint1 x914; + uint64_t x915; + fiat_bls12_381_q2_uint1 x916; + uint64_t x917; + uint64_t x918; + fiat_bls12_381_q2_uint1 x919; + uint64_t x920; + fiat_bls12_381_q2_uint1 x921; + uint64_t x922; + fiat_bls12_381_q2_uint1 x923; + uint64_t x924; + fiat_bls12_381_q2_uint1 x925; + uint64_t x926; + fiat_bls12_381_q2_uint1 x927; + uint64_t x928; + fiat_bls12_381_q2_uint1 x929; + uint64_t x930; + fiat_bls12_381_q2_uint1 x931; + uint64_t x932; + uint64_t x933; + uint64_t x934; + uint64_t x935; + uint64_t x936; + uint64_t x937; + uint64_t x938; + uint64_t x939; + uint64_t x940; + uint64_t x941; + uint64_t x942; + uint64_t x943; + uint64_t x944; + uint64_t x945; + fiat_bls12_381_q2_uint1 x946; + uint64_t x947; + fiat_bls12_381_q2_uint1 x948; + uint64_t x949; + fiat_bls12_381_q2_uint1 x950; + uint64_t x951; + fiat_bls12_381_q2_uint1 x952; + uint64_t x953; + fiat_bls12_381_q2_uint1 x954; + uint64_t x955; + uint64_t x956; + fiat_bls12_381_q2_uint1 x957; + uint64_t x958; + fiat_bls12_381_q2_uint1 x959; + uint64_t x960; + fiat_bls12_381_q2_uint1 x961; + uint64_t x962; + fiat_bls12_381_q2_uint1 x963; + uint64_t x964; + fiat_bls12_381_q2_uint1 x965; + uint64_t x966; + fiat_bls12_381_q2_uint1 x967; + uint64_t x968; + fiat_bls12_381_q2_uint1 x969; + uint64_t x970; + uint64_t x971; + uint64_t x972; + uint64_t x973; + uint64_t x974; + uint64_t x975; + uint64_t x976; + uint64_t x977; + uint64_t x978; + uint64_t x979; + uint64_t x980; + uint64_t x981; + uint64_t x982; + uint64_t x983; + uint64_t x984; + fiat_bls12_381_q2_uint1 x985; + uint64_t x986; + fiat_bls12_381_q2_uint1 x987; + uint64_t x988; + fiat_bls12_381_q2_uint1 x989; + uint64_t x990; + fiat_bls12_381_q2_uint1 x991; + uint64_t x992; + fiat_bls12_381_q2_uint1 x993; + uint64_t x994; + uint64_t x995; + fiat_bls12_381_q2_uint1 x996; + uint64_t x997; + fiat_bls12_381_q2_uint1 x998; + uint64_t x999; + fiat_bls12_381_q2_uint1 x1000; + uint64_t x1001; + fiat_bls12_381_q2_uint1 x1002; + uint64_t x1003; + fiat_bls12_381_q2_uint1 x1004; + uint64_t x1005; + fiat_bls12_381_q2_uint1 x1006; + uint64_t x1007; + fiat_bls12_381_q2_uint1 x1008; + uint64_t x1009; + uint64_t x1010; + fiat_bls12_381_q2_uint1 x1011; + uint64_t x1012; + fiat_bls12_381_q2_uint1 x1013; + uint64_t x1014; + fiat_bls12_381_q2_uint1 x1015; + uint64_t x1016; + fiat_bls12_381_q2_uint1 x1017; + uint64_t x1018; + fiat_bls12_381_q2_uint1 x1019; + uint64_t x1020; + fiat_bls12_381_q2_uint1 x1021; + uint64_t x1022; + fiat_bls12_381_q2_uint1 x1023; + uint64_t x1024; + uint64_t 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; + uint64_t x1035; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[0]); + fiat_bls12_381_q2_mulx_u64(&x7, &x8, x6, (arg2[5])); + fiat_bls12_381_q2_mulx_u64(&x9, &x10, x6, (arg2[4])); + fiat_bls12_381_q2_mulx_u64(&x11, &x12, x6, (arg2[3])); + fiat_bls12_381_q2_mulx_u64(&x13, &x14, x6, (arg2[2])); + fiat_bls12_381_q2_mulx_u64(&x15, &x16, x6, (arg2[1])); + fiat_bls12_381_q2_mulx_u64(&x17, &x18, x6, (arg2[0])); + fiat_bls12_381_q2_addcarryx_u64(&x19, &x20, 0x0, x18, x15); + fiat_bls12_381_q2_addcarryx_u64(&x21, &x22, x20, x16, x13); + fiat_bls12_381_q2_addcarryx_u64(&x23, &x24, x22, x14, x11); + fiat_bls12_381_q2_addcarryx_u64(&x25, &x26, x24, x12, x9); + fiat_bls12_381_q2_addcarryx_u64(&x27, &x28, x26, x10, x7); + x29 = (x28 + x8); + fiat_bls12_381_q2_mulx_u64(&x30, &x31, x17, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x32, &x33, x30, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x34, &x35, x30, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x36, &x37, x30, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x38, &x39, x30, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x40, &x41, x30, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x42, &x43, x30, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x44, &x45, 0x0, x43, x40); + fiat_bls12_381_q2_addcarryx_u64(&x46, &x47, x45, x41, x38); + fiat_bls12_381_q2_addcarryx_u64(&x48, &x49, x47, x39, x36); + fiat_bls12_381_q2_addcarryx_u64(&x50, &x51, x49, x37, x34); + fiat_bls12_381_q2_addcarryx_u64(&x52, &x53, x51, x35, x32); + x54 = (x53 + x33); + fiat_bls12_381_q2_addcarryx_u64(&x55, &x56, 0x0, x17, x42); + fiat_bls12_381_q2_addcarryx_u64(&x57, &x58, x56, x19, x44); + fiat_bls12_381_q2_addcarryx_u64(&x59, &x60, x58, x21, x46); + fiat_bls12_381_q2_addcarryx_u64(&x61, &x62, x60, x23, x48); + fiat_bls12_381_q2_addcarryx_u64(&x63, &x64, x62, x25, x50); + fiat_bls12_381_q2_addcarryx_u64(&x65, &x66, x64, x27, x52); + fiat_bls12_381_q2_addcarryx_u64(&x67, &x68, x66, x29, x54); + fiat_bls12_381_q2_mulx_u64(&x69, &x70, x1, (arg2[5])); + fiat_bls12_381_q2_mulx_u64(&x71, &x72, x1, (arg2[4])); + fiat_bls12_381_q2_mulx_u64(&x73, &x74, x1, (arg2[3])); + fiat_bls12_381_q2_mulx_u64(&x75, &x76, x1, (arg2[2])); + fiat_bls12_381_q2_mulx_u64(&x77, &x78, x1, (arg2[1])); + fiat_bls12_381_q2_mulx_u64(&x79, &x80, x1, (arg2[0])); + fiat_bls12_381_q2_addcarryx_u64(&x81, &x82, 0x0, x80, x77); + fiat_bls12_381_q2_addcarryx_u64(&x83, &x84, x82, x78, x75); + fiat_bls12_381_q2_addcarryx_u64(&x85, &x86, x84, x76, x73); + fiat_bls12_381_q2_addcarryx_u64(&x87, &x88, x86, x74, x71); + fiat_bls12_381_q2_addcarryx_u64(&x89, &x90, x88, x72, x69); + x91 = (x90 + x70); + fiat_bls12_381_q2_addcarryx_u64(&x92, &x93, 0x0, x57, x79); + fiat_bls12_381_q2_addcarryx_u64(&x94, &x95, x93, x59, x81); + fiat_bls12_381_q2_addcarryx_u64(&x96, &x97, x95, x61, x83); + fiat_bls12_381_q2_addcarryx_u64(&x98, &x99, x97, x63, x85); + fiat_bls12_381_q2_addcarryx_u64(&x100, &x101, x99, x65, x87); + fiat_bls12_381_q2_addcarryx_u64(&x102, &x103, x101, x67, x89); + fiat_bls12_381_q2_addcarryx_u64(&x104, &x105, x103, x68, x91); + fiat_bls12_381_q2_mulx_u64(&x106, &x107, x92, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x108, &x109, x106, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x110, &x111, x106, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x112, &x113, x106, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x114, &x115, x106, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x116, &x117, x106, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x118, &x119, x106, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x120, &x121, 0x0, x119, x116); + fiat_bls12_381_q2_addcarryx_u64(&x122, &x123, x121, x117, x114); + fiat_bls12_381_q2_addcarryx_u64(&x124, &x125, x123, x115, x112); + fiat_bls12_381_q2_addcarryx_u64(&x126, &x127, x125, x113, x110); + fiat_bls12_381_q2_addcarryx_u64(&x128, &x129, x127, x111, x108); + x130 = (x129 + x109); + fiat_bls12_381_q2_addcarryx_u64(&x131, &x132, 0x0, x92, x118); + fiat_bls12_381_q2_addcarryx_u64(&x133, &x134, x132, x94, x120); + fiat_bls12_381_q2_addcarryx_u64(&x135, &x136, x134, x96, x122); + fiat_bls12_381_q2_addcarryx_u64(&x137, &x138, x136, x98, x124); + fiat_bls12_381_q2_addcarryx_u64(&x139, &x140, x138, x100, x126); + fiat_bls12_381_q2_addcarryx_u64(&x141, &x142, x140, x102, x128); + fiat_bls12_381_q2_addcarryx_u64(&x143, &x144, x142, x104, x130); + x145 = ((uint64_t)x144 + x105); + fiat_bls12_381_q2_mulx_u64(&x146, &x147, x2, (arg2[5])); + fiat_bls12_381_q2_mulx_u64(&x148, &x149, x2, (arg2[4])); + fiat_bls12_381_q2_mulx_u64(&x150, &x151, x2, (arg2[3])); + fiat_bls12_381_q2_mulx_u64(&x152, &x153, x2, (arg2[2])); + fiat_bls12_381_q2_mulx_u64(&x154, &x155, x2, (arg2[1])); + fiat_bls12_381_q2_mulx_u64(&x156, &x157, x2, (arg2[0])); + fiat_bls12_381_q2_addcarryx_u64(&x158, &x159, 0x0, x157, x154); + fiat_bls12_381_q2_addcarryx_u64(&x160, &x161, x159, x155, x152); + fiat_bls12_381_q2_addcarryx_u64(&x162, &x163, x161, x153, x150); + fiat_bls12_381_q2_addcarryx_u64(&x164, &x165, x163, x151, x148); + fiat_bls12_381_q2_addcarryx_u64(&x166, &x167, x165, x149, x146); + x168 = (x167 + x147); + fiat_bls12_381_q2_addcarryx_u64(&x169, &x170, 0x0, x133, x156); + fiat_bls12_381_q2_addcarryx_u64(&x171, &x172, x170, x135, x158); + fiat_bls12_381_q2_addcarryx_u64(&x173, &x174, x172, x137, x160); + fiat_bls12_381_q2_addcarryx_u64(&x175, &x176, x174, x139, x162); + fiat_bls12_381_q2_addcarryx_u64(&x177, &x178, x176, x141, x164); + fiat_bls12_381_q2_addcarryx_u64(&x179, &x180, x178, x143, x166); + fiat_bls12_381_q2_addcarryx_u64(&x181, &x182, x180, x145, x168); + fiat_bls12_381_q2_mulx_u64(&x183, &x184, x169, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x185, &x186, x183, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x187, &x188, x183, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x189, &x190, x183, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x191, &x192, x183, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x193, &x194, x183, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x195, &x196, x183, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x197, &x198, 0x0, x196, x193); + fiat_bls12_381_q2_addcarryx_u64(&x199, &x200, x198, x194, x191); + fiat_bls12_381_q2_addcarryx_u64(&x201, &x202, x200, x192, x189); + fiat_bls12_381_q2_addcarryx_u64(&x203, &x204, x202, x190, x187); + fiat_bls12_381_q2_addcarryx_u64(&x205, &x206, x204, x188, x185); + x207 = (x206 + x186); + fiat_bls12_381_q2_addcarryx_u64(&x208, &x209, 0x0, x169, x195); + fiat_bls12_381_q2_addcarryx_u64(&x210, &x211, x209, x171, x197); + fiat_bls12_381_q2_addcarryx_u64(&x212, &x213, x211, x173, x199); + fiat_bls12_381_q2_addcarryx_u64(&x214, &x215, x213, x175, x201); + fiat_bls12_381_q2_addcarryx_u64(&x216, &x217, x215, x177, x203); + fiat_bls12_381_q2_addcarryx_u64(&x218, &x219, x217, x179, x205); + fiat_bls12_381_q2_addcarryx_u64(&x220, &x221, x219, x181, x207); + x222 = ((uint64_t)x221 + x182); + fiat_bls12_381_q2_mulx_u64(&x223, &x224, x3, (arg2[5])); + fiat_bls12_381_q2_mulx_u64(&x225, &x226, x3, (arg2[4])); + fiat_bls12_381_q2_mulx_u64(&x227, &x228, x3, (arg2[3])); + fiat_bls12_381_q2_mulx_u64(&x229, &x230, x3, (arg2[2])); + fiat_bls12_381_q2_mulx_u64(&x231, &x232, x3, (arg2[1])); + fiat_bls12_381_q2_mulx_u64(&x233, &x234, x3, (arg2[0])); + fiat_bls12_381_q2_addcarryx_u64(&x235, &x236, 0x0, x234, x231); + fiat_bls12_381_q2_addcarryx_u64(&x237, &x238, x236, x232, x229); + fiat_bls12_381_q2_addcarryx_u64(&x239, &x240, x238, x230, x227); + fiat_bls12_381_q2_addcarryx_u64(&x241, &x242, x240, x228, x225); + fiat_bls12_381_q2_addcarryx_u64(&x243, &x244, x242, x226, x223); + x245 = (x244 + x224); + fiat_bls12_381_q2_addcarryx_u64(&x246, &x247, 0x0, x210, x233); + fiat_bls12_381_q2_addcarryx_u64(&x248, &x249, x247, x212, x235); + fiat_bls12_381_q2_addcarryx_u64(&x250, &x251, x249, x214, x237); + fiat_bls12_381_q2_addcarryx_u64(&x252, &x253, x251, x216, x239); + fiat_bls12_381_q2_addcarryx_u64(&x254, &x255, x253, x218, x241); + fiat_bls12_381_q2_addcarryx_u64(&x256, &x257, x255, x220, x243); + fiat_bls12_381_q2_addcarryx_u64(&x258, &x259, x257, x222, x245); + fiat_bls12_381_q2_mulx_u64(&x260, &x261, x246, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x262, &x263, x260, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x264, &x265, x260, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x266, &x267, x260, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x268, &x269, x260, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x270, &x271, x260, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x272, &x273, x260, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x274, &x275, 0x0, x273, x270); + fiat_bls12_381_q2_addcarryx_u64(&x276, &x277, x275, x271, x268); + fiat_bls12_381_q2_addcarryx_u64(&x278, &x279, x277, x269, x266); + fiat_bls12_381_q2_addcarryx_u64(&x280, &x281, x279, x267, x264); + fiat_bls12_381_q2_addcarryx_u64(&x282, &x283, x281, x265, x262); + x284 = (x283 + x263); + fiat_bls12_381_q2_addcarryx_u64(&x285, &x286, 0x0, x246, x272); + fiat_bls12_381_q2_addcarryx_u64(&x287, &x288, x286, x248, x274); + fiat_bls12_381_q2_addcarryx_u64(&x289, &x290, x288, x250, x276); + fiat_bls12_381_q2_addcarryx_u64(&x291, &x292, x290, x252, x278); + fiat_bls12_381_q2_addcarryx_u64(&x293, &x294, x292, x254, x280); + fiat_bls12_381_q2_addcarryx_u64(&x295, &x296, x294, x256, x282); + fiat_bls12_381_q2_addcarryx_u64(&x297, &x298, x296, x258, x284); + x299 = ((uint64_t)x298 + x259); + fiat_bls12_381_q2_mulx_u64(&x300, &x301, x4, (arg2[5])); + fiat_bls12_381_q2_mulx_u64(&x302, &x303, x4, (arg2[4])); + fiat_bls12_381_q2_mulx_u64(&x304, &x305, x4, (arg2[3])); + fiat_bls12_381_q2_mulx_u64(&x306, &x307, x4, (arg2[2])); + fiat_bls12_381_q2_mulx_u64(&x308, &x309, x4, (arg2[1])); + fiat_bls12_381_q2_mulx_u64(&x310, &x311, x4, (arg2[0])); + fiat_bls12_381_q2_addcarryx_u64(&x312, &x313, 0x0, x311, x308); + fiat_bls12_381_q2_addcarryx_u64(&x314, &x315, x313, x309, x306); + fiat_bls12_381_q2_addcarryx_u64(&x316, &x317, x315, x307, x304); + fiat_bls12_381_q2_addcarryx_u64(&x318, &x319, x317, x305, x302); + fiat_bls12_381_q2_addcarryx_u64(&x320, &x321, x319, x303, x300); + x322 = (x321 + x301); + fiat_bls12_381_q2_addcarryx_u64(&x323, &x324, 0x0, x287, x310); + fiat_bls12_381_q2_addcarryx_u64(&x325, &x326, x324, x289, x312); + fiat_bls12_381_q2_addcarryx_u64(&x327, &x328, x326, x291, x314); + fiat_bls12_381_q2_addcarryx_u64(&x329, &x330, x328, x293, x316); + fiat_bls12_381_q2_addcarryx_u64(&x331, &x332, x330, x295, x318); + fiat_bls12_381_q2_addcarryx_u64(&x333, &x334, x332, x297, x320); + fiat_bls12_381_q2_addcarryx_u64(&x335, &x336, x334, x299, x322); + fiat_bls12_381_q2_mulx_u64(&x337, &x338, x323, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x339, &x340, x337, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x341, &x342, x337, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x343, &x344, x337, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x345, &x346, x337, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x347, &x348, x337, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x349, &x350, x337, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x351, &x352, 0x0, x350, x347); + fiat_bls12_381_q2_addcarryx_u64(&x353, &x354, x352, x348, x345); + fiat_bls12_381_q2_addcarryx_u64(&x355, &x356, x354, x346, x343); + fiat_bls12_381_q2_addcarryx_u64(&x357, &x358, x356, x344, x341); + fiat_bls12_381_q2_addcarryx_u64(&x359, &x360, x358, x342, x339); + x361 = (x360 + x340); + fiat_bls12_381_q2_addcarryx_u64(&x362, &x363, 0x0, x323, x349); + fiat_bls12_381_q2_addcarryx_u64(&x364, &x365, x363, x325, x351); + fiat_bls12_381_q2_addcarryx_u64(&x366, &x367, x365, x327, x353); + fiat_bls12_381_q2_addcarryx_u64(&x368, &x369, x367, x329, x355); + fiat_bls12_381_q2_addcarryx_u64(&x370, &x371, x369, x331, x357); + fiat_bls12_381_q2_addcarryx_u64(&x372, &x373, x371, x333, x359); + fiat_bls12_381_q2_addcarryx_u64(&x374, &x375, x373, x335, x361); + x376 = ((uint64_t)x375 + x336); + fiat_bls12_381_q2_mulx_u64(&x377, &x378, x5, (arg2[5])); + fiat_bls12_381_q2_mulx_u64(&x379, &x380, x5, (arg2[4])); + fiat_bls12_381_q2_mulx_u64(&x381, &x382, x5, (arg2[3])); + fiat_bls12_381_q2_mulx_u64(&x383, &x384, x5, (arg2[2])); + fiat_bls12_381_q2_mulx_u64(&x385, &x386, x5, (arg2[1])); + fiat_bls12_381_q2_mulx_u64(&x387, &x388, x5, (arg2[0])); + fiat_bls12_381_q2_addcarryx_u64(&x389, &x390, 0x0, x388, x385); + fiat_bls12_381_q2_addcarryx_u64(&x391, &x392, x390, x386, x383); + fiat_bls12_381_q2_addcarryx_u64(&x393, &x394, x392, x384, x381); + fiat_bls12_381_q2_addcarryx_u64(&x395, &x396, x394, x382, x379); + fiat_bls12_381_q2_addcarryx_u64(&x397, &x398, x396, x380, x377); + x399 = (x398 + x378); + fiat_bls12_381_q2_addcarryx_u64(&x400, &x401, 0x0, x364, x387); + fiat_bls12_381_q2_addcarryx_u64(&x402, &x403, x401, x366, x389); + fiat_bls12_381_q2_addcarryx_u64(&x404, &x405, x403, x368, x391); + fiat_bls12_381_q2_addcarryx_u64(&x406, &x407, x405, x370, x393); + fiat_bls12_381_q2_addcarryx_u64(&x408, &x409, x407, x372, x395); + fiat_bls12_381_q2_addcarryx_u64(&x410, &x411, x409, x374, x397); + fiat_bls12_381_q2_addcarryx_u64(&x412, &x413, x411, x376, x399); + fiat_bls12_381_q2_mulx_u64(&x414, &x415, x400, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x416, &x417, x414, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x418, &x419, x414, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x420, &x421, x414, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x422, &x423, x414, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x424, &x425, x414, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x426, &x427, x414, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x428, &x429, 0x0, x427, x424); + fiat_bls12_381_q2_addcarryx_u64(&x430, &x431, x429, x425, x422); + fiat_bls12_381_q2_addcarryx_u64(&x432, &x433, x431, x423, x420); + fiat_bls12_381_q2_addcarryx_u64(&x434, &x435, x433, x421, x418); + fiat_bls12_381_q2_addcarryx_u64(&x436, &x437, x435, x419, x416); + x438 = (x437 + x417); + fiat_bls12_381_q2_addcarryx_u64(&x439, &x440, 0x0, x400, x426); + fiat_bls12_381_q2_addcarryx_u64(&x441, &x442, x440, x402, x428); + fiat_bls12_381_q2_addcarryx_u64(&x443, &x444, x442, x404, x430); + fiat_bls12_381_q2_addcarryx_u64(&x445, &x446, x444, x406, x432); + fiat_bls12_381_q2_addcarryx_u64(&x447, &x448, x446, x408, x434); + fiat_bls12_381_q2_addcarryx_u64(&x449, &x450, x448, x410, x436); + fiat_bls12_381_q2_addcarryx_u64(&x451, &x452, x450, x412, x438); + x453 = ((uint64_t)x452 + x413); + fiat_bls12_381_q2_subborrowx_u64(&x454, &x455, 0x0, x441, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x456, &x457, x455, x443, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x458, &x459, x457, x445, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x460, &x461, x459, x447, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x462, &x463, x461, x449, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x464, &x465, x463, x451, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x466, &x467, x465, x453, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x468, x467, x454, x441); + fiat_bls12_381_q2_cmovznz_u64(&x469, x467, x456, x443); + fiat_bls12_381_q2_cmovznz_u64(&x470, x467, x458, x445); + fiat_bls12_381_q2_cmovznz_u64(&x471, x467, x460, x447); + fiat_bls12_381_q2_cmovznz_u64(&x472, x467, x462, x449); + fiat_bls12_381_q2_cmovznz_u64(&x473, x467, x464, x451); + fiat_bls12_381_q2_addcarryx_u64(&x474, &x475, 0x0, (arg1[0]), (arg2[0])); + fiat_bls12_381_q2_addcarryx_u64(&x476, &x477, x475, (arg1[1]), (arg2[1])); + fiat_bls12_381_q2_addcarryx_u64(&x478, &x479, x477, (arg1[2]), (arg2[2])); + fiat_bls12_381_q2_addcarryx_u64(&x480, &x481, x479, (arg1[3]), (arg2[3])); + fiat_bls12_381_q2_addcarryx_u64(&x482, &x483, x481, (arg1[4]), (arg2[4])); + fiat_bls12_381_q2_addcarryx_u64(&x484, &x485, x483, (arg1[5]), (arg2[5])); + fiat_bls12_381_q2_subborrowx_u64(&x486, &x487, 0x0, x474, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x488, &x489, x487, x476, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x490, &x491, x489, x478, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x492, &x493, x491, x480, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x494, &x495, x493, x482, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x496, &x497, x495, x484, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x498, &x499, x497, x485, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x500, x499, x486, x474); + fiat_bls12_381_q2_cmovznz_u64(&x501, x499, x488, x476); + fiat_bls12_381_q2_cmovznz_u64(&x502, x499, x490, x478); + fiat_bls12_381_q2_cmovznz_u64(&x503, x499, x492, x480); + fiat_bls12_381_q2_cmovznz_u64(&x504, x499, x494, x482); + fiat_bls12_381_q2_cmovznz_u64(&x505, x499, x496, x484); + x506 = (arg2[5]); + x507 = (arg2[4]); + x508 = (arg2[3]); + x509 = (arg2[2]); + x510 = (arg2[1]); + x511 = (arg2[0]); + fiat_bls12_381_q2_subborrowx_u64(&x512, &x513, 0x0, (arg1[0]), x511); + fiat_bls12_381_q2_subborrowx_u64(&x514, &x515, x513, (arg1[1]), x510); + fiat_bls12_381_q2_subborrowx_u64(&x516, &x517, x515, (arg1[2]), x509); + fiat_bls12_381_q2_subborrowx_u64(&x518, &x519, x517, (arg1[3]), x508); + fiat_bls12_381_q2_subborrowx_u64(&x520, &x521, x519, (arg1[4]), x507); + fiat_bls12_381_q2_subborrowx_u64(&x522, &x523, x521, (arg1[5]), x506); + fiat_bls12_381_q2_cmovznz_u64(&x524, x523, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_bls12_381_q2_addcarryx_u64(&x525, &x526, 0x0, x512, (x524 & UINT64_C(0xb9feffffffffaaab))); + fiat_bls12_381_q2_addcarryx_u64(&x527, &x528, x526, x514, (x524 & UINT64_C(0x1eabfffeb153ffff))); + fiat_bls12_381_q2_addcarryx_u64(&x529, &x530, x528, x516, (x524 & UINT64_C(0x6730d2a0f6b0f624))); + fiat_bls12_381_q2_addcarryx_u64(&x531, &x532, x530, x518, (x524 & UINT64_C(0x64774b84f38512bf))); + fiat_bls12_381_q2_addcarryx_u64(&x533, &x534, x532, x520, (x524 & UINT64_C(0x4b1ba7b6434bacd7))); + fiat_bls12_381_q2_addcarryx_u64(&x535, &x536, x534, x522, (x524 & UINT64_C(0x1a0111ea397fe69a))); + fiat_bls12_381_q2_addcarryx_u64(&x537, &x538, 0x0, x468, x468); + fiat_bls12_381_q2_addcarryx_u64(&x539, &x540, x538, x469, x469); + fiat_bls12_381_q2_addcarryx_u64(&x541, &x542, x540, x470, x470); + fiat_bls12_381_q2_addcarryx_u64(&x543, &x544, x542, x471, x471); + fiat_bls12_381_q2_addcarryx_u64(&x545, &x546, x544, x472, x472); + fiat_bls12_381_q2_addcarryx_u64(&x547, &x548, x546, x473, x473); + fiat_bls12_381_q2_subborrowx_u64(&x549, &x550, 0x0, x537, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x551, &x552, x550, x539, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x553, &x554, x552, x541, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x555, &x556, x554, x543, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x557, &x558, x556, x545, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x559, &x560, x558, x547, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x561, &x562, x560, x548, 0x0); + fiat_bls12_381_q2_mulx_u64(&x563, &x564, x500, x535); + fiat_bls12_381_q2_mulx_u64(&x565, &x566, x500, x533); + fiat_bls12_381_q2_mulx_u64(&x567, &x568, x500, x531); + fiat_bls12_381_q2_mulx_u64(&x569, &x570, x500, x529); + fiat_bls12_381_q2_mulx_u64(&x571, &x572, x500, x527); + fiat_bls12_381_q2_mulx_u64(&x573, &x574, x500, x525); + fiat_bls12_381_q2_addcarryx_u64(&x575, &x576, 0x0, x574, x571); + fiat_bls12_381_q2_addcarryx_u64(&x577, &x578, x576, x572, x569); + fiat_bls12_381_q2_addcarryx_u64(&x579, &x580, x578, x570, x567); + fiat_bls12_381_q2_addcarryx_u64(&x581, &x582, x580, x568, x565); + fiat_bls12_381_q2_addcarryx_u64(&x583, &x584, x582, x566, x563); + x585 = (x584 + x564); + fiat_bls12_381_q2_mulx_u64(&x586, &x587, x573, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x588, &x589, x586, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x590, &x591, x586, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x592, &x593, x586, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x594, &x595, x586, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x596, &x597, x586, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x598, &x599, x586, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x600, &x601, 0x0, x599, x596); + fiat_bls12_381_q2_addcarryx_u64(&x602, &x603, x601, x597, x594); + fiat_bls12_381_q2_addcarryx_u64(&x604, &x605, x603, x595, x592); + fiat_bls12_381_q2_addcarryx_u64(&x606, &x607, x605, x593, x590); + fiat_bls12_381_q2_addcarryx_u64(&x608, &x609, x607, x591, x588); + x610 = (x609 + x589); + fiat_bls12_381_q2_addcarryx_u64(&x611, &x612, 0x0, x573, x598); + fiat_bls12_381_q2_addcarryx_u64(&x613, &x614, x612, x575, x600); + fiat_bls12_381_q2_addcarryx_u64(&x615, &x616, x614, x577, x602); + fiat_bls12_381_q2_addcarryx_u64(&x617, &x618, x616, x579, x604); + fiat_bls12_381_q2_addcarryx_u64(&x619, &x620, x618, x581, x606); + fiat_bls12_381_q2_addcarryx_u64(&x621, &x622, x620, x583, x608); + fiat_bls12_381_q2_addcarryx_u64(&x623, &x624, x622, x585, x610); + fiat_bls12_381_q2_mulx_u64(&x625, &x626, x501, x535); + fiat_bls12_381_q2_mulx_u64(&x627, &x628, x501, x533); + fiat_bls12_381_q2_mulx_u64(&x629, &x630, x501, x531); + fiat_bls12_381_q2_mulx_u64(&x631, &x632, x501, x529); + fiat_bls12_381_q2_mulx_u64(&x633, &x634, x501, x527); + fiat_bls12_381_q2_mulx_u64(&x635, &x636, x501, x525); + fiat_bls12_381_q2_addcarryx_u64(&x637, &x638, 0x0, x636, x633); + fiat_bls12_381_q2_addcarryx_u64(&x639, &x640, x638, x634, x631); + fiat_bls12_381_q2_addcarryx_u64(&x641, &x642, x640, x632, x629); + fiat_bls12_381_q2_addcarryx_u64(&x643, &x644, x642, x630, x627); + fiat_bls12_381_q2_addcarryx_u64(&x645, &x646, x644, x628, x625); + x647 = (x646 + x626); + fiat_bls12_381_q2_addcarryx_u64(&x648, &x649, 0x0, x613, x635); + fiat_bls12_381_q2_addcarryx_u64(&x650, &x651, x649, x615, x637); + fiat_bls12_381_q2_addcarryx_u64(&x652, &x653, x651, x617, x639); + fiat_bls12_381_q2_addcarryx_u64(&x654, &x655, x653, x619, x641); + fiat_bls12_381_q2_addcarryx_u64(&x656, &x657, x655, x621, x643); + fiat_bls12_381_q2_addcarryx_u64(&x658, &x659, x657, x623, x645); + fiat_bls12_381_q2_addcarryx_u64(&x660, &x661, x659, x624, x647); + fiat_bls12_381_q2_mulx_u64(&x662, &x663, x648, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x664, &x665, x662, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x666, &x667, x662, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x668, &x669, x662, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x670, &x671, x662, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x672, &x673, x662, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x674, &x675, x662, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x676, &x677, 0x0, x675, x672); + fiat_bls12_381_q2_addcarryx_u64(&x678, &x679, x677, x673, x670); + fiat_bls12_381_q2_addcarryx_u64(&x680, &x681, x679, x671, x668); + fiat_bls12_381_q2_addcarryx_u64(&x682, &x683, x681, x669, x666); + fiat_bls12_381_q2_addcarryx_u64(&x684, &x685, x683, x667, x664); + x686 = (x685 + x665); + fiat_bls12_381_q2_addcarryx_u64(&x687, &x688, 0x0, x648, x674); + fiat_bls12_381_q2_addcarryx_u64(&x689, &x690, x688, x650, x676); + fiat_bls12_381_q2_addcarryx_u64(&x691, &x692, x690, x652, x678); + fiat_bls12_381_q2_addcarryx_u64(&x693, &x694, x692, x654, x680); + fiat_bls12_381_q2_addcarryx_u64(&x695, &x696, x694, x656, x682); + fiat_bls12_381_q2_addcarryx_u64(&x697, &x698, x696, x658, x684); + fiat_bls12_381_q2_addcarryx_u64(&x699, &x700, x698, x660, x686); + x701 = ((uint64_t)x700 + x661); + fiat_bls12_381_q2_mulx_u64(&x702, &x703, x502, x535); + fiat_bls12_381_q2_mulx_u64(&x704, &x705, x502, x533); + fiat_bls12_381_q2_mulx_u64(&x706, &x707, x502, x531); + fiat_bls12_381_q2_mulx_u64(&x708, &x709, x502, x529); + fiat_bls12_381_q2_mulx_u64(&x710, &x711, x502, x527); + fiat_bls12_381_q2_mulx_u64(&x712, &x713, x502, x525); + fiat_bls12_381_q2_addcarryx_u64(&x714, &x715, 0x0, x713, x710); + fiat_bls12_381_q2_addcarryx_u64(&x716, &x717, x715, x711, x708); + fiat_bls12_381_q2_addcarryx_u64(&x718, &x719, x717, x709, x706); + fiat_bls12_381_q2_addcarryx_u64(&x720, &x721, x719, x707, x704); + fiat_bls12_381_q2_addcarryx_u64(&x722, &x723, x721, x705, x702); + x724 = (x723 + x703); + fiat_bls12_381_q2_addcarryx_u64(&x725, &x726, 0x0, x689, x712); + fiat_bls12_381_q2_addcarryx_u64(&x727, &x728, x726, x691, x714); + fiat_bls12_381_q2_addcarryx_u64(&x729, &x730, x728, x693, x716); + fiat_bls12_381_q2_addcarryx_u64(&x731, &x732, x730, x695, x718); + fiat_bls12_381_q2_addcarryx_u64(&x733, &x734, x732, x697, x720); + fiat_bls12_381_q2_addcarryx_u64(&x735, &x736, x734, x699, x722); + fiat_bls12_381_q2_addcarryx_u64(&x737, &x738, x736, x701, x724); + fiat_bls12_381_q2_mulx_u64(&x739, &x740, x725, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x741, &x742, x739, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x743, &x744, x739, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x745, &x746, x739, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x747, &x748, x739, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x749, &x750, x739, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x751, &x752, x739, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x753, &x754, 0x0, x752, x749); + fiat_bls12_381_q2_addcarryx_u64(&x755, &x756, x754, x750, x747); + fiat_bls12_381_q2_addcarryx_u64(&x757, &x758, x756, x748, x745); + fiat_bls12_381_q2_addcarryx_u64(&x759, &x760, x758, x746, x743); + fiat_bls12_381_q2_addcarryx_u64(&x761, &x762, x760, x744, x741); + x763 = (x762 + x742); + fiat_bls12_381_q2_addcarryx_u64(&x764, &x765, 0x0, x725, x751); + fiat_bls12_381_q2_addcarryx_u64(&x766, &x767, x765, x727, x753); + fiat_bls12_381_q2_addcarryx_u64(&x768, &x769, x767, x729, x755); + fiat_bls12_381_q2_addcarryx_u64(&x770, &x771, x769, x731, x757); + fiat_bls12_381_q2_addcarryx_u64(&x772, &x773, x771, x733, x759); + fiat_bls12_381_q2_addcarryx_u64(&x774, &x775, x773, x735, x761); + fiat_bls12_381_q2_addcarryx_u64(&x776, &x777, x775, x737, x763); + x778 = ((uint64_t)x777 + x738); + fiat_bls12_381_q2_mulx_u64(&x779, &x780, x503, x535); + fiat_bls12_381_q2_mulx_u64(&x781, &x782, x503, x533); + fiat_bls12_381_q2_mulx_u64(&x783, &x784, x503, x531); + fiat_bls12_381_q2_mulx_u64(&x785, &x786, x503, x529); + fiat_bls12_381_q2_mulx_u64(&x787, &x788, x503, x527); + fiat_bls12_381_q2_mulx_u64(&x789, &x790, x503, x525); + fiat_bls12_381_q2_addcarryx_u64(&x791, &x792, 0x0, x790, x787); + fiat_bls12_381_q2_addcarryx_u64(&x793, &x794, x792, x788, x785); + fiat_bls12_381_q2_addcarryx_u64(&x795, &x796, x794, x786, x783); + fiat_bls12_381_q2_addcarryx_u64(&x797, &x798, x796, x784, x781); + fiat_bls12_381_q2_addcarryx_u64(&x799, &x800, x798, x782, x779); + x801 = (x800 + x780); + fiat_bls12_381_q2_addcarryx_u64(&x802, &x803, 0x0, x766, x789); + fiat_bls12_381_q2_addcarryx_u64(&x804, &x805, x803, x768, x791); + fiat_bls12_381_q2_addcarryx_u64(&x806, &x807, x805, x770, x793); + fiat_bls12_381_q2_addcarryx_u64(&x808, &x809, x807, x772, x795); + fiat_bls12_381_q2_addcarryx_u64(&x810, &x811, x809, x774, x797); + fiat_bls12_381_q2_addcarryx_u64(&x812, &x813, x811, x776, x799); + fiat_bls12_381_q2_addcarryx_u64(&x814, &x815, x813, x778, x801); + fiat_bls12_381_q2_mulx_u64(&x816, &x817, x802, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x818, &x819, x816, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x820, &x821, x816, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x822, &x823, x816, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x824, &x825, x816, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x826, &x827, x816, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x828, &x829, x816, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x830, &x831, 0x0, x829, x826); + fiat_bls12_381_q2_addcarryx_u64(&x832, &x833, x831, x827, x824); + fiat_bls12_381_q2_addcarryx_u64(&x834, &x835, x833, x825, x822); + fiat_bls12_381_q2_addcarryx_u64(&x836, &x837, x835, x823, x820); + fiat_bls12_381_q2_addcarryx_u64(&x838, &x839, x837, x821, x818); + x840 = (x839 + x819); + fiat_bls12_381_q2_addcarryx_u64(&x841, &x842, 0x0, x802, x828); + fiat_bls12_381_q2_addcarryx_u64(&x843, &x844, x842, x804, x830); + fiat_bls12_381_q2_addcarryx_u64(&x845, &x846, x844, x806, x832); + fiat_bls12_381_q2_addcarryx_u64(&x847, &x848, x846, x808, x834); + fiat_bls12_381_q2_addcarryx_u64(&x849, &x850, x848, x810, x836); + fiat_bls12_381_q2_addcarryx_u64(&x851, &x852, x850, x812, x838); + fiat_bls12_381_q2_addcarryx_u64(&x853, &x854, x852, x814, x840); + x855 = ((uint64_t)x854 + x815); + fiat_bls12_381_q2_mulx_u64(&x856, &x857, x504, x535); + fiat_bls12_381_q2_mulx_u64(&x858, &x859, x504, x533); + fiat_bls12_381_q2_mulx_u64(&x860, &x861, x504, x531); + fiat_bls12_381_q2_mulx_u64(&x862, &x863, x504, x529); + fiat_bls12_381_q2_mulx_u64(&x864, &x865, x504, x527); + fiat_bls12_381_q2_mulx_u64(&x866, &x867, x504, x525); + fiat_bls12_381_q2_addcarryx_u64(&x868, &x869, 0x0, x867, x864); + fiat_bls12_381_q2_addcarryx_u64(&x870, &x871, x869, x865, x862); + fiat_bls12_381_q2_addcarryx_u64(&x872, &x873, x871, x863, x860); + fiat_bls12_381_q2_addcarryx_u64(&x874, &x875, x873, x861, x858); + fiat_bls12_381_q2_addcarryx_u64(&x876, &x877, x875, x859, x856); + x878 = (x877 + x857); + fiat_bls12_381_q2_addcarryx_u64(&x879, &x880, 0x0, x843, x866); + fiat_bls12_381_q2_addcarryx_u64(&x881, &x882, x880, x845, x868); + fiat_bls12_381_q2_addcarryx_u64(&x883, &x884, x882, x847, x870); + fiat_bls12_381_q2_addcarryx_u64(&x885, &x886, x884, x849, x872); + fiat_bls12_381_q2_addcarryx_u64(&x887, &x888, x886, x851, x874); + fiat_bls12_381_q2_addcarryx_u64(&x889, &x890, x888, x853, x876); + fiat_bls12_381_q2_addcarryx_u64(&x891, &x892, x890, x855, x878); + fiat_bls12_381_q2_mulx_u64(&x893, &x894, x879, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x895, &x896, x893, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x897, &x898, x893, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x899, &x900, x893, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x901, &x902, x893, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x903, &x904, x893, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x905, &x906, x893, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x907, &x908, 0x0, x906, x903); + fiat_bls12_381_q2_addcarryx_u64(&x909, &x910, x908, x904, x901); + fiat_bls12_381_q2_addcarryx_u64(&x911, &x912, x910, x902, x899); + fiat_bls12_381_q2_addcarryx_u64(&x913, &x914, x912, x900, x897); + fiat_bls12_381_q2_addcarryx_u64(&x915, &x916, x914, x898, x895); + x917 = (x916 + x896); + fiat_bls12_381_q2_addcarryx_u64(&x918, &x919, 0x0, x879, x905); + fiat_bls12_381_q2_addcarryx_u64(&x920, &x921, x919, x881, x907); + fiat_bls12_381_q2_addcarryx_u64(&x922, &x923, x921, x883, x909); + fiat_bls12_381_q2_addcarryx_u64(&x924, &x925, x923, x885, x911); + fiat_bls12_381_q2_addcarryx_u64(&x926, &x927, x925, x887, x913); + fiat_bls12_381_q2_addcarryx_u64(&x928, &x929, x927, x889, x915); + fiat_bls12_381_q2_addcarryx_u64(&x930, &x931, x929, x891, x917); + x932 = ((uint64_t)x931 + x892); + fiat_bls12_381_q2_mulx_u64(&x933, &x934, x505, x535); + fiat_bls12_381_q2_mulx_u64(&x935, &x936, x505, x533); + fiat_bls12_381_q2_mulx_u64(&x937, &x938, x505, x531); + fiat_bls12_381_q2_mulx_u64(&x939, &x940, x505, x529); + fiat_bls12_381_q2_mulx_u64(&x941, &x942, x505, x527); + fiat_bls12_381_q2_mulx_u64(&x943, &x944, x505, x525); + fiat_bls12_381_q2_addcarryx_u64(&x945, &x946, 0x0, x944, x941); + fiat_bls12_381_q2_addcarryx_u64(&x947, &x948, x946, x942, x939); + fiat_bls12_381_q2_addcarryx_u64(&x949, &x950, x948, x940, x937); + fiat_bls12_381_q2_addcarryx_u64(&x951, &x952, x950, x938, x935); + fiat_bls12_381_q2_addcarryx_u64(&x953, &x954, x952, x936, x933); + x955 = (x954 + x934); + fiat_bls12_381_q2_addcarryx_u64(&x956, &x957, 0x0, x920, x943); + fiat_bls12_381_q2_addcarryx_u64(&x958, &x959, x957, x922, x945); + fiat_bls12_381_q2_addcarryx_u64(&x960, &x961, x959, x924, x947); + fiat_bls12_381_q2_addcarryx_u64(&x962, &x963, x961, x926, x949); + fiat_bls12_381_q2_addcarryx_u64(&x964, &x965, x963, x928, x951); + fiat_bls12_381_q2_addcarryx_u64(&x966, &x967, x965, x930, x953); + fiat_bls12_381_q2_addcarryx_u64(&x968, &x969, x967, x932, x955); + fiat_bls12_381_q2_mulx_u64(&x970, &x971, x956, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x972, &x973, x970, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x974, &x975, x970, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x976, &x977, x970, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x978, &x979, x970, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x980, &x981, x970, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x982, &x983, x970, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x984, &x985, 0x0, x983, x980); + fiat_bls12_381_q2_addcarryx_u64(&x986, &x987, x985, x981, x978); + fiat_bls12_381_q2_addcarryx_u64(&x988, &x989, x987, x979, x976); + fiat_bls12_381_q2_addcarryx_u64(&x990, &x991, x989, x977, x974); + fiat_bls12_381_q2_addcarryx_u64(&x992, &x993, x991, x975, x972); + x994 = (x993 + x973); + fiat_bls12_381_q2_addcarryx_u64(&x995, &x996, 0x0, x956, x982); + fiat_bls12_381_q2_addcarryx_u64(&x997, &x998, x996, x958, x984); + fiat_bls12_381_q2_addcarryx_u64(&x999, &x1000, x998, x960, x986); + fiat_bls12_381_q2_addcarryx_u64(&x1001, &x1002, x1000, x962, x988); + fiat_bls12_381_q2_addcarryx_u64(&x1003, &x1004, x1002, x964, x990); + fiat_bls12_381_q2_addcarryx_u64(&x1005, &x1006, x1004, x966, x992); + fiat_bls12_381_q2_addcarryx_u64(&x1007, &x1008, x1006, x968, x994); + x1009 = ((uint64_t)x1008 + x969); + fiat_bls12_381_q2_subborrowx_u64(&x1010, &x1011, 0x0, x997, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x1012, &x1013, x1011, x999, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x1014, &x1015, x1013, x1001, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x1016, &x1017, x1015, x1003, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x1018, &x1019, x1017, x1005, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x1020, &x1021, x1019, x1007, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x1022, &x1023, x1021, x1009, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x1024, x1023, x1010, x997); + fiat_bls12_381_q2_cmovznz_u64(&x1025, x1023, x1012, x999); + fiat_bls12_381_q2_cmovznz_u64(&x1026, x1023, x1014, x1001); + fiat_bls12_381_q2_cmovznz_u64(&x1027, x1023, x1016, x1003); + fiat_bls12_381_q2_cmovznz_u64(&x1028, x1023, x1018, x1005); + fiat_bls12_381_q2_cmovznz_u64(&x1029, x1023, x1020, x1007); + fiat_bls12_381_q2_cmovznz_u64(&x1030, x562, x549, x537); + fiat_bls12_381_q2_cmovznz_u64(&x1031, x562, x551, x539); + fiat_bls12_381_q2_cmovznz_u64(&x1032, x562, x553, x541); + fiat_bls12_381_q2_cmovznz_u64(&x1033, x562, x555, x543); + fiat_bls12_381_q2_cmovznz_u64(&x1034, x562, x557, x545); + fiat_bls12_381_q2_cmovznz_u64(&x1035, x562, x559, x547); + out1[0] = x1024; + out1[1] = x1025; + out1[2] = x1026; + out1[3] = x1027; + out1[4] = x1028; + out1[5] = x1029; + out2[0] = x1030; + out2[1] = x1031; + out2[2] = x1032; + out2[3] = x1033; + out2[4] = x1034; + out2[5] = x1035; +} + +/* + * The function fiat_bls12_381_q2_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 + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[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]] + */ +static void fiat_bls12_381_q2_add(uint64_t out1[6], const uint64_t arg1[6], const uint64_t arg2[6]) { + uint64_t x1; + fiat_bls12_381_q2_uint1 x2; + uint64_t x3; + fiat_bls12_381_q2_uint1 x4; + uint64_t x5; + fiat_bls12_381_q2_uint1 x6; + uint64_t x7; + fiat_bls12_381_q2_uint1 x8; + uint64_t x9; + fiat_bls12_381_q2_uint1 x10; + uint64_t x11; + fiat_bls12_381_q2_uint1 x12; + uint64_t x13; + fiat_bls12_381_q2_uint1 x14; + uint64_t x15; + fiat_bls12_381_q2_uint1 x16; + uint64_t x17; + fiat_bls12_381_q2_uint1 x18; + uint64_t x19; + fiat_bls12_381_q2_uint1 x20; + uint64_t x21; + fiat_bls12_381_q2_uint1 x22; + uint64_t x23; + fiat_bls12_381_q2_uint1 x24; + uint64_t x25; + fiat_bls12_381_q2_uint1 x26; + uint64_t x27; + uint64_t x28; + uint64_t x29; + uint64_t x30; + uint64_t x31; + uint64_t x32; + fiat_bls12_381_q2_addcarryx_u64(&x1, &x2, 0x0, (arg1[0]), (arg2[0])); + fiat_bls12_381_q2_addcarryx_u64(&x3, &x4, x2, (arg1[1]), (arg2[1])); + fiat_bls12_381_q2_addcarryx_u64(&x5, &x6, x4, (arg1[2]), (arg2[2])); + fiat_bls12_381_q2_addcarryx_u64(&x7, &x8, x6, (arg1[3]), (arg2[3])); + fiat_bls12_381_q2_addcarryx_u64(&x9, &x10, x8, (arg1[4]), (arg2[4])); + fiat_bls12_381_q2_addcarryx_u64(&x11, &x12, x10, (arg1[5]), (arg2[5])); + fiat_bls12_381_q2_subborrowx_u64(&x13, &x14, 0x0, x1, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x15, &x16, x14, x3, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x17, &x18, x16, x5, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x19, &x20, x18, x7, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x21, &x22, x20, x9, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x23, &x24, x22, x11, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x25, &x26, x24, x12, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x27, x26, x13, x1); + fiat_bls12_381_q2_cmovznz_u64(&x28, x26, x15, x3); + fiat_bls12_381_q2_cmovznz_u64(&x29, x26, x17, x5); + fiat_bls12_381_q2_cmovznz_u64(&x30, x26, x19, x7); + fiat_bls12_381_q2_cmovznz_u64(&x31, x26, x21, x9); + fiat_bls12_381_q2_cmovznz_u64(&x32, x26, x23, x11); + out1[0] = x27; + out1[1] = x28; + out1[2] = x29; + out1[3] = x30; + out1[4] = x31; + out1[5] = x32; +} + +/* + * The function fiat_bls12_381_q2_sub subtracts 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 + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[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]] + */ +static void fiat_bls12_381_q2_sub(uint64_t out1[6], const uint64_t arg1[6], const uint64_t arg2[6]) { + uint64_t x1; + fiat_bls12_381_q2_uint1 x2; + uint64_t x3; + fiat_bls12_381_q2_uint1 x4; + uint64_t x5; + fiat_bls12_381_q2_uint1 x6; + uint64_t x7; + fiat_bls12_381_q2_uint1 x8; + uint64_t x9; + fiat_bls12_381_q2_uint1 x10; + uint64_t x11; + fiat_bls12_381_q2_uint1 x12; + uint64_t x13; + uint64_t x14; + fiat_bls12_381_q2_uint1 x15; + uint64_t x16; + fiat_bls12_381_q2_uint1 x17; + uint64_t x18; + fiat_bls12_381_q2_uint1 x19; + uint64_t x20; + fiat_bls12_381_q2_uint1 x21; + uint64_t x22; + fiat_bls12_381_q2_uint1 x23; + uint64_t x24; + fiat_bls12_381_q2_uint1 x25; + fiat_bls12_381_q2_subborrowx_u64(&x1, &x2, 0x0, (arg1[0]), (arg2[0])); + fiat_bls12_381_q2_subborrowx_u64(&x3, &x4, x2, (arg1[1]), (arg2[1])); + fiat_bls12_381_q2_subborrowx_u64(&x5, &x6, x4, (arg1[2]), (arg2[2])); + fiat_bls12_381_q2_subborrowx_u64(&x7, &x8, x6, (arg1[3]), (arg2[3])); + fiat_bls12_381_q2_subborrowx_u64(&x9, &x10, x8, (arg1[4]), (arg2[4])); + fiat_bls12_381_q2_subborrowx_u64(&x11, &x12, x10, (arg1[5]), (arg2[5])); + fiat_bls12_381_q2_cmovznz_u64(&x13, x12, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_bls12_381_q2_addcarryx_u64(&x14, &x15, 0x0, x1, (x13 & UINT64_C(0xb9feffffffffaaab))); + fiat_bls12_381_q2_addcarryx_u64(&x16, &x17, x15, x3, (x13 & UINT64_C(0x1eabfffeb153ffff))); + fiat_bls12_381_q2_addcarryx_u64(&x18, &x19, x17, x5, (x13 & UINT64_C(0x6730d2a0f6b0f624))); + fiat_bls12_381_q2_addcarryx_u64(&x20, &x21, x19, x7, (x13 & UINT64_C(0x64774b84f38512bf))); + fiat_bls12_381_q2_addcarryx_u64(&x22, &x23, x21, x9, (x13 & UINT64_C(0x4b1ba7b6434bacd7))); + fiat_bls12_381_q2_addcarryx_u64(&x24, &x25, x23, x11, (x13 & UINT64_C(0x1a0111ea397fe69a))); + out1[0] = x14; + out1[1] = x16; + out1[2] = x18; + out1[3] = x20; + out1[4] = x22; + out1[5] = x24; +} + +/* + * The function fiat_bls12_381_q2_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 + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_bls12_381_q2_opp(uint64_t out1[6], const uint64_t arg1[6]) { + uint64_t x1; + fiat_bls12_381_q2_uint1 x2; + uint64_t x3; + fiat_bls12_381_q2_uint1 x4; + uint64_t x5; + fiat_bls12_381_q2_uint1 x6; + uint64_t x7; + fiat_bls12_381_q2_uint1 x8; + uint64_t x9; + fiat_bls12_381_q2_uint1 x10; + uint64_t x11; + fiat_bls12_381_q2_uint1 x12; + uint64_t x13; + uint64_t x14; + fiat_bls12_381_q2_uint1 x15; + uint64_t x16; + fiat_bls12_381_q2_uint1 x17; + uint64_t x18; + fiat_bls12_381_q2_uint1 x19; + uint64_t x20; + fiat_bls12_381_q2_uint1 x21; + uint64_t x22; + fiat_bls12_381_q2_uint1 x23; + uint64_t x24; + fiat_bls12_381_q2_uint1 x25; + fiat_bls12_381_q2_subborrowx_u64(&x1, &x2, 0x0, 0x0, (arg1[0])); + fiat_bls12_381_q2_subborrowx_u64(&x3, &x4, x2, 0x0, (arg1[1])); + fiat_bls12_381_q2_subborrowx_u64(&x5, &x6, x4, 0x0, (arg1[2])); + fiat_bls12_381_q2_subborrowx_u64(&x7, &x8, x6, 0x0, (arg1[3])); + fiat_bls12_381_q2_subborrowx_u64(&x9, &x10, x8, 0x0, (arg1[4])); + fiat_bls12_381_q2_subborrowx_u64(&x11, &x12, x10, 0x0, (arg1[5])); + fiat_bls12_381_q2_cmovznz_u64(&x13, x12, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_bls12_381_q2_addcarryx_u64(&x14, &x15, 0x0, x1, (x13 & UINT64_C(0xb9feffffffffaaab))); + fiat_bls12_381_q2_addcarryx_u64(&x16, &x17, x15, x3, (x13 & UINT64_C(0x1eabfffeb153ffff))); + fiat_bls12_381_q2_addcarryx_u64(&x18, &x19, x17, x5, (x13 & UINT64_C(0x6730d2a0f6b0f624))); + fiat_bls12_381_q2_addcarryx_u64(&x20, &x21, x19, x7, (x13 & UINT64_C(0x64774b84f38512bf))); + fiat_bls12_381_q2_addcarryx_u64(&x22, &x23, x21, x9, (x13 & UINT64_C(0x4b1ba7b6434bacd7))); + fiat_bls12_381_q2_addcarryx_u64(&x24, &x25, x23, x11, (x13 & UINT64_C(0x1a0111ea397fe69a))); + out1[0] = x14; + out1[1] = x16; + out1[2] = x18; + out1[3] = x20; + out1[4] = x22; + out1[5] = x24; +} + +/* + * The function fiat_bls12_381_q2_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)^6) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_bls12_381_q2_from_montgomery(uint64_t out1[6], const uint64_t arg1[6]) { + 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; + fiat_bls12_381_q2_uint1 x17; + uint64_t x18; + fiat_bls12_381_q2_uint1 x19; + uint64_t x20; + fiat_bls12_381_q2_uint1 x21; + uint64_t x22; + fiat_bls12_381_q2_uint1 x23; + uint64_t x24; + fiat_bls12_381_q2_uint1 x25; + uint64_t x26; + fiat_bls12_381_q2_uint1 x27; + uint64_t x28; + fiat_bls12_381_q2_uint1 x29; + uint64_t x30; + fiat_bls12_381_q2_uint1 x31; + uint64_t x32; + fiat_bls12_381_q2_uint1 x33; + uint64_t x34; + fiat_bls12_381_q2_uint1 x35; + uint64_t x36; + fiat_bls12_381_q2_uint1 x37; + uint64_t x38; + fiat_bls12_381_q2_uint1 x39; + uint64_t x40; + fiat_bls12_381_q2_uint1 x41; + uint64_t x42; + fiat_bls12_381_q2_uint1 x43; + uint64_t x44; + fiat_bls12_381_q2_uint1 x45; + uint64_t x46; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x63; + uint64_t x64; + fiat_bls12_381_q2_uint1 x65; + uint64_t x66; + fiat_bls12_381_q2_uint1 x67; + uint64_t x68; + fiat_bls12_381_q2_uint1 x69; + uint64_t x70; + fiat_bls12_381_q2_uint1 x71; + uint64_t x72; + fiat_bls12_381_q2_uint1 x73; + uint64_t x74; + fiat_bls12_381_q2_uint1 x75; + uint64_t x76; + fiat_bls12_381_q2_uint1 x77; + uint64_t x78; + fiat_bls12_381_q2_uint1 x79; + uint64_t x80; + fiat_bls12_381_q2_uint1 x81; + uint64_t x82; + fiat_bls12_381_q2_uint1 x83; + uint64_t x84; + fiat_bls12_381_q2_uint1 x85; + uint64_t x86; + fiat_bls12_381_q2_uint1 x87; + uint64_t x88; + fiat_bls12_381_q2_uint1 x89; + uint64_t x90; + fiat_bls12_381_q2_uint1 x91; + uint64_t x92; + fiat_bls12_381_q2_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; + uint64_t x104; + uint64_t x105; + uint64_t x106; + uint64_t x107; + uint64_t x108; + fiat_bls12_381_q2_uint1 x109; + uint64_t x110; + fiat_bls12_381_q2_uint1 x111; + uint64_t x112; + fiat_bls12_381_q2_uint1 x113; + uint64_t x114; + fiat_bls12_381_q2_uint1 x115; + uint64_t x116; + fiat_bls12_381_q2_uint1 x117; + uint64_t x118; + fiat_bls12_381_q2_uint1 x119; + uint64_t x120; + fiat_bls12_381_q2_uint1 x121; + uint64_t x122; + fiat_bls12_381_q2_uint1 x123; + uint64_t x124; + fiat_bls12_381_q2_uint1 x125; + uint64_t x126; + fiat_bls12_381_q2_uint1 x127; + uint64_t x128; + fiat_bls12_381_q2_uint1 x129; + uint64_t x130; + fiat_bls12_381_q2_uint1 x131; + uint64_t x132; + fiat_bls12_381_q2_uint1 x133; + uint64_t x134; + fiat_bls12_381_q2_uint1 x135; + uint64_t x136; + fiat_bls12_381_q2_uint1 x137; + uint64_t x138; + fiat_bls12_381_q2_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; + uint64_t x149; + uint64_t x150; + uint64_t x151; + uint64_t x152; + uint64_t x153; + uint64_t x154; + fiat_bls12_381_q2_uint1 x155; + uint64_t x156; + fiat_bls12_381_q2_uint1 x157; + uint64_t x158; + fiat_bls12_381_q2_uint1 x159; + uint64_t x160; + fiat_bls12_381_q2_uint1 x161; + uint64_t x162; + fiat_bls12_381_q2_uint1 x163; + uint64_t x164; + fiat_bls12_381_q2_uint1 x165; + uint64_t x166; + fiat_bls12_381_q2_uint1 x167; + uint64_t x168; + fiat_bls12_381_q2_uint1 x169; + uint64_t x170; + fiat_bls12_381_q2_uint1 x171; + uint64_t x172; + fiat_bls12_381_q2_uint1 x173; + uint64_t x174; + fiat_bls12_381_q2_uint1 x175; + uint64_t x176; + fiat_bls12_381_q2_uint1 x177; + uint64_t x178; + fiat_bls12_381_q2_uint1 x179; + uint64_t x180; + fiat_bls12_381_q2_uint1 x181; + uint64_t x182; + fiat_bls12_381_q2_uint1 x183; + uint64_t x184; + fiat_bls12_381_q2_uint1 x185; + uint64_t x186; + uint64_t x187; + uint64_t x188; + uint64_t x189; + uint64_t x190; + uint64_t x191; + uint64_t x192; + uint64_t x193; + uint64_t x194; + uint64_t x195; + uint64_t x196; + uint64_t x197; + uint64_t x198; + uint64_t x199; + uint64_t x200; + fiat_bls12_381_q2_uint1 x201; + uint64_t x202; + fiat_bls12_381_q2_uint1 x203; + uint64_t x204; + fiat_bls12_381_q2_uint1 x205; + uint64_t x206; + fiat_bls12_381_q2_uint1 x207; + uint64_t x208; + fiat_bls12_381_q2_uint1 x209; + uint64_t x210; + fiat_bls12_381_q2_uint1 x211; + uint64_t x212; + fiat_bls12_381_q2_uint1 x213; + uint64_t x214; + fiat_bls12_381_q2_uint1 x215; + uint64_t x216; + fiat_bls12_381_q2_uint1 x217; + uint64_t x218; + fiat_bls12_381_q2_uint1 x219; + uint64_t x220; + fiat_bls12_381_q2_uint1 x221; + uint64_t x222; + fiat_bls12_381_q2_uint1 x223; + uint64_t x224; + fiat_bls12_381_q2_uint1 x225; + uint64_t x226; + fiat_bls12_381_q2_uint1 x227; + uint64_t x228; + fiat_bls12_381_q2_uint1 x229; + uint64_t x230; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x247; + uint64_t x248; + fiat_bls12_381_q2_uint1 x249; + uint64_t x250; + fiat_bls12_381_q2_uint1 x251; + uint64_t x252; + fiat_bls12_381_q2_uint1 x253; + uint64_t x254; + fiat_bls12_381_q2_uint1 x255; + uint64_t x256; + fiat_bls12_381_q2_uint1 x257; + uint64_t x258; + fiat_bls12_381_q2_uint1 x259; + uint64_t x260; + fiat_bls12_381_q2_uint1 x261; + uint64_t x262; + fiat_bls12_381_q2_uint1 x263; + uint64_t x264; + fiat_bls12_381_q2_uint1 x265; + uint64_t x266; + fiat_bls12_381_q2_uint1 x267; + uint64_t x268; + uint64_t x269; + fiat_bls12_381_q2_uint1 x270; + uint64_t x271; + fiat_bls12_381_q2_uint1 x272; + uint64_t x273; + fiat_bls12_381_q2_uint1 x274; + uint64_t x275; + fiat_bls12_381_q2_uint1 x276; + uint64_t x277; + fiat_bls12_381_q2_uint1 x278; + uint64_t x279; + fiat_bls12_381_q2_uint1 x280; + uint64_t x281; + fiat_bls12_381_q2_uint1 x282; + uint64_t x283; + uint64_t x284; + uint64_t x285; + uint64_t x286; + uint64_t x287; + uint64_t x288; + x1 = (arg1[0]); + fiat_bls12_381_q2_mulx_u64(&x2, &x3, x1, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x4, &x5, x2, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x6, &x7, x2, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x8, &x9, x2, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x10, &x11, x2, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x12, &x13, x2, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x14, &x15, x2, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x16, &x17, 0x0, x15, x12); + fiat_bls12_381_q2_addcarryx_u64(&x18, &x19, x17, x13, x10); + fiat_bls12_381_q2_addcarryx_u64(&x20, &x21, x19, x11, x8); + fiat_bls12_381_q2_addcarryx_u64(&x22, &x23, x21, x9, x6); + fiat_bls12_381_q2_addcarryx_u64(&x24, &x25, x23, x7, x4); + fiat_bls12_381_q2_addcarryx_u64(&x26, &x27, 0x0, x1, x14); + fiat_bls12_381_q2_addcarryx_u64(&x28, &x29, x27, 0x0, x16); + fiat_bls12_381_q2_addcarryx_u64(&x30, &x31, x29, 0x0, x18); + fiat_bls12_381_q2_addcarryx_u64(&x32, &x33, x31, 0x0, x20); + fiat_bls12_381_q2_addcarryx_u64(&x34, &x35, x33, 0x0, x22); + fiat_bls12_381_q2_addcarryx_u64(&x36, &x37, x35, 0x0, x24); + fiat_bls12_381_q2_addcarryx_u64(&x38, &x39, 0x0, x28, (arg1[1])); + fiat_bls12_381_q2_addcarryx_u64(&x40, &x41, x39, x30, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x42, &x43, x41, x32, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x44, &x45, x43, x34, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x46, &x47, x45, x36, 0x0); + fiat_bls12_381_q2_mulx_u64(&x48, &x49, x38, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x50, &x51, x48, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x52, &x53, x48, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x54, &x55, x48, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x56, &x57, x48, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x58, &x59, x48, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x60, &x61, x48, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x62, &x63, 0x0, x61, x58); + fiat_bls12_381_q2_addcarryx_u64(&x64, &x65, x63, x59, x56); + fiat_bls12_381_q2_addcarryx_u64(&x66, &x67, x65, x57, x54); + fiat_bls12_381_q2_addcarryx_u64(&x68, &x69, x67, x55, x52); + fiat_bls12_381_q2_addcarryx_u64(&x70, &x71, x69, x53, x50); + fiat_bls12_381_q2_addcarryx_u64(&x72, &x73, 0x0, x38, x60); + fiat_bls12_381_q2_addcarryx_u64(&x74, &x75, x73, x40, x62); + fiat_bls12_381_q2_addcarryx_u64(&x76, &x77, x75, x42, x64); + fiat_bls12_381_q2_addcarryx_u64(&x78, &x79, x77, x44, x66); + fiat_bls12_381_q2_addcarryx_u64(&x80, &x81, x79, x46, x68); + fiat_bls12_381_q2_addcarryx_u64(&x82, &x83, x81, (x47 + (x37 + (x25 + x5))), x70); + fiat_bls12_381_q2_addcarryx_u64(&x84, &x85, 0x0, x74, (arg1[2])); + fiat_bls12_381_q2_addcarryx_u64(&x86, &x87, x85, x76, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x88, &x89, x87, x78, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x90, &x91, x89, x80, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x92, &x93, x91, x82, 0x0); + fiat_bls12_381_q2_mulx_u64(&x94, &x95, x84, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x96, &x97, x94, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x98, &x99, x94, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x100, &x101, x94, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x102, &x103, x94, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x104, &x105, x94, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x106, &x107, x94, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x108, &x109, 0x0, x107, x104); + fiat_bls12_381_q2_addcarryx_u64(&x110, &x111, x109, x105, x102); + fiat_bls12_381_q2_addcarryx_u64(&x112, &x113, x111, x103, x100); + fiat_bls12_381_q2_addcarryx_u64(&x114, &x115, x113, x101, x98); + fiat_bls12_381_q2_addcarryx_u64(&x116, &x117, x115, x99, x96); + fiat_bls12_381_q2_addcarryx_u64(&x118, &x119, 0x0, x84, x106); + fiat_bls12_381_q2_addcarryx_u64(&x120, &x121, x119, x86, x108); + fiat_bls12_381_q2_addcarryx_u64(&x122, &x123, x121, x88, x110); + fiat_bls12_381_q2_addcarryx_u64(&x124, &x125, x123, x90, x112); + fiat_bls12_381_q2_addcarryx_u64(&x126, &x127, x125, x92, x114); + fiat_bls12_381_q2_addcarryx_u64(&x128, &x129, x127, (x93 + (x83 + (x71 + x51))), x116); + fiat_bls12_381_q2_addcarryx_u64(&x130, &x131, 0x0, x120, (arg1[3])); + fiat_bls12_381_q2_addcarryx_u64(&x132, &x133, x131, x122, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x134, &x135, x133, x124, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x136, &x137, x135, x126, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x138, &x139, x137, x128, 0x0); + fiat_bls12_381_q2_mulx_u64(&x140, &x141, x130, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x142, &x143, x140, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x144, &x145, x140, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x146, &x147, x140, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x148, &x149, x140, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x150, &x151, x140, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x152, &x153, x140, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x154, &x155, 0x0, x153, x150); + fiat_bls12_381_q2_addcarryx_u64(&x156, &x157, x155, x151, x148); + fiat_bls12_381_q2_addcarryx_u64(&x158, &x159, x157, x149, x146); + fiat_bls12_381_q2_addcarryx_u64(&x160, &x161, x159, x147, x144); + fiat_bls12_381_q2_addcarryx_u64(&x162, &x163, x161, x145, x142); + fiat_bls12_381_q2_addcarryx_u64(&x164, &x165, 0x0, x130, x152); + fiat_bls12_381_q2_addcarryx_u64(&x166, &x167, x165, x132, x154); + fiat_bls12_381_q2_addcarryx_u64(&x168, &x169, x167, x134, x156); + fiat_bls12_381_q2_addcarryx_u64(&x170, &x171, x169, x136, x158); + fiat_bls12_381_q2_addcarryx_u64(&x172, &x173, x171, x138, x160); + fiat_bls12_381_q2_addcarryx_u64(&x174, &x175, x173, (x139 + (x129 + (x117 + x97))), x162); + fiat_bls12_381_q2_addcarryx_u64(&x176, &x177, 0x0, x166, (arg1[4])); + fiat_bls12_381_q2_addcarryx_u64(&x178, &x179, x177, x168, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x180, &x181, x179, x170, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x182, &x183, x181, x172, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x184, &x185, x183, x174, 0x0); + fiat_bls12_381_q2_mulx_u64(&x186, &x187, x176, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x188, &x189, x186, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x190, &x191, x186, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x192, &x193, x186, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x194, &x195, x186, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x196, &x197, x186, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x198, &x199, x186, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x200, &x201, 0x0, x199, x196); + fiat_bls12_381_q2_addcarryx_u64(&x202, &x203, x201, x197, x194); + fiat_bls12_381_q2_addcarryx_u64(&x204, &x205, x203, x195, x192); + fiat_bls12_381_q2_addcarryx_u64(&x206, &x207, x205, x193, x190); + fiat_bls12_381_q2_addcarryx_u64(&x208, &x209, x207, x191, x188); + fiat_bls12_381_q2_addcarryx_u64(&x210, &x211, 0x0, x176, x198); + fiat_bls12_381_q2_addcarryx_u64(&x212, &x213, x211, x178, x200); + fiat_bls12_381_q2_addcarryx_u64(&x214, &x215, x213, x180, x202); + fiat_bls12_381_q2_addcarryx_u64(&x216, &x217, x215, x182, x204); + fiat_bls12_381_q2_addcarryx_u64(&x218, &x219, x217, x184, x206); + fiat_bls12_381_q2_addcarryx_u64(&x220, &x221, x219, (x185 + (x175 + (x163 + x143))), x208); + fiat_bls12_381_q2_addcarryx_u64(&x222, &x223, 0x0, x212, (arg1[5])); + fiat_bls12_381_q2_addcarryx_u64(&x224, &x225, x223, x214, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x226, &x227, x225, x216, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x228, &x229, x227, x218, 0x0); + fiat_bls12_381_q2_addcarryx_u64(&x230, &x231, x229, x220, 0x0); + fiat_bls12_381_q2_mulx_u64(&x232, &x233, x222, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x234, &x235, x232, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x236, &x237, x232, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x238, &x239, x232, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x240, &x241, x232, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x242, &x243, x232, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x244, &x245, x232, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x246, &x247, 0x0, x245, x242); + fiat_bls12_381_q2_addcarryx_u64(&x248, &x249, x247, x243, x240); + fiat_bls12_381_q2_addcarryx_u64(&x250, &x251, x249, x241, x238); + fiat_bls12_381_q2_addcarryx_u64(&x252, &x253, x251, x239, x236); + fiat_bls12_381_q2_addcarryx_u64(&x254, &x255, x253, x237, x234); + fiat_bls12_381_q2_addcarryx_u64(&x256, &x257, 0x0, x222, x244); + fiat_bls12_381_q2_addcarryx_u64(&x258, &x259, x257, x224, x246); + fiat_bls12_381_q2_addcarryx_u64(&x260, &x261, x259, x226, x248); + fiat_bls12_381_q2_addcarryx_u64(&x262, &x263, x261, x228, x250); + fiat_bls12_381_q2_addcarryx_u64(&x264, &x265, x263, x230, x252); + fiat_bls12_381_q2_addcarryx_u64(&x266, &x267, x265, (x231 + (x221 + (x209 + x189))), x254); + x268 = (x267 + (x255 + x235)); + fiat_bls12_381_q2_subborrowx_u64(&x269, &x270, 0x0, x258, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x271, &x272, x270, x260, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x273, &x274, x272, x262, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x275, &x276, x274, x264, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x277, &x278, x276, x266, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x279, &x280, x278, x268, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x281, &x282, x280, 0x0, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x283, x282, x269, x258); + fiat_bls12_381_q2_cmovznz_u64(&x284, x282, x271, x260); + fiat_bls12_381_q2_cmovznz_u64(&x285, x282, x273, x262); + fiat_bls12_381_q2_cmovznz_u64(&x286, x282, x275, x264); + fiat_bls12_381_q2_cmovznz_u64(&x287, x282, x277, x266); + fiat_bls12_381_q2_cmovznz_u64(&x288, x282, x279, x268); + out1[0] = x283; + out1[1] = x284; + out1[2] = x285; + out1[3] = x286; + out1[4] = x287; + out1[5] = x288; +} + +/* + * The function fiat_bls12_381_q2_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 + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_bls12_381_q2_to_montgomery(uint64_t out1[6], const uint64_t arg1[6]) { + 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; + fiat_bls12_381_q2_uint1 x20; + uint64_t x21; + fiat_bls12_381_q2_uint1 x22; + uint64_t x23; + fiat_bls12_381_q2_uint1 x24; + uint64_t x25; + fiat_bls12_381_q2_uint1 x26; + uint64_t x27; + fiat_bls12_381_q2_uint1 x28; + uint64_t x29; + uint64_t x30; + uint64_t x31; + uint64_t x32; + uint64_t x33; + uint64_t x34; + uint64_t x35; + uint64_t x36; + uint64_t x37; + uint64_t x38; + uint64_t x39; + uint64_t x40; + uint64_t x41; + uint64_t x42; + uint64_t x43; + fiat_bls12_381_q2_uint1 x44; + uint64_t x45; + fiat_bls12_381_q2_uint1 x46; + uint64_t x47; + fiat_bls12_381_q2_uint1 x48; + uint64_t x49; + fiat_bls12_381_q2_uint1 x50; + uint64_t x51; + fiat_bls12_381_q2_uint1 x52; + uint64_t x53; + fiat_bls12_381_q2_uint1 x54; + uint64_t x55; + fiat_bls12_381_q2_uint1 x56; + uint64_t x57; + fiat_bls12_381_q2_uint1 x58; + uint64_t x59; + fiat_bls12_381_q2_uint1 x60; + uint64_t x61; + fiat_bls12_381_q2_uint1 x62; + uint64_t x63; + fiat_bls12_381_q2_uint1 x64; + uint64_t x65; + uint64_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; + fiat_bls12_381_q2_uint1 x78; + uint64_t x79; + fiat_bls12_381_q2_uint1 x80; + uint64_t x81; + fiat_bls12_381_q2_uint1 x82; + uint64_t x83; + fiat_bls12_381_q2_uint1 x84; + uint64_t x85; + fiat_bls12_381_q2_uint1 x86; + uint64_t x87; + fiat_bls12_381_q2_uint1 x88; + uint64_t x89; + fiat_bls12_381_q2_uint1 x90; + uint64_t x91; + fiat_bls12_381_q2_uint1 x92; + uint64_t x93; + fiat_bls12_381_q2_uint1 x94; + uint64_t x95; + fiat_bls12_381_q2_uint1 x96; + uint64_t x97; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x114; + uint64_t x115; + fiat_bls12_381_q2_uint1 x116; + uint64_t x117; + fiat_bls12_381_q2_uint1 x118; + uint64_t x119; + fiat_bls12_381_q2_uint1 x120; + uint64_t x121; + fiat_bls12_381_q2_uint1 x122; + uint64_t x123; + fiat_bls12_381_q2_uint1 x124; + uint64_t x125; + fiat_bls12_381_q2_uint1 x126; + uint64_t x127; + fiat_bls12_381_q2_uint1 x128; + uint64_t x129; + fiat_bls12_381_q2_uint1 x130; + uint64_t x131; + fiat_bls12_381_q2_uint1 x132; + uint64_t x133; + fiat_bls12_381_q2_uint1 x134; + uint64_t x135; + uint64_t x136; + uint64_t x137; + uint64_t x138; + uint64_t 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; + fiat_bls12_381_q2_uint1 x148; + uint64_t x149; + fiat_bls12_381_q2_uint1 x150; + uint64_t x151; + fiat_bls12_381_q2_uint1 x152; + uint64_t x153; + fiat_bls12_381_q2_uint1 x154; + uint64_t x155; + fiat_bls12_381_q2_uint1 x156; + uint64_t x157; + fiat_bls12_381_q2_uint1 x158; + uint64_t x159; + fiat_bls12_381_q2_uint1 x160; + uint64_t x161; + fiat_bls12_381_q2_uint1 x162; + uint64_t x163; + fiat_bls12_381_q2_uint1 x164; + uint64_t x165; + fiat_bls12_381_q2_uint1 x166; + uint64_t x167; + fiat_bls12_381_q2_uint1 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; + uint64_t x178; + uint64_t x179; + uint64_t x180; + uint64_t x181; + uint64_t x182; + uint64_t x183; + fiat_bls12_381_q2_uint1 x184; + uint64_t x185; + fiat_bls12_381_q2_uint1 x186; + uint64_t x187; + fiat_bls12_381_q2_uint1 x188; + uint64_t x189; + fiat_bls12_381_q2_uint1 x190; + uint64_t x191; + fiat_bls12_381_q2_uint1 x192; + uint64_t x193; + fiat_bls12_381_q2_uint1 x194; + uint64_t x195; + fiat_bls12_381_q2_uint1 x196; + uint64_t x197; + fiat_bls12_381_q2_uint1 x198; + uint64_t x199; + fiat_bls12_381_q2_uint1 x200; + uint64_t x201; + fiat_bls12_381_q2_uint1 x202; + uint64_t x203; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x218; + uint64_t x219; + fiat_bls12_381_q2_uint1 x220; + uint64_t x221; + fiat_bls12_381_q2_uint1 x222; + uint64_t x223; + fiat_bls12_381_q2_uint1 x224; + uint64_t x225; + fiat_bls12_381_q2_uint1 x226; + uint64_t x227; + fiat_bls12_381_q2_uint1 x228; + uint64_t x229; + fiat_bls12_381_q2_uint1 x230; + uint64_t x231; + fiat_bls12_381_q2_uint1 x232; + uint64_t x233; + fiat_bls12_381_q2_uint1 x234; + uint64_t x235; + fiat_bls12_381_q2_uint1 x236; + uint64_t x237; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x254; + uint64_t x255; + fiat_bls12_381_q2_uint1 x256; + uint64_t x257; + fiat_bls12_381_q2_uint1 x258; + uint64_t x259; + fiat_bls12_381_q2_uint1 x260; + uint64_t x261; + fiat_bls12_381_q2_uint1 x262; + uint64_t x263; + fiat_bls12_381_q2_uint1 x264; + uint64_t x265; + fiat_bls12_381_q2_uint1 x266; + uint64_t x267; + fiat_bls12_381_q2_uint1 x268; + uint64_t x269; + fiat_bls12_381_q2_uint1 x270; + uint64_t x271; + fiat_bls12_381_q2_uint1 x272; + uint64_t x273; + fiat_bls12_381_q2_uint1 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; + fiat_bls12_381_q2_uint1 x288; + uint64_t x289; + fiat_bls12_381_q2_uint1 x290; + uint64_t x291; + fiat_bls12_381_q2_uint1 x292; + uint64_t x293; + fiat_bls12_381_q2_uint1 x294; + uint64_t x295; + fiat_bls12_381_q2_uint1 x296; + uint64_t x297; + fiat_bls12_381_q2_uint1 x298; + uint64_t x299; + fiat_bls12_381_q2_uint1 x300; + uint64_t x301; + fiat_bls12_381_q2_uint1 x302; + uint64_t x303; + fiat_bls12_381_q2_uint1 x304; + uint64_t x305; + fiat_bls12_381_q2_uint1 x306; + uint64_t x307; + fiat_bls12_381_q2_uint1 x308; + uint64_t 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; + fiat_bls12_381_q2_uint1 x324; + uint64_t x325; + fiat_bls12_381_q2_uint1 x326; + uint64_t x327; + fiat_bls12_381_q2_uint1 x328; + uint64_t x329; + fiat_bls12_381_q2_uint1 x330; + uint64_t x331; + fiat_bls12_381_q2_uint1 x332; + uint64_t x333; + fiat_bls12_381_q2_uint1 x334; + uint64_t x335; + fiat_bls12_381_q2_uint1 x336; + uint64_t x337; + fiat_bls12_381_q2_uint1 x338; + uint64_t x339; + fiat_bls12_381_q2_uint1 x340; + uint64_t x341; + fiat_bls12_381_q2_uint1 x342; + uint64_t x343; + fiat_bls12_381_q2_uint1 x344; + uint64_t x345; + uint64_t x346; + uint64_t x347; + uint64_t x348; + uint64_t x349; + uint64_t x350; + uint64_t x351; + uint64_t x352; + uint64_t x353; + uint64_t x354; + uint64_t x355; + uint64_t x356; + uint64_t x357; + fiat_bls12_381_q2_uint1 x358; + uint64_t x359; + fiat_bls12_381_q2_uint1 x360; + uint64_t x361; + fiat_bls12_381_q2_uint1 x362; + uint64_t x363; + fiat_bls12_381_q2_uint1 x364; + uint64_t x365; + fiat_bls12_381_q2_uint1 x366; + uint64_t x367; + fiat_bls12_381_q2_uint1 x368; + uint64_t x369; + fiat_bls12_381_q2_uint1 x370; + uint64_t x371; + fiat_bls12_381_q2_uint1 x372; + uint64_t x373; + fiat_bls12_381_q2_uint1 x374; + uint64_t x375; + fiat_bls12_381_q2_uint1 x376; + uint64_t x377; + fiat_bls12_381_q2_uint1 x378; + uint64_t x379; + uint64_t x380; + uint64_t x381; + uint64_t 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; + fiat_bls12_381_q2_uint1 x394; + uint64_t x395; + fiat_bls12_381_q2_uint1 x396; + uint64_t x397; + fiat_bls12_381_q2_uint1 x398; + uint64_t x399; + fiat_bls12_381_q2_uint1 x400; + uint64_t x401; + fiat_bls12_381_q2_uint1 x402; + uint64_t x403; + fiat_bls12_381_q2_uint1 x404; + uint64_t x405; + fiat_bls12_381_q2_uint1 x406; + uint64_t x407; + fiat_bls12_381_q2_uint1 x408; + uint64_t x409; + fiat_bls12_381_q2_uint1 x410; + uint64_t x411; + fiat_bls12_381_q2_uint1 x412; + uint64_t x413; + fiat_bls12_381_q2_uint1 x414; + uint64_t x415; + uint64_t x416; + fiat_bls12_381_q2_uint1 x417; + uint64_t x418; + fiat_bls12_381_q2_uint1 x419; + uint64_t x420; + fiat_bls12_381_q2_uint1 x421; + uint64_t x422; + fiat_bls12_381_q2_uint1 x423; + uint64_t x424; + fiat_bls12_381_q2_uint1 x425; + uint64_t x426; + fiat_bls12_381_q2_uint1 x427; + uint64_t x428; + fiat_bls12_381_q2_uint1 x429; + uint64_t x430; + uint64_t x431; + uint64_t x432; + uint64_t x433; + uint64_t x434; + uint64_t x435; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[0]); + fiat_bls12_381_q2_mulx_u64(&x7, &x8, x6, UINT64_C(0x11988fe592cae3aa)); + fiat_bls12_381_q2_mulx_u64(&x9, &x10, x6, UINT64_C(0x9a793e85b519952d)); + fiat_bls12_381_q2_mulx_u64(&x11, &x12, x6, UINT64_C(0x67eb88a9939d83c0)); + fiat_bls12_381_q2_mulx_u64(&x13, &x14, x6, UINT64_C(0x8de5476c4c95b6d5)); + fiat_bls12_381_q2_mulx_u64(&x15, &x16, x6, UINT64_C(0xa76e6a609d104f1)); + fiat_bls12_381_q2_mulx_u64(&x17, &x18, x6, UINT64_C(0xf4df1f341c341746)); + fiat_bls12_381_q2_addcarryx_u64(&x19, &x20, 0x0, x18, x15); + fiat_bls12_381_q2_addcarryx_u64(&x21, &x22, x20, x16, x13); + fiat_bls12_381_q2_addcarryx_u64(&x23, &x24, x22, x14, x11); + fiat_bls12_381_q2_addcarryx_u64(&x25, &x26, x24, x12, x9); + fiat_bls12_381_q2_addcarryx_u64(&x27, &x28, x26, x10, x7); + fiat_bls12_381_q2_mulx_u64(&x29, &x30, x17, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x31, &x32, x29, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x33, &x34, x29, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x35, &x36, x29, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x37, &x38, x29, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x39, &x40, x29, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x41, &x42, x29, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x43, &x44, 0x0, x42, x39); + fiat_bls12_381_q2_addcarryx_u64(&x45, &x46, x44, x40, x37); + fiat_bls12_381_q2_addcarryx_u64(&x47, &x48, x46, x38, x35); + fiat_bls12_381_q2_addcarryx_u64(&x49, &x50, x48, x36, x33); + fiat_bls12_381_q2_addcarryx_u64(&x51, &x52, x50, x34, x31); + fiat_bls12_381_q2_addcarryx_u64(&x53, &x54, 0x0, x17, x41); + fiat_bls12_381_q2_addcarryx_u64(&x55, &x56, x54, x19, x43); + fiat_bls12_381_q2_addcarryx_u64(&x57, &x58, x56, x21, x45); + fiat_bls12_381_q2_addcarryx_u64(&x59, &x60, x58, x23, x47); + fiat_bls12_381_q2_addcarryx_u64(&x61, &x62, x60, x25, x49); + fiat_bls12_381_q2_addcarryx_u64(&x63, &x64, x62, x27, x51); + fiat_bls12_381_q2_mulx_u64(&x65, &x66, x1, UINT64_C(0x11988fe592cae3aa)); + fiat_bls12_381_q2_mulx_u64(&x67, &x68, x1, UINT64_C(0x9a793e85b519952d)); + fiat_bls12_381_q2_mulx_u64(&x69, &x70, x1, UINT64_C(0x67eb88a9939d83c0)); + fiat_bls12_381_q2_mulx_u64(&x71, &x72, x1, UINT64_C(0x8de5476c4c95b6d5)); + fiat_bls12_381_q2_mulx_u64(&x73, &x74, x1, UINT64_C(0xa76e6a609d104f1)); + fiat_bls12_381_q2_mulx_u64(&x75, &x76, x1, UINT64_C(0xf4df1f341c341746)); + fiat_bls12_381_q2_addcarryx_u64(&x77, &x78, 0x0, x76, x73); + fiat_bls12_381_q2_addcarryx_u64(&x79, &x80, x78, x74, x71); + fiat_bls12_381_q2_addcarryx_u64(&x81, &x82, x80, x72, x69); + fiat_bls12_381_q2_addcarryx_u64(&x83, &x84, x82, x70, x67); + fiat_bls12_381_q2_addcarryx_u64(&x85, &x86, x84, x68, x65); + fiat_bls12_381_q2_addcarryx_u64(&x87, &x88, 0x0, x55, x75); + fiat_bls12_381_q2_addcarryx_u64(&x89, &x90, x88, x57, x77); + fiat_bls12_381_q2_addcarryx_u64(&x91, &x92, x90, x59, x79); + fiat_bls12_381_q2_addcarryx_u64(&x93, &x94, x92, x61, x81); + fiat_bls12_381_q2_addcarryx_u64(&x95, &x96, x94, x63, x83); + fiat_bls12_381_q2_addcarryx_u64(&x97, &x98, x96, ((x64 + (x28 + x8)) + (x52 + x32)), x85); + fiat_bls12_381_q2_mulx_u64(&x99, &x100, x87, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x101, &x102, x99, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x103, &x104, x99, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x105, &x106, x99, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x107, &x108, x99, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x109, &x110, x99, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x111, &x112, x99, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x113, &x114, 0x0, x112, x109); + fiat_bls12_381_q2_addcarryx_u64(&x115, &x116, x114, x110, x107); + fiat_bls12_381_q2_addcarryx_u64(&x117, &x118, x116, x108, x105); + fiat_bls12_381_q2_addcarryx_u64(&x119, &x120, x118, x106, x103); + fiat_bls12_381_q2_addcarryx_u64(&x121, &x122, x120, x104, x101); + fiat_bls12_381_q2_addcarryx_u64(&x123, &x124, 0x0, x87, x111); + fiat_bls12_381_q2_addcarryx_u64(&x125, &x126, x124, x89, x113); + fiat_bls12_381_q2_addcarryx_u64(&x127, &x128, x126, x91, x115); + fiat_bls12_381_q2_addcarryx_u64(&x129, &x130, x128, x93, x117); + fiat_bls12_381_q2_addcarryx_u64(&x131, &x132, x130, x95, x119); + fiat_bls12_381_q2_addcarryx_u64(&x133, &x134, x132, x97, x121); + fiat_bls12_381_q2_mulx_u64(&x135, &x136, x2, UINT64_C(0x11988fe592cae3aa)); + fiat_bls12_381_q2_mulx_u64(&x137, &x138, x2, UINT64_C(0x9a793e85b519952d)); + fiat_bls12_381_q2_mulx_u64(&x139, &x140, x2, UINT64_C(0x67eb88a9939d83c0)); + fiat_bls12_381_q2_mulx_u64(&x141, &x142, x2, UINT64_C(0x8de5476c4c95b6d5)); + fiat_bls12_381_q2_mulx_u64(&x143, &x144, x2, UINT64_C(0xa76e6a609d104f1)); + fiat_bls12_381_q2_mulx_u64(&x145, &x146, x2, UINT64_C(0xf4df1f341c341746)); + fiat_bls12_381_q2_addcarryx_u64(&x147, &x148, 0x0, x146, x143); + fiat_bls12_381_q2_addcarryx_u64(&x149, &x150, x148, x144, x141); + fiat_bls12_381_q2_addcarryx_u64(&x151, &x152, x150, x142, x139); + fiat_bls12_381_q2_addcarryx_u64(&x153, &x154, x152, x140, x137); + fiat_bls12_381_q2_addcarryx_u64(&x155, &x156, x154, x138, x135); + fiat_bls12_381_q2_addcarryx_u64(&x157, &x158, 0x0, x125, x145); + fiat_bls12_381_q2_addcarryx_u64(&x159, &x160, x158, x127, x147); + fiat_bls12_381_q2_addcarryx_u64(&x161, &x162, x160, x129, x149); + fiat_bls12_381_q2_addcarryx_u64(&x163, &x164, x162, x131, x151); + fiat_bls12_381_q2_addcarryx_u64(&x165, &x166, x164, x133, x153); + fiat_bls12_381_q2_addcarryx_u64(&x167, &x168, x166, ((x134 + (x98 + (x86 + x66))) + (x122 + x102)), x155); + fiat_bls12_381_q2_mulx_u64(&x169, &x170, x157, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x171, &x172, x169, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x173, &x174, x169, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x175, &x176, x169, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x177, &x178, x169, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x179, &x180, x169, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x181, &x182, x169, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x183, &x184, 0x0, x182, x179); + fiat_bls12_381_q2_addcarryx_u64(&x185, &x186, x184, x180, x177); + fiat_bls12_381_q2_addcarryx_u64(&x187, &x188, x186, x178, x175); + fiat_bls12_381_q2_addcarryx_u64(&x189, &x190, x188, x176, x173); + fiat_bls12_381_q2_addcarryx_u64(&x191, &x192, x190, x174, x171); + fiat_bls12_381_q2_addcarryx_u64(&x193, &x194, 0x0, x157, x181); + fiat_bls12_381_q2_addcarryx_u64(&x195, &x196, x194, x159, x183); + fiat_bls12_381_q2_addcarryx_u64(&x197, &x198, x196, x161, x185); + fiat_bls12_381_q2_addcarryx_u64(&x199, &x200, x198, x163, x187); + fiat_bls12_381_q2_addcarryx_u64(&x201, &x202, x200, x165, x189); + fiat_bls12_381_q2_addcarryx_u64(&x203, &x204, x202, x167, x191); + fiat_bls12_381_q2_mulx_u64(&x205, &x206, x3, UINT64_C(0x11988fe592cae3aa)); + fiat_bls12_381_q2_mulx_u64(&x207, &x208, x3, UINT64_C(0x9a793e85b519952d)); + fiat_bls12_381_q2_mulx_u64(&x209, &x210, x3, UINT64_C(0x67eb88a9939d83c0)); + fiat_bls12_381_q2_mulx_u64(&x211, &x212, x3, UINT64_C(0x8de5476c4c95b6d5)); + fiat_bls12_381_q2_mulx_u64(&x213, &x214, x3, UINT64_C(0xa76e6a609d104f1)); + fiat_bls12_381_q2_mulx_u64(&x215, &x216, x3, UINT64_C(0xf4df1f341c341746)); + fiat_bls12_381_q2_addcarryx_u64(&x217, &x218, 0x0, x216, x213); + fiat_bls12_381_q2_addcarryx_u64(&x219, &x220, x218, x214, x211); + fiat_bls12_381_q2_addcarryx_u64(&x221, &x222, x220, x212, x209); + fiat_bls12_381_q2_addcarryx_u64(&x223, &x224, x222, x210, x207); + fiat_bls12_381_q2_addcarryx_u64(&x225, &x226, x224, x208, x205); + fiat_bls12_381_q2_addcarryx_u64(&x227, &x228, 0x0, x195, x215); + fiat_bls12_381_q2_addcarryx_u64(&x229, &x230, x228, x197, x217); + fiat_bls12_381_q2_addcarryx_u64(&x231, &x232, x230, x199, x219); + fiat_bls12_381_q2_addcarryx_u64(&x233, &x234, x232, x201, x221); + fiat_bls12_381_q2_addcarryx_u64(&x235, &x236, x234, x203, x223); + fiat_bls12_381_q2_addcarryx_u64(&x237, &x238, x236, ((x204 + (x168 + (x156 + x136))) + (x192 + x172)), x225); + fiat_bls12_381_q2_mulx_u64(&x239, &x240, x227, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x241, &x242, x239, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x243, &x244, x239, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x245, &x246, x239, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x247, &x248, x239, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x249, &x250, x239, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x251, &x252, x239, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x253, &x254, 0x0, x252, x249); + fiat_bls12_381_q2_addcarryx_u64(&x255, &x256, x254, x250, x247); + fiat_bls12_381_q2_addcarryx_u64(&x257, &x258, x256, x248, x245); + fiat_bls12_381_q2_addcarryx_u64(&x259, &x260, x258, x246, x243); + fiat_bls12_381_q2_addcarryx_u64(&x261, &x262, x260, x244, x241); + fiat_bls12_381_q2_addcarryx_u64(&x263, &x264, 0x0, x227, x251); + fiat_bls12_381_q2_addcarryx_u64(&x265, &x266, x264, x229, x253); + fiat_bls12_381_q2_addcarryx_u64(&x267, &x268, x266, x231, x255); + fiat_bls12_381_q2_addcarryx_u64(&x269, &x270, x268, x233, x257); + fiat_bls12_381_q2_addcarryx_u64(&x271, &x272, x270, x235, x259); + fiat_bls12_381_q2_addcarryx_u64(&x273, &x274, x272, x237, x261); + fiat_bls12_381_q2_mulx_u64(&x275, &x276, x4, UINT64_C(0x11988fe592cae3aa)); + fiat_bls12_381_q2_mulx_u64(&x277, &x278, x4, UINT64_C(0x9a793e85b519952d)); + fiat_bls12_381_q2_mulx_u64(&x279, &x280, x4, UINT64_C(0x67eb88a9939d83c0)); + fiat_bls12_381_q2_mulx_u64(&x281, &x282, x4, UINT64_C(0x8de5476c4c95b6d5)); + fiat_bls12_381_q2_mulx_u64(&x283, &x284, x4, UINT64_C(0xa76e6a609d104f1)); + fiat_bls12_381_q2_mulx_u64(&x285, &x286, x4, UINT64_C(0xf4df1f341c341746)); + fiat_bls12_381_q2_addcarryx_u64(&x287, &x288, 0x0, x286, x283); + fiat_bls12_381_q2_addcarryx_u64(&x289, &x290, x288, x284, x281); + fiat_bls12_381_q2_addcarryx_u64(&x291, &x292, x290, x282, x279); + fiat_bls12_381_q2_addcarryx_u64(&x293, &x294, x292, x280, x277); + fiat_bls12_381_q2_addcarryx_u64(&x295, &x296, x294, x278, x275); + fiat_bls12_381_q2_addcarryx_u64(&x297, &x298, 0x0, x265, x285); + fiat_bls12_381_q2_addcarryx_u64(&x299, &x300, x298, x267, x287); + fiat_bls12_381_q2_addcarryx_u64(&x301, &x302, x300, x269, x289); + fiat_bls12_381_q2_addcarryx_u64(&x303, &x304, x302, x271, x291); + fiat_bls12_381_q2_addcarryx_u64(&x305, &x306, x304, x273, x293); + fiat_bls12_381_q2_addcarryx_u64(&x307, &x308, x306, ((x274 + (x238 + (x226 + x206))) + (x262 + x242)), x295); + fiat_bls12_381_q2_mulx_u64(&x309, &x310, x297, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x311, &x312, x309, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x313, &x314, x309, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x315, &x316, x309, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x317, &x318, x309, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x319, &x320, x309, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x321, &x322, x309, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x323, &x324, 0x0, x322, x319); + fiat_bls12_381_q2_addcarryx_u64(&x325, &x326, x324, x320, x317); + fiat_bls12_381_q2_addcarryx_u64(&x327, &x328, x326, x318, x315); + fiat_bls12_381_q2_addcarryx_u64(&x329, &x330, x328, x316, x313); + fiat_bls12_381_q2_addcarryx_u64(&x331, &x332, x330, x314, x311); + fiat_bls12_381_q2_addcarryx_u64(&x333, &x334, 0x0, x297, x321); + fiat_bls12_381_q2_addcarryx_u64(&x335, &x336, x334, x299, x323); + fiat_bls12_381_q2_addcarryx_u64(&x337, &x338, x336, x301, x325); + fiat_bls12_381_q2_addcarryx_u64(&x339, &x340, x338, x303, x327); + fiat_bls12_381_q2_addcarryx_u64(&x341, &x342, x340, x305, x329); + fiat_bls12_381_q2_addcarryx_u64(&x343, &x344, x342, x307, x331); + fiat_bls12_381_q2_mulx_u64(&x345, &x346, x5, UINT64_C(0x11988fe592cae3aa)); + fiat_bls12_381_q2_mulx_u64(&x347, &x348, x5, UINT64_C(0x9a793e85b519952d)); + fiat_bls12_381_q2_mulx_u64(&x349, &x350, x5, UINT64_C(0x67eb88a9939d83c0)); + fiat_bls12_381_q2_mulx_u64(&x351, &x352, x5, UINT64_C(0x8de5476c4c95b6d5)); + fiat_bls12_381_q2_mulx_u64(&x353, &x354, x5, UINT64_C(0xa76e6a609d104f1)); + fiat_bls12_381_q2_mulx_u64(&x355, &x356, x5, UINT64_C(0xf4df1f341c341746)); + fiat_bls12_381_q2_addcarryx_u64(&x357, &x358, 0x0, x356, x353); + fiat_bls12_381_q2_addcarryx_u64(&x359, &x360, x358, x354, x351); + fiat_bls12_381_q2_addcarryx_u64(&x361, &x362, x360, x352, x349); + fiat_bls12_381_q2_addcarryx_u64(&x363, &x364, x362, x350, x347); + fiat_bls12_381_q2_addcarryx_u64(&x365, &x366, x364, x348, x345); + fiat_bls12_381_q2_addcarryx_u64(&x367, &x368, 0x0, x335, x355); + fiat_bls12_381_q2_addcarryx_u64(&x369, &x370, x368, x337, x357); + fiat_bls12_381_q2_addcarryx_u64(&x371, &x372, x370, x339, x359); + fiat_bls12_381_q2_addcarryx_u64(&x373, &x374, x372, x341, x361); + fiat_bls12_381_q2_addcarryx_u64(&x375, &x376, x374, x343, x363); + fiat_bls12_381_q2_addcarryx_u64(&x377, &x378, x376, ((x344 + (x308 + (x296 + x276))) + (x332 + x312)), x365); + fiat_bls12_381_q2_mulx_u64(&x379, &x380, x367, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q2_mulx_u64(&x381, &x382, x379, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_mulx_u64(&x383, &x384, x379, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_mulx_u64(&x385, &x386, x379, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_mulx_u64(&x387, &x388, x379, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_mulx_u64(&x389, &x390, x379, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_mulx_u64(&x391, &x392, x379, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_addcarryx_u64(&x393, &x394, 0x0, x392, x389); + fiat_bls12_381_q2_addcarryx_u64(&x395, &x396, x394, x390, x387); + fiat_bls12_381_q2_addcarryx_u64(&x397, &x398, x396, x388, x385); + fiat_bls12_381_q2_addcarryx_u64(&x399, &x400, x398, x386, x383); + fiat_bls12_381_q2_addcarryx_u64(&x401, &x402, x400, x384, x381); + fiat_bls12_381_q2_addcarryx_u64(&x403, &x404, 0x0, x367, x391); + fiat_bls12_381_q2_addcarryx_u64(&x405, &x406, x404, x369, x393); + fiat_bls12_381_q2_addcarryx_u64(&x407, &x408, x406, x371, x395); + fiat_bls12_381_q2_addcarryx_u64(&x409, &x410, x408, x373, x397); + fiat_bls12_381_q2_addcarryx_u64(&x411, &x412, x410, x375, x399); + fiat_bls12_381_q2_addcarryx_u64(&x413, &x414, x412, x377, x401); + x415 = ((x414 + (x378 + (x366 + x346))) + (x402 + x382)); + fiat_bls12_381_q2_subborrowx_u64(&x416, &x417, 0x0, x405, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q2_subborrowx_u64(&x418, &x419, x417, x407, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q2_subborrowx_u64(&x420, &x421, x419, x409, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q2_subborrowx_u64(&x422, &x423, x421, x411, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q2_subborrowx_u64(&x424, &x425, x423, x413, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q2_subborrowx_u64(&x426, &x427, x425, x415, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q2_subborrowx_u64(&x428, &x429, x427, 0x0, 0x0); + fiat_bls12_381_q2_cmovznz_u64(&x430, x429, x416, x405); + fiat_bls12_381_q2_cmovznz_u64(&x431, x429, x418, x407); + fiat_bls12_381_q2_cmovznz_u64(&x432, x429, x420, x409); + fiat_bls12_381_q2_cmovznz_u64(&x433, x429, x422, x411); + fiat_bls12_381_q2_cmovznz_u64(&x434, x429, x424, x413); + fiat_bls12_381_q2_cmovznz_u64(&x435, x429, x426, x415); + out1[0] = x430; + out1[1] = x431; + out1[2] = x432; + out1[3] = x433; + out1[4] = x434; + out1[5] = x435; +} + +/* + * The function fiat_bls12_381_q2_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0 + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_bls12_381_q2_nonzero(uint64_t* out1, const uint64_t arg1[6]) { + uint64_t x1; + x1 = ((arg1[0]) | ((arg1[1]) | ((arg1[2]) | ((arg1[3]) | ((arg1[4]) | (arg1[5])))))); + *out1 = x1; +} + +/* + * The function fiat_bls12_381_q2_selectznz is a multi-limb conditional select. + * Postconditions: + * eval out1 = (if arg1 = 0 then eval arg2 else eval arg3) + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [[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]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_bls12_381_q2_selectznz(uint64_t out1[6], fiat_bls12_381_q2_uint1 arg1, const uint64_t arg2[6], const uint64_t arg3[6]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + fiat_bls12_381_q2_cmovznz_u64(&x1, arg1, (arg2[0]), (arg3[0])); + fiat_bls12_381_q2_cmovznz_u64(&x2, arg1, (arg2[1]), (arg3[1])); + fiat_bls12_381_q2_cmovznz_u64(&x3, arg1, (arg2[2]), (arg3[2])); + fiat_bls12_381_q2_cmovznz_u64(&x4, arg1, (arg2[3]), (arg3[3])); + fiat_bls12_381_q2_cmovznz_u64(&x5, arg1, (arg2[4]), (arg3[4])); + fiat_bls12_381_q2_cmovznz_u64(&x6, arg1, (arg2[5]), (arg3[5])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; +} + +/* + * The function fiat_bls12_381_q2_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..47] + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0x1fffffffffffffff]] + * 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 ~> 0x1f]] + */ +static void fiat_bls12_381_q2_to_bytes(uint8_t out1[48], const uint64_t arg1[6]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint8_t x7; + uint64_t x8; + uint8_t x9; + uint64_t x10; + uint8_t x11; + uint64_t x12; + uint8_t x13; + uint64_t x14; + uint8_t x15; + uint64_t x16; + uint8_t x17; + uint64_t x18; + uint8_t x19; + uint8_t x20; + uint8_t x21; + uint64_t x22; + uint8_t x23; + uint64_t x24; + uint8_t x25; + uint64_t x26; + uint8_t x27; + uint64_t x28; + uint8_t x29; + uint64_t x30; + uint8_t x31; + uint64_t x32; + uint8_t x33; + uint8_t x34; + uint8_t x35; + uint64_t x36; + uint8_t x37; + uint64_t x38; + uint8_t x39; + uint64_t x40; + uint8_t x41; + uint64_t x42; + uint8_t x43; + uint64_t x44; + uint8_t x45; + uint64_t x46; + uint8_t x47; + uint8_t x48; + uint8_t x49; + uint64_t x50; + uint8_t x51; + uint64_t x52; + uint8_t x53; + uint64_t x54; + uint8_t x55; + uint64_t x56; + uint8_t x57; + uint64_t x58; + uint8_t x59; + uint64_t x60; + uint8_t x61; + uint8_t x62; + uint8_t x63; + uint64_t x64; + uint8_t x65; + uint64_t x66; + uint8_t x67; + uint64_t x68; + uint8_t x69; + uint64_t x70; + uint8_t x71; + uint64_t x72; + uint8_t x73; + uint64_t x74; + uint8_t x75; + uint8_t x76; + uint8_t x77; + uint64_t x78; + uint8_t x79; + uint64_t x80; + uint8_t x81; + uint64_t x82; + uint8_t x83; + uint64_t x84; + uint8_t x85; + uint64_t x86; + uint8_t x87; + uint64_t x88; + uint8_t x89; + uint8_t x90; + x1 = (arg1[5]); + x2 = (arg1[4]); + x3 = (arg1[3]); + x4 = (arg1[2]); + x5 = (arg1[1]); + x6 = (arg1[0]); + x7 = (uint8_t)(x6 & UINT8_C(0xff)); + x8 = (x6 >> 8); + x9 = (uint8_t)(x8 & UINT8_C(0xff)); + x10 = (x8 >> 8); + x11 = (uint8_t)(x10 & UINT8_C(0xff)); + x12 = (x10 >> 8); + x13 = (uint8_t)(x12 & UINT8_C(0xff)); + x14 = (x12 >> 8); + x15 = (uint8_t)(x14 & UINT8_C(0xff)); + x16 = (x14 >> 8); + x17 = (uint8_t)(x16 & UINT8_C(0xff)); + x18 = (x16 >> 8); + x19 = (uint8_t)(x18 & UINT8_C(0xff)); + x20 = (uint8_t)(x18 >> 8); + x21 = (uint8_t)(x5 & UINT8_C(0xff)); + x22 = (x5 >> 8); + x23 = (uint8_t)(x22 & UINT8_C(0xff)); + x24 = (x22 >> 8); + x25 = (uint8_t)(x24 & UINT8_C(0xff)); + x26 = (x24 >> 8); + x27 = (uint8_t)(x26 & UINT8_C(0xff)); + x28 = (x26 >> 8); + x29 = (uint8_t)(x28 & UINT8_C(0xff)); + x30 = (x28 >> 8); + x31 = (uint8_t)(x30 & UINT8_C(0xff)); + x32 = (x30 >> 8); + x33 = (uint8_t)(x32 & UINT8_C(0xff)); + x34 = (uint8_t)(x32 >> 8); + x35 = (uint8_t)(x4 & UINT8_C(0xff)); + x36 = (x4 >> 8); + x37 = (uint8_t)(x36 & UINT8_C(0xff)); + x38 = (x36 >> 8); + x39 = (uint8_t)(x38 & UINT8_C(0xff)); + x40 = (x38 >> 8); + x41 = (uint8_t)(x40 & UINT8_C(0xff)); + x42 = (x40 >> 8); + x43 = (uint8_t)(x42 & UINT8_C(0xff)); + x44 = (x42 >> 8); + x45 = (uint8_t)(x44 & UINT8_C(0xff)); + x46 = (x44 >> 8); + x47 = (uint8_t)(x46 & UINT8_C(0xff)); + x48 = (uint8_t)(x46 >> 8); + x49 = (uint8_t)(x3 & UINT8_C(0xff)); + x50 = (x3 >> 8); + x51 = (uint8_t)(x50 & UINT8_C(0xff)); + x52 = (x50 >> 8); + x53 = (uint8_t)(x52 & UINT8_C(0xff)); + x54 = (x52 >> 8); + x55 = (uint8_t)(x54 & UINT8_C(0xff)); + x56 = (x54 >> 8); + x57 = (uint8_t)(x56 & UINT8_C(0xff)); + x58 = (x56 >> 8); + x59 = (uint8_t)(x58 & UINT8_C(0xff)); + x60 = (x58 >> 8); + x61 = (uint8_t)(x60 & UINT8_C(0xff)); + x62 = (uint8_t)(x60 >> 8); + x63 = (uint8_t)(x2 & UINT8_C(0xff)); + x64 = (x2 >> 8); + x65 = (uint8_t)(x64 & UINT8_C(0xff)); + x66 = (x64 >> 8); + x67 = (uint8_t)(x66 & UINT8_C(0xff)); + x68 = (x66 >> 8); + x69 = (uint8_t)(x68 & UINT8_C(0xff)); + x70 = (x68 >> 8); + x71 = (uint8_t)(x70 & UINT8_C(0xff)); + x72 = (x70 >> 8); + x73 = (uint8_t)(x72 & UINT8_C(0xff)); + x74 = (x72 >> 8); + x75 = (uint8_t)(x74 & UINT8_C(0xff)); + x76 = (uint8_t)(x74 >> 8); + x77 = (uint8_t)(x1 & UINT8_C(0xff)); + x78 = (x1 >> 8); + x79 = (uint8_t)(x78 & UINT8_C(0xff)); + x80 = (x78 >> 8); + x81 = (uint8_t)(x80 & UINT8_C(0xff)); + x82 = (x80 >> 8); + x83 = (uint8_t)(x82 & UINT8_C(0xff)); + x84 = (x82 >> 8); + x85 = (uint8_t)(x84 & UINT8_C(0xff)); + x86 = (x84 >> 8); + x87 = (uint8_t)(x86 & UINT8_C(0xff)); + x88 = (x86 >> 8); + x89 = (uint8_t)(x88 & UINT8_C(0xff)); + x90 = (uint8_t)(x88 >> 8); + out1[0] = x7; + out1[1] = x9; + out1[2] = x11; + out1[3] = x13; + out1[4] = x15; + out1[5] = x17; + out1[6] = x19; + out1[7] = x20; + out1[8] = x21; + out1[9] = x23; + out1[10] = x25; + out1[11] = x27; + out1[12] = x29; + out1[13] = x31; + out1[14] = x33; + out1[15] = x34; + out1[16] = x35; + out1[17] = x37; + out1[18] = x39; + out1[19] = x41; + out1[20] = x43; + out1[21] = x45; + out1[22] = x47; + out1[23] = x48; + out1[24] = x49; + out1[25] = x51; + out1[26] = x53; + out1[27] = x55; + out1[28] = x57; + out1[29] = x59; + out1[30] = x61; + out1[31] = x62; + out1[32] = x63; + out1[33] = x65; + out1[34] = x67; + out1[35] = x69; + out1[36] = x71; + out1[37] = x73; + out1[38] = x75; + out1[39] = x76; + out1[40] = x77; + out1[41] = x79; + out1[42] = x81; + out1[43] = x83; + out1[44] = x85; + out1[45] = x87; + out1[46] = x89; + out1[47] = x90; +} + +/* + * The function fiat_bls12_381_q2_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 ~> 0x1f]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0x1fffffffffffffff]] + */ +static void fiat_bls12_381_q2_from_bytes(uint64_t out1[6], const uint8_t arg1[48]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint8_t x8; + uint64_t x9; + uint64_t x10; + uint64_t x11; + uint64_t x12; + uint64_t x13; + uint64_t x14; + uint64_t x15; + uint8_t x16; + uint64_t x17; + uint64_t x18; + uint64_t x19; + uint64_t x20; + uint64_t x21; + uint64_t x22; + uint64_t x23; + uint8_t x24; + uint64_t x25; + uint64_t x26; + uint64_t x27; + uint64_t x28; + uint64_t x29; + uint64_t x30; + uint64_t x31; + uint8_t x32; + uint64_t x33; + uint64_t x34; + uint64_t x35; + uint64_t x36; + uint64_t x37; + uint64_t x38; + uint64_t x39; + uint8_t x40; + uint64_t x41; + uint64_t x42; + uint64_t x43; + uint64_t x44; + uint64_t x45; + uint64_t x46; + uint64_t x47; + uint8_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; + uint64_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; + x1 = ((uint64_t)(arg1[47]) << 56); + x2 = ((uint64_t)(arg1[46]) << 48); + x3 = ((uint64_t)(arg1[45]) << 40); + x4 = ((uint64_t)(arg1[44]) << 32); + x5 = ((uint64_t)(arg1[43]) << 24); + x6 = ((uint64_t)(arg1[42]) << 16); + x7 = ((uint64_t)(arg1[41]) << 8); + x8 = (arg1[40]); + x9 = ((uint64_t)(arg1[39]) << 56); + x10 = ((uint64_t)(arg1[38]) << 48); + x11 = ((uint64_t)(arg1[37]) << 40); + x12 = ((uint64_t)(arg1[36]) << 32); + x13 = ((uint64_t)(arg1[35]) << 24); + x14 = ((uint64_t)(arg1[34]) << 16); + x15 = ((uint64_t)(arg1[33]) << 8); + x16 = (arg1[32]); + x17 = ((uint64_t)(arg1[31]) << 56); + x18 = ((uint64_t)(arg1[30]) << 48); + x19 = ((uint64_t)(arg1[29]) << 40); + x20 = ((uint64_t)(arg1[28]) << 32); + x21 = ((uint64_t)(arg1[27]) << 24); + x22 = ((uint64_t)(arg1[26]) << 16); + x23 = ((uint64_t)(arg1[25]) << 8); + x24 = (arg1[24]); + x25 = ((uint64_t)(arg1[23]) << 56); + x26 = ((uint64_t)(arg1[22]) << 48); + x27 = ((uint64_t)(arg1[21]) << 40); + x28 = ((uint64_t)(arg1[20]) << 32); + x29 = ((uint64_t)(arg1[19]) << 24); + x30 = ((uint64_t)(arg1[18]) << 16); + x31 = ((uint64_t)(arg1[17]) << 8); + x32 = (arg1[16]); + x33 = ((uint64_t)(arg1[15]) << 56); + x34 = ((uint64_t)(arg1[14]) << 48); + x35 = ((uint64_t)(arg1[13]) << 40); + x36 = ((uint64_t)(arg1[12]) << 32); + x37 = ((uint64_t)(arg1[11]) << 24); + x38 = ((uint64_t)(arg1[10]) << 16); + x39 = ((uint64_t)(arg1[9]) << 8); + x40 = (arg1[8]); + x41 = ((uint64_t)(arg1[7]) << 56); + x42 = ((uint64_t)(arg1[6]) << 48); + x43 = ((uint64_t)(arg1[5]) << 40); + x44 = ((uint64_t)(arg1[4]) << 32); + x45 = ((uint64_t)(arg1[3]) << 24); + x46 = ((uint64_t)(arg1[2]) << 16); + x47 = ((uint64_t)(arg1[1]) << 8); + x48 = (arg1[0]); + x49 = (x47 + (uint64_t)x48); + x50 = (x46 + x49); + x51 = (x45 + x50); + x52 = (x44 + x51); + x53 = (x43 + x52); + x54 = (x42 + x53); + x55 = (x41 + x54); + x56 = (x39 + (uint64_t)x40); + x57 = (x38 + x56); + x58 = (x37 + x57); + x59 = (x36 + x58); + x60 = (x35 + x59); + x61 = (x34 + x60); + x62 = (x33 + x61); + x63 = (x31 + (uint64_t)x32); + x64 = (x30 + x63); + x65 = (x29 + x64); + x66 = (x28 + x65); + x67 = (x27 + x66); + x68 = (x26 + x67); + x69 = (x25 + x68); + x70 = (x23 + (uint64_t)x24); + x71 = (x22 + x70); + x72 = (x21 + x71); + x73 = (x20 + x72); + x74 = (x19 + x73); + x75 = (x18 + x74); + x76 = (x17 + x75); + x77 = (x15 + (uint64_t)x16); + x78 = (x14 + x77); + x79 = (x13 + x78); + x80 = (x12 + x79); + x81 = (x11 + x80); + x82 = (x10 + x81); + x83 = (x9 + x82); + x84 = (x7 + (uint64_t)x8); + x85 = (x6 + x84); + x86 = (x5 + x85); + x87 = (x4 + x86); + x88 = (x3 + x87); + x89 = (x2 + x88); + x90 = (x1 + x89); + out1[0] = x55; + out1[1] = x62; + out1[2] = x69; + out1[3] = x76; + out1[4] = x83; + out1[5] = x90; +} diff --git a/src/low/x64-fiat-381/bls12_381_q2_bedrock.c b/src/low/x64-fiat-381/bls12_381_q2_bedrock.c new file mode 100644 index 000000000..e218cb164 --- /dev/null +++ b/src/low/x64-fiat-381/bls12_381_q2_bedrock.c @@ -0,0 +1,1170 @@ +#include +#include +#include +#include +// LITTLE-ENDIAN memory access is REQUIRED +// the following two functions are required to work around -fstrict-aliasing +static inline uintptr_t _br2_load(uintptr_t a, size_t sz) { + uintptr_t r = 0; + memcpy(&r, (void*)a, sz); + return r; +} + +static inline void _br2_store(uintptr_t a, uintptr_t v, size_t sz) { + memcpy((void*)a, &v, sz); +} + + +static void bls12_add(uintptr_t out0, uintptr_t in0, uintptr_t in1) { + uintptr_t x6, x0, x13, x1, x7, x15, x2, x8, x17, x3, x9, x19, x4, x10, x21, x5, x11, x25, x27, x29, x31, x23, x33, x12, x36, x24, x37, x14, x39, x26, x40, x16, x42, x28, x43, x18, x45, x30, x46, x20, x48, x32, x49, x35, x22, x51, x34, x52, x38, x41, x44, x47, x50, x53, x54, x55, x56, x57, x58, x59; + x0 = _br2_load((in0)+((uintptr_t)0ULL), sizeof(uintptr_t)); + x1 = _br2_load((in0)+((uintptr_t)8ULL), sizeof(uintptr_t)); + x2 = _br2_load((in0)+((uintptr_t)16ULL), sizeof(uintptr_t)); + x3 = _br2_load((in0)+((uintptr_t)24ULL), sizeof(uintptr_t)); + x4 = _br2_load((in0)+((uintptr_t)32ULL), sizeof(uintptr_t)); + x5 = _br2_load((in0)+((uintptr_t)40ULL), sizeof(uintptr_t)); + /*skip*/ + x6 = _br2_load((in1)+((uintptr_t)0ULL), sizeof(uintptr_t)); + x7 = _br2_load((in1)+((uintptr_t)8ULL), sizeof(uintptr_t)); + x8 = _br2_load((in1)+((uintptr_t)16ULL), sizeof(uintptr_t)); + x9 = _br2_load((in1)+((uintptr_t)24ULL), sizeof(uintptr_t)); + x10 = _br2_load((in1)+((uintptr_t)32ULL), sizeof(uintptr_t)); + x11 = _br2_load((in1)+((uintptr_t)40ULL), sizeof(uintptr_t)); + /*skip*/ + /*skip*/ + x12 = (x0)+(x6); + x13 = ((x12)<(x0))+(x1); + x14 = (x13)+(x7); + x15 = (((x13)<(x1))+((x14)<(x7)))+(x2); + x16 = (x15)+(x8); + x17 = (((x15)<(x2))+((x16)<(x8)))+(x3); + x18 = (x17)+(x9); + x19 = (((x17)<(x3))+((x18)<(x9)))+(x4); + x20 = (x19)+(x10); + x21 = (((x19)<(x4))+((x20)<(x10)))+(x5); + x22 = (x21)+(x11); + x23 = ((x21)<(x5))+((x22)<(x11)); + x24 = (x12)-((uintptr_t)13402431016077863595ULL); + x25 = (x14)-((uintptr_t)2210141511517208575ULL); + x26 = (x25)-((x12)<(x24)); + x27 = (x16)-((uintptr_t)7435674573564081700ULL); + x28 = (x27)-(((x14)<(x25))+((x25)<(x26))); + x29 = (x18)-((uintptr_t)7239337960414712511ULL); + x30 = (x29)-(((x16)<(x27))+((x27)<(x28))); + x31 = (x20)-((uintptr_t)5412103778470702295ULL); + x32 = (x31)-(((x18)<(x29))+((x29)<(x30))); + x33 = (x22)-((uintptr_t)1873798617647539866ULL); + x34 = (x33)-(((x20)<(x31))+((x31)<(x32))); + x35 = (x23)<((x23)-(((x22)<(x33))+((x33)<(x34)))); + x36 = ((uintptr_t)-1ULL)+((x35)==((uintptr_t)0ULL)); + x37 = (x36)^((uintptr_t)18446744073709551615ULL); + x38 = ((x12)&(x36))|((x24)&(x37)); + x39 = ((uintptr_t)-1ULL)+((x35)==((uintptr_t)0ULL)); + x40 = (x39)^((uintptr_t)18446744073709551615ULL); + x41 = ((x14)&(x39))|((x26)&(x40)); + x42 = ((uintptr_t)-1ULL)+((x35)==((uintptr_t)0ULL)); + x43 = (x42)^((uintptr_t)18446744073709551615ULL); + x44 = ((x16)&(x42))|((x28)&(x43)); + x45 = ((uintptr_t)-1ULL)+((x35)==((uintptr_t)0ULL)); + x46 = (x45)^((uintptr_t)18446744073709551615ULL); + x47 = ((x18)&(x45))|((x30)&(x46)); + x48 = ((uintptr_t)-1ULL)+((x35)==((uintptr_t)0ULL)); + x49 = (x48)^((uintptr_t)18446744073709551615ULL); + x50 = ((x20)&(x48))|((x32)&(x49)); + x51 = ((uintptr_t)-1ULL)+((x35)==((uintptr_t)0ULL)); + x52 = (x51)^((uintptr_t)18446744073709551615ULL); + x53 = ((x22)&(x51))|((x34)&(x52)); + x54 = x38; + x55 = x41; + x56 = x44; + x57 = x47; + x58 = x50; + x59 = x53; + /*skip*/ + _br2_store((out0)+((uintptr_t)0ULL), x54, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)8ULL), x55, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)16ULL), x56, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)24ULL), x57, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)32ULL), x58, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)40ULL), x59, sizeof(uintptr_t)); + /*skip*/ + return; +} + +static void bls12_mul(uintptr_t out0, uintptr_t in0, uintptr_t in1) { + uintptr_t x1, x2, x3, x4, x5, x0, x17, x26, x29, x31, x27, x32, x24, x33, x35, x36, x25, x37, x22, x38, x40, x41, x23, x42, x20, x43, x45, x46, x21, x47, x18, x48, x50, x51, x19, x53, x62, x65, x67, x63, x68, x60, x69, x71, x72, x61, x73, x58, x74, x76, x77, x59, x78, x56, x79, x81, x82, x57, x83, x54, x84, x86, x87, x55, x64, x89, x28, x90, x30, x91, x66, x92, x94, x95, x34, x96, x70, x97, x99, x100, x39, x101, x75, x102, x104, x105, x44, x106, x80, x107, x109, x110, x49, x111, x85, x112, x114, x115, x52, x116, x88, x117, x119, x12, x129, x132, x134, x130, x135, x127, x136, x138, x139, x128, x140, x125, x141, x143, x144, x126, x145, x123, x146, x148, x149, x124, x150, x121, x151, x153, x154, x122, x131, x93, x157, x98, x158, x133, x159, x161, x162, x103, x163, x137, x164, x166, x167, x108, x168, x142, x169, x171, x172, x113, x173, x147, x174, x176, x177, x118, x178, x152, x179, x181, x182, x120, x183, x155, x184, x186, x188, x197, x200, x202, x198, x203, x195, x204, x206, x207, x196, x208, x193, x209, x211, x212, x194, x213, x191, x214, x216, x217, x192, x218, x189, x219, x221, x222, x190, x199, x224, x156, x225, x160, x226, x201, x227, x229, x230, x165, x231, x205, x232, x234, x235, x170, x236, x210, x237, x239, x240, x175, x241, x215, x242, x244, x245, x180, x246, x220, x247, x249, x250, x185, x251, x223, x252, x254, x255, x187, x13, x265, x268, x270, x266, x271, x263, x272, x274, x275, x264, x276, x261, x277, x279, x280, x262, x281, x259, x282, x284, x285, x260, x286, x257, x287, x289, x290, x258, x267, x228, x293, x233, x294, x269, x295, x297, x298, x238, x299, x273, x300, x302, x303, x243, x304, x278, x305, x307, x308, x248, x309, x283, x310, x312, x313, x253, x314, x288, x315, x317, x318, x256, x319, x291, x320, x322, x324, x333, x336, x338, x334, x339, x331, x340, x342, x343, x332, x344, x329, x345, x347, x348, x330, x349, x327, x350, x352, x353, x328, x354, x325, x355, x357, x358, x326, x335, x360, x292, x361, x296, x362, x337, x363, x365, x366, x301, x367, x341, x368, x370, x371, x306, x372, x346, x373, x375, x376, x311, x377, x351, x378, x380, x381, x316, x382, x356, x383, x385, x386, x321, x387, x359, x388, x390, x391, x323, x14, x401, x404, x406, x402, x407, x399, x408, x410, x411, x400, x412, x397, x413, x415, x416, x398, x417, x395, x418, x420, x421, x396, x422, x393, x423, x425, x426, x394, x403, x364, x429, x369, x430, x405, x431, x433, x434, x374, x435, x409, x436, x438, x439, x379, x440, x414, x441, x443, x444, x384, x445, x419, x446, x448, x449, x389, x450, x424, x451, x453, x454, x392, x455, x427, x456, x458, x460, x469, x472, x474, x470, x475, x467, x476, x478, x479, x468, x480, x465, x481, x483, x484, x466, x485, x463, x486, x488, x489, x464, x490, x461, x491, x493, x494, x462, x471, x496, x428, x497, x432, x498, x473, x499, x501, x502, x437, x503, x477, x504, x506, x507, x442, x508, x482, x509, x511, x512, x447, x513, x487, x514, x516, x517, x452, x518, x492, x519, x521, x522, x457, x523, x495, x524, x526, x527, x459, x15, x537, x540, x542, x538, x543, x535, x544, x546, x547, x536, x548, x533, x549, x551, x552, x534, x553, x531, x554, x556, x557, x532, x558, x529, x559, x561, x562, x530, x539, x500, x565, x505, x566, x541, x567, x569, x570, x510, x571, x545, x572, x574, x575, x515, x576, x550, x577, x579, x580, x520, x581, x555, x582, x584, x585, x525, x586, x560, x587, x589, x590, x528, x591, x563, x592, x594, x596, x605, x608, x610, x606, x611, x603, x612, x614, x615, x604, x616, x601, x617, x619, x620, x602, x621, x599, x622, x624, x625, x600, x626, x597, x627, x629, x630, x598, x607, x632, x564, x633, x568, x634, x609, x635, x637, x638, x573, x639, x613, x640, x642, x643, x578, x644, x618, x645, x647, x648, x583, x649, x623, x650, x652, x653, x588, x654, x628, x655, x657, x658, x593, x659, x631, x660, x662, x663, x595, x11, x10, x9, x8, x7, x16, x6, x673, x676, x678, x674, x679, x671, x680, x682, x683, x672, x684, x669, x685, x687, x688, x670, x689, x667, x690, x692, x693, x668, x694, x665, x695, x697, x698, x666, x675, x636, x701, x641, x702, x677, x703, x705, x706, x646, x707, x681, x708, x710, x711, x651, x712, x686, x713, x715, x716, x656, x717, x691, x718, x720, x721, x661, x722, x696, x723, x725, x726, x664, x727, x699, x728, x730, x732, x741, x744, x746, x742, x747, x739, x748, x750, x751, x740, x752, x737, x753, x755, x756, x738, x757, x735, x758, x760, x761, x736, x762, x733, x763, x765, x766, x734, x743, x768, x700, x769, x704, x770, x745, x771, x773, x774, x709, x775, x749, x776, x778, x779, x714, x780, x754, x781, x783, x784, x719, x785, x759, x786, x788, x789, x724, x790, x764, x791, x793, x794, x729, x795, x767, x796, x798, x799, x731, x802, x803, x804, x806, x807, x808, x809, x811, x812, x813, x814, x816, x817, x818, x819, x821, x822, x823, x824, x826, x827, x800, x828, x772, x830, x801, x831, x777, x833, x805, x834, x782, x836, x810, x837, x787, x839, x815, x840, x792, x842, x820, x843, x829, x797, x845, x825, x846, x832, x835, x838, x841, x844, x847, x848, x849, x850, x851, x852, x853; + x0 = _br2_load((in0)+((uintptr_t)0ULL), sizeof(uintptr_t)); + x1 = _br2_load((in0)+((uintptr_t)8ULL), sizeof(uintptr_t)); + x2 = _br2_load((in0)+((uintptr_t)16ULL), sizeof(uintptr_t)); + x3 = _br2_load((in0)+((uintptr_t)24ULL), sizeof(uintptr_t)); + x4 = _br2_load((in0)+((uintptr_t)32ULL), sizeof(uintptr_t)); + x5 = _br2_load((in0)+((uintptr_t)40ULL), sizeof(uintptr_t)); + /*skip*/ + x6 = _br2_load((in1)+((uintptr_t)0ULL), sizeof(uintptr_t)); + x7 = _br2_load((in1)+((uintptr_t)8ULL), sizeof(uintptr_t)); + x8 = _br2_load((in1)+((uintptr_t)16ULL), sizeof(uintptr_t)); + x9 = _br2_load((in1)+((uintptr_t)24ULL), sizeof(uintptr_t)); + x10 = _br2_load((in1)+((uintptr_t)32ULL), sizeof(uintptr_t)); + x11 = _br2_load((in1)+((uintptr_t)40ULL), sizeof(uintptr_t)); + /*skip*/ + /*skip*/ + x12 = x1; + x13 = x2; + x14 = x3; + x15 = x4; + x16 = x5; + x17 = x0; + x18 = (x17)*(x11); + x19 = sizeof(intptr_t) == 4 ? ((uint64_t)(x17)*(x11))>>32 : ((__uint128_t)(x17)*(x11))>>64; + x20 = (x17)*(x10); + x21 = sizeof(intptr_t) == 4 ? ((uint64_t)(x17)*(x10))>>32 : ((__uint128_t)(x17)*(x10))>>64; + x22 = (x17)*(x9); + x23 = sizeof(intptr_t) == 4 ? ((uint64_t)(x17)*(x9))>>32 : ((__uint128_t)(x17)*(x9))>>64; + x24 = (x17)*(x8); + x25 = sizeof(intptr_t) == 4 ? ((uint64_t)(x17)*(x8))>>32 : ((__uint128_t)(x17)*(x8))>>64; + x26 = (x17)*(x7); + x27 = sizeof(intptr_t) == 4 ? ((uint64_t)(x17)*(x7))>>32 : ((__uint128_t)(x17)*(x7))>>64; + x28 = (x17)*(x6); + x29 = sizeof(intptr_t) == 4 ? ((uint64_t)(x17)*(x6))>>32 : ((__uint128_t)(x17)*(x6))>>64; + x30 = (x29)+(x26); + x31 = (x30)<(x29); + x32 = (x31)+(x27); + x33 = (x32)<(x27); + x34 = (x32)+(x24); + x35 = (x34)<(x24); + x36 = (x33)+(x35); + x37 = (x36)+(x25); + x38 = (x37)<(x25); + x39 = (x37)+(x22); + x40 = (x39)<(x22); + x41 = (x38)+(x40); + x42 = (x41)+(x23); + x43 = (x42)<(x23); + x44 = (x42)+(x20); + x45 = (x44)<(x20); + x46 = (x43)+(x45); + x47 = (x46)+(x21); + x48 = (x47)<(x21); + x49 = (x47)+(x18); + x50 = (x49)<(x18); + x51 = (x48)+(x50); + x52 = (x51)+(x19); + x53 = (x28)*((uintptr_t)9940570264628428797ULL); + x54 = (x53)*((uintptr_t)1873798617647539866ULL); + x55 = sizeof(intptr_t) == 4 ? ((uint64_t)(x53)*((uintptr_t)1873798617647539866ULL))>>32 : ((__uint128_t)(x53)*((uintptr_t)1873798617647539866ULL))>>64; + x56 = (x53)*((uintptr_t)5412103778470702295ULL); + x57 = sizeof(intptr_t) == 4 ? ((uint64_t)(x53)*((uintptr_t)5412103778470702295ULL))>>32 : ((__uint128_t)(x53)*((uintptr_t)5412103778470702295ULL))>>64; + x58 = (x53)*((uintptr_t)7239337960414712511ULL); + x59 = sizeof(intptr_t) == 4 ? ((uint64_t)(x53)*((uintptr_t)7239337960414712511ULL))>>32 : ((__uint128_t)(x53)*((uintptr_t)7239337960414712511ULL))>>64; + x60 = (x53)*((uintptr_t)7435674573564081700ULL); + x61 = sizeof(intptr_t) == 4 ? ((uint64_t)(x53)*((uintptr_t)7435674573564081700ULL))>>32 : ((__uint128_t)(x53)*((uintptr_t)7435674573564081700ULL))>>64; + x62 = (x53)*((uintptr_t)2210141511517208575ULL); + x63 = sizeof(intptr_t) == 4 ? ((uint64_t)(x53)*((uintptr_t)2210141511517208575ULL))>>32 : ((__uint128_t)(x53)*((uintptr_t)2210141511517208575ULL))>>64; + x64 = (x53)*((uintptr_t)13402431016077863595ULL); + x65 = sizeof(intptr_t) == 4 ? ((uint64_t)(x53)*((uintptr_t)13402431016077863595ULL))>>32 : ((__uint128_t)(x53)*((uintptr_t)13402431016077863595ULL))>>64; + x66 = (x65)+(x62); + x67 = (x66)<(x65); + x68 = (x67)+(x63); + x69 = (x68)<(x63); + x70 = (x68)+(x60); + x71 = (x70)<(x60); + x72 = (x69)+(x71); + x73 = (x72)+(x61); + x74 = (x73)<(x61); + x75 = (x73)+(x58); + x76 = (x75)<(x58); + x77 = (x74)+(x76); + x78 = (x77)+(x59); + x79 = (x78)<(x59); + x80 = (x78)+(x56); + x81 = (x80)<(x56); + x82 = (x79)+(x81); + x83 = (x82)+(x57); + x84 = (x83)<(x57); + x85 = (x83)+(x54); + x86 = (x85)<(x54); + x87 = (x84)+(x86); + x88 = (x87)+(x55); + x89 = (x28)+(x64); + x90 = (x89)<(x28); + x91 = (x90)+(x30); + x92 = (x91)<(x30); + x93 = (x91)+(x66); + x94 = (x93)<(x66); + x95 = (x92)+(x94); + x96 = (x95)+(x34); + x97 = (x96)<(x34); + x98 = (x96)+(x70); + x99 = (x98)<(x70); + x100 = (x97)+(x99); + x101 = (x100)+(x39); + x102 = (x101)<(x39); + x103 = (x101)+(x75); + x104 = (x103)<(x75); + x105 = (x102)+(x104); + x106 = (x105)+(x44); + x107 = (x106)<(x44); + x108 = (x106)+(x80); + x109 = (x108)<(x80); + x110 = (x107)+(x109); + x111 = (x110)+(x49); + x112 = (x111)<(x49); + x113 = (x111)+(x85); + x114 = (x113)<(x85); + x115 = (x112)+(x114); + x116 = (x115)+(x52); + x117 = (x116)<(x52); + x118 = (x116)+(x88); + x119 = (x118)<(x88); + x120 = (x117)+(x119); + x121 = (x12)*(x11); + x122 = sizeof(intptr_t) == 4 ? ((uint64_t)(x12)*(x11))>>32 : ((__uint128_t)(x12)*(x11))>>64; + x123 = (x12)*(x10); + x124 = sizeof(intptr_t) == 4 ? ((uint64_t)(x12)*(x10))>>32 : ((__uint128_t)(x12)*(x10))>>64; + x125 = (x12)*(x9); + x126 = sizeof(intptr_t) == 4 ? ((uint64_t)(x12)*(x9))>>32 : ((__uint128_t)(x12)*(x9))>>64; + x127 = (x12)*(x8); + x128 = sizeof(intptr_t) == 4 ? ((uint64_t)(x12)*(x8))>>32 : ((__uint128_t)(x12)*(x8))>>64; + x129 = (x12)*(x7); + x130 = sizeof(intptr_t) == 4 ? ((uint64_t)(x12)*(x7))>>32 : ((__uint128_t)(x12)*(x7))>>64; + x131 = (x12)*(x6); + x132 = sizeof(intptr_t) == 4 ? ((uint64_t)(x12)*(x6))>>32 : ((__uint128_t)(x12)*(x6))>>64; + x133 = (x132)+(x129); + x134 = (x133)<(x132); + x135 = (x134)+(x130); + x136 = (x135)<(x130); + x137 = (x135)+(x127); + x138 = (x137)<(x127); + x139 = (x136)+(x138); + x140 = (x139)+(x128); + x141 = (x140)<(x128); + x142 = (x140)+(x125); + x143 = (x142)<(x125); + x144 = (x141)+(x143); + x145 = (x144)+(x126); + x146 = (x145)<(x126); + x147 = (x145)+(x123); + x148 = (x147)<(x123); + x149 = (x146)+(x148); + x150 = (x149)+(x124); + x151 = (x150)<(x124); + x152 = (x150)+(x121); + x153 = (x152)<(x121); + x154 = (x151)+(x153); + x155 = (x154)+(x122); + x156 = (x93)+(x131); + x157 = (x156)<(x93); + x158 = (x157)+(x98); + x159 = (x158)<(x98); + x160 = (x158)+(x133); + x161 = (x160)<(x133); + x162 = (x159)+(x161); + x163 = (x162)+(x103); + x164 = (x163)<(x103); + x165 = (x163)+(x137); + x166 = (x165)<(x137); + x167 = (x164)+(x166); + x168 = (x167)+(x108); + x169 = (x168)<(x108); + x170 = (x168)+(x142); + x171 = (x170)<(x142); + x172 = (x169)+(x171); + x173 = (x172)+(x113); + x174 = (x173)<(x113); + x175 = (x173)+(x147); + x176 = (x175)<(x147); + x177 = (x174)+(x176); + x178 = (x177)+(x118); + x179 = (x178)<(x118); + x180 = (x178)+(x152); + x181 = (x180)<(x152); + x182 = (x179)+(x181); + x183 = (x182)+(x120); + x184 = (x183)<(x120); + x185 = (x183)+(x155); + x186 = (x185)<(x155); + x187 = (x184)+(x186); + x188 = (x156)*((uintptr_t)9940570264628428797ULL); + x189 = (x188)*((uintptr_t)1873798617647539866ULL); + x190 = sizeof(intptr_t) == 4 ? ((uint64_t)(x188)*((uintptr_t)1873798617647539866ULL))>>32 : ((__uint128_t)(x188)*((uintptr_t)1873798617647539866ULL))>>64; + x191 = (x188)*((uintptr_t)5412103778470702295ULL); + x192 = sizeof(intptr_t) == 4 ? ((uint64_t)(x188)*((uintptr_t)5412103778470702295ULL))>>32 : ((__uint128_t)(x188)*((uintptr_t)5412103778470702295ULL))>>64; + x193 = (x188)*((uintptr_t)7239337960414712511ULL); + x194 = sizeof(intptr_t) == 4 ? ((uint64_t)(x188)*((uintptr_t)7239337960414712511ULL))>>32 : ((__uint128_t)(x188)*((uintptr_t)7239337960414712511ULL))>>64; + x195 = (x188)*((uintptr_t)7435674573564081700ULL); + x196 = sizeof(intptr_t) == 4 ? ((uint64_t)(x188)*((uintptr_t)7435674573564081700ULL))>>32 : ((__uint128_t)(x188)*((uintptr_t)7435674573564081700ULL))>>64; + x197 = (x188)*((uintptr_t)2210141511517208575ULL); + x198 = sizeof(intptr_t) == 4 ? ((uint64_t)(x188)*((uintptr_t)2210141511517208575ULL))>>32 : ((__uint128_t)(x188)*((uintptr_t)2210141511517208575ULL))>>64; + x199 = (x188)*((uintptr_t)13402431016077863595ULL); + x200 = sizeof(intptr_t) == 4 ? ((uint64_t)(x188)*((uintptr_t)13402431016077863595ULL))>>32 : ((__uint128_t)(x188)*((uintptr_t)13402431016077863595ULL))>>64; + x201 = (x200)+(x197); + x202 = (x201)<(x200); + x203 = (x202)+(x198); + x204 = (x203)<(x198); + x205 = (x203)+(x195); + x206 = (x205)<(x195); + x207 = (x204)+(x206); + x208 = (x207)+(x196); + x209 = (x208)<(x196); + x210 = (x208)+(x193); + x211 = (x210)<(x193); + x212 = (x209)+(x211); + x213 = (x212)+(x194); + x214 = (x213)<(x194); + x215 = (x213)+(x191); + x216 = (x215)<(x191); + x217 = (x214)+(x216); + x218 = (x217)+(x192); + x219 = (x218)<(x192); + x220 = (x218)+(x189); + x221 = (x220)<(x189); + x222 = (x219)+(x221); + x223 = (x222)+(x190); + x224 = (x156)+(x199); + x225 = (x224)<(x156); + x226 = (x225)+(x160); + x227 = (x226)<(x160); + x228 = (x226)+(x201); + x229 = (x228)<(x201); + x230 = (x227)+(x229); + x231 = (x230)+(x165); + x232 = (x231)<(x165); + x233 = (x231)+(x205); + x234 = (x233)<(x205); + x235 = (x232)+(x234); + x236 = (x235)+(x170); + x237 = (x236)<(x170); + x238 = (x236)+(x210); + x239 = (x238)<(x210); + x240 = (x237)+(x239); + x241 = (x240)+(x175); + x242 = (x241)<(x175); + x243 = (x241)+(x215); + x244 = (x243)<(x215); + x245 = (x242)+(x244); + x246 = (x245)+(x180); + x247 = (x246)<(x180); + x248 = (x246)+(x220); + x249 = (x248)<(x220); + x250 = (x247)+(x249); + x251 = (x250)+(x185); + x252 = (x251)<(x185); + x253 = (x251)+(x223); + x254 = (x253)<(x223); + x255 = (x252)+(x254); + x256 = (x255)+(x187); + x257 = (x13)*(x11); + x258 = sizeof(intptr_t) == 4 ? ((uint64_t)(x13)*(x11))>>32 : ((__uint128_t)(x13)*(x11))>>64; + x259 = (x13)*(x10); + x260 = sizeof(intptr_t) == 4 ? ((uint64_t)(x13)*(x10))>>32 : ((__uint128_t)(x13)*(x10))>>64; + x261 = (x13)*(x9); + x262 = sizeof(intptr_t) == 4 ? ((uint64_t)(x13)*(x9))>>32 : ((__uint128_t)(x13)*(x9))>>64; + x263 = (x13)*(x8); + x264 = sizeof(intptr_t) == 4 ? ((uint64_t)(x13)*(x8))>>32 : ((__uint128_t)(x13)*(x8))>>64; + x265 = (x13)*(x7); + x266 = sizeof(intptr_t) == 4 ? ((uint64_t)(x13)*(x7))>>32 : ((__uint128_t)(x13)*(x7))>>64; + x267 = (x13)*(x6); + x268 = sizeof(intptr_t) == 4 ? ((uint64_t)(x13)*(x6))>>32 : ((__uint128_t)(x13)*(x6))>>64; + x269 = (x268)+(x265); + x270 = (x269)<(x268); + x271 = (x270)+(x266); + x272 = (x271)<(x266); + x273 = (x271)+(x263); + x274 = (x273)<(x263); + x275 = (x272)+(x274); + x276 = (x275)+(x264); + x277 = (x276)<(x264); + x278 = (x276)+(x261); + x279 = (x278)<(x261); + x280 = (x277)+(x279); + x281 = (x280)+(x262); + x282 = (x281)<(x262); + x283 = (x281)+(x259); + x284 = (x283)<(x259); + x285 = (x282)+(x284); + x286 = (x285)+(x260); + x287 = (x286)<(x260); + x288 = (x286)+(x257); + x289 = (x288)<(x257); + x290 = (x287)+(x289); + x291 = (x290)+(x258); + x292 = (x228)+(x267); + x293 = (x292)<(x228); + x294 = (x293)+(x233); + x295 = (x294)<(x233); + x296 = (x294)+(x269); + x297 = (x296)<(x269); + x298 = (x295)+(x297); + x299 = (x298)+(x238); + x300 = (x299)<(x238); + x301 = (x299)+(x273); + x302 = (x301)<(x273); + x303 = (x300)+(x302); + x304 = (x303)+(x243); + x305 = (x304)<(x243); + x306 = (x304)+(x278); + x307 = (x306)<(x278); + x308 = (x305)+(x307); + x309 = (x308)+(x248); + x310 = (x309)<(x248); + x311 = (x309)+(x283); + x312 = (x311)<(x283); + x313 = (x310)+(x312); + x314 = (x313)+(x253); + x315 = (x314)<(x253); + x316 = (x314)+(x288); + x317 = (x316)<(x288); + x318 = (x315)+(x317); + x319 = (x318)+(x256); + x320 = (x319)<(x256); + x321 = (x319)+(x291); + x322 = (x321)<(x291); + x323 = (x320)+(x322); + x324 = (x292)*((uintptr_t)9940570264628428797ULL); + x325 = (x324)*((uintptr_t)1873798617647539866ULL); + x326 = sizeof(intptr_t) == 4 ? ((uint64_t)(x324)*((uintptr_t)1873798617647539866ULL))>>32 : ((__uint128_t)(x324)*((uintptr_t)1873798617647539866ULL))>>64; + x327 = (x324)*((uintptr_t)5412103778470702295ULL); + x328 = sizeof(intptr_t) == 4 ? ((uint64_t)(x324)*((uintptr_t)5412103778470702295ULL))>>32 : ((__uint128_t)(x324)*((uintptr_t)5412103778470702295ULL))>>64; + x329 = (x324)*((uintptr_t)7239337960414712511ULL); + x330 = sizeof(intptr_t) == 4 ? ((uint64_t)(x324)*((uintptr_t)7239337960414712511ULL))>>32 : ((__uint128_t)(x324)*((uintptr_t)7239337960414712511ULL))>>64; + x331 = (x324)*((uintptr_t)7435674573564081700ULL); + x332 = sizeof(intptr_t) == 4 ? ((uint64_t)(x324)*((uintptr_t)7435674573564081700ULL))>>32 : ((__uint128_t)(x324)*((uintptr_t)7435674573564081700ULL))>>64; + x333 = (x324)*((uintptr_t)2210141511517208575ULL); + x334 = sizeof(intptr_t) == 4 ? ((uint64_t)(x324)*((uintptr_t)2210141511517208575ULL))>>32 : ((__uint128_t)(x324)*((uintptr_t)2210141511517208575ULL))>>64; + x335 = (x324)*((uintptr_t)13402431016077863595ULL); + x336 = sizeof(intptr_t) == 4 ? ((uint64_t)(x324)*((uintptr_t)13402431016077863595ULL))>>32 : ((__uint128_t)(x324)*((uintptr_t)13402431016077863595ULL))>>64; + x337 = (x336)+(x333); + x338 = (x337)<(x336); + x339 = (x338)+(x334); + x340 = (x339)<(x334); + x341 = (x339)+(x331); + x342 = (x341)<(x331); + x343 = (x340)+(x342); + x344 = (x343)+(x332); + x345 = (x344)<(x332); + x346 = (x344)+(x329); + x347 = (x346)<(x329); + x348 = (x345)+(x347); + x349 = (x348)+(x330); + x350 = (x349)<(x330); + x351 = (x349)+(x327); + x352 = (x351)<(x327); + x353 = (x350)+(x352); + x354 = (x353)+(x328); + x355 = (x354)<(x328); + x356 = (x354)+(x325); + x357 = (x356)<(x325); + x358 = (x355)+(x357); + x359 = (x358)+(x326); + x360 = (x292)+(x335); + x361 = (x360)<(x292); + x362 = (x361)+(x296); + x363 = (x362)<(x296); + x364 = (x362)+(x337); + x365 = (x364)<(x337); + x366 = (x363)+(x365); + x367 = (x366)+(x301); + x368 = (x367)<(x301); + x369 = (x367)+(x341); + x370 = (x369)<(x341); + x371 = (x368)+(x370); + x372 = (x371)+(x306); + x373 = (x372)<(x306); + x374 = (x372)+(x346); + x375 = (x374)<(x346); + x376 = (x373)+(x375); + x377 = (x376)+(x311); + x378 = (x377)<(x311); + x379 = (x377)+(x351); + x380 = (x379)<(x351); + x381 = (x378)+(x380); + x382 = (x381)+(x316); + x383 = (x382)<(x316); + x384 = (x382)+(x356); + x385 = (x384)<(x356); + x386 = (x383)+(x385); + x387 = (x386)+(x321); + x388 = (x387)<(x321); + x389 = (x387)+(x359); + x390 = (x389)<(x359); + x391 = (x388)+(x390); + x392 = (x391)+(x323); + x393 = (x14)*(x11); + x394 = sizeof(intptr_t) == 4 ? ((uint64_t)(x14)*(x11))>>32 : ((__uint128_t)(x14)*(x11))>>64; + x395 = (x14)*(x10); + x396 = sizeof(intptr_t) == 4 ? ((uint64_t)(x14)*(x10))>>32 : ((__uint128_t)(x14)*(x10))>>64; + x397 = (x14)*(x9); + x398 = sizeof(intptr_t) == 4 ? ((uint64_t)(x14)*(x9))>>32 : ((__uint128_t)(x14)*(x9))>>64; + x399 = (x14)*(x8); + x400 = sizeof(intptr_t) == 4 ? ((uint64_t)(x14)*(x8))>>32 : ((__uint128_t)(x14)*(x8))>>64; + x401 = (x14)*(x7); + x402 = sizeof(intptr_t) == 4 ? ((uint64_t)(x14)*(x7))>>32 : ((__uint128_t)(x14)*(x7))>>64; + x403 = (x14)*(x6); + x404 = sizeof(intptr_t) == 4 ? ((uint64_t)(x14)*(x6))>>32 : ((__uint128_t)(x14)*(x6))>>64; + x405 = (x404)+(x401); + x406 = (x405)<(x404); + x407 = (x406)+(x402); + x408 = (x407)<(x402); + x409 = (x407)+(x399); + x410 = (x409)<(x399); + x411 = (x408)+(x410); + x412 = (x411)+(x400); + x413 = (x412)<(x400); + x414 = (x412)+(x397); + x415 = (x414)<(x397); + x416 = (x413)+(x415); + x417 = (x416)+(x398); + x418 = (x417)<(x398); + x419 = (x417)+(x395); + x420 = (x419)<(x395); + x421 = (x418)+(x420); + x422 = (x421)+(x396); + x423 = (x422)<(x396); + x424 = (x422)+(x393); + x425 = (x424)<(x393); + x426 = (x423)+(x425); + x427 = (x426)+(x394); + x428 = (x364)+(x403); + x429 = (x428)<(x364); + x430 = (x429)+(x369); + x431 = (x430)<(x369); + x432 = (x430)+(x405); + x433 = (x432)<(x405); + x434 = (x431)+(x433); + x435 = (x434)+(x374); + x436 = (x435)<(x374); + x437 = (x435)+(x409); + x438 = (x437)<(x409); + x439 = (x436)+(x438); + x440 = (x439)+(x379); + x441 = (x440)<(x379); + x442 = (x440)+(x414); + x443 = (x442)<(x414); + x444 = (x441)+(x443); + x445 = (x444)+(x384); + x446 = (x445)<(x384); + x447 = (x445)+(x419); + x448 = (x447)<(x419); + x449 = (x446)+(x448); + x450 = (x449)+(x389); + x451 = (x450)<(x389); + x452 = (x450)+(x424); + x453 = (x452)<(x424); + x454 = (x451)+(x453); + x455 = (x454)+(x392); + x456 = (x455)<(x392); + x457 = (x455)+(x427); + x458 = (x457)<(x427); + x459 = (x456)+(x458); + x460 = (x428)*((uintptr_t)9940570264628428797ULL); + x461 = (x460)*((uintptr_t)1873798617647539866ULL); + x462 = sizeof(intptr_t) == 4 ? ((uint64_t)(x460)*((uintptr_t)1873798617647539866ULL))>>32 : ((__uint128_t)(x460)*((uintptr_t)1873798617647539866ULL))>>64; + x463 = (x460)*((uintptr_t)5412103778470702295ULL); + x464 = sizeof(intptr_t) == 4 ? ((uint64_t)(x460)*((uintptr_t)5412103778470702295ULL))>>32 : ((__uint128_t)(x460)*((uintptr_t)5412103778470702295ULL))>>64; + x465 = (x460)*((uintptr_t)7239337960414712511ULL); + x466 = sizeof(intptr_t) == 4 ? ((uint64_t)(x460)*((uintptr_t)7239337960414712511ULL))>>32 : ((__uint128_t)(x460)*((uintptr_t)7239337960414712511ULL))>>64; + x467 = (x460)*((uintptr_t)7435674573564081700ULL); + x468 = sizeof(intptr_t) == 4 ? ((uint64_t)(x460)*((uintptr_t)7435674573564081700ULL))>>32 : ((__uint128_t)(x460)*((uintptr_t)7435674573564081700ULL))>>64; + x469 = (x460)*((uintptr_t)2210141511517208575ULL); + x470 = sizeof(intptr_t) == 4 ? ((uint64_t)(x460)*((uintptr_t)2210141511517208575ULL))>>32 : ((__uint128_t)(x460)*((uintptr_t)2210141511517208575ULL))>>64; + x471 = (x460)*((uintptr_t)13402431016077863595ULL); + x472 = sizeof(intptr_t) == 4 ? ((uint64_t)(x460)*((uintptr_t)13402431016077863595ULL))>>32 : ((__uint128_t)(x460)*((uintptr_t)13402431016077863595ULL))>>64; + x473 = (x472)+(x469); + x474 = (x473)<(x472); + x475 = (x474)+(x470); + x476 = (x475)<(x470); + x477 = (x475)+(x467); + x478 = (x477)<(x467); + x479 = (x476)+(x478); + x480 = (x479)+(x468); + x481 = (x480)<(x468); + x482 = (x480)+(x465); + x483 = (x482)<(x465); + x484 = (x481)+(x483); + x485 = (x484)+(x466); + x486 = (x485)<(x466); + x487 = (x485)+(x463); + x488 = (x487)<(x463); + x489 = (x486)+(x488); + x490 = (x489)+(x464); + x491 = (x490)<(x464); + x492 = (x490)+(x461); + x493 = (x492)<(x461); + x494 = (x491)+(x493); + x495 = (x494)+(x462); + x496 = (x428)+(x471); + x497 = (x496)<(x428); + x498 = (x497)+(x432); + x499 = (x498)<(x432); + x500 = (x498)+(x473); + x501 = (x500)<(x473); + x502 = (x499)+(x501); + x503 = (x502)+(x437); + x504 = (x503)<(x437); + x505 = (x503)+(x477); + x506 = (x505)<(x477); + x507 = (x504)+(x506); + x508 = (x507)+(x442); + x509 = (x508)<(x442); + x510 = (x508)+(x482); + x511 = (x510)<(x482); + x512 = (x509)+(x511); + x513 = (x512)+(x447); + x514 = (x513)<(x447); + x515 = (x513)+(x487); + x516 = (x515)<(x487); + x517 = (x514)+(x516); + x518 = (x517)+(x452); + x519 = (x518)<(x452); + x520 = (x518)+(x492); + x521 = (x520)<(x492); + x522 = (x519)+(x521); + x523 = (x522)+(x457); + x524 = (x523)<(x457); + x525 = (x523)+(x495); + x526 = (x525)<(x495); + x527 = (x524)+(x526); + x528 = (x527)+(x459); + x529 = (x15)*(x11); + x530 = sizeof(intptr_t) == 4 ? ((uint64_t)(x15)*(x11))>>32 : ((__uint128_t)(x15)*(x11))>>64; + x531 = (x15)*(x10); + x532 = sizeof(intptr_t) == 4 ? ((uint64_t)(x15)*(x10))>>32 : ((__uint128_t)(x15)*(x10))>>64; + x533 = (x15)*(x9); + x534 = sizeof(intptr_t) == 4 ? ((uint64_t)(x15)*(x9))>>32 : ((__uint128_t)(x15)*(x9))>>64; + x535 = (x15)*(x8); + x536 = sizeof(intptr_t) == 4 ? ((uint64_t)(x15)*(x8))>>32 : ((__uint128_t)(x15)*(x8))>>64; + x537 = (x15)*(x7); + x538 = sizeof(intptr_t) == 4 ? ((uint64_t)(x15)*(x7))>>32 : ((__uint128_t)(x15)*(x7))>>64; + x539 = (x15)*(x6); + x540 = sizeof(intptr_t) == 4 ? ((uint64_t)(x15)*(x6))>>32 : ((__uint128_t)(x15)*(x6))>>64; + x541 = (x540)+(x537); + x542 = (x541)<(x540); + x543 = (x542)+(x538); + x544 = (x543)<(x538); + x545 = (x543)+(x535); + x546 = (x545)<(x535); + x547 = (x544)+(x546); + x548 = (x547)+(x536); + x549 = (x548)<(x536); + x550 = (x548)+(x533); + x551 = (x550)<(x533); + x552 = (x549)+(x551); + x553 = (x552)+(x534); + x554 = (x553)<(x534); + x555 = (x553)+(x531); + x556 = (x555)<(x531); + x557 = (x554)+(x556); + x558 = (x557)+(x532); + x559 = (x558)<(x532); + x560 = (x558)+(x529); + x561 = (x560)<(x529); + x562 = (x559)+(x561); + x563 = (x562)+(x530); + x564 = (x500)+(x539); + x565 = (x564)<(x500); + x566 = (x565)+(x505); + x567 = (x566)<(x505); + x568 = (x566)+(x541); + x569 = (x568)<(x541); + x570 = (x567)+(x569); + x571 = (x570)+(x510); + x572 = (x571)<(x510); + x573 = (x571)+(x545); + x574 = (x573)<(x545); + x575 = (x572)+(x574); + x576 = (x575)+(x515); + x577 = (x576)<(x515); + x578 = (x576)+(x550); + x579 = (x578)<(x550); + x580 = (x577)+(x579); + x581 = (x580)+(x520); + x582 = (x581)<(x520); + x583 = (x581)+(x555); + x584 = (x583)<(x555); + x585 = (x582)+(x584); + x586 = (x585)+(x525); + x587 = (x586)<(x525); + x588 = (x586)+(x560); + x589 = (x588)<(x560); + x590 = (x587)+(x589); + x591 = (x590)+(x528); + x592 = (x591)<(x528); + x593 = (x591)+(x563); + x594 = (x593)<(x563); + x595 = (x592)+(x594); + x596 = (x564)*((uintptr_t)9940570264628428797ULL); + x597 = (x596)*((uintptr_t)1873798617647539866ULL); + x598 = sizeof(intptr_t) == 4 ? ((uint64_t)(x596)*((uintptr_t)1873798617647539866ULL))>>32 : ((__uint128_t)(x596)*((uintptr_t)1873798617647539866ULL))>>64; + x599 = (x596)*((uintptr_t)5412103778470702295ULL); + x600 = sizeof(intptr_t) == 4 ? ((uint64_t)(x596)*((uintptr_t)5412103778470702295ULL))>>32 : ((__uint128_t)(x596)*((uintptr_t)5412103778470702295ULL))>>64; + x601 = (x596)*((uintptr_t)7239337960414712511ULL); + x602 = sizeof(intptr_t) == 4 ? ((uint64_t)(x596)*((uintptr_t)7239337960414712511ULL))>>32 : ((__uint128_t)(x596)*((uintptr_t)7239337960414712511ULL))>>64; + x603 = (x596)*((uintptr_t)7435674573564081700ULL); + x604 = sizeof(intptr_t) == 4 ? ((uint64_t)(x596)*((uintptr_t)7435674573564081700ULL))>>32 : ((__uint128_t)(x596)*((uintptr_t)7435674573564081700ULL))>>64; + x605 = (x596)*((uintptr_t)2210141511517208575ULL); + x606 = sizeof(intptr_t) == 4 ? ((uint64_t)(x596)*((uintptr_t)2210141511517208575ULL))>>32 : ((__uint128_t)(x596)*((uintptr_t)2210141511517208575ULL))>>64; + x607 = (x596)*((uintptr_t)13402431016077863595ULL); + x608 = sizeof(intptr_t) == 4 ? ((uint64_t)(x596)*((uintptr_t)13402431016077863595ULL))>>32 : ((__uint128_t)(x596)*((uintptr_t)13402431016077863595ULL))>>64; + x609 = (x608)+(x605); + x610 = (x609)<(x608); + x611 = (x610)+(x606); + x612 = (x611)<(x606); + x613 = (x611)+(x603); + x614 = (x613)<(x603); + x615 = (x612)+(x614); + x616 = (x615)+(x604); + x617 = (x616)<(x604); + x618 = (x616)+(x601); + x619 = (x618)<(x601); + x620 = (x617)+(x619); + x621 = (x620)+(x602); + x622 = (x621)<(x602); + x623 = (x621)+(x599); + x624 = (x623)<(x599); + x625 = (x622)+(x624); + x626 = (x625)+(x600); + x627 = (x626)<(x600); + x628 = (x626)+(x597); + x629 = (x628)<(x597); + x630 = (x627)+(x629); + x631 = (x630)+(x598); + x632 = (x564)+(x607); + x633 = (x632)<(x564); + x634 = (x633)+(x568); + x635 = (x634)<(x568); + x636 = (x634)+(x609); + x637 = (x636)<(x609); + x638 = (x635)+(x637); + x639 = (x638)+(x573); + x640 = (x639)<(x573); + x641 = (x639)+(x613); + x642 = (x641)<(x613); + x643 = (x640)+(x642); + x644 = (x643)+(x578); + x645 = (x644)<(x578); + x646 = (x644)+(x618); + x647 = (x646)<(x618); + x648 = (x645)+(x647); + x649 = (x648)+(x583); + x650 = (x649)<(x583); + x651 = (x649)+(x623); + x652 = (x651)<(x623); + x653 = (x650)+(x652); + x654 = (x653)+(x588); + x655 = (x654)<(x588); + x656 = (x654)+(x628); + x657 = (x656)<(x628); + x658 = (x655)+(x657); + x659 = (x658)+(x593); + x660 = (x659)<(x593); + x661 = (x659)+(x631); + x662 = (x661)<(x631); + x663 = (x660)+(x662); + x664 = (x663)+(x595); + x665 = (x16)*(x11); + x666 = sizeof(intptr_t) == 4 ? ((uint64_t)(x16)*(x11))>>32 : ((__uint128_t)(x16)*(x11))>>64; + x667 = (x16)*(x10); + x668 = sizeof(intptr_t) == 4 ? ((uint64_t)(x16)*(x10))>>32 : ((__uint128_t)(x16)*(x10))>>64; + x669 = (x16)*(x9); + x670 = sizeof(intptr_t) == 4 ? ((uint64_t)(x16)*(x9))>>32 : ((__uint128_t)(x16)*(x9))>>64; + x671 = (x16)*(x8); + x672 = sizeof(intptr_t) == 4 ? ((uint64_t)(x16)*(x8))>>32 : ((__uint128_t)(x16)*(x8))>>64; + x673 = (x16)*(x7); + x674 = sizeof(intptr_t) == 4 ? ((uint64_t)(x16)*(x7))>>32 : ((__uint128_t)(x16)*(x7))>>64; + x675 = (x16)*(x6); + x676 = sizeof(intptr_t) == 4 ? ((uint64_t)(x16)*(x6))>>32 : ((__uint128_t)(x16)*(x6))>>64; + x677 = (x676)+(x673); + x678 = (x677)<(x676); + x679 = (x678)+(x674); + x680 = (x679)<(x674); + x681 = (x679)+(x671); + x682 = (x681)<(x671); + x683 = (x680)+(x682); + x684 = (x683)+(x672); + x685 = (x684)<(x672); + x686 = (x684)+(x669); + x687 = (x686)<(x669); + x688 = (x685)+(x687); + x689 = (x688)+(x670); + x690 = (x689)<(x670); + x691 = (x689)+(x667); + x692 = (x691)<(x667); + x693 = (x690)+(x692); + x694 = (x693)+(x668); + x695 = (x694)<(x668); + x696 = (x694)+(x665); + x697 = (x696)<(x665); + x698 = (x695)+(x697); + x699 = (x698)+(x666); + x700 = (x636)+(x675); + x701 = (x700)<(x636); + x702 = (x701)+(x641); + x703 = (x702)<(x641); + x704 = (x702)+(x677); + x705 = (x704)<(x677); + x706 = (x703)+(x705); + x707 = (x706)+(x646); + x708 = (x707)<(x646); + x709 = (x707)+(x681); + x710 = (x709)<(x681); + x711 = (x708)+(x710); + x712 = (x711)+(x651); + x713 = (x712)<(x651); + x714 = (x712)+(x686); + x715 = (x714)<(x686); + x716 = (x713)+(x715); + x717 = (x716)+(x656); + x718 = (x717)<(x656); + x719 = (x717)+(x691); + x720 = (x719)<(x691); + x721 = (x718)+(x720); + x722 = (x721)+(x661); + x723 = (x722)<(x661); + x724 = (x722)+(x696); + x725 = (x724)<(x696); + x726 = (x723)+(x725); + x727 = (x726)+(x664); + x728 = (x727)<(x664); + x729 = (x727)+(x699); + x730 = (x729)<(x699); + x731 = (x728)+(x730); + x732 = (x700)*((uintptr_t)9940570264628428797ULL); + x733 = (x732)*((uintptr_t)1873798617647539866ULL); + x734 = sizeof(intptr_t) == 4 ? ((uint64_t)(x732)*((uintptr_t)1873798617647539866ULL))>>32 : ((__uint128_t)(x732)*((uintptr_t)1873798617647539866ULL))>>64; + x735 = (x732)*((uintptr_t)5412103778470702295ULL); + x736 = sizeof(intptr_t) == 4 ? ((uint64_t)(x732)*((uintptr_t)5412103778470702295ULL))>>32 : ((__uint128_t)(x732)*((uintptr_t)5412103778470702295ULL))>>64; + x737 = (x732)*((uintptr_t)7239337960414712511ULL); + x738 = sizeof(intptr_t) == 4 ? ((uint64_t)(x732)*((uintptr_t)7239337960414712511ULL))>>32 : ((__uint128_t)(x732)*((uintptr_t)7239337960414712511ULL))>>64; + x739 = (x732)*((uintptr_t)7435674573564081700ULL); + x740 = sizeof(intptr_t) == 4 ? ((uint64_t)(x732)*((uintptr_t)7435674573564081700ULL))>>32 : ((__uint128_t)(x732)*((uintptr_t)7435674573564081700ULL))>>64; + x741 = (x732)*((uintptr_t)2210141511517208575ULL); + x742 = sizeof(intptr_t) == 4 ? ((uint64_t)(x732)*((uintptr_t)2210141511517208575ULL))>>32 : ((__uint128_t)(x732)*((uintptr_t)2210141511517208575ULL))>>64; + x743 = (x732)*((uintptr_t)13402431016077863595ULL); + x744 = sizeof(intptr_t) == 4 ? ((uint64_t)(x732)*((uintptr_t)13402431016077863595ULL))>>32 : ((__uint128_t)(x732)*((uintptr_t)13402431016077863595ULL))>>64; + x745 = (x744)+(x741); + x746 = (x745)<(x744); + x747 = (x746)+(x742); + x748 = (x747)<(x742); + x749 = (x747)+(x739); + x750 = (x749)<(x739); + x751 = (x748)+(x750); + x752 = (x751)+(x740); + x753 = (x752)<(x740); + x754 = (x752)+(x737); + x755 = (x754)<(x737); + x756 = (x753)+(x755); + x757 = (x756)+(x738); + x758 = (x757)<(x738); + x759 = (x757)+(x735); + x760 = (x759)<(x735); + x761 = (x758)+(x760); + x762 = (x761)+(x736); + x763 = (x762)<(x736); + x764 = (x762)+(x733); + x765 = (x764)<(x733); + x766 = (x763)+(x765); + x767 = (x766)+(x734); + x768 = (x700)+(x743); + x769 = (x768)<(x700); + x770 = (x769)+(x704); + x771 = (x770)<(x704); + x772 = (x770)+(x745); + x773 = (x772)<(x745); + x774 = (x771)+(x773); + x775 = (x774)+(x709); + x776 = (x775)<(x709); + x777 = (x775)+(x749); + x778 = (x777)<(x749); + x779 = (x776)+(x778); + x780 = (x779)+(x714); + x781 = (x780)<(x714); + x782 = (x780)+(x754); + x783 = (x782)<(x754); + x784 = (x781)+(x783); + x785 = (x784)+(x719); + x786 = (x785)<(x719); + x787 = (x785)+(x759); + x788 = (x787)<(x759); + x789 = (x786)+(x788); + x790 = (x789)+(x724); + x791 = (x790)<(x724); + x792 = (x790)+(x764); + x793 = (x792)<(x764); + x794 = (x791)+(x793); + x795 = (x794)+(x729); + x796 = (x795)<(x729); + x797 = (x795)+(x767); + x798 = (x797)<(x767); + x799 = (x796)+(x798); + x800 = (x799)+(x731); + x801 = (x772)-((uintptr_t)13402431016077863595ULL); + x802 = (x772)<(x801); + x803 = (x777)-((uintptr_t)2210141511517208575ULL); + x804 = (x777)<(x803); + x805 = (x803)-(x802); + x806 = (x803)<(x805); + x807 = (x804)+(x806); + x808 = (x782)-((uintptr_t)7435674573564081700ULL); + x809 = (x782)<(x808); + x810 = (x808)-(x807); + x811 = (x808)<(x810); + x812 = (x809)+(x811); + x813 = (x787)-((uintptr_t)7239337960414712511ULL); + x814 = (x787)<(x813); + x815 = (x813)-(x812); + x816 = (x813)<(x815); + x817 = (x814)+(x816); + x818 = (x792)-((uintptr_t)5412103778470702295ULL); + x819 = (x792)<(x818); + x820 = (x818)-(x817); + x821 = (x818)<(x820); + x822 = (x819)+(x821); + x823 = (x797)-((uintptr_t)1873798617647539866ULL); + x824 = (x797)<(x823); + x825 = (x823)-(x822); + x826 = (x823)<(x825); + x827 = (x824)+(x826); + x828 = (x800)-(x827); + x829 = (x800)<(x828); + x830 = ((uintptr_t)-1ULL)+((x829)==((uintptr_t)0ULL)); + x831 = (x830)^((uintptr_t)18446744073709551615ULL); + x832 = ((x772)&(x830))|((x801)&(x831)); + x833 = ((uintptr_t)-1ULL)+((x829)==((uintptr_t)0ULL)); + x834 = (x833)^((uintptr_t)18446744073709551615ULL); + x835 = ((x777)&(x833))|((x805)&(x834)); + x836 = ((uintptr_t)-1ULL)+((x829)==((uintptr_t)0ULL)); + x837 = (x836)^((uintptr_t)18446744073709551615ULL); + x838 = ((x782)&(x836))|((x810)&(x837)); + x839 = ((uintptr_t)-1ULL)+((x829)==((uintptr_t)0ULL)); + x840 = (x839)^((uintptr_t)18446744073709551615ULL); + x841 = ((x787)&(x839))|((x815)&(x840)); + x842 = ((uintptr_t)-1ULL)+((x829)==((uintptr_t)0ULL)); + x843 = (x842)^((uintptr_t)18446744073709551615ULL); + x844 = ((x792)&(x842))|((x820)&(x843)); + x845 = ((uintptr_t)-1ULL)+((x829)==((uintptr_t)0ULL)); + x846 = (x845)^((uintptr_t)18446744073709551615ULL); + x847 = ((x797)&(x845))|((x825)&(x846)); + x848 = x832; + x849 = x835; + x850 = x838; + x851 = x841; + x852 = x844; + x853 = x847; + /*skip*/ + _br2_store((out0)+((uintptr_t)0ULL), x848, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)8ULL), x849, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)16ULL), x850, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)24ULL), x851, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)32ULL), x852, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)40ULL), x853, sizeof(uintptr_t)); + /*skip*/ + return; +} + +static void bls12_sub(uintptr_t out0, uintptr_t in0, uintptr_t in1) { + uintptr_t x6, x7, x0, x8, x1, x13, x9, x2, x15, x10, x3, x17, x11, x4, x19, x5, x21, x12, x25, x14, x27, x16, x29, x18, x31, x20, x22, x23, x24, x26, x28, x30, x32, x33, x34, x35, x36, x37, x38, x39; + x0 = _br2_load((in0)+((uintptr_t)0ULL), sizeof(uintptr_t)); + x1 = _br2_load((in0)+((uintptr_t)8ULL), sizeof(uintptr_t)); + x2 = _br2_load((in0)+((uintptr_t)16ULL), sizeof(uintptr_t)); + x3 = _br2_load((in0)+((uintptr_t)24ULL), sizeof(uintptr_t)); + x4 = _br2_load((in0)+((uintptr_t)32ULL), sizeof(uintptr_t)); + x5 = _br2_load((in0)+((uintptr_t)40ULL), sizeof(uintptr_t)); + /*skip*/ + x6 = _br2_load((in1)+((uintptr_t)0ULL), sizeof(uintptr_t)); + x7 = _br2_load((in1)+((uintptr_t)8ULL), sizeof(uintptr_t)); + x8 = _br2_load((in1)+((uintptr_t)16ULL), sizeof(uintptr_t)); + x9 = _br2_load((in1)+((uintptr_t)24ULL), sizeof(uintptr_t)); + x10 = _br2_load((in1)+((uintptr_t)32ULL), sizeof(uintptr_t)); + x11 = _br2_load((in1)+((uintptr_t)40ULL), sizeof(uintptr_t)); + /*skip*/ + /*skip*/ + x12 = (x0)-(x6); + x13 = (x1)-(x7); + x14 = (x13)-((x0)<(x12)); + x15 = (x2)-(x8); + x16 = (x15)-(((x1)<(x13))+((x13)<(x14))); + x17 = (x3)-(x9); + x18 = (x17)-(((x2)<(x15))+((x15)<(x16))); + x19 = (x4)-(x10); + x20 = (x19)-(((x3)<(x17))+((x17)<(x18))); + x21 = (x5)-(x11); + x22 = (x21)-(((x4)<(x19))+((x19)<(x20))); + x23 = ((uintptr_t)-1ULL)+((((x5)<(x21))+((x21)<(x22)))==((uintptr_t)0ULL)); + x24 = (x12)+((x23)&((uintptr_t)13402431016077863595ULL)); + x25 = ((x24)<(x12))+(x14); + x26 = (x25)+((x23)&((uintptr_t)2210141511517208575ULL)); + x27 = (((x25)<(x14))+((x26)<((x23)&((uintptr_t)2210141511517208575ULL))))+(x16); + x28 = (x27)+((x23)&((uintptr_t)7435674573564081700ULL)); + x29 = (((x27)<(x16))+((x28)<((x23)&((uintptr_t)7435674573564081700ULL))))+(x18); + x30 = (x29)+((x23)&((uintptr_t)7239337960414712511ULL)); + x31 = (((x29)<(x18))+((x30)<((x23)&((uintptr_t)7239337960414712511ULL))))+(x20); + x32 = (x31)+((x23)&((uintptr_t)5412103778470702295ULL)); + x33 = ((((x31)<(x20))+((x32)<((x23)&((uintptr_t)5412103778470702295ULL))))+(x22))+((x23)&((uintptr_t)1873798617647539866ULL)); + x34 = x24; + x35 = x26; + x36 = x28; + x37 = x30; + x38 = x32; + x39 = x33; + /*skip*/ + _br2_store((out0)+((uintptr_t)0ULL), x34, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)8ULL), x35, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)16ULL), x36, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)24ULL), x37, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)32ULL), x38, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)40ULL), x39, sizeof(uintptr_t)); + /*skip*/ + return; +} + +static void Fp2_add(uintptr_t outr, uintptr_t outi, uintptr_t xr, uintptr_t xi, uintptr_t yr, uintptr_t yi) { + bls12_add(outr, yr, xr); + bls12_add(outi, yi, xi); + return; +} + +static void Fp2_sub(uintptr_t outr, uintptr_t outi, uintptr_t xr, uintptr_t xi, uintptr_t yr, uintptr_t yi) { + bls12_sub(outr, xr, yr); + bls12_sub(outi, xi, yi); + return; +} + +static void Fp2_mul(uintptr_t outr, uintptr_t outi, uintptr_t xr, uintptr_t xi, uintptr_t yr, uintptr_t yi) { + uintptr_t v0; + uintptr_t v1; + uintptr_t v2; + v0 = alloca((uintptr_t)48ULL); // TODO untested + v1 = alloca((uintptr_t)48ULL); // TODO untested + v2 = alloca((uintptr_t)48ULL); // TODO untested + bls12_mul(v0, xr, yr); + bls12_mul(v1, xi, yi); + bls12_sub(outr, v0, v1); + bls12_add(v2, xr, xi); + bls12_add(outi, yr, yi); + bls12_mul(outi, v2, outi); + bls12_sub(outi, outi, v0); + bls12_sub(outi, outi, v1); + return; +} + +static void Fp2_square(uintptr_t outr, uintptr_t outi, uintptr_t inr, uintptr_t ini) { + uintptr_t v; + v = alloca((uintptr_t)48ULL); // TODO untested + bls12_add(v, inr, ini); + bls12_sub(outr, inr, ini); + bls12_mul(outr, outr, v); + bls12_mul(outi, inr, ini); + bls12_add(outi, outi, outi); + return; +} + +static void Fp2_add_alt(uintptr_t outr, uintptr_t outi, uintptr_t xr, uintptr_t xi, uintptr_t yr, uintptr_t yi) { + uintptr_t xrsep; + uintptr_t xisep; + uintptr_t yrsep; + uintptr_t yisep; + xrsep = alloca((uintptr_t)48ULL); // TODO untested + xisep = alloca((uintptr_t)48ULL); // TODO untested + yrsep = alloca((uintptr_t)48ULL); // TODO untested + yisep = alloca((uintptr_t)48ULL); // TODO untested + _br2_store(xrsep, _br2_load(xr, sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xrsep)+((uintptr_t)8ULL), _br2_load((xr)+((uintptr_t)8ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xrsep)+((uintptr_t)16ULL), _br2_load((xr)+((uintptr_t)16ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xrsep)+((uintptr_t)24ULL), _br2_load((xr)+((uintptr_t)24ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xrsep)+((uintptr_t)32ULL), _br2_load((xr)+((uintptr_t)32ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xrsep)+((uintptr_t)40ULL), _br2_load((xr)+((uintptr_t)40ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store(xisep, _br2_load(xi, sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xisep)+((uintptr_t)8ULL), _br2_load((xi)+((uintptr_t)8ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xisep)+((uintptr_t)16ULL), _br2_load((xi)+((uintptr_t)16ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xisep)+((uintptr_t)24ULL), _br2_load((xi)+((uintptr_t)24ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xisep)+((uintptr_t)32ULL), _br2_load((xi)+((uintptr_t)32ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xisep)+((uintptr_t)40ULL), _br2_load((xi)+((uintptr_t)40ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store(yrsep, _br2_load(yr, sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yrsep)+((uintptr_t)8ULL), _br2_load((yr)+((uintptr_t)8ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yrsep)+((uintptr_t)16ULL), _br2_load((yr)+((uintptr_t)16ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yrsep)+((uintptr_t)24ULL), _br2_load((yr)+((uintptr_t)24ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yrsep)+((uintptr_t)32ULL), _br2_load((yr)+((uintptr_t)32ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yrsep)+((uintptr_t)40ULL), _br2_load((yr)+((uintptr_t)40ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store(yisep, _br2_load(yi, sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yisep)+((uintptr_t)8ULL), _br2_load((yi)+((uintptr_t)8ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yisep)+((uintptr_t)16ULL), _br2_load((yi)+((uintptr_t)16ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yisep)+((uintptr_t)24ULL), _br2_load((yi)+((uintptr_t)24ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yisep)+((uintptr_t)32ULL), _br2_load((yi)+((uintptr_t)32ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yisep)+((uintptr_t)40ULL), _br2_load((yi)+((uintptr_t)40ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + Fp2_add(outr, outi, xisep, xrsep, yisep, yrsep); + return; +} + +static void Fp2_sub_alt(uintptr_t outr, uintptr_t outi, uintptr_t xr, uintptr_t xi, uintptr_t yr, uintptr_t yi) { + uintptr_t xrsep; + uintptr_t xisep; + uintptr_t yrsep; + uintptr_t yisep; + xrsep = alloca((uintptr_t)48ULL); // TODO untested + xisep = alloca((uintptr_t)48ULL); // TODO untested + yrsep = alloca((uintptr_t)48ULL); // TODO untested + yisep = alloca((uintptr_t)48ULL); // TODO untested + _br2_store(xrsep, _br2_load(xr, sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xrsep)+((uintptr_t)8ULL), _br2_load((xr)+((uintptr_t)8ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xrsep)+((uintptr_t)16ULL), _br2_load((xr)+((uintptr_t)16ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xrsep)+((uintptr_t)24ULL), _br2_load((xr)+((uintptr_t)24ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xrsep)+((uintptr_t)32ULL), _br2_load((xr)+((uintptr_t)32ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xrsep)+((uintptr_t)40ULL), _br2_load((xr)+((uintptr_t)40ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store(xisep, _br2_load(xi, sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xisep)+((uintptr_t)8ULL), _br2_load((xi)+((uintptr_t)8ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xisep)+((uintptr_t)16ULL), _br2_load((xi)+((uintptr_t)16ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xisep)+((uintptr_t)24ULL), _br2_load((xi)+((uintptr_t)24ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xisep)+((uintptr_t)32ULL), _br2_load((xi)+((uintptr_t)32ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xisep)+((uintptr_t)40ULL), _br2_load((xi)+((uintptr_t)40ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store(yrsep, _br2_load(yr, sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yrsep)+((uintptr_t)8ULL), _br2_load((yr)+((uintptr_t)8ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yrsep)+((uintptr_t)16ULL), _br2_load((yr)+((uintptr_t)16ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yrsep)+((uintptr_t)24ULL), _br2_load((yr)+((uintptr_t)24ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yrsep)+((uintptr_t)32ULL), _br2_load((yr)+((uintptr_t)32ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yrsep)+((uintptr_t)40ULL), _br2_load((yr)+((uintptr_t)40ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store(yisep, _br2_load(yi, sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yisep)+((uintptr_t)8ULL), _br2_load((yi)+((uintptr_t)8ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yisep)+((uintptr_t)16ULL), _br2_load((yi)+((uintptr_t)16ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yisep)+((uintptr_t)24ULL), _br2_load((yi)+((uintptr_t)24ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yisep)+((uintptr_t)32ULL), _br2_load((yi)+((uintptr_t)32ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yisep)+((uintptr_t)40ULL), _br2_load((yi)+((uintptr_t)40ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + Fp2_sub(outi, outr, xrsep, xisep, yrsep, yisep); + return; +} + +static void Fp2_mul_alt(uintptr_t outr, uintptr_t outi, uintptr_t xr, uintptr_t xi, uintptr_t yr, uintptr_t yi) { + uintptr_t xrsep; + uintptr_t xisep; + uintptr_t yrsep; + uintptr_t yisep; + xrsep = alloca((uintptr_t)48ULL); // TODO untested + xisep = alloca((uintptr_t)48ULL); // TODO untested + yrsep = alloca((uintptr_t)48ULL); // TODO untested + yisep = alloca((uintptr_t)48ULL); // TODO untested + _br2_store(xrsep, _br2_load(xr, sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xrsep)+((uintptr_t)8ULL), _br2_load((xr)+((uintptr_t)8ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xrsep)+((uintptr_t)16ULL), _br2_load((xr)+((uintptr_t)16ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xrsep)+((uintptr_t)24ULL), _br2_load((xr)+((uintptr_t)24ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xrsep)+((uintptr_t)32ULL), _br2_load((xr)+((uintptr_t)32ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xrsep)+((uintptr_t)40ULL), _br2_load((xr)+((uintptr_t)40ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store(xisep, _br2_load(xi, sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xisep)+((uintptr_t)8ULL), _br2_load((xi)+((uintptr_t)8ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xisep)+((uintptr_t)16ULL), _br2_load((xi)+((uintptr_t)16ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xisep)+((uintptr_t)24ULL), _br2_load((xi)+((uintptr_t)24ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xisep)+((uintptr_t)32ULL), _br2_load((xi)+((uintptr_t)32ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((xisep)+((uintptr_t)40ULL), _br2_load((xi)+((uintptr_t)40ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store(yrsep, _br2_load(yr, sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yrsep)+((uintptr_t)8ULL), _br2_load((yr)+((uintptr_t)8ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yrsep)+((uintptr_t)16ULL), _br2_load((yr)+((uintptr_t)16ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yrsep)+((uintptr_t)24ULL), _br2_load((yr)+((uintptr_t)24ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yrsep)+((uintptr_t)32ULL), _br2_load((yr)+((uintptr_t)32ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yrsep)+((uintptr_t)40ULL), _br2_load((yr)+((uintptr_t)40ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store(yisep, _br2_load(yi, sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yisep)+((uintptr_t)8ULL), _br2_load((yi)+((uintptr_t)8ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yisep)+((uintptr_t)16ULL), _br2_load((yi)+((uintptr_t)16ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yisep)+((uintptr_t)24ULL), _br2_load((yi)+((uintptr_t)24ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yisep)+((uintptr_t)32ULL), _br2_load((yi)+((uintptr_t)32ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + _br2_store((yisep)+((uintptr_t)40ULL), _br2_load((yi)+((uintptr_t)40ULL), sizeof(uintptr_t)), sizeof(uintptr_t)); + Fp2_mul(outi, outr, xrsep, xisep, yrsep, yisep); + return; +} diff --git a/src/low/x64-fiat-381/relic_fp_rdc_low.c b/src/low/x64-fiat-381/relic_fp_rdc_low.c new file mode 100644 index 000000000..6779930d9 --- /dev/null +++ b/src/low/x64-fiat-381/relic_fp_rdc_low.c @@ -0,0 +1,1001 @@ +/* + * RELIC is an Efficient LIbrary for Cryptography + * Copyright (c) 2020 RELIC Authors + * + * This file is part of RELIC. RELIC is legal property of its developers, + * whose names are not listed here. Please refer to the COPYRIGHT file + * for contact information. + * + * RELIC is free software; you can redistribute it and/or modify it under the + * terms of the version 2.1 (or later) of the GNU Lesser General Public License + * as published by the Free Software Foundation; or version 2.0 of the Apache + * License as published by the Apache Software Foundation. See the LICENSE files + * for more details. + * + * RELIC is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + * A PARTICULAR PURPOSE. See the LICENSE files for more details. + * + * You should have received a copy of the GNU Lesser General Public or the + * Apache License along with RELIC. If not, see + * or . + */ + +/** + * @file + * + * Implementation of the low-level prime field modular reduction functions. + * + * @ingroup fp + */ + +#include "relic_core.h" +#include "relic_fp.h" +#include "relic_fp_low.h" +#include "relic_bn_low.h" + +/*============================================================================*/ +/* Private definitions */ +/*============================================================================*/ + +#include "bls12_381_q_64.c" + +/* + * The function fiat_bls12_381_q_lazyred multiplies two field elements in the Montgomery domain. + * Postconditions: + * 0 ≤ eval arg1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: None + */ +void fiat_bls12_381_q_lazyred(uint64_t out1[6], uint64_t arg1[12]) { + 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; + fiat_bls12_381_q_uint1 x17; + uint64_t x18; + fiat_bls12_381_q_uint1 x19; + uint64_t x20; + fiat_bls12_381_q_uint1 x21; + uint64_t x22; + fiat_bls12_381_q_uint1 x23; + uint64_t x24; + fiat_bls12_381_q_uint1 x25; + uint64_t x26; + uint64_t x27; + fiat_bls12_381_q_uint1 x28; + uint64_t x29; + fiat_bls12_381_q_uint1 x30; + uint64_t x31; + fiat_bls12_381_q_uint1 x32; + uint64_t x33; + fiat_bls12_381_q_uint1 x34; + uint64_t x35; + fiat_bls12_381_q_uint1 x36; + uint64_t x37; + fiat_bls12_381_q_uint1 x38; + uint64_t x39; + fiat_bls12_381_q_uint1 x40; + uint64_t x41; + fiat_bls12_381_q_uint1 x42; + uint64_t x43; + fiat_bls12_381_q_uint1 x44; + uint64_t x45; + fiat_bls12_381_q_uint1 x46; + uint64_t x47; + fiat_bls12_381_q_uint1 x48; + uint64_t x49; + fiat_bls12_381_q_uint1 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_bls12_381_q_uint1 x66; + uint64_t x67; + fiat_bls12_381_q_uint1 x68; + uint64_t x69; + fiat_bls12_381_q_uint1 x70; + uint64_t x71; + fiat_bls12_381_q_uint1 x72; + uint64_t x73; + fiat_bls12_381_q_uint1 x74; + uint64_t x75; + uint64_t x76; + fiat_bls12_381_q_uint1 x77; + uint64_t x78; + fiat_bls12_381_q_uint1 x79; + uint64_t x80; + fiat_bls12_381_q_uint1 x81; + uint64_t x82; + fiat_bls12_381_q_uint1 x83; + uint64_t x84; + fiat_bls12_381_q_uint1 x85; + uint64_t x86; + fiat_bls12_381_q_uint1 x87; + uint64_t x88; + fiat_bls12_381_q_uint1 x89; + uint64_t x90; + fiat_bls12_381_q_uint1 x91; + uint64_t x92; + fiat_bls12_381_q_uint1 x93; + uint64_t x94; + fiat_bls12_381_q_uint1 x95; + uint64_t x96; + fiat_bls12_381_q_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; + fiat_bls12_381_q_uint1 x114; + uint64_t x115; + fiat_bls12_381_q_uint1 x116; + uint64_t x117; + fiat_bls12_381_q_uint1 x118; + uint64_t x119; + fiat_bls12_381_q_uint1 x120; + uint64_t x121; + fiat_bls12_381_q_uint1 x122; + uint64_t x123; + uint64_t x124; + fiat_bls12_381_q_uint1 x125; + uint64_t x126; + fiat_bls12_381_q_uint1 x127; + uint64_t x128; + fiat_bls12_381_q_uint1 x129; + uint64_t x130; + fiat_bls12_381_q_uint1 x131; + uint64_t x132; + fiat_bls12_381_q_uint1 x133; + uint64_t x134; + fiat_bls12_381_q_uint1 x135; + uint64_t x136; + fiat_bls12_381_q_uint1 x137; + uint64_t x138; + fiat_bls12_381_q_uint1 x139; + uint64_t x140; + fiat_bls12_381_q_uint1 x141; + uint64_t x142; + fiat_bls12_381_q_uint1 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; + fiat_bls12_381_q_uint1 x160; + uint64_t x161; + fiat_bls12_381_q_uint1 x162; + uint64_t x163; + fiat_bls12_381_q_uint1 x164; + uint64_t x165; + fiat_bls12_381_q_uint1 x166; + uint64_t x167; + fiat_bls12_381_q_uint1 x168; + uint64_t x169; + uint64_t x170; + fiat_bls12_381_q_uint1 x171; + uint64_t x172; + fiat_bls12_381_q_uint1 x173; + uint64_t x174; + fiat_bls12_381_q_uint1 x175; + uint64_t x176; + fiat_bls12_381_q_uint1 x177; + uint64_t x178; + fiat_bls12_381_q_uint1 x179; + uint64_t x180; + fiat_bls12_381_q_uint1 x181; + uint64_t x182; + fiat_bls12_381_q_uint1 x183; + uint64_t x184; + fiat_bls12_381_q_uint1 x185; + uint64_t x186; + fiat_bls12_381_q_uint1 x187; + uint64_t x188; + uint64_t x189; + uint64_t x190; + uint64_t x191; + uint64_t x192; + uint64_t x193; + uint64_t x194; + uint64_t x195; + uint64_t x196; + uint64_t x197; + uint64_t x198; + uint64_t x199; + uint64_t x200; + uint64_t x201; + uint64_t x202; + uint64_t x203; + fiat_bls12_381_q_uint1 x204; + uint64_t x205; + fiat_bls12_381_q_uint1 x206; + uint64_t x207; + fiat_bls12_381_q_uint1 x208; + uint64_t x209; + fiat_bls12_381_q_uint1 x210; + uint64_t x211; + fiat_bls12_381_q_uint1 x212; + uint64_t x213; + uint64_t x214; + fiat_bls12_381_q_uint1 x215; + uint64_t x216; + fiat_bls12_381_q_uint1 x217; + uint64_t x218; + fiat_bls12_381_q_uint1 x219; + uint64_t x220; + fiat_bls12_381_q_uint1 x221; + uint64_t x222; + fiat_bls12_381_q_uint1 x223; + uint64_t x224; + fiat_bls12_381_q_uint1 x225; + uint64_t x226; + fiat_bls12_381_q_uint1 x227; + uint64_t x228; + fiat_bls12_381_q_uint1 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; + fiat_bls12_381_q_uint1 x246; + uint64_t x247; + fiat_bls12_381_q_uint1 x248; + uint64_t x249; + fiat_bls12_381_q_uint1 x250; + uint64_t x251; + fiat_bls12_381_q_uint1 x252; + uint64_t x253; + fiat_bls12_381_q_uint1 x254; + uint64_t x255; + uint64_t x256; + fiat_bls12_381_q_uint1 x257; + uint64_t x258; + fiat_bls12_381_q_uint1 x259; + uint64_t x260; + fiat_bls12_381_q_uint1 x261; + uint64_t x262; + fiat_bls12_381_q_uint1 x263; + uint64_t x264; + fiat_bls12_381_q_uint1 x265; + uint64_t x266; + fiat_bls12_381_q_uint1 x267; + uint64_t x268; + fiat_bls12_381_q_uint1 x269; + uint64_t x270; + uint64_t x271; + fiat_bls12_381_q_uint1 x272; + uint64_t x273; + fiat_bls12_381_q_uint1 x274; + uint64_t x275; + fiat_bls12_381_q_uint1 x276; + uint64_t x277; + fiat_bls12_381_q_uint1 x278; + uint64_t x279; + fiat_bls12_381_q_uint1 x280; + uint64_t x281; + fiat_bls12_381_q_uint1 x282; + uint64_t x283; + fiat_bls12_381_q_uint1 x284; + uint64_t x285; + uint64_t x286; + uint64_t x287; + uint64_t x288; + uint64_t x289; + uint64_t x290; + x1 = (arg1[0]); + fiat_bls12_381_q_mulx_u64(&x2, &x3, x1, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q_mulx_u64(&x4, &x5, x2, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q_mulx_u64(&x6, &x7, x2, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q_mulx_u64(&x8, &x9, x2, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q_mulx_u64(&x10, &x11, x2, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q_mulx_u64(&x12, &x13, x2, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q_mulx_u64(&x14, &x15, x2, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q_addcarryx_u64(&x16, &x17, 0x0, x15, x12); + fiat_bls12_381_q_addcarryx_u64(&x18, &x19, x17, x13, x10); + fiat_bls12_381_q_addcarryx_u64(&x20, &x21, x19, x11, x8); + fiat_bls12_381_q_addcarryx_u64(&x22, &x23, x21, x9, x6); + fiat_bls12_381_q_addcarryx_u64(&x24, &x25, x23, x7, x4); + x26 = (x25 + x5); + fiat_bls12_381_q_addcarryx_u64(&x27, &x28, 0x0, (arg1[0]), x14); + fiat_bls12_381_q_addcarryx_u64(&x29, &x30, x28, (arg1[1]), x16); + fiat_bls12_381_q_addcarryx_u64(&x31, &x32, x30, (arg1[2]), x18); + fiat_bls12_381_q_addcarryx_u64(&x33, &x34, x32, (arg1[3]), x20); + fiat_bls12_381_q_addcarryx_u64(&x35, &x36, x34, (arg1[4]), x22); + fiat_bls12_381_q_addcarryx_u64(&x37, &x38, x36, (arg1[5]), x24); + fiat_bls12_381_q_addcarryx_u64(&x39, &x40, x38, (arg1[6]), x26); + fiat_bls12_381_q_addcarryx_u64(&x41, &x42, x40, (arg1[7]), 0x0); + fiat_bls12_381_q_addcarryx_u64(&x43, &x44, x42, (arg1[8]), 0x0); + fiat_bls12_381_q_addcarryx_u64(&x45, &x46, x44, (arg1[9]), 0x0); + fiat_bls12_381_q_addcarryx_u64(&x47, &x48, x46, (arg1[10]), 0x0); + fiat_bls12_381_q_addcarryx_u64(&x49, &x50, x48, (arg1[11]), 0x0); + fiat_bls12_381_q_mulx_u64(&x51, &x52, x29, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q_mulx_u64(&x53, &x54, x51, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q_mulx_u64(&x55, &x56, x51, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q_mulx_u64(&x57, &x58, x51, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q_mulx_u64(&x59, &x60, x51, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q_mulx_u64(&x61, &x62, x51, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q_mulx_u64(&x63, &x64, x51, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q_addcarryx_u64(&x65, &x66, 0x0, x64, x61); + fiat_bls12_381_q_addcarryx_u64(&x67, &x68, x66, x62, x59); + fiat_bls12_381_q_addcarryx_u64(&x69, &x70, x68, x60, x57); + fiat_bls12_381_q_addcarryx_u64(&x71, &x72, x70, x58, x55); + fiat_bls12_381_q_addcarryx_u64(&x73, &x74, x72, x56, x53); + x75 = (x74 + x54); + fiat_bls12_381_q_addcarryx_u64(&x76, &x77, 0x0, x29, x63); + fiat_bls12_381_q_addcarryx_u64(&x78, &x79, x77, x31, x65); + fiat_bls12_381_q_addcarryx_u64(&x80, &x81, x79, x33, x67); + fiat_bls12_381_q_addcarryx_u64(&x82, &x83, x81, x35, x69); + fiat_bls12_381_q_addcarryx_u64(&x84, &x85, x83, x37, x71); + fiat_bls12_381_q_addcarryx_u64(&x86, &x87, x85, x39, x73); + fiat_bls12_381_q_addcarryx_u64(&x88, &x89, x87, x41, x75); + fiat_bls12_381_q_addcarryx_u64(&x90, &x91, x89, x43, 0x0); + fiat_bls12_381_q_addcarryx_u64(&x92, &x93, x91, x45, 0x0); + fiat_bls12_381_q_addcarryx_u64(&x94, &x95, x93, x47, 0x0); + fiat_bls12_381_q_addcarryx_u64(&x96, &x97, x95, x49, 0x0); + x98 = ((uint64_t)x97 + x50); + fiat_bls12_381_q_mulx_u64(&x99, &x100, x78, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q_mulx_u64(&x101, &x102, x99, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q_mulx_u64(&x103, &x104, x99, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q_mulx_u64(&x105, &x106, x99, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q_mulx_u64(&x107, &x108, x99, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q_mulx_u64(&x109, &x110, x99, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q_mulx_u64(&x111, &x112, x99, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q_addcarryx_u64(&x113, &x114, 0x0, x112, x109); + fiat_bls12_381_q_addcarryx_u64(&x115, &x116, x114, x110, x107); + fiat_bls12_381_q_addcarryx_u64(&x117, &x118, x116, x108, x105); + fiat_bls12_381_q_addcarryx_u64(&x119, &x120, x118, x106, x103); + fiat_bls12_381_q_addcarryx_u64(&x121, &x122, x120, x104, x101); + x123 = (x122 + x102); + fiat_bls12_381_q_addcarryx_u64(&x124, &x125, 0x0, x78, x111); + fiat_bls12_381_q_addcarryx_u64(&x126, &x127, x125, x80, x113); + fiat_bls12_381_q_addcarryx_u64(&x128, &x129, x127, x82, x115); + fiat_bls12_381_q_addcarryx_u64(&x130, &x131, x129, x84, x117); + fiat_bls12_381_q_addcarryx_u64(&x132, &x133, x131, x86, x119); + fiat_bls12_381_q_addcarryx_u64(&x134, &x135, x133, x88, x121); + fiat_bls12_381_q_addcarryx_u64(&x136, &x137, x135, x90, x123); + fiat_bls12_381_q_addcarryx_u64(&x138, &x139, x137, x92, 0x0); + fiat_bls12_381_q_addcarryx_u64(&x140, &x141, x139, x94, 0x0); + fiat_bls12_381_q_addcarryx_u64(&x142, &x143, x141, x96, 0x0); + x144 = (x143 + x98); + fiat_bls12_381_q_mulx_u64(&x145, &x146, x126, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q_mulx_u64(&x147, &x148, x145, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q_mulx_u64(&x149, &x150, x145, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q_mulx_u64(&x151, &x152, x145, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q_mulx_u64(&x153, &x154, x145, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q_mulx_u64(&x155, &x156, x145, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q_mulx_u64(&x157, &x158, x145, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q_addcarryx_u64(&x159, &x160, 0x0, x158, x155); + fiat_bls12_381_q_addcarryx_u64(&x161, &x162, x160, x156, x153); + fiat_bls12_381_q_addcarryx_u64(&x163, &x164, x162, x154, x151); + fiat_bls12_381_q_addcarryx_u64(&x165, &x166, x164, x152, x149); + fiat_bls12_381_q_addcarryx_u64(&x167, &x168, x166, x150, x147); + x169 = (x168 + x148); + fiat_bls12_381_q_addcarryx_u64(&x170, &x171, 0x0, x126, x157); + fiat_bls12_381_q_addcarryx_u64(&x172, &x173, x171, x128, x159); + fiat_bls12_381_q_addcarryx_u64(&x174, &x175, x173, x130, x161); + fiat_bls12_381_q_addcarryx_u64(&x176, &x177, x175, x132, x163); + fiat_bls12_381_q_addcarryx_u64(&x178, &x179, x177, x134, x165); + fiat_bls12_381_q_addcarryx_u64(&x180, &x181, x179, x136, x167); + fiat_bls12_381_q_addcarryx_u64(&x182, &x183, x181, x138, x169); + fiat_bls12_381_q_addcarryx_u64(&x184, &x185, x183, x140, 0x0); + fiat_bls12_381_q_addcarryx_u64(&x186, &x187, x185, x142, 0x0); + x188 = (x187 + x144); + fiat_bls12_381_q_mulx_u64(&x189, &x190, x172, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q_mulx_u64(&x191, &x192, x189, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q_mulx_u64(&x193, &x194, x189, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q_mulx_u64(&x195, &x196, x189, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q_mulx_u64(&x197, &x198, x189, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q_mulx_u64(&x199, &x200, x189, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q_mulx_u64(&x201, &x202, x189, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q_addcarryx_u64(&x203, &x204, 0x0, x202, x199); + fiat_bls12_381_q_addcarryx_u64(&x205, &x206, x204, x200, x197); + fiat_bls12_381_q_addcarryx_u64(&x207, &x208, x206, x198, x195); + fiat_bls12_381_q_addcarryx_u64(&x209, &x210, x208, x196, x193); + fiat_bls12_381_q_addcarryx_u64(&x211, &x212, x210, x194, x191); + x213 = (x212 + x192); + fiat_bls12_381_q_addcarryx_u64(&x214, &x215, 0x0, x172, x201); + fiat_bls12_381_q_addcarryx_u64(&x216, &x217, x215, x174, x203); + fiat_bls12_381_q_addcarryx_u64(&x218, &x219, x217, x176, x205); + fiat_bls12_381_q_addcarryx_u64(&x220, &x221, x219, x178, x207); + fiat_bls12_381_q_addcarryx_u64(&x222, &x223, x221, x180, x209); + fiat_bls12_381_q_addcarryx_u64(&x224, &x225, x223, x182, x211); + fiat_bls12_381_q_addcarryx_u64(&x226, &x227, x225, x184, x213); + fiat_bls12_381_q_addcarryx_u64(&x228, &x229, x227, x186, 0x0); + x230 = (x229 + x188); + fiat_bls12_381_q_mulx_u64(&x231, &x232, x216, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q_mulx_u64(&x233, &x234, x231, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q_mulx_u64(&x235, &x236, x231, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q_mulx_u64(&x237, &x238, x231, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q_mulx_u64(&x239, &x240, x231, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q_mulx_u64(&x241, &x242, x231, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q_mulx_u64(&x243, &x244, x231, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q_addcarryx_u64(&x245, &x246, 0x0, x244, x241); + fiat_bls12_381_q_addcarryx_u64(&x247, &x248, x246, x242, x239); + fiat_bls12_381_q_addcarryx_u64(&x249, &x250, x248, x240, x237); + fiat_bls12_381_q_addcarryx_u64(&x251, &x252, x250, x238, x235); + fiat_bls12_381_q_addcarryx_u64(&x253, &x254, x252, x236, x233); + x255 = (x254 + x234); + fiat_bls12_381_q_addcarryx_u64(&x256, &x257, 0x0, x216, x243); + fiat_bls12_381_q_addcarryx_u64(&x258, &x259, x257, x218, x245); + fiat_bls12_381_q_addcarryx_u64(&x260, &x261, x259, x220, x247); + fiat_bls12_381_q_addcarryx_u64(&x262, &x263, x261, x222, x249); + fiat_bls12_381_q_addcarryx_u64(&x264, &x265, x263, x224, x251); + fiat_bls12_381_q_addcarryx_u64(&x266, &x267, x265, x226, x253); + fiat_bls12_381_q_addcarryx_u64(&x268, &x269, x267, x228, x255); + x270 = (x269 + x230); + fiat_bls12_381_q_subborrowx_u64(&x271, &x272, 0x0, x258, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q_subborrowx_u64(&x273, &x274, x272, x260, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q_subborrowx_u64(&x275, &x276, x274, x262, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q_subborrowx_u64(&x277, &x278, x276, x264, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q_subborrowx_u64(&x279, &x280, x278, x266, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q_subborrowx_u64(&x281, &x282, x280, x268, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q_subborrowx_u64(&x283, &x284, x282, x270, 0x0); + fiat_bls12_381_q_cmovznz_u64(&x285, x284, x271, x258); + fiat_bls12_381_q_cmovznz_u64(&x286, x284, x273, x260); + fiat_bls12_381_q_cmovznz_u64(&x287, x284, x275, x262); + fiat_bls12_381_q_cmovznz_u64(&x288, x284, x277, x264); + fiat_bls12_381_q_cmovznz_u64(&x289, x284, x279, x266); + fiat_bls12_381_q_cmovznz_u64(&x290, x284, x281, x268); + out1[0] = x285; + out1[1] = x286; + out1[2] = x287; + out1[3] = x288; + out1[4] = x289; + out1[5] = x290; +} + +/* + * The function fiat_bls12_381_q_lazyredalt multiplies two field elements in the Montgomery domain. + * Postconditions: + * 0 ≤ eval arg1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: None + */ +static void fiat_bls12_381_q_lazyredalt(uint64_t out1[6], const uint64_t arg1[12]) { + 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; + fiat_bls12_381_q_uint1 x17; + uint64_t x18; + fiat_bls12_381_q_uint1 x19; + uint64_t x20; + fiat_bls12_381_q_uint1 x21; + uint64_t x22; + fiat_bls12_381_q_uint1 x23; + uint64_t x24; + fiat_bls12_381_q_uint1 x25; + uint64_t x26; + uint64_t x27; + fiat_bls12_381_q_uint1 x28; + uint64_t x29; + fiat_bls12_381_q_uint1 x30; + uint64_t x31; + fiat_bls12_381_q_uint1 x32; + uint64_t x33; + fiat_bls12_381_q_uint1 x34; + uint64_t x35; + fiat_bls12_381_q_uint1 x36; + uint64_t x37; + fiat_bls12_381_q_uint1 x38; + uint64_t x39; + fiat_bls12_381_q_uint1 x40; + uint64_t x41; + fiat_bls12_381_q_uint1 x42; + uint64_t x43; + fiat_bls12_381_q_uint1 x44; + uint64_t x45; + fiat_bls12_381_q_uint1 x46; + uint64_t x47; + fiat_bls12_381_q_uint1 x48; + uint64_t x49; + fiat_bls12_381_q_uint1 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_bls12_381_q_uint1 x66; + uint64_t x67; + fiat_bls12_381_q_uint1 x68; + uint64_t x69; + fiat_bls12_381_q_uint1 x70; + uint64_t x71; + fiat_bls12_381_q_uint1 x72; + uint64_t x73; + fiat_bls12_381_q_uint1 x74; + uint64_t x75; + uint64_t x76; + fiat_bls12_381_q_uint1 x77; + uint64_t x78; + fiat_bls12_381_q_uint1 x79; + uint64_t x80; + fiat_bls12_381_q_uint1 x81; + uint64_t x82; + fiat_bls12_381_q_uint1 x83; + uint64_t x84; + fiat_bls12_381_q_uint1 x85; + uint64_t x86; + fiat_bls12_381_q_uint1 x87; + uint64_t x88; + fiat_bls12_381_q_uint1 x89; + uint64_t x90; + fiat_bls12_381_q_uint1 x91; + uint64_t x92; + fiat_bls12_381_q_uint1 x93; + uint64_t x94; + fiat_bls12_381_q_uint1 x95; + uint64_t x96; + fiat_bls12_381_q_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; + fiat_bls12_381_q_uint1 x113; + uint64_t x114; + fiat_bls12_381_q_uint1 x115; + uint64_t x116; + fiat_bls12_381_q_uint1 x117; + uint64_t x118; + fiat_bls12_381_q_uint1 x119; + uint64_t x120; + fiat_bls12_381_q_uint1 x121; + uint64_t x122; + uint64_t x123; + fiat_bls12_381_q_uint1 x124; + uint64_t x125; + fiat_bls12_381_q_uint1 x126; + uint64_t x127; + fiat_bls12_381_q_uint1 x128; + uint64_t x129; + fiat_bls12_381_q_uint1 x130; + uint64_t x131; + fiat_bls12_381_q_uint1 x132; + uint64_t x133; + fiat_bls12_381_q_uint1 x134; + uint64_t x135; + fiat_bls12_381_q_uint1 x136; + uint64_t x137; + fiat_bls12_381_q_uint1 x138; + uint64_t x139; + fiat_bls12_381_q_uint1 x140; + uint64_t x141; + fiat_bls12_381_q_uint1 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; + fiat_bls12_381_q_uint1 x158; + uint64_t x159; + fiat_bls12_381_q_uint1 x160; + uint64_t x161; + fiat_bls12_381_q_uint1 x162; + uint64_t x163; + fiat_bls12_381_q_uint1 x164; + uint64_t x165; + fiat_bls12_381_q_uint1 x166; + uint64_t x167; + uint64_t x168; + fiat_bls12_381_q_uint1 x169; + uint64_t x170; + fiat_bls12_381_q_uint1 x171; + uint64_t x172; + fiat_bls12_381_q_uint1 x173; + uint64_t x174; + fiat_bls12_381_q_uint1 x175; + uint64_t x176; + fiat_bls12_381_q_uint1 x177; + uint64_t x178; + fiat_bls12_381_q_uint1 x179; + uint64_t x180; + fiat_bls12_381_q_uint1 x181; + uint64_t x182; + fiat_bls12_381_q_uint1 x183; + uint64_t x184; + fiat_bls12_381_q_uint1 x185; + uint64_t x186; + uint64_t x187; + uint64_t x188; + uint64_t x189; + uint64_t x190; + uint64_t x191; + uint64_t x192; + uint64_t x193; + uint64_t x194; + uint64_t x195; + uint64_t x196; + uint64_t x197; + uint64_t x198; + uint64_t x199; + uint64_t x200; + fiat_bls12_381_q_uint1 x201; + uint64_t x202; + fiat_bls12_381_q_uint1 x203; + uint64_t x204; + fiat_bls12_381_q_uint1 x205; + uint64_t x206; + fiat_bls12_381_q_uint1 x207; + uint64_t x208; + fiat_bls12_381_q_uint1 x209; + uint64_t x210; + uint64_t x211; + fiat_bls12_381_q_uint1 x212; + uint64_t x213; + fiat_bls12_381_q_uint1 x214; + uint64_t x215; + fiat_bls12_381_q_uint1 x216; + uint64_t x217; + fiat_bls12_381_q_uint1 x218; + uint64_t x219; + fiat_bls12_381_q_uint1 x220; + uint64_t x221; + fiat_bls12_381_q_uint1 x222; + uint64_t x223; + fiat_bls12_381_q_uint1 x224; + uint64_t x225; + fiat_bls12_381_q_uint1 x226; + uint64_t x227; + uint64_t 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; + fiat_bls12_381_q_uint1 x242; + uint64_t x243; + fiat_bls12_381_q_uint1 x244; + uint64_t x245; + fiat_bls12_381_q_uint1 x246; + uint64_t x247; + fiat_bls12_381_q_uint1 x248; + uint64_t x249; + fiat_bls12_381_q_uint1 x250; + uint64_t x251; + uint64_t x252; + fiat_bls12_381_q_uint1 x253; + uint64_t x254; + fiat_bls12_381_q_uint1 x255; + uint64_t x256; + fiat_bls12_381_q_uint1 x257; + uint64_t x258; + fiat_bls12_381_q_uint1 x259; + uint64_t x260; + fiat_bls12_381_q_uint1 x261; + uint64_t x262; + fiat_bls12_381_q_uint1 x263; + uint64_t x264; + fiat_bls12_381_q_uint1 x265; + x1 = (arg1[0]); + fiat_bls12_381_q_mulx_u64(&x2, &x3, x1, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q_mulx_u64(&x4, &x5, x2, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q_mulx_u64(&x6, &x7, x2, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q_mulx_u64(&x8, &x9, x2, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q_mulx_u64(&x10, &x11, x2, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q_mulx_u64(&x12, &x13, x2, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q_mulx_u64(&x14, &x15, x2, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q_addcarryx_u64(&x16, &x17, 0x0, x15, x12); + fiat_bls12_381_q_addcarryx_u64(&x18, &x19, x17, x13, x10); + fiat_bls12_381_q_addcarryx_u64(&x20, &x21, x19, x11, x8); + fiat_bls12_381_q_addcarryx_u64(&x22, &x23, x21, x9, x6); + fiat_bls12_381_q_addcarryx_u64(&x24, &x25, x23, x7, x4); + x26 = (x25 + x5); + fiat_bls12_381_q_addcarryx_u64(&x27, &x28, 0x0, (arg1[0]), x14); + fiat_bls12_381_q_addcarryx_u64(&x29, &x30, x28, (arg1[1]), x16); + fiat_bls12_381_q_addcarryx_u64(&x31, &x32, x30, (arg1[2]), x18); + fiat_bls12_381_q_addcarryx_u64(&x33, &x34, x32, (arg1[3]), x20); + fiat_bls12_381_q_addcarryx_u64(&x35, &x36, x34, (arg1[4]), x22); + fiat_bls12_381_q_addcarryx_u64(&x37, &x38, x36, (arg1[5]), x24); + fiat_bls12_381_q_addcarryx_u64(&x39, &x40, x38, (arg1[6]), x26); + fiat_bls12_381_q_addcarryx_u64(&x41, &x42, x40, (arg1[7]), 0x0); + fiat_bls12_381_q_addcarryx_u64(&x43, &x44, x42, (arg1[8]), 0x0); + fiat_bls12_381_q_addcarryx_u64(&x45, &x46, x44, (arg1[9]), 0x0); + fiat_bls12_381_q_addcarryx_u64(&x47, &x48, x46, (arg1[10]), 0x0); + fiat_bls12_381_q_addcarryx_u64(&x49, &x50, x48, (arg1[11]), 0x0); + fiat_bls12_381_q_mulx_u64(&x51, &x52, x29, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q_mulx_u64(&x53, &x54, x51, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q_mulx_u64(&x55, &x56, x51, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q_mulx_u64(&x57, &x58, x51, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q_mulx_u64(&x59, &x60, x51, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q_mulx_u64(&x61, &x62, x51, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q_mulx_u64(&x63, &x64, x51, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q_addcarryx_u64(&x65, &x66, 0x0, x64, x61); + fiat_bls12_381_q_addcarryx_u64(&x67, &x68, x66, x62, x59); + fiat_bls12_381_q_addcarryx_u64(&x69, &x70, x68, x60, x57); + fiat_bls12_381_q_addcarryx_u64(&x71, &x72, x70, x58, x55); + fiat_bls12_381_q_addcarryx_u64(&x73, &x74, x72, x56, x53); + x75 = (x74 + x54); + fiat_bls12_381_q_addcarryx_u64(&x76, &x77, 0x0, x29, x63); + fiat_bls12_381_q_addcarryx_u64(&x78, &x79, x77, x31, x65); + fiat_bls12_381_q_addcarryx_u64(&x80, &x81, x79, x33, x67); + fiat_bls12_381_q_addcarryx_u64(&x82, &x83, x81, x35, x69); + fiat_bls12_381_q_addcarryx_u64(&x84, &x85, x83, x37, x71); + fiat_bls12_381_q_addcarryx_u64(&x86, &x87, x85, x39, x73); + fiat_bls12_381_q_addcarryx_u64(&x88, &x89, x87, x41, x75); + fiat_bls12_381_q_addcarryx_u64(&x90, &x91, x89, x43, 0x0); + fiat_bls12_381_q_addcarryx_u64(&x92, &x93, x91, x45, 0x0); + fiat_bls12_381_q_addcarryx_u64(&x94, &x95, x93, x47, 0x0); + fiat_bls12_381_q_addcarryx_u64(&x96, &x97, x95, x49, 0x0); + fiat_bls12_381_q_mulx_u64(&x98, &x99, x78, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q_mulx_u64(&x100, &x101, x98, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q_mulx_u64(&x102, &x103, x98, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q_mulx_u64(&x104, &x105, x98, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q_mulx_u64(&x106, &x107, x98, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q_mulx_u64(&x108, &x109, x98, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q_mulx_u64(&x110, &x111, x98, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q_addcarryx_u64(&x112, &x113, 0x0, x111, x108); + fiat_bls12_381_q_addcarryx_u64(&x114, &x115, x113, x109, x106); + fiat_bls12_381_q_addcarryx_u64(&x116, &x117, x115, x107, x104); + fiat_bls12_381_q_addcarryx_u64(&x118, &x119, x117, x105, x102); + fiat_bls12_381_q_addcarryx_u64(&x120, &x121, x119, x103, x100); + x122 = (x121 + x101); + fiat_bls12_381_q_addcarryx_u64(&x123, &x124, 0x0, x78, x110); + fiat_bls12_381_q_addcarryx_u64(&x125, &x126, x124, x80, x112); + fiat_bls12_381_q_addcarryx_u64(&x127, &x128, x126, x82, x114); + fiat_bls12_381_q_addcarryx_u64(&x129, &x130, x128, x84, x116); + fiat_bls12_381_q_addcarryx_u64(&x131, &x132, x130, x86, x118); + fiat_bls12_381_q_addcarryx_u64(&x133, &x134, x132, x88, x120); + fiat_bls12_381_q_addcarryx_u64(&x135, &x136, x134, x90, x122); + fiat_bls12_381_q_addcarryx_u64(&x137, &x138, x136, x92, 0x0); + fiat_bls12_381_q_addcarryx_u64(&x139, &x140, x138, x94, 0x0); + fiat_bls12_381_q_addcarryx_u64(&x141, &x142, x140, x96, 0x0); + fiat_bls12_381_q_mulx_u64(&x143, &x144, x125, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q_mulx_u64(&x145, &x146, x143, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q_mulx_u64(&x147, &x148, x143, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q_mulx_u64(&x149, &x150, x143, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q_mulx_u64(&x151, &x152, x143, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q_mulx_u64(&x153, &x154, x143, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q_mulx_u64(&x155, &x156, x143, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q_addcarryx_u64(&x157, &x158, 0x0, x156, x153); + fiat_bls12_381_q_addcarryx_u64(&x159, &x160, x158, x154, x151); + fiat_bls12_381_q_addcarryx_u64(&x161, &x162, x160, x152, x149); + fiat_bls12_381_q_addcarryx_u64(&x163, &x164, x162, x150, x147); + fiat_bls12_381_q_addcarryx_u64(&x165, &x166, x164, x148, x145); + x167 = (x166 + x146); + fiat_bls12_381_q_addcarryx_u64(&x168, &x169, 0x0, x125, x155); + fiat_bls12_381_q_addcarryx_u64(&x170, &x171, x169, x127, x157); + fiat_bls12_381_q_addcarryx_u64(&x172, &x173, x171, x129, x159); + fiat_bls12_381_q_addcarryx_u64(&x174, &x175, x173, x131, x161); + fiat_bls12_381_q_addcarryx_u64(&x176, &x177, x175, x133, x163); + fiat_bls12_381_q_addcarryx_u64(&x178, &x179, x177, x135, x165); + fiat_bls12_381_q_addcarryx_u64(&x180, &x181, x179, x137, x167); + fiat_bls12_381_q_addcarryx_u64(&x182, &x183, x181, x139, 0x0); + fiat_bls12_381_q_addcarryx_u64(&x184, &x185, x183, x141, 0x0); + fiat_bls12_381_q_mulx_u64(&x186, &x187, x170, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q_mulx_u64(&x188, &x189, x186, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q_mulx_u64(&x190, &x191, x186, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q_mulx_u64(&x192, &x193, x186, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q_mulx_u64(&x194, &x195, x186, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q_mulx_u64(&x196, &x197, x186, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q_mulx_u64(&x198, &x199, x186, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q_addcarryx_u64(&x200, &x201, 0x0, x199, x196); + fiat_bls12_381_q_addcarryx_u64(&x202, &x203, x201, x197, x194); + fiat_bls12_381_q_addcarryx_u64(&x204, &x205, x203, x195, x192); + fiat_bls12_381_q_addcarryx_u64(&x206, &x207, x205, x193, x190); + fiat_bls12_381_q_addcarryx_u64(&x208, &x209, x207, x191, x188); + x210 = (x209 + x189); + fiat_bls12_381_q_addcarryx_u64(&x211, &x212, 0x0, x170, x198); + fiat_bls12_381_q_addcarryx_u64(&x213, &x214, x212, x172, x200); + fiat_bls12_381_q_addcarryx_u64(&x215, &x216, x214, x174, x202); + fiat_bls12_381_q_addcarryx_u64(&x217, &x218, x216, x176, x204); + fiat_bls12_381_q_addcarryx_u64(&x219, &x220, x218, x178, x206); + fiat_bls12_381_q_addcarryx_u64(&x221, &x222, x220, x180, x208); + fiat_bls12_381_q_addcarryx_u64(&x223, &x224, x222, x182, x210); + fiat_bls12_381_q_addcarryx_u64(&x225, &x226, x224, x184, 0x0); + fiat_bls12_381_q_mulx_u64(&x227, &x228, x213, UINT64_C(0x89f3fffcfffcfffd)); + fiat_bls12_381_q_mulx_u64(&x229, &x230, x227, UINT64_C(0x1a0111ea397fe69a)); + fiat_bls12_381_q_mulx_u64(&x231, &x232, x227, UINT64_C(0x4b1ba7b6434bacd7)); + fiat_bls12_381_q_mulx_u64(&x233, &x234, x227, UINT64_C(0x64774b84f38512bf)); + fiat_bls12_381_q_mulx_u64(&x235, &x236, x227, UINT64_C(0x6730d2a0f6b0f624)); + fiat_bls12_381_q_mulx_u64(&x237, &x238, x227, UINT64_C(0x1eabfffeb153ffff)); + fiat_bls12_381_q_mulx_u64(&x239, &x240, x227, UINT64_C(0xb9feffffffffaaab)); + fiat_bls12_381_q_addcarryx_u64(&x241, &x242, 0x0, x240, x237); + fiat_bls12_381_q_addcarryx_u64(&x243, &x244, x242, x238, x235); + fiat_bls12_381_q_addcarryx_u64(&x245, &x246, x244, x236, x233); + fiat_bls12_381_q_addcarryx_u64(&x247, &x248, x246, x234, x231); + fiat_bls12_381_q_addcarryx_u64(&x249, &x250, x248, x232, x229); + x251 = (x250 + x230); + fiat_bls12_381_q_addcarryx_u64(&x252, &x253, 0x0, x213, x239); + fiat_bls12_381_q_addcarryx_u64(&x254, &x255, x253, x215, x241); + fiat_bls12_381_q_addcarryx_u64(&x256, &x257, x255, x217, x243); + fiat_bls12_381_q_addcarryx_u64(&x258, &x259, x257, x219, x245); + fiat_bls12_381_q_addcarryx_u64(&x260, &x261, x259, x221, x247); + fiat_bls12_381_q_addcarryx_u64(&x262, &x263, x261, x223, x249); + fiat_bls12_381_q_addcarryx_u64(&x264, &x265, x263, x225, x251); + out1[0] = x254; + out1[1] = x256; + out1[2] = x258; + out1[3] = x260; + out1[4] = x262; + out1[5] = x264; +} + +void fp_rdcs_low(dig_t *c, const dig_t *a, const dig_t *m) { + rlc_align dig_t q[2 * RLC_FP_DIGS], _q[2 * RLC_FP_DIGS], t[2 * RLC_FP_DIGS], r[RLC_FP_DIGS]; + const int *sform; + int len, first, i, j, k, b0, d0, b1, d1; + + sform = fp_prime_get_sps(&len); + + RLC_RIP(b0, d0, sform[len - 1]); + first = (d0) + (b0 == 0 ? 0 : 1); + + /* q = floor(a/b^k) */ + dv_zero(q, 2 * RLC_FP_DIGS); + dv_rshd(q, a, 2 * RLC_FP_DIGS, d0); + if (b0 > 0) { + bn_rshb_low(q, q, 2 * RLC_FP_DIGS, b0); + } + + /* r = a - qb^k. */ + dv_copy(r, a, first); + if (b0 > 0) { + r[first - 1] &= RLC_MASK(b0); + } + + k = 0; + while (!fp_is_zero(q)) { + dv_zero(_q, 2 * RLC_FP_DIGS); + for (i = len - 2; i > 0; i--) { + j = (sform[i] < 0 ? -sform[i] : sform[i]); + RLC_RIP(b1, d1, j); + dv_zero(t, 2 * RLC_FP_DIGS); + dv_lshd(t, q, RLC_FP_DIGS, d1); + if (b1 > 0) { + bn_lshb_low(t, t, 2 * RLC_FP_DIGS, b1); + } + /* Check if these two have the same sign. */ + if ((sform[len - 2] < 0) == (sform[i] < 0)) { + bn_addn_low(_q, _q, t, 2 * RLC_FP_DIGS); + } else { + bn_subn_low(_q, _q, t, 2 * RLC_FP_DIGS); + } + } + /* Check if these two have the same sign. */ + if ((sform[len - 2] < 0) == (sform[0] < 0)) { + bn_addn_low(_q, _q, q, 2 * RLC_FP_DIGS); + } else { + bn_subn_low(_q, _q, q, 2 * RLC_FP_DIGS); + } + dv_rshd(q, _q, 2 * RLC_FP_DIGS, d0); + if (b0 > 0) { + bn_rshb_low(q, q, 2 * RLC_FP_DIGS, b0); + } + if (b0 > 0) { + _q[first - 1] &= RLC_MASK(b0); + } + if (sform[len - 2] < 0) { + fp_add(r, r, _q); + } else { + if (k++ % 2 == 0) { + if (fp_subn_low(r, r, _q)) { + fp_addn_low(r, r, m); + } + } else { + fp_addn_low(r, r, _q); + } + } + } + while (dv_cmp(r, m, RLC_FP_DIGS) != RLC_LT) { + fp_subn_low(r, r, m); + } + fp_copy(c, r); +} + +void fp_rdcn_low(dig_t *c, dig_t *a) { + fiat_bls12_381_q_lazyred(c, a); + //fiat_bls12_381_q_lazyredalt(c, a); +} diff --git a/src/low/x64-fiat-381/relic_fpx_add_low.c b/src/low/x64-fiat-381/relic_fpx_add_low.c new file mode 100644 index 000000000..06c1171b0 --- /dev/null +++ b/src/low/x64-fiat-381/relic_fpx_add_low.c @@ -0,0 +1,313 @@ +/* + * RELIC is an Efficient LIbrary for Cryptography + * Copyright (c) 2020 RELIC Authors + * + * This file is part of RELIC. RELIC is legal property of its developers, + * whose names are not listed here. Please refer to the COPYRIGHT file + * for contact information. + * + * RELIC is free software; you can redistribute it and/or modify it under the + * terms of the version 2.1 (or later) of the GNU Lesser General Public License + * as published by the Free Software Foundation; or version 2.0 of the Apache + * License as published by the Apache Software Foundation. See the LICENSE files + * for more details. + * + * RELIC is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + * A PARTICULAR PURPOSE. See the LICENSE files for more details. + * + * You should have received a copy of the GNU Lesser General Public or the + * Apache License along with RELIC. If not, see + * or . + */ + +/** + * @file + * + * Implementation of the low-level extension field addition functions. + * + * @ingroup fpx + */ + +#include "relic_core.h" +#include "relic_fp_low.h" +#include "relic_bn_low.h" + +/*============================================================================*/ +/* Public definitions */ +/*============================================================================*/ + +#include "bls12_381_q2_64.c" +#include "bls12_381_q2_bedrock.c" + +void fp2_addn_low(fp2_t c, fp2_t a, fp2_t b) { + fp_addn_low(c[0], a[0], b[0]); + fp_addn_low(c[1], a[1], b[1]); +} + +void fp2_addm_low(fp2_t c, fp2_t a, fp2_t b) { + //fiat_bls12_381_q2_addFp2(c[0], c[1], a[0], a[1], b[0], b[1]); + Fp2_add(c[0], c[1], a[0], a[1], b[0], b[1]); +} + +void fp2_addd_low(dv2_t c, dv2_t a, dv2_t b) { + fp_addd_low(c[0], a[0], b[0]); + fp_addd_low(c[1], a[1], b[1]); +} + +void fp2_addc_low(dv2_t c, dv2_t a, dv2_t b) { + fp_addc_low(c[0], a[0], b[0]); + fp_addc_low(c[1], a[1], b[1]); +} + +void fp2_subn_low(fp2_t c, fp2_t a, fp2_t b) { + fp_subn_low(c[0], a[0], b[0]); + fp_subn_low(c[1], a[1], b[1]); +} + +void fp2_subm_low(fp2_t c, fp2_t a, fp2_t b) { + fiat_bls12_381_q2_subFp2(c[0], c[1], a[0], a[1], b[0], b[1]); + //Fp2_sub(c[0], c[1], a[0], a[1], b[0], b[1]); +} + +void fp2_subd_low(dv2_t c, dv2_t a, dv2_t b) { + fp_subd_low(c[0], a[0], b[0]); + fp_subd_low(c[1], a[1], b[1]); +} + +void fp2_subc_low(dv2_t c, dv2_t a, dv2_t b) { + fp_subc_low(c[0], a[0], b[0]); + fp_subc_low(c[1], a[1], b[1]); +} + +void fp2_dbln_low(fp2_t c, fp2_t a) { + /* 2 * (a0 + a1 * u) = 2 * a0 + 2 * a1 * u. */ + fp_dbln_low(c[0], a[0]); + fp_dbln_low(c[1], a[1]); +} + +void fp2_dblm_low(fp2_t c, fp2_t a) { + fp_dblm_low(c[0], a[0]); + fp_dblm_low(c[1], a[1]); +} + +void fp2_norm_low(fp2_t c, fp2_t a) { + fp2_t t; + + fp2_null(t); + + RLC_TRY { + fp2_new(t); + +#ifdef FP_QNRES + /* If p = 3 mod 8, (1 + i) is a QNR/CNR. */ + fp_copy(t[0], a[1]); + fp_add(c[1], a[0], a[1]); + fp_sub(c[0], a[0], t[0]); +#else + int qnr = fp2_field_get_qnr(); + switch (fp_prime_get_mod8()) { + case 3: + /* If p = 3 mod 8, (1 + i) is a QNR/CNR. */ + fp_neg(t[0], a[1]); + fp_add(c[1], a[0], a[1]); + fp_add(c[0], t[0], a[0]); + break; + case 1: + case 5: + /* If p = 1,5 mod 8, (i) is a QNR/CNR. */ + fp2_mul_art(c, a); + break; + case 7: + /* If p = 7 mod 8, we choose (2^k + i) as QNR/CNR. */ + fp2_mul_art(t, a); + fp2_copy(c, a); + while (qnr > 1) { + fp2_dbl(c, c); + qnr = qnr >> 1; + } + fp2_add(c, c, t); + break; + } +#endif + } + RLC_CATCH_ANY { + RLC_THROW(ERR_CAUGHT); + } + RLC_FINALLY { + fp2_free(t); + } +} + +void fp2_nord_low(dv2_t c, dv2_t a) { + dv2_t t; + + dv2_null(t); + + RLC_TRY { + dv2_new(t); + +#ifdef FP_QNRES + /* If p = 3 mod 8, (1 + i) is a QNR/CNR. */ + /* (a_0 + a_1 * i) * (1 + i) = (a_0 - a_1) + (a_0 + a_1) * u. */ + dv_copy(t[0], a[1], 2 * RLC_FP_DIGS); + fp_addc_low(c[1], a[0], a[1]); + fp_subc_low(c[0], a[0], t[0]); +#else + int qnr = fp2_field_get_qnr(); + switch (fp_prime_get_mod8()) { + case 3: + /* If p = 3 mod 8, (1 + i) is a QNR, i^2 = -1. */ + /* (a_0 + a_1 * i) * (1 + i) = (a_0 - a_1) + (a_0 + a_1) * i. */ + dv_copy(t[0], a[1], 2 * RLC_FP_DIGS); + fp_addc_low(c[1], a[0], a[1]); + fp_subc_low(c[0], a[0], t[0]); + break; + case 1: + case 5: + /* If p = 1,5 mod 8, (i) is a QNR. */ + dv_copy(t[0], a[0], 2 * RLC_FP_DIGS); + dv_zero(t[1], RLC_FP_DIGS); + dv_copy(t[1] + RLC_FP_DIGS, fp_prime_get(), RLC_FP_DIGS); + fp_subc_low(c[0], t[1], a[1]); + for (int i = -1; i > fp_prime_get_qnr(); i--) { + fp_subc_low(c[0], c[0], a[1]); + } + dv_copy(c[1], t[0], 2 * RLC_FP_DIGS); + break; + case 7: + /* If p = 7 mod 8, (2^k + i) is a QNR/CNR. */ + dv_copy(t[0], a[0], 2 * RLC_FP_DIGS); + dv_copy(t[1], a[1], 2 * RLC_FP_DIGS); + while (qnr > 1) { + fp2_addc_low(t, t, t); + qnr = qnr >> 1; + } + fp_subc_low(c[0], t[0], a[1]); + fp_addc_low(c[1], t[1], a[0]); + break; + } +#endif + } + RLC_CATCH_ANY { + RLC_THROW(ERR_CAUGHT); + } + RLC_FINALLY { + dv2_free(t); + } +} + +void fp2_norh_low(dv2_t c, dv2_t a) { +#ifdef FP_QNRES + dv2_t t; + + dv2_null(t); + + RLC_TRY { + dv2_new(t); + + /* If p = 3 mod 8, (1 + i) is a QNR/CNR. */ + /* (a_0 + a_1 * i) * (1 + i) = (a_0 - a_1) + (a_0 + a_1) * u. */ + dv_copy(t[1], a[1], 2 * RLC_FP_DIGS); + fp_addd_low(c[1], a[0], a[1]); + /* c_0 = c_0 + 2^N * p/2. */ + dv_copy(t[0], a[0], 2 * RLC_FP_DIGS); + bn_lshb_low(t[0] + RLC_FP_DIGS - 1, t[0] + RLC_FP_DIGS - 1, RLC_FP_DIGS + 1, 1); + fp_addn_low(t[0] + RLC_FP_DIGS, t[0] + RLC_FP_DIGS, fp_prime_get()); + bn_rshb_low(t[0] + RLC_FP_DIGS - 1, t[0] + RLC_FP_DIGS - 1, RLC_FP_DIGS + 1, 1); + fp_subd_low(c[0], t[0], t[1]); + } + RLC_CATCH_ANY { + RLC_THROW(ERR_CAUGHT); + } + RLC_FINALLY { + dv2_free(t); + } +#else + fp2_nord_low(c, a); +#endif +} + +void fp3_addn_low(fp3_t c, fp3_t a, fp3_t b) { + fp_addn_low(c[0], a[0], b[0]); + fp_addn_low(c[1], a[1], b[1]); + fp_addn_low(c[2], a[2], b[2]); +} + +void fp3_addm_low(fp3_t c, fp3_t a, fp3_t b) { + fp_addm_low(c[0], a[0], b[0]); + fp_addm_low(c[1], a[1], b[1]); + fp_addm_low(c[2], a[2], b[2]); +} + +void fp3_addd_low(dv3_t c, dv3_t a, dv3_t b) { + fp_addd_low(c[0], a[0], b[0]); + fp_addd_low(c[1], a[1], b[1]); + fp_addd_low(c[2], a[2], b[2]); +} + +void fp3_addc_low(dv3_t c, dv3_t a, dv3_t b) { + fp_addc_low(c[0], a[0], b[0]); + fp_addc_low(c[1], a[1], b[1]); + fp_addc_low(c[2], a[2], b[2]); +} + +void fp3_subn_low(fp3_t c, fp3_t a, fp3_t b) { + fp_subn_low(c[0], a[0], b[0]); + fp_subn_low(c[1], a[1], b[1]); + fp_subn_low(c[2], a[2], b[2]); +} + +void fp3_subm_low(fp3_t c, fp3_t a, fp3_t b) { + fp_subm_low(c[0], a[0], b[0]); + fp_subm_low(c[1], a[1], b[1]); + fp_subm_low(c[2], a[2], b[2]); +} + +void fp3_subd_low(dv3_t c, dv3_t a, dv3_t b) { + fp_subd_low(c[0], a[0], b[0]); + fp_subd_low(c[1], a[1], b[1]); + fp_subd_low(c[2], a[2], b[2]); +} + +void fp3_subc_low(dv3_t c, dv3_t a, dv3_t b) { + fp_subc_low(c[0], a[0], b[0]); + fp_subc_low(c[1], a[1], b[1]); + fp_subc_low(c[2], a[2], b[2]); +} + +void fp3_dbln_low(fp3_t c, fp3_t a) { + fp_dbln_low(c[0], a[0]); + fp_dbln_low(c[1], a[1]); + fp_dbln_low(c[2], a[2]); +} + +void fp3_dblm_low(fp3_t c, fp3_t a) { + fp_dblm_low(c[0], a[0]); + fp_dblm_low(c[1], a[1]); + fp_dblm_low(c[2], a[2]); +} + +void fp3_nord_low(dv3_t c, dv3_t a) { + dv_t t; + + dv_null(t); + + RLC_TRY { + dv_new(t); + dv_copy(t, a[0], 2 * RLC_FP_DIGS); + dv_copy(c[0], a[2], 2 * RLC_FP_DIGS); + for (int i = 1; i < fp_prime_get_cnr(); i++) { + fp_addc_low(c[0], c[0], a[2]); + } + for (int i = 0; i >= fp_prime_get_cnr(); i--) { + fp_subc_low(c[0], c[0], a[2]); + } + dv_copy(c[2], a[1], 2 * RLC_FP_DIGS); + dv_copy(c[1], t, 2 * RLC_FP_DIGS); + } RLC_CATCH_ANY { + RLC_THROW(ERR_CAUGHT); + } RLC_FINALLY { + dv_free(t); + } +} diff --git a/src/low/x64-fiat-381/relic_fpx_mul_low.c b/src/low/x64-fiat-381/relic_fpx_mul_low.c new file mode 100644 index 000000000..bf43d0400 --- /dev/null +++ b/src/low/x64-fiat-381/relic_fpx_mul_low.c @@ -0,0 +1,180 @@ +/* + * RELIC is an Efficient LIbrary for Cryptography + * Copyright (c) 2020 RELIC Authors + * + * This file is part of RELIC. RELIC is legal property of its developers, + * whose names are not listed here. Please refer to the COPYRIGHT file + * for contact information. + * + * RELIC is free software; you can redistribute it and/or modify it under the + * terms of the version 2.1 (or later) of the GNU Lesser General Public License + * as published by the Free Software Foundation; or version 2.0 of the Apache + * License as published by the Apache Software Foundation. See the LICENSE files + * for more details. + * + * RELIC is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + * A PARTICULAR PURPOSE. See the LICENSE files for more details. + * + * You should have received a copy of the GNU Lesser General Public or the + * Apache License along with RELIC. If not, see + * or . + */ + +/** + * @file + * + * Implementation of the low-level extension field multiplication functions. + * + * @ingroup fpx + */ + +#include "relic_core.h" +#include "relic_bn_low.h" +#include "relic_fp_low.h" +#include "relic_fpx_low.h" + +/*============================================================================*/ +/* Public definitions */ +/*============================================================================*/ + +#include "bls12_381_q2_64.c" +#include "bls12_381_q2_bedrock.c" + +void fp2_muln_low(dv2_t c, fp2_t a, fp2_t b) { + rlc_align dig_t t0[2 * RLC_FP_DIGS], t1[2 * RLC_FP_DIGS], t2[2 * RLC_FP_DIGS]; + + /* Karatsuba algorithm. */ + + /* t0 = a_0 + a_1, t1 = b_0 + b_1. */ +#ifdef RLC_FP_ROOM + fp_addn_low(t0, a[0], a[1]); + fp_addn_low(t1, b[0], b[1]); +#else + fp_addm_low(t0, a[0], a[1]); + fp_addm_low(t1, b[0], b[1]); +#endif + /* c_0 = a_0 * b_0, c_1 = a_1 * b_1. */ + fp_muln_low(c[0], a[0], b[0]); + fp_muln_low(c[1], a[1], b[1]); + /* t2 = (a_0 + a_1) * (b_0 + b_1). */ + fp_muln_low(t2, t0, t1); + + /* t0 = (a_0 * b_0) + (a_1 * b_1). */ +#ifdef RLC_FP_ROOM + fp_addd_low(t0, c[0], c[1]); +#else + fp_addc_low(t0, c[0], c[1]); +#endif + + /* c_0 = (a_0 * b_0) + u^2 * (a_1 * b_1). */ + fp_subc_low(c[0], c[0], c[1]); + +#ifndef FP_QNRES + /* t1 = u^2 * (a_1 * b_1). */ + for (int i = -1; i > fp_prime_get_qnr(); i--) { + fp_subc_low(c[0], c[0], c[1]); + } +#endif + + /* c_1 = t2 - t0. */ +#ifdef RLC_FP_ROOM + fp_subd_low(c[1], t2, t0); +#else + fp_subc_low(c[1], t2, t0); +#endif +} + +void fp2_mulm_low(fp2_t c, fp2_t a, fp2_t b) { + //fiat_bls12_381_q2_mulFp2(c[0], c[1], a[0], a[1], b[0], b[1]); + Fp2_mul(c[0], c[1], a[0], a[1], b[0], b[1]); +} + +void fp3_muln_low(dv3_t c, fp3_t a, fp3_t b) { + rlc_align dig_t t0[2 * RLC_FP_DIGS], t1[2 * RLC_FP_DIGS], t2[2 * RLC_FP_DIGS], t3[2 * RLC_FP_DIGS]; + rlc_align dig_t t4[2 * RLC_FP_DIGS], t5[2 * RLC_FP_DIGS], t6[2 * RLC_FP_DIGS]; + + /* Karatsuba algorithm. */ + + /* t0 = a_0 * b_0, t1 = a_1 * b_1, t2 = a_2 * b_2. */ + fp_muln_low(t0, a[0], b[0]); + fp_muln_low(t1, a[1], b[1]); + fp_muln_low(t2, a[2], b[2]); + + /* t3 = (a_1 + a_2) * (b_1 + b_2). */ +#ifdef RLC_FP_ROOM + fp_addn_low(t3, a[1], a[2]); + fp_addn_low(t4, b[1], b[2]); +#else + fp_addm_low(t3, a[1], a[2]); + fp_addm_low(t4, b[1], b[2]); +#endif + fp_muln_low(t5, t3, t4); +#ifdef RLC_FP_ROOM + fp_addc_low(t6, t1, t2); +#else + fp_addc_low(t6, t1, t2); +#endif + fp_subc_low(t4, t5, t6); + fp_addc_low(c[0], t0, t4); + for (int i = 1; i < fp_prime_get_cnr(); i++) { + fp_addc_low(c[0], c[0], t4); + } + for (int i = 0; i >= fp_prime_get_cnr(); i--) { + fp_subc_low(c[0], c[0], t4); + } + +#ifdef RLC_FP_ROOM + fp_addn_low(t4, a[0], a[1]); + fp_addn_low(t5, b[0], b[1]); +#else + fp_addm_low(t4, a[0], a[1]); + fp_addm_low(t5, b[0], b[1]); +#endif + fp_muln_low(t6, t4, t5); +#ifdef RLC_FP_ROOM + fp_addc_low(t4, t0, t1); +#else + fp_addc_low(t4, t0, t1); +#endif + fp_subc_low(t4, t6, t4); + fp_addc_low(c[1], t4, t2); + for (int i = 1; i < fp_prime_get_cnr(); i++) { + fp_addc_low(c[1], c[1], t2); + } + for (int i = 0; i >= fp_prime_get_cnr(); i--) { + fp_subc_low(c[1], c[1], t2); + } + +#ifdef RLC_FP_ROOM + fp_addn_low(t5, a[0], a[2]); + fp_addn_low(t6, b[0], b[2]); +#else + fp_addm_low(t5, a[0], a[2]); + fp_addm_low(t6, b[0], b[2]); +#endif + fp_muln_low(t4, t5, t6); +#ifdef RLC_FP_ROOM + fp_addc_low(t6, t0, t2); +#else + fp_addc_low(t6, t0, t2); +#endif + fp_subc_low(t5, t4, t6); + fp_addc_low(c[2], t5, t1); +} + +void fp3_mulm_low(fp3_t c, fp3_t a, fp3_t b) { + dv3_t t; + + dv3_null(t); + + RLC_TRY { + dv3_new(t); + fp3_muln_low(t, a, b); + fp3_rdcn_low(c, t); + } RLC_CATCH_ANY { + RLC_THROW(ERR_CAUGHT); + } RLC_FINALLY { + dv3_free(t); + } +} diff --git a/src/low/x64-fiat-381/relic_fpx_sqr_low.c b/src/low/x64-fiat-381/relic_fpx_sqr_low.c new file mode 100644 index 000000000..67473236c --- /dev/null +++ b/src/low/x64-fiat-381/relic_fpx_sqr_low.c @@ -0,0 +1,200 @@ +/* + * RELIC is an Efficient LIbrary for Cryptography + * Copyright (c) 2020 RELIC Authors + * + * This file is part of RELIC. RELIC is legal property of its developers, + * whose names are not listed here. Please refer to the COPYRIGHT file + * for contact information. + * + * RELIC is free software; you can redistribute it and/or modify it under the + * terms of the version 2.1 (or later) of the GNU Lesser General Public License + * as published by the Free Software Foundation; or version 2.0 of the Apache + * License as published by the Apache Software Foundation. See the LICENSE files + * for more details. + * + * RELIC is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + * A PARTICULAR PURPOSE. See the LICENSE files for more details. + * + * You should have received a copy of the GNU Lesser General Public or the + * Apache License along with RELIC. If not, see + * or . + */ + +/** + * @file + * + * Implementation of the low-level extension field squaring functions. + * + * @ingroup fpx + */ + +#include "relic_core.h" +#include "relic_fp_low.h" +#include "relic_fpx_low.h" + +/*============================================================================*/ +/* Public definitions */ +/*============================================================================*/ + +#include "bls12_381_q2_64.c" +#include "bls12_381_q2_bedrock.c" + +void fp2_sqrn_low(dv2_t c, fp2_t a) { + rlc_align dig_t t0[2 * RLC_FP_DIGS], t1[2 * RLC_FP_DIGS], t2[2 * RLC_FP_DIGS]; + + /* t0 = (a0 + a1). */ +#ifdef RLC_FP_ROOM + /* if we have room for carries, we can avoid reductions here. */ + fp_addn_low(t0, a[0], a[1]); +#else + fp_addm_low(t0, a[0], a[1]); +#endif + /* t1 = (a0 - a1). */ + fp_subm_low(t1, a[0], a[1]); + +#ifdef FP_QNRES + +#ifdef RLC_FP_ROOM + fp_dbln_low(t2, a[0]); +#else + fp_dblm_low(t2, a[0]); +#endif + /* c1 = 2 * a0 * a1. */ + fp_muln_low(c[1], t2, a[1]); + /* c_0 = a_0^2 + a_1^2 * u^2. */ + fp_muln_low(c[0], t0, t1); + +#else /* !FP_QNRES */ + + /* t1 = a0 - a1 * u^2. */ + for (int i = -1; i > fp_prime_get_qnr(); i--) { + fp_subm_low(t1, t1, a[1]); + } + for (int i = 1; i < fp_prime_get_qnr(); i++) { + fp_addm_low(t1, t1, a[1]); + } + + if (fp_prime_get_qnr() == -1) { + /* t2 = 2 * a0. */ + fp_dbl(t2, a[0]); + /* c1 = 2 * a0 * a1. */ + fp_muln_low(c[1], t2, a[1]); + /* c0 = a0^2 + a_1^2 * u^2. */ + fp_muln_low(c[0], t0, t1); + } else { + /* c1 = a0 * a1. */ + fp_muln_low(c[1], a[0], a[1]); + /* c0 = a0^2 + b_0^2 * u^2. */ + fp_muln_low(c[0], t0, t1); + +#ifdef RLC_FP_ROOM + for (int i = -1; i > fp_prime_get_qnr(); i--) { + fp_addd_low(c[0], c[0], c[1]); + } + for (int i = 1; i < fp_prime_get_qnr(); i++) { + fp_subd_low(c[0], c[0], c[1]); + } + /* c1 = 2 * a0 * a1. */ + fp_addd_low(c[1], c[1], c[1]); +#else + for (int i = -1; i > fp_prime_get_qnr(); i--) { + fp_addc_low(c[0], c[0], c[1]); + } + for (int i = 1; i < fp_prime_get_qnr(); i++) { + fp_subc_low(c[0], c[0], c[1]); + } + /* c1 = 2 * a0 * a1. */ + fp_addc_low(c[1], c[1], c[1]); +#endif + } +#endif + /* c = c0 + c1 * u. */ +} + +void fp2_sqrm_low(fp2_t c, fp2_t a) { + //fiat_bls12_381_q2_squareFp2(c[0], c[1], a[0], a[1]); + Fp2_square(c[0], c[1], a[0], a[1]); +} + +void fp3_sqrn_low(dv3_t c, fp3_t a) { + rlc_align dig_t t0[2 * RLC_FP_DIGS], t1[2 * RLC_FP_DIGS], t2[2 * RLC_FP_DIGS]; + rlc_align dig_t t3[2 * RLC_FP_DIGS], t4[2 * RLC_FP_DIGS]; + + /* t0 = a_0^2. */ + fp_sqrn_low(t0, a[0]); + + /* t1 = 2 * a_1 * a_2. */ +#ifdef RLC_FP_ROOM + fp_dbln_low(t2, a[1]); +#else + fp_dblm_low(t2, a[1]); +#endif + + fp_muln_low(t1, t2, a[2]); + + /* t3 = (a_0 + a_2 + a_1)^2, t4 = (a_0 + a_2 - a_1)^2. */ +#ifdef RLC_FP_ROOM + fp_addn_low(t3, a[0], a[2]); + fp_addn_low(t4, t3, a[1]); +#else + fp_addm_low(t3, a[0], a[2]); + fp_addm_low(t4, t3, a[1]); +#endif + fp_subm_low(t2, t3, a[1]); + fp_sqrn_low(t3, t4); + fp_sqrn_low(t4, t2); + + /* t2 = a_2^2. */ + fp_sqrn_low(t2, a[2]); + + /* t4 = (t4 + t3)/2. */ +#ifdef RLC_FP_ROOM + fp_addd_low(t4, t4, t3); +#else + fp_addc_low(t4, t4, t3); +#endif + fp_hlvd_low(t4, t4); + + /* t3 = t3 - t4 - t1. */ + fp_subc_low(t3, t3, t4); + fp_subc_low(t3, t3, t1); + + /* c_2 = t4 - t0 - t2. */ + fp_subc_low(c[2], t4, t0); + fp_subc_low(c[2], c[2], t2); + + /* c_0 = t0 + t1 * B. */ + fp_addc_low(c[0], t0, t1); + for (int i = 1; i < fp_prime_get_cnr(); i++) { + fp_addc_low(c[0], c[0], t1); + } + for (int i = 0; i >= fp_prime_get_cnr(); i--) { + fp_subc_low(c[0], c[0], t1); + } + + /* c_1 = t3 + t2 * B. */ + fp_addc_low(c[1], t3, t2); + for (int i = 1; i < fp_prime_get_cnr(); i++) { + fp_addc_low(c[1], c[1], t2); + } + for (int i = 0; i >= fp_prime_get_cnr(); i--) { + fp_subc_low(c[1], c[1], t2); + } +} + +void fp3_sqrm_low(fp3_t c, fp3_t a) { + rlc_align dv3_t t; + + dv3_null(t); + + RLC_TRY { + dv3_new(t); + fp3_sqrn_low(t, a); + fp3_rdcn_low(c, t); + } RLC_CATCH_ANY { + RLC_THROW(ERR_CAUGHT); + } RLC_FINALLY { + dv3_free(t); + } +} diff --git a/src/low/x64-hacl-25519/field.S b/src/low/x64-hacl-25519/field.S new file mode 100644 index 000000000..e69de29bb From 9548d266c92423436e695032bf54d6d08cd33a99 Mon Sep 17 00:00:00 2001 From: "Diego F. Aranha" Date: Tue, 25 Jul 2023 08:42:29 +0200 Subject: [PATCH 3/4] Update arch.cmake --- cmake/arch.cmake | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cmake/arch.cmake b/cmake/arch.cmake index e18e554e5..2d380adeb 100644 --- a/cmake/arch.cmake +++ b/cmake/arch.cmake @@ -42,7 +42,6 @@ endif() if(NOT WSIZE) # Default is 64 bits. - set(AFLAGS "-m64") set(WSIZE 64) if(ARCH STREQUAL "X64" OR ARCH STREQUAL "A64") set(AFLAGS "-m64") @@ -52,7 +51,7 @@ if(NOT WSIZE) set(WSIZE 32) elseif(ARCH STREQUAL "MSP") set(WSIZE 16) - elseif(ARCH STREQUAL "MSP") + elseif(ARCH STREQUAL "AVR") set(WSIZE 8) endif() endif() From 38737dad82197247c5272502610710fc36993d12 Mon Sep 17 00:00:00 2001 From: "Diego F. Aranha" Date: Tue, 22 Aug 2023 12:24:53 +0200 Subject: [PATCH 4/4] Add 511-bit binary field. --- include/relic_fb.h | 2 ++ src/fb/relic_fb_param.c | 6 ++++ src/low/x64-asm-7l/relic_fp_add_low.s | 40 ++++++++++++++------------- 3 files changed, 29 insertions(+), 19 deletions(-) diff --git a/include/relic_fb.h b/include/relic_fb.h index 1715b6359..4a09f5ef5 100644 --- a/include/relic_fb.h +++ b/include/relic_fb.h @@ -112,6 +112,8 @@ enum { NIST_409, /** Hankerson's trinomial for genus 2 curves. */ TRINO_439, + /** Custom 511-bit fast reduction polynomial. */ + TRINO_511, /** NIST 571-bit fast reduction polynomial. */ NIST_571, /** Square-root friendly 571-bit polynomial. */ diff --git a/src/fb/relic_fb_param.c b/src/fb/relic_fb_param.c index 4376bb22d..03c5c5574 100644 --- a/src/fb/relic_fb_param.c +++ b/src/fb/relic_fb_param.c @@ -125,6 +125,9 @@ void fb_param_set(int param) { case TRINO_439: fb_poly_set_trino(49); break; + case TRINO_511: + fb_poly_set_trino(10); + break; case SQRT_571: fb_poly_set_penta(193, 185, 5); break; @@ -220,6 +223,9 @@ void fb_param_set_any(void) { #elif FB_POLYN == 439 fb_param_set(TRINO_439); +#elif FB_POLYN == 511 + fb_param_set(TRINO_511); + #elif FB_POLYN == 571 #ifdef FB_SQRTF fb_param_set(SQRT_571); diff --git a/src/low/x64-asm-7l/relic_fp_add_low.s b/src/low/x64-asm-7l/relic_fp_add_low.s index cf343d17a..c53afb457 100644 --- a/src/low/x64-asm-7l/relic_fp_add_low.s +++ b/src/low/x64-asm-7l/relic_fp_add_low.s @@ -351,27 +351,29 @@ fp_negm_low: or 48(%rsi), %r8 test %r8, %r8 cmovnz p0(%rip), %r8 + cmovnz p1(%rip), %r9 + cmovnz p2(%rip), %r10 + cmovnz p3(%rip), %r11 + cmovnz p4(%rip), %rbx + cmovnz p5(%rip), %rax + cmovnz p6(%rip), %rcx subq 0(%rsi) , %r8 movq %r8 , 0(%rdi) - cmovnz p1(%rip), %r8 - sbbq 8(%rsi) , %r8 - movq %r8 , 8(%rdi) - cmovnz p2(%rip), %r8 - sbbq 16(%rsi), %r8 - movq %r8 , 16(%rdi) - cmovnz p3(%rip), %r8 - sbbq 24(%rsi), %r8 - movq %r8 , 24(%rdi) - cmovnz p4(%rip), %r8 - sbbq 32(%rsi), %r8 - movq %r8 , 32(%rdi) - cmovnz p5(%rip), %r8 - sbbq 40(%rsi), %r8 - movq %r8 , 40(%rdi) - cmovnz p6(%rip), %r8 - sbbq 48(%rsi), %r8 - movq %r8 , 48(%rdi) - ret + sbbq 8(%rsi) , %r9 + movq %r9 , 8(%rdi) + sbbq 16(%rsi), %r10 + movq %r10 , 16(%rdi) + sbbq 24(%rsi), %r11 + movq %r11 , 24(%rdi) + sbbq 32(%rsi), %rbx + movq %rbx , 32(%rdi) + sbbq 40(%rsi), %rax + movq %rax , 40(%rdi) + sbbq 48(%rsi), %rcx + movq %rcx , 48(%rdi) + + pop %rbx + ret fp_dbln_low: movq 0(%rsi), %r8