aboutsummaryrefslogtreecommitdiff
path: root/src/Specific/montgomery64_2e150m5_3limbs/feopp.c
blob: f0bb881e1c15860e52473cf1ac4b315c247222f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
static void feopp(uint64_t out[3], const uint64_t in1[3]) {
  { const uint64_t x3 = in1[2];
  { const uint64_t x4 = in1[1];
  { const uint64_t x2 = in1[0];
  { uint64_t x6; uint8_t x7 = _subborrow_u64(0x0, 0x0, x2, &x6);
  { uint64_t x9; uint8_t x10 = _subborrow_u64(x7, 0x0, x4, &x9);
  { uint64_t x12; uint8_t x13 = _subborrow_u64(x10, 0x0, x3, &x12);
  { uint64_t x14 = cmovznz64(x13, 0x0, 0xffffffffffffffffL);
  { uint64_t x15 = (x14 & 0xfffffffffffffffbL);
  { uint64_t x17; uint8_t x18 = _addcarryx_u64(0x0, x6, x15, &x17);
  { uint64_t x19 = (x14 & 0xffffffffffffffffL);
  { uint64_t x21; uint8_t x22 = _addcarryx_u64(x18, x9, x19, &x21);
  { uint64_t x23 = (x14 & 0x3fffff);
  { uint64_t x25; uint8_t _ = _addcarryx_u64(x22, x12, x23, &x25);
  out[0] = x17;
  out[1] = x21;
  out[2] = x25;
  }}}}}}}}}}}}}
}