29 "\n\tsub.u64.cc %0, 0xFFFFFFFE00000002U, %0;"
30 "\n\tsubc.u64.cc %1, 0xA77B4805FFFCB7FDU, %1;"
31 "\n\tsubc.u64.cc %2, 0x6673B0101343B00AU, %2;"
32 "\n\tsubc.u64.cc %3, 0xE7DB4EA6533AFA90U, %3;"
33 "\n\tsubc.u32 cf, 0, 0;"
34 "\n\tsetp.hi.u32 bp, cf, 0;"
38 "\n@bp\tadd.u64.cc %0, %0, 0xFFFFFFFF00000001U;"
39 "\n@bp\taddc.u64.cc %1, %1, 0x53BDA402FFFE5BFEU;"
40 "\n@bp\taddc.u64.cc %2, %2, 0x3339D80809A1D805U;"
41 "\n@bp\taddc.u64 %3, %3, 0x73EDA753299D7D48U;"
45 "+l"(z0),
"+l"(z1),
"+l"(z2),
"+l"(z3)
48 z[0] = z0, z[1] = z1, z[2] = z2, z[3] = z3;
uint64_t fr_t[4]
Subgroup element stored as a 256-bit array (a 4-element little-endian array of uint64_t)....
__device__ void fr_neg(fr_t &z)
Compute an additive inverse of a residue x modulo r. Stores in x. Subtracts x from the highest multip...