_Z7to_charPKh:
   11|  8.73k|char *to_char(const uint8_t *x) {
   12|  8.73k|  return reinterpret_cast<char *>(const_cast<unsigned char *>(x));
   13|  8.73k|}
_Z11check_equalP9bignum_stP6mp_intm:
   22|  13.0k|void check_equal(BIGNUM *b, mp_int *m, size_t max_size) {
   23|  13.0k|  char *bnBc = BN_bn2hex(b);
   24|  13.0k|  char mpiMc[max_size];
   25|  13.0k|  mp_tohex(m, mpiMc);
  ------------------
  |  |  294|  13.0k|#define mp_tohex(M, S) mp_toradix((M), (S), 16)
  ------------------
   26|  13.0k|  std::string bnA(bnBc);
   27|  13.0k|  std::string mpiA(mpiMc);
   28|  13.0k|  OPENSSL_free(bnBc);
   29|       |  // We have to strip leading zeros from bignums, ignoring the sign.
   30|  13.0k|  if (bnA.at(0) != '-') {
  ------------------
  |  Branch (30:7): [True: 13.0k, False: 0]
  ------------------
   31|  13.0k|    bnA.erase(0, std::min(bnA.find_first_not_of('0'), bnA.size() - 1));
   32|  13.0k|  } else if (bnA.at(1) == '0') {
  ------------------
  |  Branch (32:14): [True: 0, False: 0]
  ------------------
   33|      0|    bnA.erase(1, std::min(bnA.find_first_not_of('0', 1) - 1, bnA.size() - 1));
   34|      0|  }
   35|       |
   36|  13.0k|  if (mpiA != bnA) {
  ------------------
  |  Branch (36:7): [True: 0, False: 13.0k]
  ------------------
   37|      0|    std::cout << "openssl: " << std::hex << bnA << std::endl;
   38|      0|    std::cout << "nss:     " << std::hex << mpiA << std::endl;
   39|      0|  }
   40|       |
   41|  13.0k|  assert(mpiA == bnA);
   42|  13.0k|}
_Z11parse_inputPKhmP9bignum_stS2_P6mp_intS4_:
   46|  4.36k|                 mp_int *a, mp_int *b) {
   47|       |  // Note that b might overlap a.
   48|  4.36k|  size_t len = (size_t)size / 2;
   49|  4.36k|  assert(mp_read_raw(a, to_char(data), len) == MP_OKAY);
   50|  4.36k|  assert(mp_read_raw(b, to_char(data) + len, len) == MP_OKAY);
   51|       |  // Force a positive sign.
   52|       |  // TODO: add tests for negatives.
   53|  4.36k|  MP_SIGN(a) = MP_ZPOS;
  ------------------
  |  |  144|  4.36k|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
                MP_SIGN(a) = MP_ZPOS;
  ------------------
  |  |   37|  4.36k|#define MP_ZPOS 0
  ------------------
   54|  4.36k|  MP_SIGN(b) = MP_ZPOS;
  ------------------
  |  |  144|  4.36k|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
                MP_SIGN(b) = MP_ZPOS;
  ------------------
  |  |   37|  4.36k|#define MP_ZPOS 0
  ------------------
   55|       |
   56|       |  // Skip the first byte as it's interpreted as sign by NSS.
   57|  4.36k|  assert(BN_bin2bn(data + 1, len - 1, A) != nullptr);
   58|  4.36k|  assert(BN_bin2bn(data + len + 1, len - 1, B) != nullptr);
   59|       |
   60|  4.36k|  check_equal(A, a, 2 * size + 1);
   61|  4.36k|  check_equal(B, b, 2 * size + 1);
   62|  4.36k|}

LLVMFuzzerTestOneInput:
   12|  4.36k|extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
   13|       |  // We require at least size 3 to get two integers from Data.
   14|  4.36k|  if (size < 3) {
  ------------------
  |  Branch (14:7): [True: 2, False: 4.36k]
  ------------------
   15|      2|    return 0;
   16|      2|  }
   17|  21.8k|  INIT_FOUR_NUMBERS
  ------------------
  |  |   31|  4.36k|  mp_int a, b, c, r;                     \
  |  |   32|  4.36k|  mp_int *m1 = nullptr;                  \
  |  |   33|  4.36k|  BN_CTX *ctx = BN_CTX_new();            \
  |  |   34|  4.36k|  BN_CTX_start(ctx);                     \
  |  |   35|  4.36k|  BIGNUM *A = BN_CTX_get(ctx);           \
  |  |   36|  4.36k|  BIGNUM *B = BN_CTX_get(ctx);           \
  |  |   37|  4.36k|  BIGNUM *C = BN_CTX_get(ctx);           \
  |  |   38|  4.36k|  BIGNUM *R = BN_CTX_get(ctx);           \
  |  |   39|  4.36k|  assert(mp_init(&a) == MP_OKAY);        \
  |  |   40|  4.36k|  assert(mp_init(&b) == MP_OKAY);        \
  |  |   41|  4.36k|  assert(mp_init(&c) == MP_OKAY);        \
  |  |   42|  4.36k|  assert(mp_init(&r) == MP_OKAY);        \
  |  |   43|  4.36k|  size_t max_size = 2 * size + 1;        \
  |  |   44|  4.36k|  parse_input(data, size, A, B, &a, &b); \
  |  |   45|  4.36k|  do {                                   \
  |  |   46|  4.36k|    (void)(R);                           \
  |  |   47|  4.36k|  } while (0);
  |  |  ------------------
  |  |  |  Branch (47:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
   18|       |
   19|       |  // We can't divide by 0.
   20|  21.8k|  if (mp_cmp_z(&b) == 0) {
  ------------------
  |  Branch (20:7): [True: 19, False: 4.34k]
  ------------------
   21|     19|    CLEANUP_AND_RETURN
  ------------------
  |  |   68|     19|  mp_clear(&a);            \
  |  |   69|     19|  mp_clear(&b);            \
  |  |   70|     19|  mp_clear(&c);            \
  |  |   71|     19|  mp_clear(&r);            \
  |  |   72|     19|  if (m1) {                \
  |  |  ------------------
  |  |  |  Branch (72:7): [True: 0, False: 19]
  |  |  ------------------
  |  |   73|      0|    mp_clear(m1);          \
  |  |   74|      0|  }                        \
  |  |   75|     19|  BN_CTX_end(ctx);         \
  |  |   76|     19|  BN_CTX_free(ctx);        \
  |  |   77|     19|  return 0;
  ------------------
   22|     19|  }
   23|       |
   24|       |  // Compare with OpenSSL mod
   25|  4.34k|  assert(mp_mod(&a, &b, &c) == MP_OKAY);
   26|  4.34k|  (void)BN_mod(C, A, B, ctx);
   27|  4.34k|  check_equal(C, &c, max_size);
   28|       |
   29|       |  // Check a mod b = a - floor(a / b) * b
   30|  4.34k|  assert(mp_div(&a, &b, &r, nullptr) == MP_OKAY);
   31|  4.34k|  assert(mp_mul(&r, &b, &r) == MP_OKAY);
   32|  4.34k|  assert(mp_sub(&a, &r, &r) == MP_OKAY);
   33|  4.34k|  assert(mp_cmp(&c, &r) == 0);
   34|       |
   35|  4.34k|  CLEANUP_AND_RETURN
  ------------------
  |  |   68|  4.34k|  mp_clear(&a);            \
  |  |   69|  4.34k|  mp_clear(&b);            \
  |  |   70|  4.34k|  mp_clear(&c);            \
  |  |   71|  4.34k|  mp_clear(&r);            \
  |  |   72|  4.34k|  if (m1) {                \
  |  |  ------------------
  |  |  |  Branch (72:7): [True: 0, False: 4.34k]
  |  |  ------------------
  |  |   73|      0|    mp_clear(m1);          \
  |  |   74|      0|  }                        \
  |  |   75|  4.34k|  BN_CTX_end(ctx);         \
  |  |   76|  4.34k|  BN_CTX_free(ctx);        \
  |  |   77|  4.34k|  return 0;
  ------------------
   36|  4.34k|}

s_mp_mul_comba_4:
  142|    126|{
  143|    126|    mp_digit c0, c1, c2, at[8];
  144|       |
  145|    126|    memcpy(at, A->dp, 4 * sizeof(mp_digit));
  146|    126|    memcpy(at + 4, B->dp, 4 * sizeof(mp_digit));
  147|    126|    COMBA_START;
  148|       |
  149|    126|    COMBA_CLEAR;
  ------------------
  |  |   37|    126|    c0 = c1 = c2 = 0;
  ------------------
  150|       |    /* 0 */
  151|    126|    MULADD(at[0], at[4]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  152|    126|    COMBA_STORE(C->dp[0]);
  ------------------
  |  |   67|    126|    x = c0;
  ------------------
  153|       |    /* 1 */
  154|    126|    COMBA_FORWARD;
  ------------------
  |  |   41|    126|    do {              \
  |  |   42|    126|        c0 = c1;      \
  |  |   43|    126|        c1 = c2;      \
  |  |   44|    126|        c2 = 0;       \
  |  |   45|    126|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  155|    126|    MULADD(at[0], at[5]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  156|    126|    MULADD(at[1], at[4]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  157|    126|    COMBA_STORE(C->dp[1]);
  ------------------
  |  |   67|    126|    x = c0;
  ------------------
  158|       |    /* 2 */
  159|    126|    COMBA_FORWARD;
  ------------------
  |  |   41|    126|    do {              \
  |  |   42|    126|        c0 = c1;      \
  |  |   43|    126|        c1 = c2;      \
  |  |   44|    126|        c2 = 0;       \
  |  |   45|    126|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  160|    126|    MULADD(at[0], at[6]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  161|    126|    MULADD(at[1], at[5]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  162|    126|    MULADD(at[2], at[4]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  163|    126|    COMBA_STORE(C->dp[2]);
  ------------------
  |  |   67|    126|    x = c0;
  ------------------
  164|       |    /* 3 */
  165|    126|    COMBA_FORWARD;
  ------------------
  |  |   41|    126|    do {              \
  |  |   42|    126|        c0 = c1;      \
  |  |   43|    126|        c1 = c2;      \
  |  |   44|    126|        c2 = 0;       \
  |  |   45|    126|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  166|    126|    MULADD(at[0], at[7]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  167|    126|    MULADD(at[1], at[6]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  168|    126|    MULADD(at[2], at[5]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  169|    126|    MULADD(at[3], at[4]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  170|    126|    COMBA_STORE(C->dp[3]);
  ------------------
  |  |   67|    126|    x = c0;
  ------------------
  171|       |    /* 4 */
  172|    126|    COMBA_FORWARD;
  ------------------
  |  |   41|    126|    do {              \
  |  |   42|    126|        c0 = c1;      \
  |  |   43|    126|        c1 = c2;      \
  |  |   44|    126|        c2 = 0;       \
  |  |   45|    126|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  173|    126|    MULADD(at[1], at[7]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  174|    126|    MULADD(at[2], at[6]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  175|    126|    MULADD(at[3], at[5]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  176|    126|    COMBA_STORE(C->dp[4]);
  ------------------
  |  |   67|    126|    x = c0;
  ------------------
  177|       |    /* 5 */
  178|    126|    COMBA_FORWARD;
  ------------------
  |  |   41|    126|    do {              \
  |  |   42|    126|        c0 = c1;      \
  |  |   43|    126|        c1 = c2;      \
  |  |   44|    126|        c2 = 0;       \
  |  |   45|    126|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  179|    126|    MULADD(at[2], at[7]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  180|    126|    MULADD(at[3], at[6]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  181|    126|    COMBA_STORE(C->dp[5]);
  ------------------
  |  |   67|    126|    x = c0;
  ------------------
  182|       |    /* 6 */
  183|    126|    COMBA_FORWARD;
  ------------------
  |  |   41|    126|    do {              \
  |  |   42|    126|        c0 = c1;      \
  |  |   43|    126|        c1 = c2;      \
  |  |   44|    126|        c2 = 0;       \
  |  |   45|    126|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  184|    126|    MULADD(at[3], at[7]);
  ------------------
  |  |   52|    126|    __asm__(                                        \
  |  |   53|    126|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    126|        "mulq  %7           \n\t"                   \
  |  |   55|    126|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    126|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    126|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    126|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    126|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    126|        : "%rax", "%rdx", "cc");
  ------------------
  185|    126|    COMBA_STORE(C->dp[6]);
  ------------------
  |  |   67|    126|    x = c0;
  ------------------
  186|    126|    COMBA_STORE2(C->dp[7]);
  ------------------
  |  |   70|    126|    x = c1;
  ------------------
  187|    126|    C->used = 8;
  188|    126|    C->sign = A->sign ^ B->sign;
  189|    126|    mp_clamp(C);
  ------------------
  |  |   26|    126|    {                                                    \
  |  |   27|    248|        while ((a)->used && (a)->dp[(a)->used - 1] == 0) \
  |  |  ------------------
  |  |  |  Branch (27:16): [True: 248, False: 0]
  |  |  |  Branch (27:29): [True: 122, False: 126]
  |  |  ------------------
  |  |   28|    126|            --((a)->used);                               \
  |  |   29|    126|        (a)->sign = (a)->used ? (a)->sign : ZPOS;        \
  |  |  ------------------
  |  |  |  |  321|      0|#define ZPOS MP_ZPOS
  |  |  |  |  ------------------
  |  |  |  |  |  |   37|    126|#define MP_ZPOS 0
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (29:21): [True: 126, False: 0]
  |  |  ------------------
  |  |   30|    126|    }
  ------------------
  190|    126|    COMBA_FINI;
  191|    126|}
s_mp_mul_comba_8:
  195|    123|{
  196|    123|    mp_digit c0, c1, c2, at[16];
  197|       |
  198|    123|    memcpy(at, A->dp, 8 * sizeof(mp_digit));
  199|    123|    memcpy(at + 8, B->dp, 8 * sizeof(mp_digit));
  200|    123|    COMBA_START;
  201|       |
  202|    123|    COMBA_CLEAR;
  ------------------
  |  |   37|    123|    c0 = c1 = c2 = 0;
  ------------------
  203|       |    /* 0 */
  204|    123|    MULADD(at[0], at[8]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  205|    123|    COMBA_STORE(C->dp[0]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  206|       |    /* 1 */
  207|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  208|    123|    MULADD(at[0], at[9]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  209|    123|    MULADD(at[1], at[8]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  210|    123|    COMBA_STORE(C->dp[1]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  211|       |    /* 2 */
  212|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  213|    123|    MULADD(at[0], at[10]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  214|    123|    MULADD(at[1], at[9]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  215|    123|    MULADD(at[2], at[8]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  216|    123|    COMBA_STORE(C->dp[2]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  217|       |    /* 3 */
  218|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  219|    123|    MULADD(at[0], at[11]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  220|    123|    MULADD(at[1], at[10]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  221|    123|    MULADD(at[2], at[9]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  222|    123|    MULADD(at[3], at[8]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  223|    123|    COMBA_STORE(C->dp[3]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  224|       |    /* 4 */
  225|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  226|    123|    MULADD(at[0], at[12]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  227|    123|    MULADD(at[1], at[11]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  228|    123|    MULADD(at[2], at[10]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  229|    123|    MULADD(at[3], at[9]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  230|    123|    MULADD(at[4], at[8]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  231|    123|    COMBA_STORE(C->dp[4]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  232|       |    /* 5 */
  233|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  234|    123|    MULADD(at[0], at[13]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  235|    123|    MULADD(at[1], at[12]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  236|    123|    MULADD(at[2], at[11]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  237|    123|    MULADD(at[3], at[10]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  238|    123|    MULADD(at[4], at[9]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  239|    123|    MULADD(at[5], at[8]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  240|    123|    COMBA_STORE(C->dp[5]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  241|       |    /* 6 */
  242|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  243|    123|    MULADD(at[0], at[14]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  244|    123|    MULADD(at[1], at[13]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  245|    123|    MULADD(at[2], at[12]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  246|    123|    MULADD(at[3], at[11]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  247|    123|    MULADD(at[4], at[10]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  248|    123|    MULADD(at[5], at[9]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  249|    123|    MULADD(at[6], at[8]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  250|    123|    COMBA_STORE(C->dp[6]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  251|       |    /* 7 */
  252|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  253|    123|    MULADD(at[0], at[15]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  254|    123|    MULADD(at[1], at[14]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  255|    123|    MULADD(at[2], at[13]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  256|    123|    MULADD(at[3], at[12]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  257|    123|    MULADD(at[4], at[11]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  258|    123|    MULADD(at[5], at[10]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  259|    123|    MULADD(at[6], at[9]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  260|    123|    MULADD(at[7], at[8]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  261|    123|    COMBA_STORE(C->dp[7]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  262|       |    /* 8 */
  263|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  264|    123|    MULADD(at[1], at[15]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  265|    123|    MULADD(at[2], at[14]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  266|    123|    MULADD(at[3], at[13]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  267|    123|    MULADD(at[4], at[12]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  268|    123|    MULADD(at[5], at[11]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  269|    123|    MULADD(at[6], at[10]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  270|    123|    MULADD(at[7], at[9]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  271|    123|    COMBA_STORE(C->dp[8]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  272|       |    /* 9 */
  273|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  274|    123|    MULADD(at[2], at[15]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  275|    123|    MULADD(at[3], at[14]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  276|    123|    MULADD(at[4], at[13]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  277|    123|    MULADD(at[5], at[12]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  278|    123|    MULADD(at[6], at[11]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  279|    123|    MULADD(at[7], at[10]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  280|    123|    COMBA_STORE(C->dp[9]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  281|       |    /* 10 */
  282|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  283|    123|    MULADD(at[3], at[15]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  284|    123|    MULADD(at[4], at[14]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  285|    123|    MULADD(at[5], at[13]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  286|    123|    MULADD(at[6], at[12]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  287|    123|    MULADD(at[7], at[11]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  288|    123|    COMBA_STORE(C->dp[10]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  289|       |    /* 11 */
  290|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  291|    123|    MULADD(at[4], at[15]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  292|    123|    MULADD(at[5], at[14]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  293|    123|    MULADD(at[6], at[13]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  294|    123|    MULADD(at[7], at[12]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  295|    123|    COMBA_STORE(C->dp[11]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  296|       |    /* 12 */
  297|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  298|    123|    MULADD(at[5], at[15]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  299|    123|    MULADD(at[6], at[14]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  300|    123|    MULADD(at[7], at[13]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  301|    123|    COMBA_STORE(C->dp[12]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  302|       |    /* 13 */
  303|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  304|    123|    MULADD(at[6], at[15]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  305|    123|    MULADD(at[7], at[14]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  306|    123|    COMBA_STORE(C->dp[13]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  307|       |    /* 14 */
  308|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  309|    123|    MULADD(at[7], at[15]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  310|    123|    COMBA_STORE(C->dp[14]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  311|    123|    COMBA_STORE2(C->dp[15]);
  ------------------
  |  |   70|    123|    x = c1;
  ------------------
  312|    123|    C->used = 16;
  313|    123|    C->sign = A->sign ^ B->sign;
  314|    123|    mp_clamp(C);
  ------------------
  |  |   26|    123|    {                                                    \
  |  |   27|    243|        while ((a)->used && (a)->dp[(a)->used - 1] == 0) \
  |  |  ------------------
  |  |  |  Branch (27:16): [True: 243, False: 0]
  |  |  |  Branch (27:29): [True: 120, False: 123]
  |  |  ------------------
  |  |   28|    123|            --((a)->used);                               \
  |  |   29|    123|        (a)->sign = (a)->used ? (a)->sign : ZPOS;        \
  |  |  ------------------
  |  |  |  |  321|      0|#define ZPOS MP_ZPOS
  |  |  |  |  ------------------
  |  |  |  |  |  |   37|    123|#define MP_ZPOS 0
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (29:21): [True: 123, False: 0]
  |  |  ------------------
  |  |   30|    123|    }
  ------------------
  315|    123|    COMBA_FINI;
  316|    123|}
s_mp_mul_comba_16:
  320|    123|{
  321|    123|    mp_digit c0, c1, c2, at[32];
  322|       |
  323|    123|    memcpy(at, A->dp, 16 * sizeof(mp_digit));
  324|    123|    memcpy(at + 16, B->dp, 16 * sizeof(mp_digit));
  325|    123|    COMBA_START;
  326|       |
  327|    123|    COMBA_CLEAR;
  ------------------
  |  |   37|    123|    c0 = c1 = c2 = 0;
  ------------------
  328|       |    /* 0 */
  329|    123|    MULADD(at[0], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  330|    123|    COMBA_STORE(C->dp[0]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  331|       |    /* 1 */
  332|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  333|    123|    MULADD(at[0], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  334|    123|    MULADD(at[1], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  335|    123|    COMBA_STORE(C->dp[1]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  336|       |    /* 2 */
  337|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  338|    123|    MULADD(at[0], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  339|    123|    MULADD(at[1], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  340|    123|    MULADD(at[2], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  341|    123|    COMBA_STORE(C->dp[2]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  342|       |    /* 3 */
  343|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  344|    123|    MULADD(at[0], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  345|    123|    MULADD(at[1], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  346|    123|    MULADD(at[2], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  347|    123|    MULADD(at[3], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  348|    123|    COMBA_STORE(C->dp[3]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  349|       |    /* 4 */
  350|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  351|    123|    MULADD(at[0], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  352|    123|    MULADD(at[1], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  353|    123|    MULADD(at[2], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  354|    123|    MULADD(at[3], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  355|    123|    MULADD(at[4], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  356|    123|    COMBA_STORE(C->dp[4]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  357|       |    /* 5 */
  358|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  359|    123|    MULADD(at[0], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  360|    123|    MULADD(at[1], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  361|    123|    MULADD(at[2], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  362|    123|    MULADD(at[3], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  363|    123|    MULADD(at[4], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  364|    123|    MULADD(at[5], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  365|    123|    COMBA_STORE(C->dp[5]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  366|       |    /* 6 */
  367|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  368|    123|    MULADD(at[0], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  369|    123|    MULADD(at[1], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  370|    123|    MULADD(at[2], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  371|    123|    MULADD(at[3], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  372|    123|    MULADD(at[4], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  373|    123|    MULADD(at[5], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  374|    123|    MULADD(at[6], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  375|    123|    COMBA_STORE(C->dp[6]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  376|       |    /* 7 */
  377|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  378|    123|    MULADD(at[0], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  379|    123|    MULADD(at[1], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  380|    123|    MULADD(at[2], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  381|    123|    MULADD(at[3], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  382|    123|    MULADD(at[4], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  383|    123|    MULADD(at[5], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  384|    123|    MULADD(at[6], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  385|    123|    MULADD(at[7], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  386|    123|    COMBA_STORE(C->dp[7]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  387|       |    /* 8 */
  388|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  389|    123|    MULADD(at[0], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  390|    123|    MULADD(at[1], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  391|    123|    MULADD(at[2], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  392|    123|    MULADD(at[3], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  393|    123|    MULADD(at[4], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  394|    123|    MULADD(at[5], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  395|    123|    MULADD(at[6], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  396|    123|    MULADD(at[7], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  397|    123|    MULADD(at[8], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  398|    123|    COMBA_STORE(C->dp[8]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  399|       |    /* 9 */
  400|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  401|    123|    MULADD(at[0], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  402|    123|    MULADD(at[1], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  403|    123|    MULADD(at[2], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  404|    123|    MULADD(at[3], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  405|    123|    MULADD(at[4], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  406|    123|    MULADD(at[5], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  407|    123|    MULADD(at[6], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  408|    123|    MULADD(at[7], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  409|    123|    MULADD(at[8], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  410|    123|    MULADD(at[9], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  411|    123|    COMBA_STORE(C->dp[9]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  412|       |    /* 10 */
  413|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  414|    123|    MULADD(at[0], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  415|    123|    MULADD(at[1], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  416|    123|    MULADD(at[2], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  417|    123|    MULADD(at[3], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  418|    123|    MULADD(at[4], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  419|    123|    MULADD(at[5], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  420|    123|    MULADD(at[6], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  421|    123|    MULADD(at[7], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  422|    123|    MULADD(at[8], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  423|    123|    MULADD(at[9], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  424|    123|    MULADD(at[10], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  425|    123|    COMBA_STORE(C->dp[10]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  426|       |    /* 11 */
  427|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  428|    123|    MULADD(at[0], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  429|    123|    MULADD(at[1], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  430|    123|    MULADD(at[2], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  431|    123|    MULADD(at[3], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  432|    123|    MULADD(at[4], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  433|    123|    MULADD(at[5], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  434|    123|    MULADD(at[6], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  435|    123|    MULADD(at[7], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  436|    123|    MULADD(at[8], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  437|    123|    MULADD(at[9], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  438|    123|    MULADD(at[10], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  439|    123|    MULADD(at[11], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  440|    123|    COMBA_STORE(C->dp[11]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  441|       |    /* 12 */
  442|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  443|    123|    MULADD(at[0], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  444|    123|    MULADD(at[1], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  445|    123|    MULADD(at[2], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  446|    123|    MULADD(at[3], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  447|    123|    MULADD(at[4], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  448|    123|    MULADD(at[5], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  449|    123|    MULADD(at[6], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  450|    123|    MULADD(at[7], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  451|    123|    MULADD(at[8], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  452|    123|    MULADD(at[9], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  453|    123|    MULADD(at[10], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  454|    123|    MULADD(at[11], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  455|    123|    MULADD(at[12], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  456|    123|    COMBA_STORE(C->dp[12]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  457|       |    /* 13 */
  458|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  459|    123|    MULADD(at[0], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  460|    123|    MULADD(at[1], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  461|    123|    MULADD(at[2], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  462|    123|    MULADD(at[3], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  463|    123|    MULADD(at[4], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  464|    123|    MULADD(at[5], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  465|    123|    MULADD(at[6], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  466|    123|    MULADD(at[7], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  467|    123|    MULADD(at[8], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  468|    123|    MULADD(at[9], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  469|    123|    MULADD(at[10], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  470|    123|    MULADD(at[11], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  471|    123|    MULADD(at[12], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  472|    123|    MULADD(at[13], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  473|    123|    COMBA_STORE(C->dp[13]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  474|       |    /* 14 */
  475|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  476|    123|    MULADD(at[0], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  477|    123|    MULADD(at[1], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  478|    123|    MULADD(at[2], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  479|    123|    MULADD(at[3], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  480|    123|    MULADD(at[4], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  481|    123|    MULADD(at[5], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  482|    123|    MULADD(at[6], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  483|    123|    MULADD(at[7], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  484|    123|    MULADD(at[8], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  485|    123|    MULADD(at[9], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  486|    123|    MULADD(at[10], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  487|    123|    MULADD(at[11], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  488|    123|    MULADD(at[12], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  489|    123|    MULADD(at[13], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  490|    123|    MULADD(at[14], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  491|    123|    COMBA_STORE(C->dp[14]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  492|       |    /* 15 */
  493|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  494|    123|    MULADD(at[0], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  495|    123|    MULADD(at[1], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  496|    123|    MULADD(at[2], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  497|    123|    MULADD(at[3], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  498|    123|    MULADD(at[4], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  499|    123|    MULADD(at[5], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  500|    123|    MULADD(at[6], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  501|    123|    MULADD(at[7], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  502|    123|    MULADD(at[8], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  503|    123|    MULADD(at[9], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  504|    123|    MULADD(at[10], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  505|    123|    MULADD(at[11], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  506|    123|    MULADD(at[12], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  507|    123|    MULADD(at[13], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  508|    123|    MULADD(at[14], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  509|    123|    MULADD(at[15], at[16]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  510|    123|    COMBA_STORE(C->dp[15]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  511|       |    /* 16 */
  512|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  513|    123|    MULADD(at[1], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  514|    123|    MULADD(at[2], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  515|    123|    MULADD(at[3], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  516|    123|    MULADD(at[4], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  517|    123|    MULADD(at[5], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  518|    123|    MULADD(at[6], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  519|    123|    MULADD(at[7], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  520|    123|    MULADD(at[8], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  521|    123|    MULADD(at[9], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  522|    123|    MULADD(at[10], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  523|    123|    MULADD(at[11], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  524|    123|    MULADD(at[12], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  525|    123|    MULADD(at[13], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  526|    123|    MULADD(at[14], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  527|    123|    MULADD(at[15], at[17]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  528|    123|    COMBA_STORE(C->dp[16]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  529|       |    /* 17 */
  530|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  531|    123|    MULADD(at[2], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  532|    123|    MULADD(at[3], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  533|    123|    MULADD(at[4], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  534|    123|    MULADD(at[5], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  535|    123|    MULADD(at[6], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  536|    123|    MULADD(at[7], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  537|    123|    MULADD(at[8], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  538|    123|    MULADD(at[9], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  539|    123|    MULADD(at[10], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  540|    123|    MULADD(at[11], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  541|    123|    MULADD(at[12], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  542|    123|    MULADD(at[13], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  543|    123|    MULADD(at[14], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  544|    123|    MULADD(at[15], at[18]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  545|    123|    COMBA_STORE(C->dp[17]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  546|       |    /* 18 */
  547|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  548|    123|    MULADD(at[3], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  549|    123|    MULADD(at[4], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  550|    123|    MULADD(at[5], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  551|    123|    MULADD(at[6], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  552|    123|    MULADD(at[7], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  553|    123|    MULADD(at[8], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  554|    123|    MULADD(at[9], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  555|    123|    MULADD(at[10], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  556|    123|    MULADD(at[11], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  557|    123|    MULADD(at[12], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  558|    123|    MULADD(at[13], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  559|    123|    MULADD(at[14], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  560|    123|    MULADD(at[15], at[19]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  561|    123|    COMBA_STORE(C->dp[18]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  562|       |    /* 19 */
  563|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  564|    123|    MULADD(at[4], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  565|    123|    MULADD(at[5], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  566|    123|    MULADD(at[6], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  567|    123|    MULADD(at[7], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  568|    123|    MULADD(at[8], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  569|    123|    MULADD(at[9], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  570|    123|    MULADD(at[10], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  571|    123|    MULADD(at[11], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  572|    123|    MULADD(at[12], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  573|    123|    MULADD(at[13], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  574|    123|    MULADD(at[14], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  575|    123|    MULADD(at[15], at[20]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  576|    123|    COMBA_STORE(C->dp[19]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  577|       |    /* 20 */
  578|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  579|    123|    MULADD(at[5], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  580|    123|    MULADD(at[6], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  581|    123|    MULADD(at[7], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  582|    123|    MULADD(at[8], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  583|    123|    MULADD(at[9], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  584|    123|    MULADD(at[10], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  585|    123|    MULADD(at[11], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  586|    123|    MULADD(at[12], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  587|    123|    MULADD(at[13], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  588|    123|    MULADD(at[14], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  589|    123|    MULADD(at[15], at[21]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  590|    123|    COMBA_STORE(C->dp[20]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  591|       |    /* 21 */
  592|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  593|    123|    MULADD(at[6], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  594|    123|    MULADD(at[7], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  595|    123|    MULADD(at[8], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  596|    123|    MULADD(at[9], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  597|    123|    MULADD(at[10], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  598|    123|    MULADD(at[11], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  599|    123|    MULADD(at[12], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  600|    123|    MULADD(at[13], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  601|    123|    MULADD(at[14], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  602|    123|    MULADD(at[15], at[22]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  603|    123|    COMBA_STORE(C->dp[21]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  604|       |    /* 22 */
  605|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  606|    123|    MULADD(at[7], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  607|    123|    MULADD(at[8], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  608|    123|    MULADD(at[9], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  609|    123|    MULADD(at[10], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  610|    123|    MULADD(at[11], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  611|    123|    MULADD(at[12], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  612|    123|    MULADD(at[13], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  613|    123|    MULADD(at[14], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  614|    123|    MULADD(at[15], at[23]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  615|    123|    COMBA_STORE(C->dp[22]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  616|       |    /* 23 */
  617|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  618|    123|    MULADD(at[8], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  619|    123|    MULADD(at[9], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  620|    123|    MULADD(at[10], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  621|    123|    MULADD(at[11], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  622|    123|    MULADD(at[12], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  623|    123|    MULADD(at[13], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  624|    123|    MULADD(at[14], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  625|    123|    MULADD(at[15], at[24]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  626|    123|    COMBA_STORE(C->dp[23]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  627|       |    /* 24 */
  628|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  629|    123|    MULADD(at[9], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  630|    123|    MULADD(at[10], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  631|    123|    MULADD(at[11], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  632|    123|    MULADD(at[12], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  633|    123|    MULADD(at[13], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  634|    123|    MULADD(at[14], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  635|    123|    MULADD(at[15], at[25]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  636|    123|    COMBA_STORE(C->dp[24]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  637|       |    /* 25 */
  638|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  639|    123|    MULADD(at[10], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  640|    123|    MULADD(at[11], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  641|    123|    MULADD(at[12], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  642|    123|    MULADD(at[13], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  643|    123|    MULADD(at[14], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  644|    123|    MULADD(at[15], at[26]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  645|    123|    COMBA_STORE(C->dp[25]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  646|       |    /* 26 */
  647|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  648|    123|    MULADD(at[11], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  649|    123|    MULADD(at[12], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  650|    123|    MULADD(at[13], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  651|    123|    MULADD(at[14], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  652|    123|    MULADD(at[15], at[27]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  653|    123|    COMBA_STORE(C->dp[26]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  654|       |    /* 27 */
  655|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  656|    123|    MULADD(at[12], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  657|    123|    MULADD(at[13], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  658|    123|    MULADD(at[14], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  659|    123|    MULADD(at[15], at[28]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  660|    123|    COMBA_STORE(C->dp[27]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  661|       |    /* 28 */
  662|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  663|    123|    MULADD(at[13], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  664|    123|    MULADD(at[14], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  665|    123|    MULADD(at[15], at[29]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  666|    123|    COMBA_STORE(C->dp[28]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  667|       |    /* 29 */
  668|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  669|    123|    MULADD(at[14], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  670|    123|    MULADD(at[15], at[30]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  671|    123|    COMBA_STORE(C->dp[29]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  672|       |    /* 30 */
  673|    123|    COMBA_FORWARD;
  ------------------
  |  |   41|    123|    do {              \
  |  |   42|    123|        c0 = c1;      \
  |  |   43|    123|        c1 = c2;      \
  |  |   44|    123|        c2 = 0;       \
  |  |   45|    123|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  674|    123|    MULADD(at[15], at[31]);
  ------------------
  |  |   52|    123|    __asm__(                                        \
  |  |   53|    123|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|    123|        "mulq  %7           \n\t"                   \
  |  |   55|    123|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|    123|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|    123|        "adcq  $0,%2        \n\t"                   \
  |  |   58|    123|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|    123|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|    123|        : "%rax", "%rdx", "cc");
  ------------------
  675|    123|    COMBA_STORE(C->dp[30]);
  ------------------
  |  |   67|    123|    x = c0;
  ------------------
  676|    123|    COMBA_STORE2(C->dp[31]);
  ------------------
  |  |   70|    123|    x = c1;
  ------------------
  677|    123|    C->used = 32;
  678|    123|    C->sign = A->sign ^ B->sign;
  679|    123|    mp_clamp(C);
  ------------------
  |  |   26|    123|    {                                                    \
  |  |   27|    244|        while ((a)->used && (a)->dp[(a)->used - 1] == 0) \
  |  |  ------------------
  |  |  |  Branch (27:16): [True: 244, False: 0]
  |  |  |  Branch (27:29): [True: 121, False: 123]
  |  |  ------------------
  |  |   28|    123|            --((a)->used);                               \
  |  |   29|    123|        (a)->sign = (a)->used ? (a)->sign : ZPOS;        \
  |  |  ------------------
  |  |  |  |  321|      0|#define ZPOS MP_ZPOS
  |  |  |  |  ------------------
  |  |  |  |  |  |   37|    123|#define MP_ZPOS 0
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (29:21): [True: 123, False: 0]
  |  |  ------------------
  |  |   30|    123|    }
  ------------------
  680|    123|    COMBA_FINI;
  681|    123|}
s_mp_mul_comba_32:
  685|      4|{
  686|      4|    mp_digit c0, c1, c2, at[64];
  687|       |
  688|      4|    memcpy(at, A->dp, 32 * sizeof(mp_digit));
  689|      4|    memcpy(at + 32, B->dp, 32 * sizeof(mp_digit));
  690|      4|    COMBA_START;
  691|       |
  692|      4|    COMBA_CLEAR;
  ------------------
  |  |   37|      4|    c0 = c1 = c2 = 0;
  ------------------
  693|       |    /* 0 */
  694|      4|    MULADD(at[0], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  695|      4|    COMBA_STORE(C->dp[0]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  696|       |    /* 1 */
  697|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  698|      4|    MULADD(at[0], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  699|      4|    MULADD(at[1], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  700|      4|    COMBA_STORE(C->dp[1]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  701|       |    /* 2 */
  702|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  703|      4|    MULADD(at[0], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  704|      4|    MULADD(at[1], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  705|      4|    MULADD(at[2], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  706|      4|    COMBA_STORE(C->dp[2]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  707|       |    /* 3 */
  708|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  709|      4|    MULADD(at[0], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  710|      4|    MULADD(at[1], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  711|      4|    MULADD(at[2], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  712|      4|    MULADD(at[3], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  713|      4|    COMBA_STORE(C->dp[3]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  714|       |    /* 4 */
  715|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  716|      4|    MULADD(at[0], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  717|      4|    MULADD(at[1], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  718|      4|    MULADD(at[2], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  719|      4|    MULADD(at[3], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  720|      4|    MULADD(at[4], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  721|      4|    COMBA_STORE(C->dp[4]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  722|       |    /* 5 */
  723|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  724|      4|    MULADD(at[0], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  725|      4|    MULADD(at[1], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  726|      4|    MULADD(at[2], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  727|      4|    MULADD(at[3], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  728|      4|    MULADD(at[4], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  729|      4|    MULADD(at[5], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  730|      4|    COMBA_STORE(C->dp[5]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  731|       |    /* 6 */
  732|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  733|      4|    MULADD(at[0], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  734|      4|    MULADD(at[1], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  735|      4|    MULADD(at[2], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  736|      4|    MULADD(at[3], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  737|      4|    MULADD(at[4], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  738|      4|    MULADD(at[5], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  739|      4|    MULADD(at[6], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  740|      4|    COMBA_STORE(C->dp[6]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  741|       |    /* 7 */
  742|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  743|      4|    MULADD(at[0], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  744|      4|    MULADD(at[1], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  745|      4|    MULADD(at[2], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  746|      4|    MULADD(at[3], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  747|      4|    MULADD(at[4], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  748|      4|    MULADD(at[5], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  749|      4|    MULADD(at[6], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  750|      4|    MULADD(at[7], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  751|      4|    COMBA_STORE(C->dp[7]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  752|       |    /* 8 */
  753|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  754|      4|    MULADD(at[0], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  755|      4|    MULADD(at[1], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  756|      4|    MULADD(at[2], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  757|      4|    MULADD(at[3], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  758|      4|    MULADD(at[4], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  759|      4|    MULADD(at[5], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  760|      4|    MULADD(at[6], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  761|      4|    MULADD(at[7], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  762|      4|    MULADD(at[8], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  763|      4|    COMBA_STORE(C->dp[8]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  764|       |    /* 9 */
  765|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  766|      4|    MULADD(at[0], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  767|      4|    MULADD(at[1], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  768|      4|    MULADD(at[2], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  769|      4|    MULADD(at[3], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  770|      4|    MULADD(at[4], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  771|      4|    MULADD(at[5], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  772|      4|    MULADD(at[6], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  773|      4|    MULADD(at[7], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  774|      4|    MULADD(at[8], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  775|      4|    MULADD(at[9], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  776|      4|    COMBA_STORE(C->dp[9]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  777|       |    /* 10 */
  778|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  779|      4|    MULADD(at[0], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  780|      4|    MULADD(at[1], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  781|      4|    MULADD(at[2], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  782|      4|    MULADD(at[3], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  783|      4|    MULADD(at[4], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  784|      4|    MULADD(at[5], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  785|      4|    MULADD(at[6], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  786|      4|    MULADD(at[7], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  787|      4|    MULADD(at[8], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  788|      4|    MULADD(at[9], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  789|      4|    MULADD(at[10], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  790|      4|    COMBA_STORE(C->dp[10]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  791|       |    /* 11 */
  792|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  793|      4|    MULADD(at[0], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  794|      4|    MULADD(at[1], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  795|      4|    MULADD(at[2], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  796|      4|    MULADD(at[3], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  797|      4|    MULADD(at[4], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  798|      4|    MULADD(at[5], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  799|      4|    MULADD(at[6], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  800|      4|    MULADD(at[7], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  801|      4|    MULADD(at[8], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  802|      4|    MULADD(at[9], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  803|      4|    MULADD(at[10], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  804|      4|    MULADD(at[11], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  805|      4|    COMBA_STORE(C->dp[11]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  806|       |    /* 12 */
  807|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  808|      4|    MULADD(at[0], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  809|      4|    MULADD(at[1], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  810|      4|    MULADD(at[2], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  811|      4|    MULADD(at[3], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  812|      4|    MULADD(at[4], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  813|      4|    MULADD(at[5], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  814|      4|    MULADD(at[6], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  815|      4|    MULADD(at[7], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  816|      4|    MULADD(at[8], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  817|      4|    MULADD(at[9], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  818|      4|    MULADD(at[10], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  819|      4|    MULADD(at[11], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  820|      4|    MULADD(at[12], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  821|      4|    COMBA_STORE(C->dp[12]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  822|       |    /* 13 */
  823|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  824|      4|    MULADD(at[0], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  825|      4|    MULADD(at[1], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  826|      4|    MULADD(at[2], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  827|      4|    MULADD(at[3], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  828|      4|    MULADD(at[4], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  829|      4|    MULADD(at[5], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  830|      4|    MULADD(at[6], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  831|      4|    MULADD(at[7], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  832|      4|    MULADD(at[8], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  833|      4|    MULADD(at[9], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  834|      4|    MULADD(at[10], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  835|      4|    MULADD(at[11], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  836|      4|    MULADD(at[12], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  837|      4|    MULADD(at[13], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  838|      4|    COMBA_STORE(C->dp[13]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  839|       |    /* 14 */
  840|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  841|      4|    MULADD(at[0], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  842|      4|    MULADD(at[1], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  843|      4|    MULADD(at[2], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  844|      4|    MULADD(at[3], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  845|      4|    MULADD(at[4], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  846|      4|    MULADD(at[5], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  847|      4|    MULADD(at[6], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  848|      4|    MULADD(at[7], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  849|      4|    MULADD(at[8], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  850|      4|    MULADD(at[9], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  851|      4|    MULADD(at[10], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  852|      4|    MULADD(at[11], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  853|      4|    MULADD(at[12], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  854|      4|    MULADD(at[13], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  855|      4|    MULADD(at[14], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  856|      4|    COMBA_STORE(C->dp[14]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  857|       |    /* 15 */
  858|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  859|      4|    MULADD(at[0], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  860|      4|    MULADD(at[1], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  861|      4|    MULADD(at[2], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  862|      4|    MULADD(at[3], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  863|      4|    MULADD(at[4], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  864|      4|    MULADD(at[5], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  865|      4|    MULADD(at[6], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  866|      4|    MULADD(at[7], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  867|      4|    MULADD(at[8], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  868|      4|    MULADD(at[9], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  869|      4|    MULADD(at[10], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  870|      4|    MULADD(at[11], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  871|      4|    MULADD(at[12], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  872|      4|    MULADD(at[13], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  873|      4|    MULADD(at[14], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  874|      4|    MULADD(at[15], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  875|      4|    COMBA_STORE(C->dp[15]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  876|       |    /* 16 */
  877|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  878|      4|    MULADD(at[0], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  879|      4|    MULADD(at[1], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  880|      4|    MULADD(at[2], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  881|      4|    MULADD(at[3], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  882|      4|    MULADD(at[4], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  883|      4|    MULADD(at[5], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  884|      4|    MULADD(at[6], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  885|      4|    MULADD(at[7], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  886|      4|    MULADD(at[8], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  887|      4|    MULADD(at[9], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  888|      4|    MULADD(at[10], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  889|      4|    MULADD(at[11], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  890|      4|    MULADD(at[12], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  891|      4|    MULADD(at[13], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  892|      4|    MULADD(at[14], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  893|      4|    MULADD(at[15], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  894|      4|    MULADD(at[16], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  895|      4|    COMBA_STORE(C->dp[16]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  896|       |    /* 17 */
  897|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  898|      4|    MULADD(at[0], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  899|      4|    MULADD(at[1], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  900|      4|    MULADD(at[2], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  901|      4|    MULADD(at[3], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  902|      4|    MULADD(at[4], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  903|      4|    MULADD(at[5], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  904|      4|    MULADD(at[6], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  905|      4|    MULADD(at[7], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  906|      4|    MULADD(at[8], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  907|      4|    MULADD(at[9], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  908|      4|    MULADD(at[10], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  909|      4|    MULADD(at[11], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  910|      4|    MULADD(at[12], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  911|      4|    MULADD(at[13], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  912|      4|    MULADD(at[14], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  913|      4|    MULADD(at[15], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  914|      4|    MULADD(at[16], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  915|      4|    MULADD(at[17], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  916|      4|    COMBA_STORE(C->dp[17]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  917|       |    /* 18 */
  918|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  919|      4|    MULADD(at[0], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  920|      4|    MULADD(at[1], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  921|      4|    MULADD(at[2], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  922|      4|    MULADD(at[3], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  923|      4|    MULADD(at[4], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  924|      4|    MULADD(at[5], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  925|      4|    MULADD(at[6], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  926|      4|    MULADD(at[7], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  927|      4|    MULADD(at[8], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  928|      4|    MULADD(at[9], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  929|      4|    MULADD(at[10], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  930|      4|    MULADD(at[11], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  931|      4|    MULADD(at[12], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  932|      4|    MULADD(at[13], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  933|      4|    MULADD(at[14], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  934|      4|    MULADD(at[15], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  935|      4|    MULADD(at[16], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  936|      4|    MULADD(at[17], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  937|      4|    MULADD(at[18], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  938|      4|    COMBA_STORE(C->dp[18]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  939|       |    /* 19 */
  940|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  941|      4|    MULADD(at[0], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  942|      4|    MULADD(at[1], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  943|      4|    MULADD(at[2], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  944|      4|    MULADD(at[3], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  945|      4|    MULADD(at[4], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  946|      4|    MULADD(at[5], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  947|      4|    MULADD(at[6], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  948|      4|    MULADD(at[7], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  949|      4|    MULADD(at[8], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  950|      4|    MULADD(at[9], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  951|      4|    MULADD(at[10], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  952|      4|    MULADD(at[11], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  953|      4|    MULADD(at[12], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  954|      4|    MULADD(at[13], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  955|      4|    MULADD(at[14], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  956|      4|    MULADD(at[15], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  957|      4|    MULADD(at[16], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  958|      4|    MULADD(at[17], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  959|      4|    MULADD(at[18], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  960|      4|    MULADD(at[19], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  961|      4|    COMBA_STORE(C->dp[19]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  962|       |    /* 20 */
  963|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  964|      4|    MULADD(at[0], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  965|      4|    MULADD(at[1], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  966|      4|    MULADD(at[2], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  967|      4|    MULADD(at[3], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  968|      4|    MULADD(at[4], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  969|      4|    MULADD(at[5], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  970|      4|    MULADD(at[6], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  971|      4|    MULADD(at[7], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  972|      4|    MULADD(at[8], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  973|      4|    MULADD(at[9], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  974|      4|    MULADD(at[10], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  975|      4|    MULADD(at[11], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  976|      4|    MULADD(at[12], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  977|      4|    MULADD(at[13], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  978|      4|    MULADD(at[14], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  979|      4|    MULADD(at[15], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  980|      4|    MULADD(at[16], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  981|      4|    MULADD(at[17], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  982|      4|    MULADD(at[18], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  983|      4|    MULADD(at[19], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  984|      4|    MULADD(at[20], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  985|      4|    COMBA_STORE(C->dp[20]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
  986|       |    /* 21 */
  987|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  988|      4|    MULADD(at[0], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  989|      4|    MULADD(at[1], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  990|      4|    MULADD(at[2], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  991|      4|    MULADD(at[3], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  992|      4|    MULADD(at[4], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  993|      4|    MULADD(at[5], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  994|      4|    MULADD(at[6], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  995|      4|    MULADD(at[7], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  996|      4|    MULADD(at[8], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  997|      4|    MULADD(at[9], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  998|      4|    MULADD(at[10], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
  999|      4|    MULADD(at[11], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1000|      4|    MULADD(at[12], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1001|      4|    MULADD(at[13], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1002|      4|    MULADD(at[14], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1003|      4|    MULADD(at[15], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1004|      4|    MULADD(at[16], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1005|      4|    MULADD(at[17], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1006|      4|    MULADD(at[18], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1007|      4|    MULADD(at[19], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1008|      4|    MULADD(at[20], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1009|      4|    MULADD(at[21], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1010|      4|    COMBA_STORE(C->dp[21]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1011|       |    /* 22 */
 1012|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1013|      4|    MULADD(at[0], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1014|      4|    MULADD(at[1], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1015|      4|    MULADD(at[2], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1016|      4|    MULADD(at[3], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1017|      4|    MULADD(at[4], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1018|      4|    MULADD(at[5], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1019|      4|    MULADD(at[6], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1020|      4|    MULADD(at[7], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1021|      4|    MULADD(at[8], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1022|      4|    MULADD(at[9], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1023|      4|    MULADD(at[10], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1024|      4|    MULADD(at[11], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1025|      4|    MULADD(at[12], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1026|      4|    MULADD(at[13], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1027|      4|    MULADD(at[14], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1028|      4|    MULADD(at[15], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1029|      4|    MULADD(at[16], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1030|      4|    MULADD(at[17], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1031|      4|    MULADD(at[18], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1032|      4|    MULADD(at[19], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1033|      4|    MULADD(at[20], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1034|      4|    MULADD(at[21], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1035|      4|    MULADD(at[22], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1036|      4|    COMBA_STORE(C->dp[22]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1037|       |    /* 23 */
 1038|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1039|      4|    MULADD(at[0], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1040|      4|    MULADD(at[1], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1041|      4|    MULADD(at[2], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1042|      4|    MULADD(at[3], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1043|      4|    MULADD(at[4], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1044|      4|    MULADD(at[5], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1045|      4|    MULADD(at[6], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1046|      4|    MULADD(at[7], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1047|      4|    MULADD(at[8], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1048|      4|    MULADD(at[9], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1049|      4|    MULADD(at[10], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1050|      4|    MULADD(at[11], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1051|      4|    MULADD(at[12], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1052|      4|    MULADD(at[13], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1053|      4|    MULADD(at[14], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1054|      4|    MULADD(at[15], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1055|      4|    MULADD(at[16], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1056|      4|    MULADD(at[17], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1057|      4|    MULADD(at[18], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1058|      4|    MULADD(at[19], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1059|      4|    MULADD(at[20], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1060|      4|    MULADD(at[21], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1061|      4|    MULADD(at[22], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1062|      4|    MULADD(at[23], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1063|      4|    COMBA_STORE(C->dp[23]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1064|       |    /* 24 */
 1065|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1066|      4|    MULADD(at[0], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1067|      4|    MULADD(at[1], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1068|      4|    MULADD(at[2], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1069|      4|    MULADD(at[3], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1070|      4|    MULADD(at[4], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1071|      4|    MULADD(at[5], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1072|      4|    MULADD(at[6], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1073|      4|    MULADD(at[7], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1074|      4|    MULADD(at[8], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1075|      4|    MULADD(at[9], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1076|      4|    MULADD(at[10], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1077|      4|    MULADD(at[11], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1078|      4|    MULADD(at[12], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1079|      4|    MULADD(at[13], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1080|      4|    MULADD(at[14], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1081|      4|    MULADD(at[15], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1082|      4|    MULADD(at[16], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1083|      4|    MULADD(at[17], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1084|      4|    MULADD(at[18], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1085|      4|    MULADD(at[19], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1086|      4|    MULADD(at[20], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1087|      4|    MULADD(at[21], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1088|      4|    MULADD(at[22], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1089|      4|    MULADD(at[23], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1090|      4|    MULADD(at[24], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1091|      4|    COMBA_STORE(C->dp[24]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1092|       |    /* 25 */
 1093|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1094|      4|    MULADD(at[0], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1095|      4|    MULADD(at[1], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1096|      4|    MULADD(at[2], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1097|      4|    MULADD(at[3], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1098|      4|    MULADD(at[4], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1099|      4|    MULADD(at[5], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1100|      4|    MULADD(at[6], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1101|      4|    MULADD(at[7], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1102|      4|    MULADD(at[8], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1103|      4|    MULADD(at[9], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1104|      4|    MULADD(at[10], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1105|      4|    MULADD(at[11], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1106|      4|    MULADD(at[12], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1107|      4|    MULADD(at[13], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1108|      4|    MULADD(at[14], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1109|      4|    MULADD(at[15], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1110|      4|    MULADD(at[16], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1111|      4|    MULADD(at[17], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1112|      4|    MULADD(at[18], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1113|      4|    MULADD(at[19], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1114|      4|    MULADD(at[20], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1115|      4|    MULADD(at[21], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1116|      4|    MULADD(at[22], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1117|      4|    MULADD(at[23], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1118|      4|    MULADD(at[24], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1119|      4|    MULADD(at[25], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1120|      4|    COMBA_STORE(C->dp[25]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1121|       |    /* 26 */
 1122|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1123|      4|    MULADD(at[0], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1124|      4|    MULADD(at[1], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1125|      4|    MULADD(at[2], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1126|      4|    MULADD(at[3], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1127|      4|    MULADD(at[4], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1128|      4|    MULADD(at[5], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1129|      4|    MULADD(at[6], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1130|      4|    MULADD(at[7], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1131|      4|    MULADD(at[8], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1132|      4|    MULADD(at[9], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1133|      4|    MULADD(at[10], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1134|      4|    MULADD(at[11], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1135|      4|    MULADD(at[12], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1136|      4|    MULADD(at[13], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1137|      4|    MULADD(at[14], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1138|      4|    MULADD(at[15], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1139|      4|    MULADD(at[16], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1140|      4|    MULADD(at[17], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1141|      4|    MULADD(at[18], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1142|      4|    MULADD(at[19], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1143|      4|    MULADD(at[20], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1144|      4|    MULADD(at[21], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1145|      4|    MULADD(at[22], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1146|      4|    MULADD(at[23], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1147|      4|    MULADD(at[24], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1148|      4|    MULADD(at[25], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1149|      4|    MULADD(at[26], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1150|      4|    COMBA_STORE(C->dp[26]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1151|       |    /* 27 */
 1152|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1153|      4|    MULADD(at[0], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1154|      4|    MULADD(at[1], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1155|      4|    MULADD(at[2], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1156|      4|    MULADD(at[3], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1157|      4|    MULADD(at[4], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1158|      4|    MULADD(at[5], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1159|      4|    MULADD(at[6], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1160|      4|    MULADD(at[7], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1161|      4|    MULADD(at[8], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1162|      4|    MULADD(at[9], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1163|      4|    MULADD(at[10], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1164|      4|    MULADD(at[11], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1165|      4|    MULADD(at[12], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1166|      4|    MULADD(at[13], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1167|      4|    MULADD(at[14], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1168|      4|    MULADD(at[15], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1169|      4|    MULADD(at[16], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1170|      4|    MULADD(at[17], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1171|      4|    MULADD(at[18], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1172|      4|    MULADD(at[19], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1173|      4|    MULADD(at[20], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1174|      4|    MULADD(at[21], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1175|      4|    MULADD(at[22], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1176|      4|    MULADD(at[23], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1177|      4|    MULADD(at[24], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1178|      4|    MULADD(at[25], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1179|      4|    MULADD(at[26], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1180|      4|    MULADD(at[27], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1181|      4|    COMBA_STORE(C->dp[27]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1182|       |    /* 28 */
 1183|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1184|      4|    MULADD(at[0], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1185|      4|    MULADD(at[1], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1186|      4|    MULADD(at[2], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1187|      4|    MULADD(at[3], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1188|      4|    MULADD(at[4], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1189|      4|    MULADD(at[5], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1190|      4|    MULADD(at[6], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1191|      4|    MULADD(at[7], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1192|      4|    MULADD(at[8], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1193|      4|    MULADD(at[9], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1194|      4|    MULADD(at[10], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1195|      4|    MULADD(at[11], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1196|      4|    MULADD(at[12], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1197|      4|    MULADD(at[13], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1198|      4|    MULADD(at[14], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1199|      4|    MULADD(at[15], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1200|      4|    MULADD(at[16], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1201|      4|    MULADD(at[17], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1202|      4|    MULADD(at[18], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1203|      4|    MULADD(at[19], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1204|      4|    MULADD(at[20], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1205|      4|    MULADD(at[21], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1206|      4|    MULADD(at[22], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1207|      4|    MULADD(at[23], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1208|      4|    MULADD(at[24], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1209|      4|    MULADD(at[25], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1210|      4|    MULADD(at[26], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1211|      4|    MULADD(at[27], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1212|      4|    MULADD(at[28], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1213|      4|    COMBA_STORE(C->dp[28]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1214|       |    /* 29 */
 1215|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1216|      4|    MULADD(at[0], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1217|      4|    MULADD(at[1], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1218|      4|    MULADD(at[2], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1219|      4|    MULADD(at[3], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1220|      4|    MULADD(at[4], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1221|      4|    MULADD(at[5], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1222|      4|    MULADD(at[6], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1223|      4|    MULADD(at[7], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1224|      4|    MULADD(at[8], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1225|      4|    MULADD(at[9], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1226|      4|    MULADD(at[10], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1227|      4|    MULADD(at[11], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1228|      4|    MULADD(at[12], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1229|      4|    MULADD(at[13], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1230|      4|    MULADD(at[14], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1231|      4|    MULADD(at[15], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1232|      4|    MULADD(at[16], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1233|      4|    MULADD(at[17], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1234|      4|    MULADD(at[18], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1235|      4|    MULADD(at[19], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1236|      4|    MULADD(at[20], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1237|      4|    MULADD(at[21], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1238|      4|    MULADD(at[22], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1239|      4|    MULADD(at[23], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1240|      4|    MULADD(at[24], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1241|      4|    MULADD(at[25], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1242|      4|    MULADD(at[26], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1243|      4|    MULADD(at[27], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1244|      4|    MULADD(at[28], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1245|      4|    MULADD(at[29], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1246|      4|    COMBA_STORE(C->dp[29]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1247|       |    /* 30 */
 1248|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1249|      4|    MULADD(at[0], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1250|      4|    MULADD(at[1], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1251|      4|    MULADD(at[2], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1252|      4|    MULADD(at[3], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1253|      4|    MULADD(at[4], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1254|      4|    MULADD(at[5], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1255|      4|    MULADD(at[6], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1256|      4|    MULADD(at[7], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1257|      4|    MULADD(at[8], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1258|      4|    MULADD(at[9], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1259|      4|    MULADD(at[10], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1260|      4|    MULADD(at[11], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1261|      4|    MULADD(at[12], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1262|      4|    MULADD(at[13], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1263|      4|    MULADD(at[14], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1264|      4|    MULADD(at[15], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1265|      4|    MULADD(at[16], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1266|      4|    MULADD(at[17], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1267|      4|    MULADD(at[18], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1268|      4|    MULADD(at[19], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1269|      4|    MULADD(at[20], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1270|      4|    MULADD(at[21], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1271|      4|    MULADD(at[22], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1272|      4|    MULADD(at[23], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1273|      4|    MULADD(at[24], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1274|      4|    MULADD(at[25], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1275|      4|    MULADD(at[26], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1276|      4|    MULADD(at[27], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1277|      4|    MULADD(at[28], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1278|      4|    MULADD(at[29], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1279|      4|    MULADD(at[30], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1280|      4|    COMBA_STORE(C->dp[30]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1281|       |    /* 31 */
 1282|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1283|      4|    MULADD(at[0], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1284|      4|    MULADD(at[1], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1285|      4|    MULADD(at[2], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1286|      4|    MULADD(at[3], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1287|      4|    MULADD(at[4], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1288|      4|    MULADD(at[5], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1289|      4|    MULADD(at[6], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1290|      4|    MULADD(at[7], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1291|      4|    MULADD(at[8], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1292|      4|    MULADD(at[9], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1293|      4|    MULADD(at[10], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1294|      4|    MULADD(at[11], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1295|      4|    MULADD(at[12], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1296|      4|    MULADD(at[13], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1297|      4|    MULADD(at[14], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1298|      4|    MULADD(at[15], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1299|      4|    MULADD(at[16], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1300|      4|    MULADD(at[17], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1301|      4|    MULADD(at[18], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1302|      4|    MULADD(at[19], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1303|      4|    MULADD(at[20], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1304|      4|    MULADD(at[21], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1305|      4|    MULADD(at[22], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1306|      4|    MULADD(at[23], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1307|      4|    MULADD(at[24], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1308|      4|    MULADD(at[25], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1309|      4|    MULADD(at[26], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1310|      4|    MULADD(at[27], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1311|      4|    MULADD(at[28], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1312|      4|    MULADD(at[29], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1313|      4|    MULADD(at[30], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1314|      4|    MULADD(at[31], at[32]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1315|      4|    COMBA_STORE(C->dp[31]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1316|       |    /* 32 */
 1317|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1318|      4|    MULADD(at[1], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1319|      4|    MULADD(at[2], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1320|      4|    MULADD(at[3], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1321|      4|    MULADD(at[4], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1322|      4|    MULADD(at[5], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1323|      4|    MULADD(at[6], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1324|      4|    MULADD(at[7], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1325|      4|    MULADD(at[8], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1326|      4|    MULADD(at[9], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1327|      4|    MULADD(at[10], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1328|      4|    MULADD(at[11], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1329|      4|    MULADD(at[12], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1330|      4|    MULADD(at[13], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1331|      4|    MULADD(at[14], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1332|      4|    MULADD(at[15], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1333|      4|    MULADD(at[16], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1334|      4|    MULADD(at[17], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1335|      4|    MULADD(at[18], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1336|      4|    MULADD(at[19], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1337|      4|    MULADD(at[20], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1338|      4|    MULADD(at[21], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1339|      4|    MULADD(at[22], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1340|      4|    MULADD(at[23], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1341|      4|    MULADD(at[24], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1342|      4|    MULADD(at[25], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1343|      4|    MULADD(at[26], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1344|      4|    MULADD(at[27], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1345|      4|    MULADD(at[28], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1346|      4|    MULADD(at[29], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1347|      4|    MULADD(at[30], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1348|      4|    MULADD(at[31], at[33]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1349|      4|    COMBA_STORE(C->dp[32]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1350|       |    /* 33 */
 1351|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1352|      4|    MULADD(at[2], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1353|      4|    MULADD(at[3], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1354|      4|    MULADD(at[4], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1355|      4|    MULADD(at[5], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1356|      4|    MULADD(at[6], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1357|      4|    MULADD(at[7], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1358|      4|    MULADD(at[8], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1359|      4|    MULADD(at[9], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1360|      4|    MULADD(at[10], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1361|      4|    MULADD(at[11], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1362|      4|    MULADD(at[12], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1363|      4|    MULADD(at[13], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1364|      4|    MULADD(at[14], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1365|      4|    MULADD(at[15], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1366|      4|    MULADD(at[16], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1367|      4|    MULADD(at[17], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1368|      4|    MULADD(at[18], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1369|      4|    MULADD(at[19], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1370|      4|    MULADD(at[20], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1371|      4|    MULADD(at[21], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1372|      4|    MULADD(at[22], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1373|      4|    MULADD(at[23], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1374|      4|    MULADD(at[24], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1375|      4|    MULADD(at[25], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1376|      4|    MULADD(at[26], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1377|      4|    MULADD(at[27], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1378|      4|    MULADD(at[28], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1379|      4|    MULADD(at[29], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1380|      4|    MULADD(at[30], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1381|      4|    MULADD(at[31], at[34]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1382|      4|    COMBA_STORE(C->dp[33]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1383|       |    /* 34 */
 1384|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1385|      4|    MULADD(at[3], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1386|      4|    MULADD(at[4], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1387|      4|    MULADD(at[5], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1388|      4|    MULADD(at[6], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1389|      4|    MULADD(at[7], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1390|      4|    MULADD(at[8], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1391|      4|    MULADD(at[9], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1392|      4|    MULADD(at[10], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1393|      4|    MULADD(at[11], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1394|      4|    MULADD(at[12], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1395|      4|    MULADD(at[13], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1396|      4|    MULADD(at[14], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1397|      4|    MULADD(at[15], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1398|      4|    MULADD(at[16], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1399|      4|    MULADD(at[17], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1400|      4|    MULADD(at[18], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1401|      4|    MULADD(at[19], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1402|      4|    MULADD(at[20], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1403|      4|    MULADD(at[21], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1404|      4|    MULADD(at[22], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1405|      4|    MULADD(at[23], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1406|      4|    MULADD(at[24], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1407|      4|    MULADD(at[25], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1408|      4|    MULADD(at[26], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1409|      4|    MULADD(at[27], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1410|      4|    MULADD(at[28], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1411|      4|    MULADD(at[29], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1412|      4|    MULADD(at[30], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1413|      4|    MULADD(at[31], at[35]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1414|      4|    COMBA_STORE(C->dp[34]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1415|       |    /* 35 */
 1416|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1417|      4|    MULADD(at[4], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1418|      4|    MULADD(at[5], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1419|      4|    MULADD(at[6], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1420|      4|    MULADD(at[7], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1421|      4|    MULADD(at[8], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1422|      4|    MULADD(at[9], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1423|      4|    MULADD(at[10], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1424|      4|    MULADD(at[11], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1425|      4|    MULADD(at[12], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1426|      4|    MULADD(at[13], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1427|      4|    MULADD(at[14], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1428|      4|    MULADD(at[15], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1429|      4|    MULADD(at[16], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1430|      4|    MULADD(at[17], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1431|      4|    MULADD(at[18], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1432|      4|    MULADD(at[19], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1433|      4|    MULADD(at[20], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1434|      4|    MULADD(at[21], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1435|      4|    MULADD(at[22], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1436|      4|    MULADD(at[23], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1437|      4|    MULADD(at[24], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1438|      4|    MULADD(at[25], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1439|      4|    MULADD(at[26], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1440|      4|    MULADD(at[27], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1441|      4|    MULADD(at[28], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1442|      4|    MULADD(at[29], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1443|      4|    MULADD(at[30], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1444|      4|    MULADD(at[31], at[36]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1445|      4|    COMBA_STORE(C->dp[35]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1446|       |    /* 36 */
 1447|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1448|      4|    MULADD(at[5], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1449|      4|    MULADD(at[6], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1450|      4|    MULADD(at[7], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1451|      4|    MULADD(at[8], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1452|      4|    MULADD(at[9], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1453|      4|    MULADD(at[10], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1454|      4|    MULADD(at[11], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1455|      4|    MULADD(at[12], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1456|      4|    MULADD(at[13], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1457|      4|    MULADD(at[14], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1458|      4|    MULADD(at[15], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1459|      4|    MULADD(at[16], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1460|      4|    MULADD(at[17], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1461|      4|    MULADD(at[18], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1462|      4|    MULADD(at[19], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1463|      4|    MULADD(at[20], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1464|      4|    MULADD(at[21], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1465|      4|    MULADD(at[22], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1466|      4|    MULADD(at[23], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1467|      4|    MULADD(at[24], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1468|      4|    MULADD(at[25], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1469|      4|    MULADD(at[26], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1470|      4|    MULADD(at[27], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1471|      4|    MULADD(at[28], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1472|      4|    MULADD(at[29], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1473|      4|    MULADD(at[30], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1474|      4|    MULADD(at[31], at[37]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1475|      4|    COMBA_STORE(C->dp[36]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1476|       |    /* 37 */
 1477|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1478|      4|    MULADD(at[6], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1479|      4|    MULADD(at[7], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1480|      4|    MULADD(at[8], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1481|      4|    MULADD(at[9], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1482|      4|    MULADD(at[10], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1483|      4|    MULADD(at[11], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1484|      4|    MULADD(at[12], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1485|      4|    MULADD(at[13], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1486|      4|    MULADD(at[14], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1487|      4|    MULADD(at[15], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1488|      4|    MULADD(at[16], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1489|      4|    MULADD(at[17], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1490|      4|    MULADD(at[18], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1491|      4|    MULADD(at[19], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1492|      4|    MULADD(at[20], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1493|      4|    MULADD(at[21], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1494|      4|    MULADD(at[22], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1495|      4|    MULADD(at[23], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1496|      4|    MULADD(at[24], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1497|      4|    MULADD(at[25], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1498|      4|    MULADD(at[26], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1499|      4|    MULADD(at[27], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1500|      4|    MULADD(at[28], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1501|      4|    MULADD(at[29], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1502|      4|    MULADD(at[30], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1503|      4|    MULADD(at[31], at[38]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1504|      4|    COMBA_STORE(C->dp[37]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1505|       |    /* 38 */
 1506|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1507|      4|    MULADD(at[7], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1508|      4|    MULADD(at[8], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1509|      4|    MULADD(at[9], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1510|      4|    MULADD(at[10], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1511|      4|    MULADD(at[11], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1512|      4|    MULADD(at[12], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1513|      4|    MULADD(at[13], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1514|      4|    MULADD(at[14], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1515|      4|    MULADD(at[15], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1516|      4|    MULADD(at[16], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1517|      4|    MULADD(at[17], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1518|      4|    MULADD(at[18], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1519|      4|    MULADD(at[19], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1520|      4|    MULADD(at[20], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1521|      4|    MULADD(at[21], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1522|      4|    MULADD(at[22], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1523|      4|    MULADD(at[23], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1524|      4|    MULADD(at[24], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1525|      4|    MULADD(at[25], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1526|      4|    MULADD(at[26], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1527|      4|    MULADD(at[27], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1528|      4|    MULADD(at[28], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1529|      4|    MULADD(at[29], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1530|      4|    MULADD(at[30], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1531|      4|    MULADD(at[31], at[39]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1532|      4|    COMBA_STORE(C->dp[38]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1533|       |    /* 39 */
 1534|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1535|      4|    MULADD(at[8], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1536|      4|    MULADD(at[9], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1537|      4|    MULADD(at[10], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1538|      4|    MULADD(at[11], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1539|      4|    MULADD(at[12], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1540|      4|    MULADD(at[13], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1541|      4|    MULADD(at[14], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1542|      4|    MULADD(at[15], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1543|      4|    MULADD(at[16], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1544|      4|    MULADD(at[17], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1545|      4|    MULADD(at[18], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1546|      4|    MULADD(at[19], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1547|      4|    MULADD(at[20], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1548|      4|    MULADD(at[21], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1549|      4|    MULADD(at[22], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1550|      4|    MULADD(at[23], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1551|      4|    MULADD(at[24], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1552|      4|    MULADD(at[25], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1553|      4|    MULADD(at[26], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1554|      4|    MULADD(at[27], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1555|      4|    MULADD(at[28], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1556|      4|    MULADD(at[29], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1557|      4|    MULADD(at[30], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1558|      4|    MULADD(at[31], at[40]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1559|      4|    COMBA_STORE(C->dp[39]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1560|       |    /* 40 */
 1561|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1562|      4|    MULADD(at[9], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1563|      4|    MULADD(at[10], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1564|      4|    MULADD(at[11], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1565|      4|    MULADD(at[12], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1566|      4|    MULADD(at[13], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1567|      4|    MULADD(at[14], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1568|      4|    MULADD(at[15], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1569|      4|    MULADD(at[16], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1570|      4|    MULADD(at[17], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1571|      4|    MULADD(at[18], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1572|      4|    MULADD(at[19], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1573|      4|    MULADD(at[20], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1574|      4|    MULADD(at[21], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1575|      4|    MULADD(at[22], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1576|      4|    MULADD(at[23], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1577|      4|    MULADD(at[24], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1578|      4|    MULADD(at[25], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1579|      4|    MULADD(at[26], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1580|      4|    MULADD(at[27], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1581|      4|    MULADD(at[28], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1582|      4|    MULADD(at[29], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1583|      4|    MULADD(at[30], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1584|      4|    MULADD(at[31], at[41]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1585|      4|    COMBA_STORE(C->dp[40]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1586|       |    /* 41 */
 1587|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1588|      4|    MULADD(at[10], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1589|      4|    MULADD(at[11], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1590|      4|    MULADD(at[12], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1591|      4|    MULADD(at[13], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1592|      4|    MULADD(at[14], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1593|      4|    MULADD(at[15], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1594|      4|    MULADD(at[16], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1595|      4|    MULADD(at[17], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1596|      4|    MULADD(at[18], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1597|      4|    MULADD(at[19], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1598|      4|    MULADD(at[20], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1599|      4|    MULADD(at[21], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1600|      4|    MULADD(at[22], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1601|      4|    MULADD(at[23], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1602|      4|    MULADD(at[24], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1603|      4|    MULADD(at[25], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1604|      4|    MULADD(at[26], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1605|      4|    MULADD(at[27], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1606|      4|    MULADD(at[28], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1607|      4|    MULADD(at[29], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1608|      4|    MULADD(at[30], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1609|      4|    MULADD(at[31], at[42]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1610|      4|    COMBA_STORE(C->dp[41]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1611|       |    /* 42 */
 1612|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1613|      4|    MULADD(at[11], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1614|      4|    MULADD(at[12], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1615|      4|    MULADD(at[13], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1616|      4|    MULADD(at[14], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1617|      4|    MULADD(at[15], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1618|      4|    MULADD(at[16], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1619|      4|    MULADD(at[17], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1620|      4|    MULADD(at[18], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1621|      4|    MULADD(at[19], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1622|      4|    MULADD(at[20], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1623|      4|    MULADD(at[21], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1624|      4|    MULADD(at[22], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1625|      4|    MULADD(at[23], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1626|      4|    MULADD(at[24], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1627|      4|    MULADD(at[25], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1628|      4|    MULADD(at[26], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1629|      4|    MULADD(at[27], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1630|      4|    MULADD(at[28], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1631|      4|    MULADD(at[29], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1632|      4|    MULADD(at[30], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1633|      4|    MULADD(at[31], at[43]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1634|      4|    COMBA_STORE(C->dp[42]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1635|       |    /* 43 */
 1636|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1637|      4|    MULADD(at[12], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1638|      4|    MULADD(at[13], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1639|      4|    MULADD(at[14], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1640|      4|    MULADD(at[15], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1641|      4|    MULADD(at[16], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1642|      4|    MULADD(at[17], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1643|      4|    MULADD(at[18], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1644|      4|    MULADD(at[19], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1645|      4|    MULADD(at[20], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1646|      4|    MULADD(at[21], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1647|      4|    MULADD(at[22], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1648|      4|    MULADD(at[23], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1649|      4|    MULADD(at[24], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1650|      4|    MULADD(at[25], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1651|      4|    MULADD(at[26], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1652|      4|    MULADD(at[27], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1653|      4|    MULADD(at[28], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1654|      4|    MULADD(at[29], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1655|      4|    MULADD(at[30], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1656|      4|    MULADD(at[31], at[44]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1657|      4|    COMBA_STORE(C->dp[43]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1658|       |    /* 44 */
 1659|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1660|      4|    MULADD(at[13], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1661|      4|    MULADD(at[14], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1662|      4|    MULADD(at[15], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1663|      4|    MULADD(at[16], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1664|      4|    MULADD(at[17], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1665|      4|    MULADD(at[18], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1666|      4|    MULADD(at[19], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1667|      4|    MULADD(at[20], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1668|      4|    MULADD(at[21], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1669|      4|    MULADD(at[22], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1670|      4|    MULADD(at[23], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1671|      4|    MULADD(at[24], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1672|      4|    MULADD(at[25], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1673|      4|    MULADD(at[26], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1674|      4|    MULADD(at[27], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1675|      4|    MULADD(at[28], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1676|      4|    MULADD(at[29], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1677|      4|    MULADD(at[30], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1678|      4|    MULADD(at[31], at[45]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1679|      4|    COMBA_STORE(C->dp[44]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1680|       |    /* 45 */
 1681|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1682|      4|    MULADD(at[14], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1683|      4|    MULADD(at[15], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1684|      4|    MULADD(at[16], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1685|      4|    MULADD(at[17], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1686|      4|    MULADD(at[18], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1687|      4|    MULADD(at[19], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1688|      4|    MULADD(at[20], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1689|      4|    MULADD(at[21], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1690|      4|    MULADD(at[22], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1691|      4|    MULADD(at[23], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1692|      4|    MULADD(at[24], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1693|      4|    MULADD(at[25], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1694|      4|    MULADD(at[26], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1695|      4|    MULADD(at[27], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1696|      4|    MULADD(at[28], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1697|      4|    MULADD(at[29], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1698|      4|    MULADD(at[30], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1699|      4|    MULADD(at[31], at[46]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1700|      4|    COMBA_STORE(C->dp[45]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1701|       |    /* 46 */
 1702|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1703|      4|    MULADD(at[15], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1704|      4|    MULADD(at[16], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1705|      4|    MULADD(at[17], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1706|      4|    MULADD(at[18], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1707|      4|    MULADD(at[19], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1708|      4|    MULADD(at[20], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1709|      4|    MULADD(at[21], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1710|      4|    MULADD(at[22], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1711|      4|    MULADD(at[23], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1712|      4|    MULADD(at[24], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1713|      4|    MULADD(at[25], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1714|      4|    MULADD(at[26], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1715|      4|    MULADD(at[27], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1716|      4|    MULADD(at[28], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1717|      4|    MULADD(at[29], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1718|      4|    MULADD(at[30], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1719|      4|    MULADD(at[31], at[47]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1720|      4|    COMBA_STORE(C->dp[46]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1721|       |    /* 47 */
 1722|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1723|      4|    MULADD(at[16], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1724|      4|    MULADD(at[17], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1725|      4|    MULADD(at[18], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1726|      4|    MULADD(at[19], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1727|      4|    MULADD(at[20], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1728|      4|    MULADD(at[21], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1729|      4|    MULADD(at[22], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1730|      4|    MULADD(at[23], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1731|      4|    MULADD(at[24], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1732|      4|    MULADD(at[25], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1733|      4|    MULADD(at[26], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1734|      4|    MULADD(at[27], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1735|      4|    MULADD(at[28], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1736|      4|    MULADD(at[29], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1737|      4|    MULADD(at[30], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1738|      4|    MULADD(at[31], at[48]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1739|      4|    COMBA_STORE(C->dp[47]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1740|       |    /* 48 */
 1741|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1742|      4|    MULADD(at[17], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1743|      4|    MULADD(at[18], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1744|      4|    MULADD(at[19], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1745|      4|    MULADD(at[20], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1746|      4|    MULADD(at[21], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1747|      4|    MULADD(at[22], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1748|      4|    MULADD(at[23], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1749|      4|    MULADD(at[24], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1750|      4|    MULADD(at[25], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1751|      4|    MULADD(at[26], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1752|      4|    MULADD(at[27], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1753|      4|    MULADD(at[28], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1754|      4|    MULADD(at[29], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1755|      4|    MULADD(at[30], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1756|      4|    MULADD(at[31], at[49]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1757|      4|    COMBA_STORE(C->dp[48]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1758|       |    /* 49 */
 1759|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1760|      4|    MULADD(at[18], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1761|      4|    MULADD(at[19], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1762|      4|    MULADD(at[20], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1763|      4|    MULADD(at[21], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1764|      4|    MULADD(at[22], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1765|      4|    MULADD(at[23], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1766|      4|    MULADD(at[24], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1767|      4|    MULADD(at[25], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1768|      4|    MULADD(at[26], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1769|      4|    MULADD(at[27], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1770|      4|    MULADD(at[28], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1771|      4|    MULADD(at[29], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1772|      4|    MULADD(at[30], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1773|      4|    MULADD(at[31], at[50]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1774|      4|    COMBA_STORE(C->dp[49]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1775|       |    /* 50 */
 1776|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1777|      4|    MULADD(at[19], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1778|      4|    MULADD(at[20], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1779|      4|    MULADD(at[21], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1780|      4|    MULADD(at[22], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1781|      4|    MULADD(at[23], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1782|      4|    MULADD(at[24], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1783|      4|    MULADD(at[25], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1784|      4|    MULADD(at[26], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1785|      4|    MULADD(at[27], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1786|      4|    MULADD(at[28], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1787|      4|    MULADD(at[29], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1788|      4|    MULADD(at[30], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1789|      4|    MULADD(at[31], at[51]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1790|      4|    COMBA_STORE(C->dp[50]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1791|       |    /* 51 */
 1792|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1793|      4|    MULADD(at[20], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1794|      4|    MULADD(at[21], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1795|      4|    MULADD(at[22], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1796|      4|    MULADD(at[23], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1797|      4|    MULADD(at[24], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1798|      4|    MULADD(at[25], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1799|      4|    MULADD(at[26], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1800|      4|    MULADD(at[27], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1801|      4|    MULADD(at[28], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1802|      4|    MULADD(at[29], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1803|      4|    MULADD(at[30], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1804|      4|    MULADD(at[31], at[52]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1805|      4|    COMBA_STORE(C->dp[51]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1806|       |    /* 52 */
 1807|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1808|      4|    MULADD(at[21], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1809|      4|    MULADD(at[22], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1810|      4|    MULADD(at[23], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1811|      4|    MULADD(at[24], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1812|      4|    MULADD(at[25], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1813|      4|    MULADD(at[26], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1814|      4|    MULADD(at[27], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1815|      4|    MULADD(at[28], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1816|      4|    MULADD(at[29], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1817|      4|    MULADD(at[30], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1818|      4|    MULADD(at[31], at[53]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1819|      4|    COMBA_STORE(C->dp[52]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1820|       |    /* 53 */
 1821|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1822|      4|    MULADD(at[22], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1823|      4|    MULADD(at[23], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1824|      4|    MULADD(at[24], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1825|      4|    MULADD(at[25], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1826|      4|    MULADD(at[26], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1827|      4|    MULADD(at[27], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1828|      4|    MULADD(at[28], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1829|      4|    MULADD(at[29], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1830|      4|    MULADD(at[30], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1831|      4|    MULADD(at[31], at[54]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1832|      4|    COMBA_STORE(C->dp[53]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1833|       |    /* 54 */
 1834|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1835|      4|    MULADD(at[23], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1836|      4|    MULADD(at[24], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1837|      4|    MULADD(at[25], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1838|      4|    MULADD(at[26], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1839|      4|    MULADD(at[27], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1840|      4|    MULADD(at[28], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1841|      4|    MULADD(at[29], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1842|      4|    MULADD(at[30], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1843|      4|    MULADD(at[31], at[55]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1844|      4|    COMBA_STORE(C->dp[54]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1845|       |    /* 55 */
 1846|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1847|      4|    MULADD(at[24], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1848|      4|    MULADD(at[25], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1849|      4|    MULADD(at[26], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1850|      4|    MULADD(at[27], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1851|      4|    MULADD(at[28], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1852|      4|    MULADD(at[29], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1853|      4|    MULADD(at[30], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1854|      4|    MULADD(at[31], at[56]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1855|      4|    COMBA_STORE(C->dp[55]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1856|       |    /* 56 */
 1857|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1858|      4|    MULADD(at[25], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1859|      4|    MULADD(at[26], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1860|      4|    MULADD(at[27], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1861|      4|    MULADD(at[28], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1862|      4|    MULADD(at[29], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1863|      4|    MULADD(at[30], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1864|      4|    MULADD(at[31], at[57]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1865|      4|    COMBA_STORE(C->dp[56]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1866|       |    /* 57 */
 1867|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1868|      4|    MULADD(at[26], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1869|      4|    MULADD(at[27], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1870|      4|    MULADD(at[28], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1871|      4|    MULADD(at[29], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1872|      4|    MULADD(at[30], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1873|      4|    MULADD(at[31], at[58]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1874|      4|    COMBA_STORE(C->dp[57]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1875|       |    /* 58 */
 1876|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1877|      4|    MULADD(at[27], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1878|      4|    MULADD(at[28], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1879|      4|    MULADD(at[29], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1880|      4|    MULADD(at[30], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1881|      4|    MULADD(at[31], at[59]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1882|      4|    COMBA_STORE(C->dp[58]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1883|       |    /* 59 */
 1884|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1885|      4|    MULADD(at[28], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1886|      4|    MULADD(at[29], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1887|      4|    MULADD(at[30], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1888|      4|    MULADD(at[31], at[60]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1889|      4|    COMBA_STORE(C->dp[59]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1890|       |    /* 60 */
 1891|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1892|      4|    MULADD(at[29], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1893|      4|    MULADD(at[30], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1894|      4|    MULADD(at[31], at[61]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1895|      4|    COMBA_STORE(C->dp[60]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1896|       |    /* 61 */
 1897|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1898|      4|    MULADD(at[30], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1899|      4|    MULADD(at[31], at[62]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1900|      4|    COMBA_STORE(C->dp[61]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1901|       |    /* 62 */
 1902|      4|    COMBA_FORWARD;
  ------------------
  |  |   41|      4|    do {              \
  |  |   42|      4|        c0 = c1;      \
  |  |   43|      4|        c1 = c2;      \
  |  |   44|      4|        c2 = 0;       \
  |  |   45|      4|    } while (0);
  |  |  ------------------
  |  |  |  Branch (45:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1903|      4|    MULADD(at[31], at[63]);
  ------------------
  |  |   52|      4|    __asm__(                                        \
  |  |   53|      4|        "movq  %6,%%rax     \n\t"                   \
  |  |   54|      4|        "mulq  %7           \n\t"                   \
  |  |   55|      4|        "addq  %%rax,%0     \n\t"                   \
  |  |   56|      4|        "adcq  %%rdx,%1     \n\t"                   \
  |  |   57|      4|        "adcq  $0,%2        \n\t"                   \
  |  |   58|      4|        : "=r"(c0), "=r"(c1), "=r"(c2)              \
  |  |   59|      4|        : "0"(c0), "1"(c1), "2"(c2), "g"(i), "g"(j) \
  |  |   60|      4|        : "%rax", "%rdx", "cc");
  ------------------
 1904|      4|    COMBA_STORE(C->dp[62]);
  ------------------
  |  |   67|      4|    x = c0;
  ------------------
 1905|      4|    COMBA_STORE2(C->dp[63]);
  ------------------
  |  |   70|      4|    x = c1;
  ------------------
 1906|      4|    C->used = 64;
 1907|      4|    C->sign = A->sign ^ B->sign;
 1908|      4|    mp_clamp(C);
  ------------------
  |  |   26|      4|    {                                                    \
  |  |   27|      6|        while ((a)->used && (a)->dp[(a)->used - 1] == 0) \
  |  |  ------------------
  |  |  |  Branch (27:16): [True: 6, False: 0]
  |  |  |  Branch (27:29): [True: 2, False: 4]
  |  |  ------------------
  |  |   28|      4|            --((a)->used);                               \
  |  |   29|      4|        (a)->sign = (a)->used ? (a)->sign : ZPOS;        \
  |  |  ------------------
  |  |  |  |  321|      0|#define ZPOS MP_ZPOS
  |  |  |  |  ------------------
  |  |  |  |  |  |   37|      4|#define MP_ZPOS 0
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  |  Branch (29:21): [True: 4, False: 0]
  |  |  ------------------
  |  |   30|      4|    }
  ------------------
 1909|      4|    COMBA_FINI;
 1910|      4|}

mp_init:
  121|  17.4k|{
  122|  17.4k|    return mp_init_size(mp, s_mp_defprec);
  123|       |
  124|  17.4k|} /* end mp_init() */
mp_init_size:
  140|  28.5k|{
  141|  28.5k|    ARGCHK(mp != NULL && prec > 0, MP_BADARG);
  ------------------
  |  |  350|  28.5k|#define ARGCHK(X, Y) assert(X)
  ------------------
  142|       |
  143|  28.5k|    prec = MP_ROUNDUP(prec, s_mp_defprec);
  ------------------
  |  |   89|  28.5k|#define MP_ROUNDUP(a, b) (MP_HOWMANY(a, b) * (b))
  |  |  ------------------
  |  |  |  |   88|  28.5k|#define MP_HOWMANY(a, b) (((a) + (b)-1) / (b))
  |  |  ------------------
  ------------------
  144|  28.5k|    if ((DIGITS(mp) = s_mp_alloc(prec, sizeof(mp_digit))) == NULL)
  ------------------
  |  |  330|  28.5k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|  28.5k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
  |  Branch (144:9): [True: 0, False: 28.5k]
  ------------------
  145|      0|        return MP_MEM;
  ------------------
  |  |   42|      0|#define MP_MEM -2    /* out of memory         */
  ------------------
  146|       |
  147|  28.5k|    SIGN(mp) = ZPOS;
  ------------------
  |  |  327|  28.5k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  28.5k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                  SIGN(mp) = ZPOS;
  ------------------
  |  |  321|  28.5k|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|  28.5k|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
  148|  28.5k|    USED(mp) = 1;
  ------------------
  |  |  328|  28.5k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|  28.5k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  149|  28.5k|    ALLOC(mp) = prec;
  ------------------
  |  |  329|  28.5k|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|  28.5k|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
  150|       |
  151|  28.5k|    return MP_OKAY;
  ------------------
  |  |   39|  28.5k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  152|       |
  153|  28.5k|} /* end mp_init_size() */
mp_init_copy:
  169|   455k|{
  170|   455k|    ARGCHK(mp != NULL && from != NULL, MP_BADARG);
  ------------------
  |  |  350|   455k|#define ARGCHK(X, Y) assert(X)
  ------------------
  171|       |
  172|   455k|    if (mp == from)
  ------------------
  |  Branch (172:9): [True: 0, False: 455k]
  ------------------
  173|      0|        return MP_OKAY;
  ------------------
  |  |   39|      0|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  174|       |
  175|   455k|    if ((DIGITS(mp) = s_mp_alloc(ALLOC(from), sizeof(mp_digit))) == NULL)
  ------------------
  |  |  330|   455k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|   455k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
                  if ((DIGITS(mp) = s_mp_alloc(ALLOC(from), sizeof(mp_digit))) == NULL)
  ------------------
  |  |  329|   455k|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|   455k|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
  |  Branch (175:9): [True: 0, False: 455k]
  ------------------
  176|      0|        return MP_MEM;
  ------------------
  |  |   42|      0|#define MP_MEM -2    /* out of memory         */
  ------------------
  177|       |
  178|   455k|    s_mp_copy(DIGITS(from), DIGITS(mp), USED(from));
  ------------------
  |  |  330|   455k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|   455k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
                  s_mp_copy(DIGITS(from), DIGITS(mp), USED(from));
  ------------------
  |  |  330|   455k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|   455k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
                  s_mp_copy(DIGITS(from), DIGITS(mp), USED(from));
  ------------------
  |  |  328|   455k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|   455k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  179|   455k|    USED(mp) = USED(from);
  ------------------
  |  |  328|   455k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|   455k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
                  USED(mp) = USED(from);
  ------------------
  |  |  328|   455k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|   455k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  180|   455k|    ALLOC(mp) = ALLOC(from);
  ------------------
  |  |  329|   455k|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|   455k|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
                  ALLOC(mp) = ALLOC(from);
  ------------------
  |  |  329|   455k|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|   455k|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
  181|   455k|    SIGN(mp) = SIGN(from);
  ------------------
  |  |  327|   455k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|   455k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                  SIGN(mp) = SIGN(from);
  ------------------
  |  |  327|   455k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|   455k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
  182|       |
  183|   455k|    return MP_OKAY;
  ------------------
  |  |   39|   455k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  184|       |
  185|   455k|} /* end mp_init_copy() */
mp_copy:
  201|  1.37M|{
  202|  1.37M|    ARGCHK(from != NULL && to != NULL, MP_BADARG);
  ------------------
  |  |  350|  1.37M|#define ARGCHK(X, Y) assert(X)
  ------------------
  203|       |
  204|  1.37M|    if (from == to)
  ------------------
  |  Branch (204:9): [True: 1.34M, False: 28.6k]
  ------------------
  205|  1.34M|        return MP_OKAY;
  ------------------
  |  |   39|  1.34M|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  206|       |
  207|  28.6k|    { /* copy */
  208|  28.6k|        mp_digit *tmp;
  209|       |
  210|       |        /*
  211|       |          If the allocated buffer in 'to' already has enough space to hold
  212|       |          all the used digits of 'from', we'll re-use it to avoid hitting
  213|       |          the memory allocater more than necessary; otherwise, we'd have
  214|       |          to grow anyway, so we just allocate a hunk and make the copy as
  215|       |          usual
  216|       |         */
  217|  28.6k|        if (ALLOC(to) >= USED(from)) {
  ------------------
  |  |  329|  28.6k|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|  28.6k|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
                      if (ALLOC(to) >= USED(from)) {
  ------------------
  |  |  328|  28.6k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|  28.6k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  |  Branch (217:13): [True: 28.5k, False: 64]
  ------------------
  218|  28.5k|            s_mp_setz(DIGITS(to) + USED(from), ALLOC(to) - USED(from));
  ------------------
  |  |  330|  28.5k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|  28.5k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
                          s_mp_setz(DIGITS(to) + USED(from), ALLOC(to) - USED(from));
  ------------------
  |  |  328|  28.5k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|  28.5k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
                          s_mp_setz(DIGITS(to) + USED(from), ALLOC(to) - USED(from));
  ------------------
  |  |  329|  28.5k|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|  28.5k|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
                          s_mp_setz(DIGITS(to) + USED(from), ALLOC(to) - USED(from));
  ------------------
  |  |  328|  28.5k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|  28.5k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  219|  28.5k|            s_mp_copy(DIGITS(from), DIGITS(to), USED(from));
  ------------------
  |  |  330|  28.5k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|  28.5k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
                          s_mp_copy(DIGITS(from), DIGITS(to), USED(from));
  ------------------
  |  |  330|  28.5k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|  28.5k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
                          s_mp_copy(DIGITS(from), DIGITS(to), USED(from));
  ------------------
  |  |  328|  28.5k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|  28.5k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  220|       |
  221|  28.5k|        } else {
  222|     64|            if ((tmp = s_mp_alloc(ALLOC(from), sizeof(mp_digit))) == NULL)
  ------------------
  |  |  329|     64|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|     64|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
  |  Branch (222:17): [True: 0, False: 64]
  ------------------
  223|      0|                return MP_MEM;
  ------------------
  |  |   42|      0|#define MP_MEM -2    /* out of memory         */
  ------------------
  224|       |
  225|     64|            s_mp_copy(DIGITS(from), tmp, USED(from));
  ------------------
  |  |  330|     64|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|     64|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
                          s_mp_copy(DIGITS(from), tmp, USED(from));
  ------------------
  |  |  328|     64|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|     64|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  226|       |
  227|     64|            if (DIGITS(to) != NULL) {
  ------------------
  |  |  330|     64|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|     64|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
  |  Branch (227:17): [True: 64, False: 0]
  ------------------
  228|     64|                s_mp_setz(DIGITS(to), ALLOC(to));
  ------------------
  |  |  330|     64|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|     64|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
                              s_mp_setz(DIGITS(to), ALLOC(to));
  ------------------
  |  |  329|     64|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|     64|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
  229|     64|                s_mp_free(DIGITS(to));
  ------------------
  |  |  330|     64|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|     64|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
  230|     64|            }
  231|       |
  232|     64|            DIGITS(to) = tmp;
  ------------------
  |  |  330|     64|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|     64|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
  233|     64|            ALLOC(to) = ALLOC(from);
  ------------------
  |  |  329|     64|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|     64|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
                          ALLOC(to) = ALLOC(from);
  ------------------
  |  |  329|     64|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|     64|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
  234|     64|        }
  235|       |
  236|       |        /* Copy the precision and sign from the original */
  237|  28.6k|        USED(to) = USED(from);
  ------------------
  |  |  328|  28.6k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|  28.6k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
                      USED(to) = USED(from);
  ------------------
  |  |  328|  28.6k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|  28.6k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  238|  28.6k|        SIGN(to) = SIGN(from);
  ------------------
  |  |  327|  28.6k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  28.6k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                      SIGN(to) = SIGN(from);
  ------------------
  |  |  327|  28.6k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  28.6k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
  239|  28.6k|    } /* end copy */
  240|       |
  241|  28.6k|    return MP_OKAY;
  ------------------
  |  |   39|  28.6k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  242|       |
  243|  28.6k|} /* end mp_copy() */
mp_clear:
  285|   492k|{
  286|   492k|    if (mp == NULL)
  ------------------
  |  Branch (286:9): [True: 0, False: 492k]
  ------------------
  287|      0|        return;
  288|       |
  289|   492k|    if (DIGITS(mp) != NULL) {
  ------------------
  |  |  330|   492k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|   492k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
  |  Branch (289:9): [True: 483k, False: 8.69k]
  ------------------
  290|   483k|        s_mp_setz(DIGITS(mp), ALLOC(mp));
  ------------------
  |  |  330|   483k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|   483k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
                      s_mp_setz(DIGITS(mp), ALLOC(mp));
  ------------------
  |  |  329|   483k|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|   483k|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
  291|   483k|        s_mp_free(DIGITS(mp));
  ------------------
  |  |  330|   483k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|   483k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
  292|   483k|        DIGITS(mp) = NULL;
  ------------------
  |  |  330|   483k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|   483k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
  293|   483k|    }
  294|       |
  295|   492k|    USED(mp) = 0;
  ------------------
  |  |  328|   492k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|   492k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  296|   492k|    ALLOC(mp) = 0;
  ------------------
  |  |  329|   492k|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|   492k|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
  297|       |
  298|   492k|} /* end mp_clear() */
mp_zero:
  312|  13.6k|{
  313|  13.6k|    if (mp == NULL)
  ------------------
  |  Branch (313:9): [True: 0, False: 13.6k]
  ------------------
  314|      0|        return;
  315|       |
  316|  13.6k|    s_mp_setz(DIGITS(mp), ALLOC(mp));
  ------------------
  |  |  330|  13.6k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|  13.6k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
                  s_mp_setz(DIGITS(mp), ALLOC(mp));
  ------------------
  |  |  329|  13.6k|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|  13.6k|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
  317|  13.6k|    USED(mp) = 1;
  ------------------
  |  |  328|  13.6k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|  13.6k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  318|  13.6k|    SIGN(mp) = ZPOS;
  ------------------
  |  |  327|  13.6k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  13.6k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                  SIGN(mp) = ZPOS;
  ------------------
  |  |  321|  13.6k|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|  13.6k|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
  319|       |
  320|  13.6k|} /* end mp_zero() */
mp_set:
  328|      6|{
  329|      6|    if (mp == NULL)
  ------------------
  |  Branch (329:9): [True: 0, False: 6]
  ------------------
  330|      0|        return;
  331|       |
  332|      6|    mp_zero(mp);
  333|      6|    DIGIT(mp, 0) = d;
  ------------------
  |  |  331|      6|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|      6|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
  334|       |
  335|      6|} /* end mp_set() */
mp_add_d:
  408|   425k|{
  409|   425k|    mp_int tmp;
  410|   425k|    mp_err res;
  411|       |
  412|   425k|    ARGCHK(a != NULL && b != NULL, MP_BADARG);
  ------------------
  |  |  350|   425k|#define ARGCHK(X, Y) assert(X)
  ------------------
  413|       |
  414|   425k|    if ((res = mp_init_copy(&tmp, a)) != MP_OKAY)
  ------------------
  |  |   39|   425k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (414:9): [True: 0, False: 425k]
  ------------------
  415|      0|        return res;
  416|       |
  417|   425k|    if (SIGN(&tmp) == ZPOS) {
  ------------------
  |  |  327|   425k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|   425k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                  if (SIGN(&tmp) == ZPOS) {
  ------------------
  |  |  321|   425k|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|   425k|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
  |  Branch (417:9): [True: 425k, False: 0]
  ------------------
  418|   425k|        if ((res = s_mp_add_d(&tmp, d)) != MP_OKAY)
  ------------------
  |  |   39|   425k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (418:13): [True: 0, False: 425k]
  ------------------
  419|      0|            goto CLEANUP;
  420|   425k|    } else if (s_mp_cmp_d(&tmp, d) >= 0) {
  ------------------
  |  Branch (420:16): [True: 0, False: 0]
  ------------------
  421|      0|        if ((res = s_mp_sub_d(&tmp, d)) != MP_OKAY)
  ------------------
  |  |   39|      0|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (421:13): [True: 0, False: 0]
  ------------------
  422|      0|            goto CLEANUP;
  423|      0|    } else {
  424|      0|        mp_neg(&tmp, &tmp);
  425|       |
  426|      0|        DIGIT(&tmp, 0) = d - DIGIT(&tmp, 0);
  ------------------
  |  |  331|      0|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|      0|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
                      DIGIT(&tmp, 0) = d - DIGIT(&tmp, 0);
  ------------------
  |  |  331|      0|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|      0|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
  427|      0|    }
  428|       |
  429|   425k|    if (s_mp_cmp_d(&tmp, 0) == 0)
  ------------------
  |  Branch (429:9): [True: 82.9k, False: 342k]
  ------------------
  430|  82.9k|        SIGN(&tmp) = ZPOS;
  ------------------
  |  |  327|  82.9k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  82.9k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                      SIGN(&tmp) = ZPOS;
  ------------------
  |  |  321|  82.9k|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|  82.9k|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
  431|       |
  432|   425k|    s_mp_exch(&tmp, b);
  433|       |
  434|   425k|CLEANUP:
  435|   425k|    mp_clear(&tmp);
  436|   425k|    return res;
  437|       |
  438|   425k|} /* end mp_add_d() */
mp_mul_d:
  499|   425k|{
  500|   425k|    mp_err res;
  501|       |
  502|   425k|    ARGCHK(a != NULL && b != NULL, MP_BADARG);
  ------------------
  |  |  350|   425k|#define ARGCHK(X, Y) assert(X)
  ------------------
  503|       |
  504|   425k|    if (d == 0) {
  ------------------
  |  Branch (504:9): [True: 0, False: 425k]
  ------------------
  505|      0|        mp_zero(b);
  506|      0|        return MP_OKAY;
  ------------------
  |  |   39|      0|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  507|      0|    }
  508|       |
  509|   425k|    if ((res = mp_copy(a, b)) != MP_OKAY)
  ------------------
  |  |   39|   425k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (509:9): [True: 0, False: 425k]
  ------------------
  510|      0|        return res;
  511|       |
  512|   425k|    res = s_mp_mul_d(b, d);
  513|       |
  514|   425k|    return res;
  515|       |
  516|   425k|} /* end mp_mul_d() */
mp_div_d:
  550|   919k|{
  551|   919k|    mp_err res;
  552|   919k|    mp_int qp;
  553|   919k|    mp_digit rem = 0;
  554|   919k|    int pow;
  555|       |
  556|   919k|    ARGCHK(a != NULL, MP_BADARG);
  ------------------
  |  |  350|   919k|#define ARGCHK(X, Y) assert(X)
  ------------------
  557|       |
  558|   919k|    if (d == 0)
  ------------------
  |  Branch (558:9): [True: 0, False: 919k]
  ------------------
  559|      0|        return MP_RANGE;
  ------------------
  |  |   43|      0|#define MP_RANGE -3  /* argument out of range */
  ------------------
  560|       |
  561|       |    /* Shortcut for powers of two ... */
  562|   919k|    if ((pow = s_mp_ispow2d(d)) >= 0) {
  ------------------
  |  Branch (562:9): [True: 919k, False: 0]
  ------------------
  563|   919k|        mp_digit mask;
  564|       |
  565|   919k|        mask = ((mp_digit)1 << pow) - 1;
  566|   919k|        rem = DIGIT(a, 0) & mask;
  ------------------
  |  |  331|   919k|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|   919k|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
  567|       |
  568|   919k|        if (q) {
  ------------------
  |  Branch (568:13): [True: 919k, False: 0]
  ------------------
  569|   919k|            if ((res = mp_copy(a, q)) != MP_OKAY) {
  ------------------
  |  |   39|   919k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (569:17): [True: 0, False: 919k]
  ------------------
  570|      0|                return res;
  571|      0|            }
  572|   919k|            s_mp_div_2d(q, pow);
  573|   919k|        }
  574|       |
  575|   919k|        if (r)
  ------------------
  |  Branch (575:13): [True: 919k, False: 0]
  ------------------
  576|   919k|            *r = rem;
  577|       |
  578|   919k|        return MP_OKAY;
  ------------------
  |  |   39|   919k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  579|   919k|    }
  580|       |
  581|      0|    if ((res = mp_init_copy(&qp, a)) != MP_OKAY)
  ------------------
  |  |   39|      0|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (581:9): [True: 0, False: 0]
  ------------------
  582|      0|        return res;
  583|       |
  584|      0|    res = s_mp_div_d(&qp, d, &rem);
  585|       |
  586|      0|    if (s_mp_cmp_d(&qp, 0) == 0)
  ------------------
  |  Branch (586:9): [True: 0, False: 0]
  ------------------
  587|      0|        SIGN(q) = ZPOS;
  ------------------
  |  |  327|      0|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|      0|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                      SIGN(q) = ZPOS;
  ------------------
  |  |  321|      0|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|      0|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
  588|       |
  589|      0|    if (r) {
  ------------------
  |  Branch (589:9): [True: 0, False: 0]
  ------------------
  590|      0|        *r = rem;
  591|      0|    }
  592|       |
  593|      0|    if (q)
  ------------------
  |  Branch (593:9): [True: 0, False: 0]
  ------------------
  594|      0|        s_mp_exch(&qp, q);
  595|       |
  596|      0|    mp_clear(&qp);
  597|      0|    return res;
  598|       |
  599|      0|} /* end mp_div_d() */
mp_sub:
  774|  4.34k|{
  775|  4.34k|    mp_err res;
  776|  4.34k|    int magDiff;
  777|       |
  778|  4.34k|    ARGCHK(a != NULL && b != NULL && c != NULL, MP_BADARG);
  ------------------
  |  |  350|  4.34k|#define ARGCHK(X, Y) assert(X)
  ------------------
  779|       |
  780|  4.34k|    if (a == b) {
  ------------------
  |  Branch (780:9): [True: 0, False: 4.34k]
  ------------------
  781|      0|        mp_zero(c);
  782|      0|        return MP_OKAY;
  ------------------
  |  |   39|      0|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  783|      0|    }
  784|       |
  785|  4.34k|    if (MP_SIGN(a) != MP_SIGN(b)) {
  ------------------
  |  |  144|  4.34k|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
                  if (MP_SIGN(a) != MP_SIGN(b)) {
  ------------------
  |  |  144|  4.34k|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
  |  Branch (785:9): [True: 0, False: 4.34k]
  ------------------
  786|      0|        MP_CHECKOK(s_mp_add_3arg(a, b, c));
  ------------------
  |  |  314|      0|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|      0|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  315|      0|    goto CLEANUP
  ------------------
  787|  4.34k|    } else if (!(magDiff = s_mp_cmp(a, b))) {
  ------------------
  |  Branch (787:16): [True: 199, False: 4.14k]
  ------------------
  788|    199|        mp_zero(c);
  789|    199|        res = MP_OKAY;
  ------------------
  |  |   39|    199|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  790|  4.14k|    } else if (magDiff > 0) {
  ------------------
  |  Branch (790:16): [True: 4.14k, False: 0]
  ------------------
  791|  4.14k|        MP_CHECKOK(s_mp_sub_3arg(a, b, c));
  ------------------
  |  |  314|  4.14k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  4.14k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 4.14k]
  |  |  ------------------
  |  |  315|  4.14k|    goto CLEANUP
  ------------------
  792|  4.14k|    } else {
  793|      0|        MP_CHECKOK(s_mp_sub_3arg(b, a, c));
  ------------------
  |  |  314|      0|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|      0|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  315|      0|    goto CLEANUP
  ------------------
  794|      0|        MP_SIGN(c) = !MP_SIGN(a);
  ------------------
  |  |  144|      0|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
                      MP_SIGN(c) = !MP_SIGN(a);
  ------------------
  |  |  144|      0|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
  795|      0|    }
  796|       |
  797|  4.34k|    if (s_mp_cmp_d(c, 0) == MP_EQ)
  ------------------
  |  |   96|  4.34k|#define MP_EQ 0
  ------------------
  |  Branch (797:9): [True: 199, False: 4.14k]
  ------------------
  798|    199|        MP_SIGN(c) = MP_ZPOS;
  ------------------
  |  |  144|    199|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
                      MP_SIGN(c) = MP_ZPOS;
  ------------------
  |  |   37|    199|#define MP_ZPOS 0
  ------------------
  799|       |
  800|  4.34k|CLEANUP:
  801|  4.34k|    return res;
  802|       |
  803|  4.34k|} /* end mp_sub() */
s_mp_mulg:
  819|  4.34k|{
  820|  4.34k|    mp_digit *pb;
  821|  4.34k|    mp_int tmp;
  822|  4.34k|    mp_err res;
  823|  4.34k|    mp_size ib;
  824|  4.34k|    mp_size useda, usedb;
  825|       |
  826|  4.34k|    ARGCHK(a != NULL && b != NULL && c != NULL, MP_BADARG);
  ------------------
  |  |  350|  4.34k|#define ARGCHK(X, Y) assert(X)
  ------------------
  827|       |
  828|  4.34k|    if (a == c) {
  ------------------
  |  Branch (828:9): [True: 4.34k, False: 0]
  ------------------
  829|  4.34k|        if ((res = mp_init_copy(&tmp, a)) != MP_OKAY)
  ------------------
  |  |   39|  4.34k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (829:13): [True: 0, False: 4.34k]
  ------------------
  830|      0|            return res;
  831|  4.34k|        if (a == b)
  ------------------
  |  Branch (831:13): [True: 0, False: 4.34k]
  ------------------
  832|      0|            b = &tmp;
  833|  4.34k|        a = &tmp;
  834|  4.34k|    } else if (b == c) {
  ------------------
  |  Branch (834:16): [True: 0, False: 0]
  ------------------
  835|      0|        if ((res = mp_init_copy(&tmp, b)) != MP_OKAY)
  ------------------
  |  |   39|      0|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (835:13): [True: 0, False: 0]
  ------------------
  836|      0|            return res;
  837|      0|        b = &tmp;
  838|      0|    } else {
  839|      0|        MP_DIGITS(&tmp) = 0;
  ------------------
  |  |  147|      0|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
  840|      0|    }
  841|       |
  842|  4.34k|    if (MP_USED(a) < MP_USED(b)) {
  ------------------
  |  |  145|  4.34k|#define MP_USED(MP) ((MP)->used)
  ------------------
                  if (MP_USED(a) < MP_USED(b)) {
  ------------------
  |  |  145|  4.34k|#define MP_USED(MP) ((MP)->used)
  ------------------
  |  Branch (842:9): [True: 2.01k, False: 2.33k]
  ------------------
  843|  2.01k|        const mp_int *xch = b; /* switch a and b, to do fewer outer loops */
  844|  2.01k|        b = a;
  845|  2.01k|        a = xch;
  846|  2.01k|    }
  847|       |
  848|  4.34k|    MP_USED(c) = 1;
  ------------------
  |  |  145|  4.34k|#define MP_USED(MP) ((MP)->used)
  ------------------
  849|  4.34k|    MP_DIGIT(c, 0) = 0;
  ------------------
  |  |  148|  4.34k|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  ------------------
  850|  4.34k|    if ((res = s_mp_pad(c, USED(a) + USED(b))) != MP_OKAY)
  ------------------
  |  |  328|  4.34k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|  4.34k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
                  if ((res = s_mp_pad(c, USED(a) + USED(b))) != MP_OKAY)
  ------------------
  |  |  328|  4.34k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|  4.34k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
                  if ((res = s_mp_pad(c, USED(a) + USED(b))) != MP_OKAY)
  ------------------
  |  |   39|  4.34k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (850:9): [True: 0, False: 4.34k]
  ------------------
  851|      0|        goto CLEANUP;
  852|       |
  853|  4.34k|#ifdef NSS_USE_COMBA
  854|       |    /* comba isn't constant time because it clamps! If we cared
  855|       |     * (we needed a constant time version of multiply that was 'faster'
  856|       |     * we could easily pass constantTime down to the comba code and
  857|       |     * get it to skip the clamp... but here are assembler versions
  858|       |     * which add comba to platforms that can't compile the normal
  859|       |     * comba's imbedded assembler which would also need to change, so
  860|       |     * for now we just skip comba when we are running constant time. */
  861|  4.34k|    if (!constantTime && (MP_USED(a) == MP_USED(b)) && IS_POWER_OF_2(MP_USED(b))) {
  ------------------
  |  |  145|  4.34k|#define MP_USED(MP) ((MP)->used)
  ------------------
                  if (!constantTime && (MP_USED(a) == MP_USED(b)) && IS_POWER_OF_2(MP_USED(b))) {
  ------------------
  |  |  145|  4.34k|#define MP_USED(MP) ((MP)->used)
  ------------------
                  if (!constantTime && (MP_USED(a) == MP_USED(b)) && IS_POWER_OF_2(MP_USED(b))) {
  ------------------
  |  |  161|  1.98k|#define IS_POWER_OF_2(a) ((a) && !((a) & ((a)-1)))
  |  |  ------------------
  |  |  |  Branch (161:27): [True: 1.98k, False: 0]
  |  |  |  Branch (161:34): [True: 1.96k, False: 18]
  |  |  ------------------
  ------------------
  |  Branch (861:9): [True: 4.34k, False: 0]
  |  Branch (861:26): [True: 1.98k, False: 2.36k]
  ------------------
  862|  1.96k|        if (MP_USED(a) == 4) {
  ------------------
  |  |  145|  1.96k|#define MP_USED(MP) ((MP)->used)
  ------------------
  |  Branch (862:13): [True: 126, False: 1.83k]
  ------------------
  863|    126|            s_mp_mul_comba_4(a, b, c);
  864|    126|            goto CLEANUP;
  865|    126|        }
  866|  1.83k|        if (MP_USED(a) == 8) {
  ------------------
  |  |  145|  1.83k|#define MP_USED(MP) ((MP)->used)
  ------------------
  |  Branch (866:13): [True: 123, False: 1.71k]
  ------------------
  867|    123|            s_mp_mul_comba_8(a, b, c);
  868|    123|            goto CLEANUP;
  869|    123|        }
  870|  1.71k|        if (MP_USED(a) == 16) {
  ------------------
  |  |  145|  1.71k|#define MP_USED(MP) ((MP)->used)
  ------------------
  |  Branch (870:13): [True: 123, False: 1.59k]
  ------------------
  871|    123|            s_mp_mul_comba_16(a, b, c);
  872|    123|            goto CLEANUP;
  873|    123|        }
  874|  1.59k|        if (MP_USED(a) == 32) {
  ------------------
  |  |  145|  1.59k|#define MP_USED(MP) ((MP)->used)
  ------------------
  |  Branch (874:13): [True: 4, False: 1.58k]
  ------------------
  875|      4|            s_mp_mul_comba_32(a, b, c);
  876|      4|            goto CLEANUP;
  877|      4|        }
  878|  1.59k|    }
  879|  3.97k|#endif
  880|       |
  881|  3.97k|    pb = MP_DIGITS(b);
  ------------------
  |  |  147|  3.97k|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
  882|  3.97k|    s_mpv_mul_d(MP_DIGITS(a), MP_USED(a), *pb++, MP_DIGITS(c));
  ------------------
  |  |  189|  3.97k|    ((mp_digit *)c)[a_len] = s_mpv_mul_set_vec64(c, a, a_len, b)
  ------------------
  883|       |
  884|       |    /* Outer loop:  Digits of b */
  885|  3.97k|    useda = MP_USED(a);
  ------------------
  |  |  145|  3.97k|#define MP_USED(MP) ((MP)->used)
  ------------------
  886|  3.97k|    usedb = MP_USED(b);
  ------------------
  |  |  145|  3.97k|#define MP_USED(MP) ((MP)->used)
  ------------------
  887|  4.97k|    for (ib = 1; ib < usedb; ib++) {
  ------------------
  |  Branch (887:18): [True: 1.00k, False: 3.97k]
  ------------------
  888|  1.00k|        mp_digit b_i = *pb++;
  889|       |
  890|       |        /* Inner product:  Digits of a */
  891|  1.00k|        if (constantTime || b_i)
  ------------------
  |  Branch (891:13): [True: 0, False: 1.00k]
  |  Branch (891:29): [True: 696, False: 311]
  ------------------
  892|    696|            s_mpv_mul_d_add(MP_DIGITS(a), useda, b_i, MP_DIGITS(c) + ib);
  ------------------
  |  |  193|    696|    ((mp_digit *)c)[a_len] = s_mpv_mul_add_vec64(c, a, a_len, b)
  ------------------
  893|    311|        else
  894|    311|            MP_DIGIT(c, ib + useda) = b_i;
  ------------------
  |  |  148|    311|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  ------------------
  895|  1.00k|    }
  896|       |
  897|  3.97k|    if (!constantTime) {
  ------------------
  |  Branch (897:9): [True: 3.97k, False: 0]
  ------------------
  898|  3.97k|        s_mp_clamp(c);
  899|  3.97k|    }
  900|       |
  901|  3.97k|    if (SIGN(a) == SIGN(b) || s_mp_cmp_d(c, 0) == MP_EQ)
  ------------------
  |  |  327|  3.97k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  3.97k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                  if (SIGN(a) == SIGN(b) || s_mp_cmp_d(c, 0) == MP_EQ)
  ------------------
  |  |  327|  3.97k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  7.94k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                  if (SIGN(a) == SIGN(b) || s_mp_cmp_d(c, 0) == MP_EQ)
  ------------------
  |  |   96|      0|#define MP_EQ 0
  ------------------
  |  Branch (901:9): [True: 3.97k, False: 0]
  |  Branch (901:31): [True: 0, False: 0]
  ------------------
  902|  3.97k|        SIGN(c) = ZPOS;
  ------------------
  |  |  327|  3.97k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  3.97k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                      SIGN(c) = ZPOS;
  ------------------
  |  |  321|  3.97k|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|  3.97k|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
  903|      0|    else
  904|      0|        SIGN(c) = NEG;
  ------------------
  |  |  327|      0|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|      0|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                      SIGN(c) = NEG;
  ------------------
  |  |  320|      0|#define NEG MP_NEG
  |  |  ------------------
  |  |  |  |   36|      0|#define MP_NEG 1
  |  |  ------------------
  ------------------
  905|       |
  906|  4.34k|CLEANUP:
  907|  4.34k|    mp_clear(&tmp);
  908|  4.34k|    return res;
  909|  3.97k|} /* end smp_mulg() */
mp_mul:
  923|  4.34k|{
  924|  4.34k|    return s_mp_mulg(a, b, c, 0);
  925|  4.34k|} /* end mp_mul() */
mp_div:
 1062|  8.30k|{
 1063|  8.30k|    mp_err res;
 1064|  8.30k|    mp_int *pQ, *pR;
 1065|  8.30k|    mp_int qtmp, rtmp, btmp;
 1066|  8.30k|    int cmp;
 1067|  8.30k|    mp_sign signA;
 1068|  8.30k|    mp_sign signB;
 1069|       |
 1070|  8.30k|    ARGCHK(a != NULL && b != NULL, MP_BADARG);
  ------------------
  |  |  350|  8.30k|#define ARGCHK(X, Y) assert(X)
  ------------------
 1071|       |
 1072|  8.30k|    signA = MP_SIGN(a);
  ------------------
  |  |  144|  8.30k|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
 1073|  8.30k|    signB = MP_SIGN(b);
  ------------------
  |  |  144|  8.30k|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
 1074|       |
 1075|  8.30k|    if (mp_cmp_z(b) == MP_EQ)
  ------------------
  |  |   96|  8.30k|#define MP_EQ 0
  ------------------
  |  Branch (1075:9): [True: 0, False: 8.30k]
  ------------------
 1076|      0|        return MP_RANGE;
  ------------------
  |  |   43|      0|#define MP_RANGE -3  /* argument out of range */
  ------------------
 1077|       |
 1078|  8.30k|    DIGITS(&qtmp) = 0;
  ------------------
  |  |  330|  8.30k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|  8.30k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
 1079|  8.30k|    DIGITS(&rtmp) = 0;
  ------------------
  |  |  330|  8.30k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|  8.30k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
 1080|  8.30k|    DIGITS(&btmp) = 0;
  ------------------
  |  |  330|  8.30k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|  8.30k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
 1081|       |
 1082|       |    /* Set up some temporaries... */
 1083|  8.30k|    if (!r || r == a || r == b) {
  ------------------
  |  Branch (1083:9): [True: 4.34k, False: 3.95k]
  |  Branch (1083:15): [True: 0, False: 3.95k]
  |  Branch (1083:25): [True: 0, False: 3.95k]
  ------------------
 1084|  4.34k|        MP_CHECKOK(mp_init_copy(&rtmp, a));
  ------------------
  |  |  314|  4.34k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  4.34k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 4.34k]
  |  |  ------------------
  |  |  315|  4.34k|    goto CLEANUP
  ------------------
 1085|  4.34k|        pR = &rtmp;
 1086|  4.34k|    } else {
 1087|  3.95k|        MP_CHECKOK(mp_copy(a, r));
  ------------------
  |  |  314|  3.95k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  3.95k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 3.95k]
  |  |  ------------------
  |  |  315|  3.95k|    goto CLEANUP
  ------------------
 1088|  3.95k|        pR = r;
 1089|  3.95k|    }
 1090|       |
 1091|  8.30k|    if (!q || q == a || q == b) {
  ------------------
  |  Branch (1091:9): [True: 3.95k, False: 4.34k]
  |  Branch (1091:15): [True: 0, False: 4.34k]
  |  Branch (1091:25): [True: 0, False: 4.34k]
  ------------------
 1092|  3.95k|        MP_CHECKOK(mp_init_size(&qtmp, MP_USED(a)));
  ------------------
  |  |  314|  3.95k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  3.95k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 3.95k]
  |  |  ------------------
  |  |  315|  3.95k|    goto CLEANUP
  ------------------
 1093|  3.95k|        pQ = &qtmp;
 1094|  4.34k|    } else {
 1095|  4.34k|        MP_CHECKOK(s_mp_pad(q, MP_USED(a)));
  ------------------
  |  |  314|  4.34k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  4.34k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 4.34k]
  |  |  ------------------
  |  |  315|  4.34k|    goto CLEANUP
  ------------------
 1096|  4.34k|        pQ = q;
 1097|  4.34k|        mp_zero(pQ);
 1098|  4.34k|    }
 1099|       |
 1100|       |    /*
 1101|       |      If |a| <= |b|, we can compute the solution without division;
 1102|       |      otherwise, we actually do the work required.
 1103|       |     */
 1104|  8.30k|    if ((cmp = s_mp_cmp(a, b)) <= 0) {
  ------------------
  |  Branch (1104:9): [True: 394, False: 7.90k]
  ------------------
 1105|    394|        if (cmp) {
  ------------------
  |  Branch (1105:13): [True: 388, False: 6]
  ------------------
 1106|       |            /* r was set to a above. */
 1107|    388|            mp_zero(pQ);
 1108|    388|        } else {
 1109|      6|            mp_set(pQ, 1);
 1110|      6|            mp_zero(pR);
 1111|      6|        }
 1112|  7.90k|    } else {
 1113|  7.90k|        MP_CHECKOK(mp_init_copy(&btmp, b));
  ------------------
  |  |  314|  7.90k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  7.90k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 7.90k]
  |  |  ------------------
  |  |  315|  7.90k|    goto CLEANUP
  ------------------
 1114|  7.90k|        MP_CHECKOK(s_mp_div(pR, &btmp, pQ));
  ------------------
  |  |  314|  7.90k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  7.90k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 7.90k]
  |  |  ------------------
  |  |  315|  7.90k|    goto CLEANUP
  ------------------
 1115|  7.90k|    }
 1116|       |
 1117|       |    /* Compute the signs for the output  */
 1118|  8.30k|    MP_SIGN(pR) = signA;        /* Sr = Sa              */
  ------------------
  |  |  144|  8.30k|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
 1119|       |    /* Sq = ZPOS if Sa == Sb */ /* Sq = NEG if Sa != Sb */
 1120|  8.30k|    MP_SIGN(pQ) = (signA == signB) ? ZPOS : NEG;
  ------------------
  |  |  144|  8.30k|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
                  MP_SIGN(pQ) = (signA == signB) ? ZPOS : NEG;
  ------------------
  |  |  321|  8.30k|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|  8.30k|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
                  MP_SIGN(pQ) = (signA == signB) ? ZPOS : NEG;
  ------------------
  |  |  320|      0|#define NEG MP_NEG
  |  |  ------------------
  |  |  |  |   36|  8.30k|#define MP_NEG 1
  |  |  ------------------
  ------------------
  |  Branch (1120:19): [True: 8.30k, False: 0]
  ------------------
 1121|       |
 1122|  8.30k|    if (s_mp_cmp_d(pQ, 0) == MP_EQ)
  ------------------
  |  |   96|  8.30k|#define MP_EQ 0
  ------------------
  |  Branch (1122:9): [True: 388, False: 7.91k]
  ------------------
 1123|    388|        SIGN(pQ) = ZPOS;
  ------------------
  |  |  327|    388|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|    388|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                      SIGN(pQ) = ZPOS;
  ------------------
  |  |  321|    388|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|    388|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
 1124|  8.30k|    if (s_mp_cmp_d(pR, 0) == MP_EQ)
  ------------------
  |  |   96|  8.30k|#define MP_EQ 0
  ------------------
  |  Branch (1124:9): [True: 368, False: 7.93k]
  ------------------
 1125|    368|        SIGN(pR) = ZPOS;
  ------------------
  |  |  327|    368|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|    368|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                      SIGN(pR) = ZPOS;
  ------------------
  |  |  321|    368|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|    368|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
 1126|       |
 1127|       |    /* Copy output, if it is needed      */
 1128|  8.30k|    if (q && q != pQ)
  ------------------
  |  Branch (1128:9): [True: 4.34k, False: 3.95k]
  |  Branch (1128:14): [True: 0, False: 4.34k]
  ------------------
 1129|      0|        s_mp_exch(pQ, q);
 1130|       |
 1131|  8.30k|    if (r && r != pR)
  ------------------
  |  Branch (1131:9): [True: 3.95k, False: 4.34k]
  |  Branch (1131:14): [True: 0, False: 3.95k]
  ------------------
 1132|      0|        s_mp_exch(pR, r);
 1133|       |
 1134|  8.30k|CLEANUP:
 1135|  8.30k|    mp_clear(&btmp);
 1136|  8.30k|    mp_clear(&rtmp);
 1137|  8.30k|    mp_clear(&qtmp);
 1138|       |
 1139|  8.30k|    return res;
 1140|       |
 1141|  8.30k|} /* end mp_div() */
mp_mod:
 1279|  4.34k|{
 1280|  4.34k|    mp_err res;
 1281|  4.34k|    int mag;
 1282|       |
 1283|  4.34k|    ARGCHK(a != NULL && m != NULL && c != NULL, MP_BADARG);
  ------------------
  |  |  350|  4.34k|#define ARGCHK(X, Y) assert(X)
  ------------------
 1284|       |
 1285|  4.34k|    if (SIGN(m) == NEG)
  ------------------
  |  |  327|  4.34k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  4.34k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                  if (SIGN(m) == NEG)
  ------------------
  |  |  320|  4.34k|#define NEG MP_NEG
  |  |  ------------------
  |  |  |  |   36|  4.34k|#define MP_NEG 1
  |  |  ------------------
  ------------------
  |  Branch (1285:9): [True: 0, False: 4.34k]
  ------------------
 1286|      0|        return MP_RANGE;
  ------------------
  |  |   43|      0|#define MP_RANGE -3  /* argument out of range */
  ------------------
 1287|       |
 1288|       |    /*
 1289|       |     If |a| > m, we need to divide to get the remainder and take the
 1290|       |     absolute value.
 1291|       |
 1292|       |     If |a| < m, we don't need to do any division, just copy and adjust
 1293|       |     the sign (if a is negative).
 1294|       |
 1295|       |     If |a| == m, we can simply set the result to zero.
 1296|       |
 1297|       |     This order is intended to minimize the average path length of the
 1298|       |     comparison chain on common workloads -- the most frequent cases are
 1299|       |     that |a| != m, so we do those first.
 1300|       |     */
 1301|  4.34k|    if ((mag = s_mp_cmp(a, m)) > 0) {
  ------------------
  |  Branch (1301:9): [True: 3.95k, False: 394]
  ------------------
 1302|  3.95k|        if ((res = mp_div(a, m, NULL, c)) != MP_OKAY)
  ------------------
  |  |   39|  3.95k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (1302:13): [True: 0, False: 3.95k]
  ------------------
 1303|      0|            return res;
 1304|       |
 1305|  3.95k|        if (SIGN(c) == NEG) {
  ------------------
  |  |  327|  3.95k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  3.95k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                      if (SIGN(c) == NEG) {
  ------------------
  |  |  320|  3.95k|#define NEG MP_NEG
  |  |  ------------------
  |  |  |  |   36|  3.95k|#define MP_NEG 1
  |  |  ------------------
  ------------------
  |  Branch (1305:13): [True: 0, False: 3.95k]
  ------------------
 1306|      0|            if ((res = mp_add(c, m, c)) != MP_OKAY)
  ------------------
  |  |   39|      0|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (1306:17): [True: 0, False: 0]
  ------------------
 1307|      0|                return res;
 1308|      0|        }
 1309|       |
 1310|  3.95k|    } else if (mag < 0) {
  ------------------
  |  Branch (1310:16): [True: 388, False: 6]
  ------------------
 1311|    388|        if ((res = mp_copy(a, c)) != MP_OKAY)
  ------------------
  |  |   39|    388|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (1311:13): [True: 0, False: 388]
  ------------------
 1312|      0|            return res;
 1313|       |
 1314|    388|        if (mp_cmp_z(a) < 0) {
  ------------------
  |  Branch (1314:13): [True: 0, False: 388]
  ------------------
 1315|      0|            if ((res = mp_add(c, m, c)) != MP_OKAY)
  ------------------
  |  |   39|      0|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (1315:17): [True: 0, False: 0]
  ------------------
 1316|      0|                return res;
 1317|      0|        }
 1318|       |
 1319|    388|    } else {
 1320|      6|        mp_zero(c);
 1321|      6|    }
 1322|       |
 1323|  4.34k|    return MP_OKAY;
  ------------------
  |  |   39|  4.34k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
 1324|       |
 1325|  4.34k|} /* end mp_mod() */
mp_cmp_z:
 1790|   966k|{
 1791|   966k|    ARGMPCHK(a != NULL);
  ------------------
  |  |  349|   966k|#define ARGMPCHK(X) assert(X)
  ------------------
 1792|       |
 1793|   966k|    if (SIGN(a) == NEG)
  ------------------
  |  |  327|   966k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|   966k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                  if (SIGN(a) == NEG)
  ------------------
  |  |  320|   966k|#define NEG MP_NEG
  |  |  ------------------
  |  |  |  |   36|   966k|#define MP_NEG 1
  |  |  ------------------
  ------------------
  |  Branch (1793:9): [True: 0, False: 966k]
  ------------------
 1794|      0|        return MP_LT;
  ------------------
  |  |   95|      0|#define MP_LT -1
  ------------------
 1795|   966k|    else if (USED(a) == 1 && DIGIT(a, 0) == 0)
  ------------------
  |  |  328|   966k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|   966k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
                  else if (USED(a) == 1 && DIGIT(a, 0) == 0)
  ------------------
  |  |  331|   195k|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|   195k|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
  |  Branch (1795:14): [True: 195k, False: 771k]
  |  Branch (1795:30): [True: 13.1k, False: 182k]
  ------------------
 1796|  13.1k|        return MP_EQ;
  ------------------
  |  |   96|  13.1k|#define MP_EQ 0
  ------------------
 1797|   953k|    else
 1798|   953k|        return MP_GT;
  ------------------
  |  |   97|   953k|#define MP_GT 1
  ------------------
 1799|       |
 1800|   966k|} /* end mp_cmp_z() */
mp_cmp:
 1830|  4.34k|{
 1831|  4.34k|    ARGCHK(a != NULL && b != NULL, MP_EQ);
  ------------------
  |  |  350|  4.34k|#define ARGCHK(X, Y) assert(X)
  ------------------
 1832|       |
 1833|  4.34k|    if (SIGN(a) == SIGN(b)) {
  ------------------
  |  |  327|  4.34k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  4.34k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                  if (SIGN(a) == SIGN(b)) {
  ------------------
  |  |  327|  4.34k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  4.34k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
  |  Branch (1833:9): [True: 4.34k, False: 0]
  ------------------
 1834|  4.34k|        int mag;
 1835|       |
 1836|  4.34k|        if ((mag = s_mp_cmp(a, b)) == MP_EQ)
  ------------------
  |  |   96|  4.34k|#define MP_EQ 0
  ------------------
  |  Branch (1836:13): [True: 4.34k, False: 0]
  ------------------
 1837|  4.34k|            return MP_EQ;
  ------------------
  |  |   96|  4.34k|#define MP_EQ 0
  ------------------
 1838|       |
 1839|      0|        if (SIGN(a) == ZPOS)
  ------------------
  |  |  327|      0|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|      0|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                      if (SIGN(a) == ZPOS)
  ------------------
  |  |  321|      0|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|      0|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
  |  Branch (1839:13): [True: 0, False: 0]
  ------------------
 1840|      0|            return mag;
 1841|      0|        else
 1842|      0|            return -mag;
 1843|       |
 1844|      0|    } else if (SIGN(a) == ZPOS) {
  ------------------
  |  |  327|      0|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|      0|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                  } else if (SIGN(a) == ZPOS) {
  ------------------
  |  |  321|      0|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|      0|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
  |  Branch (1844:16): [True: 0, False: 0]
  ------------------
 1845|      0|        return MP_GT;
  ------------------
  |  |   97|      0|#define MP_GT 1
  ------------------
 1846|      0|    } else {
 1847|      0|        return MP_LT;
  ------------------
  |  |   95|      0|#define MP_LT -1
  ------------------
 1848|      0|    }
 1849|       |
 1850|  4.34k|} /* end mp_cmp() */
mp_read_raw:
 2735|  8.73k|{
 2736|  8.73k|    int ix;
 2737|  8.73k|    mp_err res;
 2738|  8.73k|    unsigned char *ustr = (unsigned char *)str;
 2739|       |
 2740|  8.73k|    ARGCHK(mp != NULL && str != NULL && len > 0, MP_BADARG);
  ------------------
  |  |  350|  8.73k|#define ARGCHK(X, Y) assert(X)
  ------------------
 2741|       |
 2742|  8.73k|    mp_zero(mp);
 2743|       |
 2744|       |    /* Read the rest of the digits */
 2745|   434k|    for (ix = 1; ix < len; ix++) {
  ------------------
  |  Branch (2745:18): [True: 425k, False: 8.73k]
  ------------------
 2746|   425k|        if ((res = mp_mul_d(mp, 256, mp)) != MP_OKAY)
  ------------------
  |  |   39|   425k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (2746:13): [True: 0, False: 425k]
  ------------------
 2747|      0|            return res;
 2748|   425k|        if ((res = mp_add_d(mp, ustr[ix], mp)) != MP_OKAY)
  ------------------
  |  |   39|   425k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (2748:13): [True: 0, False: 425k]
  ------------------
 2749|      0|            return res;
 2750|   425k|    }
 2751|       |
 2752|       |    /* Get sign from first byte */
 2753|  8.73k|    if (ustr[0])
  ------------------
  |  Branch (2753:9): [True: 6.38k, False: 2.35k]
  ------------------
 2754|  6.38k|        SIGN(mp) = NEG;
  ------------------
  |  |  327|  6.38k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  6.38k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                      SIGN(mp) = NEG;
  ------------------
  |  |  320|  6.38k|#define NEG MP_NEG
  |  |  ------------------
  |  |  |  |   36|  6.38k|#define MP_NEG 1
  |  |  ------------------
  ------------------
 2755|  2.35k|    else
 2756|  2.35k|        SIGN(mp) = ZPOS;
  ------------------
  |  |  327|  2.35k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  2.35k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                      SIGN(mp) = ZPOS;
  ------------------
  |  |  321|  2.35k|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|  2.35k|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
 2757|       |
 2758|  8.73k|    return MP_OKAY;
  ------------------
  |  |   39|  8.73k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
 2759|       |
 2760|  8.73k|} /* end mp_read_raw() */
mp_toradix:
 2924|  13.0k|{
 2925|  13.0k|    int ix, pos = 0;
 2926|       |
 2927|  13.0k|    ARGCHK(mp != NULL && str != NULL, MP_BADARG);
  ------------------
  |  |  350|  13.0k|#define ARGCHK(X, Y) assert(X)
  ------------------
 2928|  13.0k|    ARGCHK(radix > 1 && radix <= MAX_RADIX, MP_RANGE);
  ------------------
  |  |  350|  13.0k|#define ARGCHK(X, Y) assert(X)
  ------------------
 2929|       |
 2930|  13.0k|    if (mp_cmp_z(mp) == MP_EQ) {
  ------------------
  |  |   96|  13.0k|#define MP_EQ 0
  ------------------
  |  Branch (2930:9): [True: 257, False: 12.8k]
  ------------------
 2931|    257|        str[0] = '0';
 2932|    257|        str[1] = '\0';
 2933|  12.8k|    } else {
 2934|  12.8k|        mp_err res;
 2935|  12.8k|        mp_int tmp;
 2936|  12.8k|        mp_sign sgn;
 2937|  12.8k|        mp_digit rem, rdx = (mp_digit)radix;
 2938|  12.8k|        char ch;
 2939|       |
 2940|  12.8k|        if ((res = mp_init_copy(&tmp, mp)) != MP_OKAY)
  ------------------
  |  |   39|  12.8k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (2940:13): [True: 0, False: 12.8k]
  ------------------
 2941|      0|            return res;
 2942|       |
 2943|       |        /* Save sign for later, and take absolute value */
 2944|  12.8k|        sgn = SIGN(&tmp);
  ------------------
  |  |  327|  12.8k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  12.8k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
 2945|  12.8k|        SIGN(&tmp) = ZPOS;
  ------------------
  |  |  327|  12.8k|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|  12.8k|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                      SIGN(&tmp) = ZPOS;
  ------------------
  |  |  321|  12.8k|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|  12.8k|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
 2946|       |
 2947|       |        /* Generate output digits in reverse order      */
 2948|   932k|        while (mp_cmp_z(&tmp) != 0) {
  ------------------
  |  Branch (2948:16): [True: 919k, False: 12.8k]
  ------------------
 2949|   919k|            if ((res = mp_div_d(&tmp, rdx, &tmp, &rem)) != MP_OKAY) {
  ------------------
  |  |   39|   919k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (2949:17): [True: 0, False: 919k]
  ------------------
 2950|      0|                mp_clear(&tmp);
 2951|      0|                return res;
 2952|      0|            }
 2953|       |
 2954|       |            /* Generate digits, use capital letters */
 2955|   919k|            ch = s_mp_todigit(rem, radix, 0);
 2956|       |
 2957|   919k|            str[pos++] = ch;
 2958|   919k|        }
 2959|       |
 2960|       |        /* Add - sign if original value was negative */
 2961|  12.8k|        if (sgn == NEG)
  ------------------
  |  |  320|  12.8k|#define NEG MP_NEG
  |  |  ------------------
  |  |  |  |   36|  12.8k|#define MP_NEG 1
  |  |  ------------------
  ------------------
  |  Branch (2961:13): [True: 0, False: 12.8k]
  ------------------
 2962|      0|            str[pos++] = '-';
 2963|       |
 2964|       |        /* Add trailing NUL to end the string        */
 2965|  12.8k|        str[pos--] = '\0';
 2966|       |
 2967|       |        /* Reverse the digits and sign indicator     */
 2968|  12.8k|        ix = 0;
 2969|   471k|        while (ix < pos) {
  ------------------
  |  Branch (2969:16): [True: 458k, False: 12.8k]
  ------------------
 2970|   458k|            char tmpc = str[ix];
 2971|       |
 2972|   458k|            str[ix] = str[pos];
 2973|   458k|            str[pos] = tmpc;
 2974|   458k|            ++ix;
 2975|   458k|            --pos;
 2976|   458k|        }
 2977|       |
 2978|  12.8k|        mp_clear(&tmp);
 2979|  12.8k|    }
 2980|       |
 2981|  13.0k|    return MP_OKAY;
  ------------------
  |  |   39|  13.0k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
 2982|       |
 2983|  13.0k|} /* end mp_toradix() */
s_mp_grow:
 3038|    215|{
 3039|    215|    ARGCHK(mp != NULL, MP_BADARG);
  ------------------
  |  |  350|    215|#define ARGCHK(X, Y) assert(X)
  ------------------
 3040|       |
 3041|    215|    if (min > ALLOC(mp)) {
  ------------------
  |  |  329|    215|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|    215|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
  |  Branch (3041:9): [True: 215, False: 0]
  ------------------
 3042|    215|        mp_digit *tmp;
 3043|       |
 3044|       |        /* Set min to next nearest default precision block size */
 3045|    215|        min = MP_ROUNDUP(min, s_mp_defprec);
  ------------------
  |  |   89|    215|#define MP_ROUNDUP(a, b) (MP_HOWMANY(a, b) * (b))
  |  |  ------------------
  |  |  |  |   88|    215|#define MP_HOWMANY(a, b) (((a) + (b)-1) / (b))
  |  |  ------------------
  ------------------
 3046|       |
 3047|    215|        if ((tmp = s_mp_alloc(min, sizeof(mp_digit))) == NULL)
  ------------------
  |  Branch (3047:13): [True: 0, False: 215]
  ------------------
 3048|      0|            return MP_MEM;
  ------------------
  |  |   42|      0|#define MP_MEM -2    /* out of memory         */
  ------------------
 3049|       |
 3050|    215|        s_mp_copy(DIGITS(mp), tmp, USED(mp));
  ------------------
  |  |  330|    215|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|    215|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
                      s_mp_copy(DIGITS(mp), tmp, USED(mp));
  ------------------
  |  |  328|    215|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|    215|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
 3051|       |
 3052|    215|        s_mp_setz(DIGITS(mp), ALLOC(mp));
  ------------------
  |  |  330|    215|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|    215|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
                      s_mp_setz(DIGITS(mp), ALLOC(mp));
  ------------------
  |  |  329|    215|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|    215|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
 3053|    215|        s_mp_free(DIGITS(mp));
  ------------------
  |  |  330|    215|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|    215|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
 3054|    215|        DIGITS(mp) = tmp;
  ------------------
  |  |  330|    215|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|    215|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
 3055|    215|        ALLOC(mp) = min;
  ------------------
  |  |  329|    215|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|    215|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
 3056|    215|    }
 3057|       |
 3058|    215|    return MP_OKAY;
  ------------------
  |  |   39|    215|#define MP_OKAY 0    /* no error, all is well */
  ------------------
 3059|       |
 3060|    215|} /* end s_mp_grow() */
s_mp_pad:
 3069|   472k|{
 3070|   472k|    ARGCHK(mp != NULL, MP_BADARG);
  ------------------
  |  |  350|   472k|#define ARGCHK(X, Y) assert(X)
  ------------------
 3071|       |
 3072|   472k|    if (min > USED(mp)) {
  ------------------
  |  |  328|   472k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|   472k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  |  Branch (3072:9): [True: 71.2k, False: 400k]
  ------------------
 3073|  71.2k|        mp_err res;
 3074|       |
 3075|       |        /* Make sure there is room to increase precision  */
 3076|  71.2k|        if (min > ALLOC(mp)) {
  ------------------
  |  |  329|  71.2k|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|  71.2k|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
  |  Branch (3076:13): [True: 215, False: 71.0k]
  ------------------
 3077|    215|            if ((res = s_mp_grow(mp, min)) != MP_OKAY)
  ------------------
  |  |   39|    215|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (3077:17): [True: 0, False: 215]
  ------------------
 3078|      0|                return res;
 3079|  71.0k|        } else {
 3080|  71.0k|            s_mp_setz(DIGITS(mp) + USED(mp), min - USED(mp));
  ------------------
  |  |  330|  71.0k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|  71.0k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
                          s_mp_setz(DIGITS(mp) + USED(mp), min - USED(mp));
  ------------------
  |  |  328|  71.0k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|  71.0k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
                          s_mp_setz(DIGITS(mp) + USED(mp), min - USED(mp));
  ------------------
  |  |  328|  71.0k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|  71.0k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
 3081|  71.0k|        }
 3082|       |
 3083|       |        /* Increase precision; should already be 0-filled */
 3084|  71.2k|        USED(mp) = min;
  ------------------
  |  |  328|  71.2k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|  71.2k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
 3085|  71.2k|    }
 3086|       |
 3087|   472k|    return MP_OKAY;
  ------------------
  |  |   39|   472k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
 3088|       |
 3089|   472k|} /* end s_mp_pad() */
s_mp_setz:
 3098|   597k|{
 3099|   597k|    memset(dp, 0, count * sizeof(mp_digit));
 3100|   597k|} /* end s_mp_setz() */
s_mp_copy:
 3109|   483k|{
 3110|   483k|    memcpy(dp, sp, count * sizeof(mp_digit));
 3111|   483k|} /* end s_mp_copy() */
s_mp_alloc:
 3120|   483k|{
 3121|   483k|    return calloc(nb, ni);
 3122|       |
 3123|   483k|} /* end s_mp_alloc() */
s_mp_free:
 3132|   483k|{
 3133|   483k|    if (ptr) {
  ------------------
  |  Branch (3133:9): [True: 483k, False: 0]
  ------------------
 3134|   483k|        free(ptr);
 3135|   483k|    }
 3136|   483k|} /* end s_mp_free() */
s_mp_clamp:
 3145|  1.45M|{
 3146|  1.45M|    mp_size used = MP_USED(mp);
  ------------------
  |  |  145|  1.45M|#define MP_USED(MP) ((MP)->used)
  ------------------
 3147|  2.00M|    while (used > 1 && DIGIT(mp, used - 1) == 0)
  ------------------
  |  |  331|  1.66M|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|  1.66M|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
  |  Branch (3147:12): [True: 1.66M, False: 346k]
  |  Branch (3147:24): [True: 554k, False: 1.10M]
  ------------------
 3148|   554k|        --used;
 3149|  1.45M|    MP_USED(mp) = used;
  ------------------
  |  |  145|  1.45M|#define MP_USED(MP) ((MP)->used)
  ------------------
 3150|  1.45M|    if (used == 1 && DIGIT(mp, 0) == 0)
  ------------------
  |  |  331|   346k|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|   346k|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
  |  Branch (3150:9): [True: 346k, False: 1.10M]
  |  Branch (3150:22): [True: 105k, False: 240k]
  ------------------
 3151|   105k|        MP_SIGN(mp) = ZPOS;
  ------------------
  |  |  144|   105k|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
                      MP_SIGN(mp) = ZPOS;
  ------------------
  |  |  321|   105k|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|   105k|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
 3152|  1.45M|} /* end s_mp_clamp() */
s_mp_exch:
 3161|   425k|{
 3162|   425k|    mp_int tmp;
 3163|   425k|    if (!a || !b) {
  ------------------
  |  Branch (3163:9): [True: 0, False: 425k]
  |  Branch (3163:15): [True: 0, False: 425k]
  ------------------
 3164|      0|        return;
 3165|      0|    }
 3166|       |
 3167|   425k|    tmp = *a;
 3168|   425k|    *a = *b;
 3169|   425k|    *b = tmp;
 3170|       |
 3171|   425k|} /* end s_mp_exch() */
s_mp_mul_2d:
 3227|   441k|{
 3228|   441k|    mp_err res;
 3229|   441k|    mp_digit dshift, rshift, mask, x, prev = 0;
 3230|   441k|    mp_digit *pa = NULL;
 3231|   441k|    int i;
 3232|       |
 3233|   441k|    ARGCHK(mp != NULL, MP_BADARG);
  ------------------
  |  |  350|   441k|#define ARGCHK(X, Y) assert(X)
  ------------------
 3234|       |
 3235|   441k|    dshift = d / MP_DIGIT_BIT;
  ------------------
  |  |  132|   441k|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  ------------------
  |  |  |  |  131|   441k|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  ------------------
  ------------------
 3236|   441k|    d %= MP_DIGIT_BIT;
  ------------------
  |  |  132|   441k|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  ------------------
  |  |  |  |  131|   441k|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  ------------------
  ------------------
 3237|       |    /* mp_digit >> rshift is undefined behavior for rshift >= MP_DIGIT_BIT */
 3238|       |    /* mod and corresponding mask logic avoid that when d = 0 */
 3239|   441k|    rshift = MP_DIGIT_BIT - d;
  ------------------
  |  |  132|   441k|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  ------------------
  |  |  |  |  131|   441k|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  ------------------
  ------------------
 3240|   441k|    rshift %= MP_DIGIT_BIT;
  ------------------
  |  |  132|   441k|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  ------------------
  |  |  |  |  131|   441k|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  ------------------
  ------------------
 3241|       |    /* mask = (2**d - 1) * 2**(w-d) mod 2**w */
 3242|   441k|    mask = (DIGIT_MAX << rshift) + 1;
  ------------------
  |  |  322|   441k|#define DIGIT_MAX MP_DIGIT_MAX
  |  |  ------------------
  |  |  |  |   74|   441k|#define MP_DIGIT_MAX ULONG_MAX
  |  |  ------------------
  ------------------
 3243|   441k|    mask &= DIGIT_MAX - 1;
  ------------------
  |  |  322|   441k|#define DIGIT_MAX MP_DIGIT_MAX
  |  |  ------------------
  |  |  |  |   74|   441k|#define MP_DIGIT_MAX ULONG_MAX
  |  |  ------------------
  ------------------
 3244|       |    /* bits to be shifted out of the top word */
 3245|   441k|    x = MP_DIGIT(mp, MP_USED(mp) - 1) & mask;
  ------------------
  |  |  148|   441k|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  ------------------
 3246|       |
 3247|   441k|    if (MP_OKAY != (res = s_mp_pad(mp, MP_USED(mp) + dshift + (x != 0))))
  ------------------
  |  |   39|   441k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
                  if (MP_OKAY != (res = s_mp_pad(mp, MP_USED(mp) + dshift + (x != 0))))
  ------------------
  |  |  145|   441k|#define MP_USED(MP) ((MP)->used)
  ------------------
  |  Branch (3247:9): [True: 0, False: 441k]
  ------------------
 3248|      0|        return res;
 3249|       |
 3250|   441k|    if (dshift && MP_OKAY != (res = s_mp_lshd(mp, dshift)))
  ------------------
  |  |   39|      0|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (3250:9): [True: 0, False: 441k]
  |  Branch (3250:19): [True: 0, False: 0]
  ------------------
 3251|      0|        return res;
 3252|       |
 3253|   441k|    pa = MP_DIGITS(mp) + dshift;
  ------------------
  |  |  147|   441k|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
 3254|       |
 3255|  7.56M|    for (i = MP_USED(mp) - dshift; i > 0; i--) {
  ------------------
  |  |  145|   441k|#define MP_USED(MP) ((MP)->used)
  ------------------
  |  Branch (3255:36): [True: 7.11M, False: 441k]
  ------------------
 3256|  7.11M|        x = *pa;
 3257|  7.11M|        *pa++ = (x << d) | prev;
 3258|  7.11M|        prev = (x & mask) >> rshift;
 3259|  7.11M|    }
 3260|       |
 3261|   441k|    s_mp_clamp(mp);
 3262|   441k|    return MP_OKAY;
  ------------------
  |  |   39|   441k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
 3263|   441k|} /* end s_mp_mul_2d() */
s_mp_rshd:
 3275|   927k|{
 3276|   927k|    mp_size ix;
 3277|   927k|    mp_digit *src, *dst;
 3278|       |
 3279|   927k|    if (p == 0)
  ------------------
  |  Branch (3279:9): [True: 926k, False: 472]
  ------------------
 3280|   926k|        return;
 3281|       |
 3282|       |    /* Shortcut when all digits are to be shifted off */
 3283|    472|    if (p >= USED(mp)) {
  ------------------
  |  |  328|    472|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|    472|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  |  Branch (3283:9): [True: 0, False: 472]
  ------------------
 3284|      0|        s_mp_setz(DIGITS(mp), ALLOC(mp));
  ------------------
  |  |  330|      0|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|      0|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
                      s_mp_setz(DIGITS(mp), ALLOC(mp));
  ------------------
  |  |  329|      0|#define ALLOC(MP) MP_ALLOC(MP)
  |  |  ------------------
  |  |  |  |  146|      0|#define MP_ALLOC(MP) ((MP)->alloc)
  |  |  ------------------
  ------------------
 3285|      0|        USED(mp) = 1;
  ------------------
  |  |  328|      0|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|      0|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
 3286|      0|        SIGN(mp) = ZPOS;
  ------------------
  |  |  327|      0|#define SIGN(MP) MP_SIGN(MP)
  |  |  ------------------
  |  |  |  |  144|      0|#define MP_SIGN(MP) ((MP)->sign)
  |  |  ------------------
  ------------------
                      SIGN(mp) = ZPOS;
  ------------------
  |  |  321|      0|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|      0|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
 3287|      0|        return;
 3288|      0|    }
 3289|       |
 3290|       |    /* Shift all the significant figures over as needed */
 3291|    472|    dst = MP_DIGITS(mp);
  ------------------
  |  |  147|    472|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
 3292|    472|    src = dst + p;
 3293|  1.46k|    for (ix = USED(mp) - p; ix > 0; ix--)
  ------------------
  |  |  328|    472|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|    472|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  |  Branch (3293:29): [True: 990, False: 472]
  ------------------
 3294|    990|        *dst++ = *src++;
 3295|       |
 3296|    472|    MP_USED(mp) -= p;
  ------------------
  |  |  145|    472|#define MP_USED(MP) ((MP)->used)
  ------------------
 3297|       |    /* Fill the top digits with zeroes */
 3298|  3.28k|    while (p-- > 0)
  ------------------
  |  Branch (3298:12): [True: 2.81k, False: 472]
  ------------------
 3299|  2.81k|        *dst++ = 0;
 3300|       |
 3301|    472|} /* end s_mp_rshd() */
s_mp_mod_2d:
 3364|    824|{
 3365|    824|    mp_size ndig = (d / DIGIT_BIT), nbit = (d % DIGIT_BIT);
  ------------------
  |  |  323|    824|#define DIGIT_BIT MP_DIGIT_BIT
  |  |  ------------------
  |  |  |  |  132|    824|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  131|    824|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                  mp_size ndig = (d / DIGIT_BIT), nbit = (d % DIGIT_BIT);
  ------------------
  |  |  323|    824|#define DIGIT_BIT MP_DIGIT_BIT
  |  |  ------------------
  |  |  |  |  132|    824|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  131|    824|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3366|    824|    mp_size ix;
 3367|    824|    mp_digit dmask;
 3368|       |
 3369|    824|    if (ndig >= USED(mp))
  ------------------
  |  |  328|    824|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|    824|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  |  Branch (3369:9): [True: 0, False: 824]
  ------------------
 3370|      0|        return;
 3371|       |
 3372|       |    /* Flush all the bits above 2^d in its digit */
 3373|    824|    dmask = ((mp_digit)1 << nbit) - 1;
 3374|    824|    DIGIT(mp, ndig) &= dmask;
  ------------------
  |  |  331|    824|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|    824|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
 3375|       |
 3376|       |    /* Flush all digits above the one with 2^d in it */
 3377|  2.19k|    for (ix = ndig + 1; ix < USED(mp); ix++)
  ------------------
  |  |  328|  2.19k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|  2.19k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  |  Branch (3377:25): [True: 1.36k, False: 824]
  ------------------
 3378|  1.36k|        DIGIT(mp, ix) = 0;
  ------------------
  |  |  331|  1.36k|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|  1.36k|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
 3379|       |
 3380|    824|    s_mp_clamp(mp);
 3381|       |
 3382|    824|} /* end s_mp_mod_2d() */
s_mp_div_2d:
 3395|   927k|{
 3396|   927k|    int ix;
 3397|   927k|    mp_digit save, next, mask, lshift;
 3398|       |
 3399|   927k|    s_mp_rshd(mp, d / DIGIT_BIT);
  ------------------
  |  |  323|   927k|#define DIGIT_BIT MP_DIGIT_BIT
  |  |  ------------------
  |  |  |  |  132|   927k|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  131|   927k|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3400|   927k|    d %= DIGIT_BIT;
  ------------------
  |  |  323|   927k|#define DIGIT_BIT MP_DIGIT_BIT
  |  |  ------------------
  |  |  |  |  132|   927k|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  131|   927k|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3401|       |    /* mp_digit << lshift is undefined behavior for lshift >= MP_DIGIT_BIT */
 3402|       |    /* mod and corresponding mask logic avoid that when d = 0 */
 3403|   927k|    lshift = DIGIT_BIT - d;
  ------------------
  |  |  323|   927k|#define DIGIT_BIT MP_DIGIT_BIT
  |  |  ------------------
  |  |  |  |  132|   927k|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  131|   927k|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3404|   927k|    lshift %= DIGIT_BIT;
  ------------------
  |  |  323|   927k|#define DIGIT_BIT MP_DIGIT_BIT
  |  |  ------------------
  |  |  |  |  132|   927k|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  131|   927k|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 3405|   927k|    mask = ((mp_digit)1 << d) - 1;
 3406|   927k|    save = 0;
 3407|  19.4M|    for (ix = USED(mp) - 1; ix >= 0; ix--) {
  ------------------
  |  |  328|   927k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|   927k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  |  Branch (3407:29): [True: 18.5M, False: 927k]
  ------------------
 3408|  18.5M|        next = DIGIT(mp, ix) & mask;
  ------------------
  |  |  331|  18.5M|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|  18.5M|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
 3409|  18.5M|        DIGIT(mp, ix) = (save << lshift) | (DIGIT(mp, ix) >> d);
  ------------------
  |  |  331|  18.5M|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|  18.5M|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
                      DIGIT(mp, ix) = (save << lshift) | (DIGIT(mp, ix) >> d);
  ------------------
  |  |  331|  18.5M|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|  18.5M|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
 3410|  18.5M|        save = next;
 3411|  18.5M|    }
 3412|   927k|    s_mp_clamp(mp);
 3413|       |
 3414|   927k|} /* end s_mp_div_2d() */
s_mp_norm:
 3433|  7.08k|{
 3434|  7.08k|    mp_digit d;
 3435|  7.08k|    mp_digit mask;
 3436|  7.08k|    mp_digit b_msd;
 3437|  7.08k|    mp_err res = MP_OKAY;
  ------------------
  |  |   39|  7.08k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
 3438|       |
 3439|  7.08k|    ARGCHK(a != NULL && b != NULL && pd != NULL, MP_BADARG);
  ------------------
  |  |  350|  7.08k|#define ARGCHK(X, Y) assert(X)
  ------------------
 3440|       |
 3441|  7.08k|    d = 0;
 3442|  7.08k|    mask = DIGIT_MAX & ~(DIGIT_MAX >> 1); /* mask is msb of digit */
  ------------------
  |  |  322|  7.08k|#define DIGIT_MAX MP_DIGIT_MAX
  |  |  ------------------
  |  |  |  |   74|  7.08k|#define MP_DIGIT_MAX ULONG_MAX
  |  |  ------------------
  ------------------
                  mask = DIGIT_MAX & ~(DIGIT_MAX >> 1); /* mask is msb of digit */
  ------------------
  |  |  322|  7.08k|#define DIGIT_MAX MP_DIGIT_MAX
  |  |  ------------------
  |  |  |  |   74|  7.08k|#define MP_DIGIT_MAX ULONG_MAX
  |  |  ------------------
  ------------------
 3443|  7.08k|    b_msd = DIGIT(b, USED(b) - 1);
  ------------------
  |  |  331|  7.08k|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|  7.08k|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
 3444|   308k|    while (!(b_msd & mask)) {
  ------------------
  |  Branch (3444:12): [True: 301k, False: 7.08k]
  ------------------
 3445|   301k|        b_msd <<= 1;
 3446|   301k|        ++d;
 3447|   301k|    }
 3448|       |
 3449|  7.08k|    if (d) {
  ------------------
  |  Branch (3449:9): [True: 6.66k, False: 422]
  ------------------
 3450|  6.66k|        MP_CHECKOK(s_mp_mul_2d(a, d));
  ------------------
  |  |  314|  6.66k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  6.66k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 6.66k]
  |  |  ------------------
  |  |  315|  6.66k|    goto CLEANUP
  ------------------
 3451|  6.66k|        MP_CHECKOK(s_mp_mul_2d(b, d));
  ------------------
  |  |  314|  6.66k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  6.66k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 6.66k]
  |  |  ------------------
  |  |  315|  6.66k|    goto CLEANUP
  ------------------
 3452|  6.66k|    }
 3453|       |
 3454|  7.08k|    *pd = d;
 3455|  7.08k|CLEANUP:
 3456|  7.08k|    return res;
 3457|       |
 3458|  7.08k|} /* end s_mp_norm() */
s_mp_add_d:
 3471|   425k|{
 3472|       |#if !defined(MP_NO_MP_WORD) && !defined(MP_NO_ADD_WORD)
 3473|       |    mp_word w, k = 0;
 3474|       |    mp_size ix = 1;
 3475|       |
 3476|       |    w = (mp_word)DIGIT(mp, 0) + d;
 3477|       |    DIGIT(mp, 0) = ACCUM(w);
 3478|       |    k = CARRYOUT(w);
 3479|       |
 3480|       |    while (ix < USED(mp) && k) {
 3481|       |        w = (mp_word)DIGIT(mp, ix) + k;
 3482|       |        DIGIT(mp, ix) = ACCUM(w);
 3483|       |        k = CARRYOUT(w);
 3484|       |        ++ix;
 3485|       |    }
 3486|       |
 3487|       |    if (k != 0) {
 3488|       |        mp_err res;
 3489|       |
 3490|       |        if ((res = s_mp_pad(mp, USED(mp) + 1)) != MP_OKAY)
 3491|       |            return res;
 3492|       |
 3493|       |        DIGIT(mp, ix) = (mp_digit)k;
 3494|       |    }
 3495|       |
 3496|       |    return MP_OKAY;
 3497|       |#else
 3498|   425k|    mp_digit *pmp = MP_DIGITS(mp);
  ------------------
  |  |  147|   425k|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
 3499|   425k|    mp_digit sum, mp_i, carry = 0;
 3500|   425k|    mp_err res = MP_OKAY;
  ------------------
  |  |   39|   425k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
 3501|   425k|    int used = (int)MP_USED(mp);
  ------------------
  |  |  145|   425k|#define MP_USED(MP) ((MP)->used)
  ------------------
 3502|       |
 3503|   425k|    mp_i = *pmp;
 3504|   425k|    *pmp++ = sum = d + mp_i;
 3505|   425k|    carry = (sum < d);
 3506|   425k|    while (carry && --used > 0) {
  ------------------
  |  Branch (3506:12): [True: 0, False: 425k]
  |  Branch (3506:21): [True: 0, False: 0]
  ------------------
 3507|      0|        mp_i = *pmp;
 3508|      0|        *pmp++ = sum = carry + mp_i;
 3509|      0|        carry = !sum;
 3510|      0|    }
 3511|   425k|    if (carry && !used) {
  ------------------
  |  Branch (3511:9): [True: 0, False: 425k]
  |  Branch (3511:18): [True: 0, False: 0]
  ------------------
 3512|       |        /* mp is growing */
 3513|      0|        used = MP_USED(mp);
  ------------------
  |  |  145|      0|#define MP_USED(MP) ((MP)->used)
  ------------------
 3514|      0|        MP_CHECKOK(s_mp_pad(mp, used + 1));
  ------------------
  |  |  314|      0|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|      0|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 0]
  |  |  ------------------
  |  |  315|      0|    goto CLEANUP
  ------------------
 3515|      0|        MP_DIGIT(mp, used) = carry;
  ------------------
  |  |  148|      0|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  ------------------
 3516|      0|    }
 3517|   425k|CLEANUP:
 3518|   425k|    return res;
 3519|   425k|#endif
 3520|   425k|} /* end s_mp_add_d() */
s_mp_mul_d:
 3580|   449k|{
 3581|   449k|    mp_err res;
 3582|   449k|    mp_size used;
 3583|   449k|    int pow;
 3584|       |
 3585|   449k|    if (!d) {
  ------------------
  |  Branch (3585:9): [True: 0, False: 449k]
  ------------------
 3586|      0|        mp_zero(a);
 3587|      0|        return MP_OKAY;
  ------------------
  |  |   39|      0|#define MP_OKAY 0    /* no error, all is well */
  ------------------
 3588|      0|    }
 3589|   449k|    if (d == 1)
  ------------------
  |  Branch (3589:9): [True: 3.12k, False: 445k]
  ------------------
 3590|  3.12k|        return MP_OKAY;
  ------------------
  |  |   39|  3.12k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
 3591|   445k|    if (0 <= (pow = s_mp_ispow2d(d))) {
  ------------------
  |  Branch (3591:9): [True: 428k, False: 17.6k]
  ------------------
 3592|   428k|        return s_mp_mul_2d(a, (mp_digit)pow);
 3593|   428k|    }
 3594|       |
 3595|  17.6k|    used = MP_USED(a);
  ------------------
  |  |  145|  17.6k|#define MP_USED(MP) ((MP)->used)
  ------------------
 3596|  17.6k|    MP_CHECKOK(s_mp_pad(a, used + 1));
  ------------------
  |  |  314|  17.6k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  17.6k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 17.6k]
  |  |  ------------------
  |  |  315|  17.6k|    goto CLEANUP
  ------------------
 3597|       |
 3598|  17.6k|    s_mpv_mul_d(MP_DIGITS(a), used, d, MP_DIGITS(a));
  ------------------
  |  |  189|  17.6k|    ((mp_digit *)c)[a_len] = s_mpv_mul_set_vec64(c, a, a_len, b)
  ------------------
 3599|       |
 3600|  17.6k|    s_mp_clamp(a);
 3601|       |
 3602|  17.6k|CLEANUP:
 3603|  17.6k|    return res;
 3604|       |
 3605|  17.6k|} /* end s_mp_mul_d() */
s_mp_sub:
 4001|  28.4k|{
 4002|  28.4k|    mp_digit *pa, *pb, *limit;
 4003|       |#if !defined(MP_NO_MP_WORD) && !defined(MP_NO_SUB_WORD)
 4004|       |    mp_sword w = 0;
 4005|       |#else
 4006|  28.4k|    mp_digit d, diff, borrow = 0;
 4007|  28.4k|#endif
 4008|       |
 4009|       |    /*
 4010|       |    Subtract and propagate borrow.  Up to the precision of b, this
 4011|       |    accounts for the digits of b; after that, we just make sure the
 4012|       |    carries get to the right place.  This saves having to pad b out to
 4013|       |    the precision of a just to make the loops work right...
 4014|       |   */
 4015|  28.4k|    pa = MP_DIGITS(a);
  ------------------
  |  |  147|  28.4k|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
 4016|  28.4k|    pb = MP_DIGITS(b);
  ------------------
  |  |  147|  28.4k|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
 4017|  28.4k|    limit = pb + MP_USED(b);
  ------------------
  |  |  145|  28.4k|#define MP_USED(MP) ((MP)->used)
  ------------------
 4018|   257k|    while (pb < limit) {
  ------------------
  |  Branch (4018:12): [True: 229k, False: 28.4k]
  ------------------
 4019|       |#if !defined(MP_NO_MP_WORD) && !defined(MP_NO_SUB_WORD)
 4020|       |        w = w + *pa - *pb++;
 4021|       |        *pa++ = ACCUM(w);
 4022|       |        w >>= MP_DIGIT_BIT;
 4023|       |#else
 4024|   229k|        d = *pa;
 4025|   229k|        diff = d - *pb++;
 4026|   229k|        d = (diff > d); /* detect borrow */
 4027|   229k|        if (borrow && --diff == MP_DIGIT_MAX)
  ------------------
  |  |   74|  76.2k|#define MP_DIGIT_MAX ULONG_MAX
  ------------------
  |  Branch (4027:13): [True: 76.2k, False: 152k]
  |  Branch (4027:23): [True: 7.46k, False: 68.8k]
  ------------------
 4028|  7.46k|            ++d;
 4029|   229k|        *pa++ = diff;
 4030|   229k|        borrow = d;
 4031|   229k|#endif
 4032|   229k|    }
 4033|  28.4k|    limit = MP_DIGITS(a) + MP_USED(a);
  ------------------
  |  |  147|  28.4k|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
                  limit = MP_DIGITS(a) + MP_USED(a);
  ------------------
  |  |  145|  28.4k|#define MP_USED(MP) ((MP)->used)
  ------------------
 4034|       |#if !defined(MP_NO_MP_WORD) && !defined(MP_NO_SUB_WORD)
 4035|       |    while (w && pa < limit) {
 4036|       |        w = w + *pa;
 4037|       |        *pa++ = ACCUM(w);
 4038|       |        w >>= MP_DIGIT_BIT;
 4039|       |    }
 4040|       |#else
 4041|  32.9k|    while (borrow && pa < limit) {
  ------------------
  |  Branch (4041:12): [True: 4.51k, False: 28.4k]
  |  Branch (4041:22): [True: 4.51k, False: 0]
  ------------------
 4042|  4.51k|        d = *pa;
 4043|  4.51k|        *pa++ = diff = d - borrow;
 4044|  4.51k|        borrow = (diff > d);
 4045|  4.51k|    }
 4046|  28.4k|#endif
 4047|       |
 4048|       |    /* Clobber any leading zeroes we created    */
 4049|  28.4k|    s_mp_clamp(a);
 4050|       |
 4051|       |/*
 4052|       |     If there was a borrow out, then |b| > |a| in violation
 4053|       |     of our input invariant.  We've already done the work,
 4054|       |     but we'll at least complain about it...
 4055|       |   */
 4056|       |#if !defined(MP_NO_MP_WORD) && !defined(MP_NO_SUB_WORD)
 4057|       |    return w ? MP_RANGE : MP_OKAY;
 4058|       |#else
 4059|  28.4k|    return borrow ? MP_RANGE : MP_OKAY;
  ------------------
  |  |   43|      0|#define MP_RANGE -3  /* argument out of range */
  ------------------
                  return borrow ? MP_RANGE : MP_OKAY;
  ------------------
  |  |   39|  28.4k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (4059:12): [True: 0, False: 28.4k]
  ------------------
 4060|  28.4k|#endif
 4061|  28.4k|} /* end s_mp_sub() */
s_mp_sub_3arg:
 4068|  4.14k|{
 4069|  4.14k|    mp_digit *pa, *pb, *pc;
 4070|       |#if !defined(MP_NO_MP_WORD) && !defined(MP_NO_SUB_WORD)
 4071|       |    mp_sword w = 0;
 4072|       |#else
 4073|  4.14k|    mp_digit d, diff, borrow = 0;
 4074|  4.14k|#endif
 4075|  4.14k|    int ix, limit;
 4076|  4.14k|    mp_err res;
 4077|       |
 4078|  4.14k|    MP_SIGN(c) = MP_SIGN(a);
  ------------------
  |  |  144|  4.14k|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
                  MP_SIGN(c) = MP_SIGN(a);
  ------------------
  |  |  144|  4.14k|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
 4079|       |
 4080|       |    /* Make sure a has enough precision for the output value */
 4081|  4.14k|    if (MP_OKAY != (res = s_mp_pad(c, MP_USED(a))))
  ------------------
  |  |   39|  4.14k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
                  if (MP_OKAY != (res = s_mp_pad(c, MP_USED(a))))
  ------------------
  |  |  145|  4.14k|#define MP_USED(MP) ((MP)->used)
  ------------------
  |  Branch (4081:9): [True: 0, False: 4.14k]
  ------------------
 4082|      0|        return res;
 4083|       |
 4084|       |    /*
 4085|       |    Subtract and propagate borrow.  Up to the precision of b, this
 4086|       |    accounts for the digits of b; after that, we just make sure the
 4087|       |    carries get to the right place.  This saves having to pad b out to
 4088|       |    the precision of a just to make the loops work right...
 4089|       |   */
 4090|  4.14k|    pa = MP_DIGITS(a);
  ------------------
  |  |  147|  4.14k|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
 4091|  4.14k|    pb = MP_DIGITS(b);
  ------------------
  |  |  147|  4.14k|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
 4092|  4.14k|    pc = MP_DIGITS(c);
  ------------------
  |  |  147|  4.14k|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
 4093|  4.14k|    limit = MP_USED(b);
  ------------------
  |  |  145|  4.14k|#define MP_USED(MP) ((MP)->used)
  ------------------
 4094|  31.6k|    for (ix = 0; ix < limit; ++ix) {
  ------------------
  |  Branch (4094:18): [True: 27.4k, False: 4.14k]
  ------------------
 4095|       |#if !defined(MP_NO_MP_WORD) && !defined(MP_NO_SUB_WORD)
 4096|       |        w = w + *pa++ - *pb++;
 4097|       |        *pc++ = ACCUM(w);
 4098|       |        w >>= MP_DIGIT_BIT;
 4099|       |#else
 4100|  27.4k|        d = *pa++;
 4101|  27.4k|        diff = d - *pb++;
 4102|  27.4k|        d = (diff > d);
 4103|  27.4k|        if (borrow && --diff == MP_DIGIT_MAX)
  ------------------
  |  |   74|  8.21k|#define MP_DIGIT_MAX ULONG_MAX
  ------------------
  |  Branch (4103:13): [True: 8.21k, False: 19.2k]
  |  Branch (4103:23): [True: 438, False: 7.78k]
  ------------------
 4104|    438|            ++d;
 4105|  27.4k|        *pc++ = diff;
 4106|  27.4k|        borrow = d;
 4107|  27.4k|#endif
 4108|  27.4k|    }
 4109|  4.14k|    for (limit = MP_USED(a); ix < limit; ++ix) {
  ------------------
  |  |  145|  4.14k|#define MP_USED(MP) ((MP)->used)
  ------------------
  |  Branch (4109:30): [True: 0, False: 4.14k]
  ------------------
 4110|       |#if !defined(MP_NO_MP_WORD) && !defined(MP_NO_SUB_WORD)
 4111|       |        w = w + *pa++;
 4112|       |        *pc++ = ACCUM(w);
 4113|       |        w >>= MP_DIGIT_BIT;
 4114|       |#else
 4115|      0|        d = *pa++;
 4116|      0|        *pc++ = diff = d - borrow;
 4117|      0|        borrow = (diff > d);
 4118|      0|#endif
 4119|      0|    }
 4120|       |
 4121|       |    /* Clobber any leading zeroes we created    */
 4122|  4.14k|    MP_USED(c) = ix;
  ------------------
  |  |  145|  4.14k|#define MP_USED(MP) ((MP)->used)
  ------------------
 4123|  4.14k|    s_mp_clamp(c);
 4124|       |
 4125|       |/*
 4126|       |     If there was a borrow out, then |b| > |a| in violation
 4127|       |     of our input invariant.  We've already done the work,
 4128|       |     but we'll at least complain about it...
 4129|       |   */
 4130|       |#if !defined(MP_NO_MP_WORD) && !defined(MP_NO_SUB_WORD)
 4131|       |    return w ? MP_RANGE : MP_OKAY;
 4132|       |#else
 4133|  4.14k|    return borrow ? MP_RANGE : MP_OKAY;
  ------------------
  |  |   43|      0|#define MP_RANGE -3  /* argument out of range */
  ------------------
                  return borrow ? MP_RANGE : MP_OKAY;
  ------------------
  |  |   39|  4.14k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
  |  Branch (4133:12): [True: 0, False: 4.14k]
  ------------------
 4134|  4.14k|#endif
 4135|  4.14k|}
s_mpv_div_2dx1d:
 4446|  19.7k|{
 4447|  19.7k|    mp_digit d1, d0, q1, q0;
 4448|  19.7k|    mp_digit r1, r0, m;
 4449|       |
 4450|  19.7k|    d1 = divisor >> MP_HALF_DIGIT_BIT;
  ------------------
  |  |  136|  19.7k|#define MP_HALF_DIGIT_BIT (MP_DIGIT_BIT / 2)
  |  |  ------------------
  |  |  |  |  132|  19.7k|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  131|  19.7k|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4451|  19.7k|    d0 = divisor & MP_HALF_DIGIT_MAX;
  ------------------
  |  |   76|  19.7k|#define MP_HALF_DIGIT_MAX UINT_MAX
  ------------------
 4452|  19.7k|    r1 = Nhi % d1;
 4453|  19.7k|    q1 = Nhi / d1;
 4454|  19.7k|    m = q1 * d0;
 4455|  19.7k|    r1 = (r1 << MP_HALF_DIGIT_BIT) | (Nlo >> MP_HALF_DIGIT_BIT);
  ------------------
  |  |  136|  19.7k|#define MP_HALF_DIGIT_BIT (MP_DIGIT_BIT / 2)
  |  |  ------------------
  |  |  |  |  132|  19.7k|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  131|  19.7k|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                  r1 = (r1 << MP_HALF_DIGIT_BIT) | (Nlo >> MP_HALF_DIGIT_BIT);
  ------------------
  |  |  136|  19.7k|#define MP_HALF_DIGIT_BIT (MP_DIGIT_BIT / 2)
  |  |  ------------------
  |  |  |  |  132|  19.7k|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  131|  19.7k|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4456|  19.7k|    if (r1 < m) {
  ------------------
  |  Branch (4456:9): [True: 4.47k, False: 15.2k]
  ------------------
 4457|  4.47k|        q1--, r1 += divisor;
 4458|  4.47k|        if (r1 >= divisor && r1 < m) {
  ------------------
  |  Branch (4458:13): [True: 2.25k, False: 2.21k]
  |  Branch (4458:30): [True: 962, False: 1.29k]
  ------------------
 4459|    962|            q1--, r1 += divisor;
 4460|    962|        }
 4461|  4.47k|    }
 4462|  19.7k|    r1 -= m;
 4463|  19.7k|    r0 = r1 % d1;
 4464|  19.7k|    q0 = r1 / d1;
 4465|  19.7k|    m = q0 * d0;
 4466|  19.7k|    r0 = (r0 << MP_HALF_DIGIT_BIT) | (Nlo & MP_HALF_DIGIT_MAX);
  ------------------
  |  |  136|  19.7k|#define MP_HALF_DIGIT_BIT (MP_DIGIT_BIT / 2)
  |  |  ------------------
  |  |  |  |  132|  19.7k|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  131|  19.7k|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
                  r0 = (r0 << MP_HALF_DIGIT_BIT) | (Nlo & MP_HALF_DIGIT_MAX);
  ------------------
  |  |   76|  19.7k|#define MP_HALF_DIGIT_MAX UINT_MAX
  ------------------
 4467|  19.7k|    if (r0 < m) {
  ------------------
  |  Branch (4467:9): [True: 4.82k, False: 14.9k]
  ------------------
 4468|  4.82k|        q0--, r0 += divisor;
 4469|  4.82k|        if (r0 >= divisor && r0 < m) {
  ------------------
  |  Branch (4469:13): [True: 2.39k, False: 2.43k]
  |  Branch (4469:30): [True: 908, False: 1.48k]
  ------------------
 4470|    908|            q0--, r0 += divisor;
 4471|    908|        }
 4472|  4.82k|    }
 4473|  19.7k|    if (qp)
  ------------------
  |  Branch (4473:9): [True: 19.7k, False: 0]
  ------------------
 4474|  19.7k|        *qp = (q1 << MP_HALF_DIGIT_BIT) | q0;
  ------------------
  |  |  136|  19.7k|#define MP_HALF_DIGIT_BIT (MP_DIGIT_BIT / 2)
  |  |  ------------------
  |  |  |  |  132|  19.7k|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  |  |  ------------------
  |  |  |  |  |  |  131|  19.7k|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 4475|  19.7k|    if (rp)
  ------------------
  |  Branch (4475:9): [True: 19.7k, False: 0]
  ------------------
 4476|  19.7k|        *rp = r0 - m;
 4477|  19.7k|    return MP_OKAY;
  ------------------
  |  |   39|  19.7k|#define MP_OKAY 0    /* no error, all is well */
  ------------------
 4478|  19.7k|}
s_mp_div:
 4515|  7.90k|{
 4516|  7.90k|    mp_int part, t;
 4517|  7.90k|    mp_digit q_msd;
 4518|  7.90k|    mp_err res;
 4519|  7.90k|    mp_digit d;
 4520|  7.90k|    mp_digit div_msd;
 4521|  7.90k|    int ix;
 4522|       |
 4523|  7.90k|    if (mp_cmp_z(div) == 0)
  ------------------
  |  Branch (4523:9): [True: 0, False: 7.90k]
  ------------------
 4524|      0|        return MP_RANGE;
  ------------------
  |  |   43|      0|#define MP_RANGE -3  /* argument out of range */
  ------------------
 4525|       |
 4526|  7.90k|    DIGITS(&t) = 0;
  ------------------
  |  |  330|  7.90k|#define DIGITS(MP) MP_DIGITS(MP)
  |  |  ------------------
  |  |  |  |  147|  7.90k|#define MP_DIGITS(MP) ((MP)->dp)
  |  |  ------------------
  ------------------
 4527|       |    /* Shortcut if divisor is power of two */
 4528|  7.90k|    if ((ix = s_mp_ispow2(div)) >= 0) {
  ------------------
  |  Branch (4528:9): [True: 824, False: 7.08k]
  ------------------
 4529|    824|        MP_CHECKOK(mp_copy(rem, quot));
  ------------------
  |  |  314|    824|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|    824|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 824]
  |  |  ------------------
  |  |  315|    824|    goto CLEANUP
  ------------------
 4530|    824|        s_mp_div_2d(quot, (mp_digit)ix);
 4531|    824|        s_mp_mod_2d(rem, (mp_digit)ix);
 4532|       |
 4533|    824|        return MP_OKAY;
  ------------------
  |  |   39|    824|#define MP_OKAY 0    /* no error, all is well */
  ------------------
 4534|    824|    }
 4535|       |
 4536|  7.08k|    MP_SIGN(rem) = ZPOS;
  ------------------
  |  |  144|  7.08k|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
                  MP_SIGN(rem) = ZPOS;
  ------------------
  |  |  321|  7.08k|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|  7.08k|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
 4537|  7.08k|    MP_SIGN(div) = ZPOS;
  ------------------
  |  |  144|  7.08k|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
                  MP_SIGN(div) = ZPOS;
  ------------------
  |  |  321|  7.08k|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|  7.08k|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
 4538|  7.08k|    MP_SIGN(&part) = ZPOS;
  ------------------
  |  |  144|  7.08k|#define MP_SIGN(MP) ((MP)->sign)
  ------------------
                  MP_SIGN(&part) = ZPOS;
  ------------------
  |  |  321|  7.08k|#define ZPOS MP_ZPOS
  |  |  ------------------
  |  |  |  |   37|  7.08k|#define MP_ZPOS 0
  |  |  ------------------
  ------------------
 4539|       |
 4540|       |    /* A working temporary for division     */
 4541|  7.08k|    MP_CHECKOK(mp_init_size(&t, MP_ALLOC(rem)));
  ------------------
  |  |  314|  7.08k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  7.08k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 7.08k]
  |  |  ------------------
  |  |  315|  7.08k|    goto CLEANUP
  ------------------
 4542|       |
 4543|       |    /* Normalize to optimize guessing       */
 4544|  7.08k|    MP_CHECKOK(s_mp_norm(rem, div, &d));
  ------------------
  |  |  314|  7.08k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  7.08k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 7.08k]
  |  |  ------------------
  |  |  315|  7.08k|    goto CLEANUP
  ------------------
 4545|       |
 4546|       |    /* Perform the division itself...woo!   */
 4547|  7.08k|    MP_USED(quot) = MP_ALLOC(quot);
  ------------------
  |  |  145|  7.08k|#define MP_USED(MP) ((MP)->used)
  ------------------
                  MP_USED(quot) = MP_ALLOC(quot);
  ------------------
  |  |  146|  7.08k|#define MP_ALLOC(MP) ((MP)->alloc)
  ------------------
 4548|       |
 4549|       |    /* Find a partial substring of rem which is at least div */
 4550|       |    /* If we didn't find one, we're finished dividing    */
 4551|  30.5k|    while (MP_USED(rem) > MP_USED(div) || s_mp_cmp(rem, div) >= 0) {
  ------------------
  |  |  145|  30.5k|#define MP_USED(MP) ((MP)->used)
  ------------------
                  while (MP_USED(rem) > MP_USED(div) || s_mp_cmp(rem, div) >= 0) {
  ------------------
  |  |  145|  61.0k|#define MP_USED(MP) ((MP)->used)
  ------------------
  |  Branch (4551:12): [True: 21.6k, False: 8.85k]
  |  Branch (4551:43): [True: 1.77k, False: 7.08k]
  ------------------
 4552|  23.4k|        int i;
 4553|  23.4k|        int unusedRem;
 4554|  23.4k|        int partExtended = 0; /* set to true if we need to extend part */
 4555|       |
 4556|  23.4k|        unusedRem = MP_USED(rem) - MP_USED(div);
  ------------------
  |  |  145|  23.4k|#define MP_USED(MP) ((MP)->used)
  ------------------
                      unusedRem = MP_USED(rem) - MP_USED(div);
  ------------------
  |  |  145|  23.4k|#define MP_USED(MP) ((MP)->used)
  ------------------
 4557|  23.4k|        MP_DIGITS(&part) = MP_DIGITS(rem) + unusedRem;
  ------------------
  |  |  147|  23.4k|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
                      MP_DIGITS(&part) = MP_DIGITS(rem) + unusedRem;
  ------------------
  |  |  147|  23.4k|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
 4558|  23.4k|        MP_ALLOC(&part) = MP_ALLOC(rem) - unusedRem;
  ------------------
  |  |  146|  23.4k|#define MP_ALLOC(MP) ((MP)->alloc)
  ------------------
                      MP_ALLOC(&part) = MP_ALLOC(rem) - unusedRem;
  ------------------
  |  |  146|  23.4k|#define MP_ALLOC(MP) ((MP)->alloc)
  ------------------
 4559|  23.4k|        MP_USED(&part) = MP_USED(div);
  ------------------
  |  |  145|  23.4k|#define MP_USED(MP) ((MP)->used)
  ------------------
                      MP_USED(&part) = MP_USED(div);
  ------------------
  |  |  145|  23.4k|#define MP_USED(MP) ((MP)->used)
  ------------------
 4560|       |
 4561|       |        /* We have now truncated the part of the remainder to the same length as
 4562|       |         * the divisor. If part is smaller than div, extend part by one digit. */
 4563|  23.4k|        if (s_mp_cmp(&part, div) < 0) {
  ------------------
  |  Branch (4563:13): [True: 20.8k, False: 2.59k]
  ------------------
 4564|  20.8k|            --unusedRem;
 4565|  20.8k|#if MP_ARGCHK == 2
 4566|  20.8k|            assert(unusedRem >= 0);
 4567|  20.8k|#endif
 4568|  20.8k|            --MP_DIGITS(&part);
  ------------------
  |  |  147|  20.8k|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
 4569|  20.8k|            ++MP_USED(&part);
  ------------------
  |  |  145|  20.8k|#define MP_USED(MP) ((MP)->used)
  ------------------
 4570|  20.8k|            ++MP_ALLOC(&part);
  ------------------
  |  |  146|  20.8k|#define MP_ALLOC(MP) ((MP)->alloc)
  ------------------
 4571|  20.8k|            partExtended = 1;
 4572|  20.8k|        }
 4573|       |
 4574|       |        /* Compute a guess for the next quotient digit       */
 4575|  23.4k|        q_msd = MP_DIGIT(&part, MP_USED(&part) - 1);
  ------------------
  |  |  148|  23.4k|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  ------------------
 4576|  23.4k|        div_msd = MP_DIGIT(div, MP_USED(div) - 1);
  ------------------
  |  |  148|  23.4k|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  ------------------
 4577|  23.4k|        if (!partExtended) {
  ------------------
  |  Branch (4577:13): [True: 2.59k, False: 20.8k]
  ------------------
 4578|       |            /* In this case, q_msd /= div_msd is always 1. First, since div_msd is
 4579|       |             * normalized to have the high bit set, 2*div_msd > MP_DIGIT_MAX. Since
 4580|       |             * we didn't extend part, q_msd >= div_msd. Therefore we know that
 4581|       |             * div_msd <= q_msd <= MP_DIGIT_MAX < 2*div_msd. Dividing by div_msd we
 4582|       |             * get 1 <= q_msd/div_msd < 2. So q_msd /= div_msd must be 1. */
 4583|  2.59k|            q_msd = 1;
 4584|  20.8k|        } else {
 4585|  20.8k|            if (q_msd == div_msd) {
  ------------------
  |  Branch (4585:17): [True: 1.10k, False: 19.7k]
  ------------------
 4586|  1.10k|                q_msd = MP_DIGIT_MAX;
  ------------------
  |  |   74|  1.10k|#define MP_DIGIT_MAX ULONG_MAX
  ------------------
 4587|  19.7k|            } else {
 4588|  19.7k|                mp_digit r;
 4589|  19.7k|                MP_CHECKOK(s_mpv_div_2dx1d(q_msd, MP_DIGIT(&part, MP_USED(&part) - 2),
  ------------------
  |  |  314|  19.7k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  19.7k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 19.7k]
  |  |  ------------------
  |  |  315|  19.7k|    goto CLEANUP
  ------------------
 4590|  19.7k|                                           div_msd, &q_msd, &r));
 4591|  19.7k|            }
 4592|  20.8k|        }
 4593|  23.4k|#if MP_ARGCHK == 2
 4594|  23.4k|        assert(q_msd > 0); /* This case should never occur any more. */
 4595|  23.4k|#endif
 4596|  23.4k|        if (q_msd <= 0)
  ------------------
  |  Branch (4596:13): [True: 0, False: 23.4k]
  ------------------
 4597|      0|            break;
 4598|       |
 4599|       |        /* See what that multiplies out to                   */
 4600|  23.4k|        mp_copy(div, &t);
 4601|  23.4k|        MP_CHECKOK(s_mp_mul_d(&t, q_msd));
  ------------------
  |  |  314|  23.4k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  23.4k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 23.4k]
  |  |  ------------------
  |  |  315|  23.4k|    goto CLEANUP
  ------------------
 4602|       |
 4603|       |        /*
 4604|       |           If it's too big, back it off.  We should not have to do this
 4605|       |           more than once, or, in rare cases, twice.  Knuth describes a
 4606|       |           method by which this could be reduced to a maximum of once, but
 4607|       |           I didn't implement that here.
 4608|       |           When using s_mpv_div_2dx1d, we may have to do this 3 times.
 4609|       |         */
 4610|  28.4k|        for (i = 4; s_mp_cmp(&t, &part) > 0 && i > 0; --i) {
  ------------------
  |  Branch (4610:21): [True: 5.01k, False: 23.4k]
  |  Branch (4610:48): [True: 5.01k, False: 0]
  ------------------
 4611|  5.01k|            --q_msd;
 4612|  5.01k|            MP_CHECKOK(s_mp_sub(&t, div)); /* t -= div */
  ------------------
  |  |  314|  5.01k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  5.01k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 5.01k]
  |  |  ------------------
  |  |  315|  5.01k|    goto CLEANUP
  ------------------
 4613|  5.01k|        }
 4614|  23.4k|        if (i < 0) {
  ------------------
  |  Branch (4614:13): [True: 0, False: 23.4k]
  ------------------
 4615|      0|            res = MP_RANGE;
  ------------------
  |  |   43|      0|#define MP_RANGE -3  /* argument out of range */
  ------------------
 4616|      0|            goto CLEANUP;
 4617|      0|        }
 4618|       |
 4619|       |        /* At this point, q_msd should be the right next digit   */
 4620|  23.4k|        MP_CHECKOK(s_mp_sub(&part, &t)); /* part -= t */
  ------------------
  |  |  314|  23.4k|    if (MP_OKAY > (res = (x))) \
  |  |  ------------------
  |  |  |  |   39|  23.4k|#define MP_OKAY 0    /* no error, all is well */
  |  |  ------------------
  |  |  |  Branch (314:9): [True: 0, False: 23.4k]
  |  |  ------------------
  |  |  315|  23.4k|    goto CLEANUP
  ------------------
 4621|  23.4k|        s_mp_clamp(rem);
 4622|       |
 4623|       |        /*
 4624|       |          Include the digit in the quotient.  We allocated enough memory
 4625|       |          for any quotient we could ever possibly get, so we should not
 4626|       |          have to check for failures here
 4627|       |         */
 4628|  23.4k|        MP_DIGIT(quot, unusedRem) = q_msd;
  ------------------
  |  |  148|  23.4k|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  ------------------
 4629|  23.4k|    }
 4630|       |
 4631|       |    /* Denormalize remainder                */
 4632|  7.08k|    if (d) {
  ------------------
  |  Branch (4632:9): [True: 6.66k, False: 422]
  ------------------
 4633|  6.66k|        s_mp_div_2d(rem, d);
 4634|  6.66k|    }
 4635|       |
 4636|  7.08k|    s_mp_clamp(quot);
 4637|       |
 4638|  7.08k|CLEANUP:
 4639|  7.08k|    mp_clear(&t);
 4640|       |
 4641|  7.08k|    return res;
 4642|       |
 4643|  7.08k|} /* end s_mp_div() */
s_mp_cmp:
 4742|  82.1k|{
 4743|  82.1k|    ARGMPCHK(a != NULL && b != NULL);
  ------------------
  |  |  349|  82.1k|#define ARGMPCHK(X) assert(X)
  ------------------
 4744|       |
 4745|  82.1k|    mp_size used_a = MP_USED(a);
  ------------------
  |  |  145|  82.1k|#define MP_USED(MP) ((MP)->used)
  ------------------
 4746|  82.1k|    {
 4747|  82.1k|        mp_size used_b = MP_USED(b);
  ------------------
  |  |  145|  82.1k|#define MP_USED(MP) ((MP)->used)
  ------------------
 4748|       |
 4749|  82.1k|        if (used_a > used_b)
  ------------------
  |  Branch (4749:13): [True: 4.06k, False: 78.0k]
  ------------------
 4750|  4.06k|            goto IS_GT;
 4751|  78.0k|        if (used_a < used_b)
  ------------------
  |  Branch (4751:13): [True: 1.77k, False: 76.3k]
  ------------------
 4752|  1.77k|            goto IS_LT;
 4753|  78.0k|    }
 4754|  76.3k|    {
 4755|  76.3k|        mp_digit *pa, *pb;
 4756|  76.3k|        mp_digit da = 0, db = 0;
 4757|       |
 4758|  76.3k|#define CMP_AB(n)                     \
 4759|  76.3k|    if ((da = pa[n]) != (db = pb[n])) \
 4760|  76.3k|    goto done
 4761|       |
 4762|  76.3k|        pa = MP_DIGITS(a) + used_a;
  ------------------
  |  |  147|  76.3k|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
 4763|  76.3k|        pb = MP_DIGITS(b) + used_a;
  ------------------
  |  |  147|  76.3k|#define MP_DIGITS(MP) ((MP)->dp)
  ------------------
 4764|  81.8k|        while (used_a >= 4) {
  ------------------
  |  Branch (4764:16): [True: 39.2k, False: 42.5k]
  ------------------
 4765|  39.2k|            pa -= 4;
 4766|  39.2k|            pb -= 4;
 4767|  39.2k|            used_a -= 4;
 4768|  39.2k|            CMP_AB(3);
  ------------------
  |  | 4759|  39.2k|    if ((da = pa[n]) != (db = pb[n])) \
  |  |  ------------------
  |  |  |  Branch (4759:9): [True: 19.0k, False: 20.2k]
  |  |  ------------------
  |  | 4760|  39.2k|    goto done
  ------------------
 4769|  20.2k|            CMP_AB(2);
  ------------------
  |  | 4759|  20.2k|    if ((da = pa[n]) != (db = pb[n])) \
  |  |  ------------------
  |  |  |  Branch (4759:9): [True: 10.1k, False: 10.0k]
  |  |  ------------------
  |  | 4760|  20.2k|    goto done
  ------------------
 4770|  10.0k|            CMP_AB(1);
  ------------------
  |  | 4759|  10.0k|    if ((da = pa[n]) != (db = pb[n])) \
  |  |  ------------------
  |  |  |  Branch (4759:9): [True: 2.13k, False: 7.96k]
  |  |  ------------------
  |  | 4760|  10.0k|    goto done
  ------------------
 4771|  7.96k|            CMP_AB(0);
  ------------------
  |  | 4759|  7.96k|    if ((da = pa[n]) != (db = pb[n])) \
  |  |  ------------------
  |  |  |  Branch (4759:9): [True: 2.39k, False: 5.56k]
  |  |  ------------------
  |  | 4760|  7.96k|    goto done
  ------------------
 4772|  7.96k|        }
 4773|  56.2k|        while (used_a-- > 0 && ((da = *--pa) == (db = *--pb)))
  ------------------
  |  Branch (4773:16): [True: 51.0k, False: 5.16k]
  |  Branch (4773:32): [True: 13.6k, False: 37.3k]
  ------------------
 4774|  13.6k|            /* do nothing */;
 4775|  76.3k|    done:
 4776|  76.3k|        if (da > db)
  ------------------
  |  Branch (4776:13): [True: 21.1k, False: 55.1k]
  ------------------
 4777|  21.1k|            goto IS_GT;
 4778|  55.1k|        if (da < db)
  ------------------
  |  Branch (4778:13): [True: 50.0k, False: 5.16k]
  ------------------
 4779|  50.0k|            goto IS_LT;
 4780|  55.1k|    }
 4781|  5.16k|    return MP_EQ;
  ------------------
  |  |   96|  5.16k|#define MP_EQ 0
  ------------------
 4782|  51.8k|IS_LT:
 4783|  51.8k|    return MP_LT;
  ------------------
  |  |   95|  51.8k|#define MP_LT -1
  ------------------
 4784|  25.1k|IS_GT:
 4785|  25.1k|    return MP_GT;
  ------------------
  |  |   97|  25.1k|#define MP_GT 1
  ------------------
 4786|  55.1k|} /* end s_mp_cmp() */
s_mp_cmp_d:
 4795|   446k|{
 4796|   446k|    ARGMPCHK(a != NULL);
  ------------------
  |  |  349|   446k|#define ARGMPCHK(X) assert(X)
  ------------------
 4797|       |
 4798|   446k|    if (USED(a) > 1)
  ------------------
  |  |  328|   446k|#define USED(MP) MP_USED(MP)
  |  |  ------------------
  |  |  |  |  145|   446k|#define MP_USED(MP) ((MP)->used)
  |  |  ------------------
  ------------------
  |  Branch (4798:9): [True: 291k, False: 155k]
  ------------------
 4799|   291k|        return MP_GT;
  ------------------
  |  |   97|   291k|#define MP_GT 1
  ------------------
 4800|       |
 4801|   155k|    if (DIGIT(a, 0) < d)
  ------------------
  |  |  331|   155k|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|   155k|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
  |  Branch (4801:9): [True: 0, False: 155k]
  ------------------
 4802|      0|        return MP_LT;
  ------------------
  |  |   95|      0|#define MP_LT -1
  ------------------
 4803|   155k|    else if (DIGIT(a, 0) > d)
  ------------------
  |  |  331|   155k|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|   155k|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
  |  Branch (4803:14): [True: 71.4k, False: 83.9k]
  ------------------
 4804|  71.4k|        return MP_GT;
  ------------------
  |  |   97|  71.4k|#define MP_GT 1
  ------------------
 4805|  83.9k|    else
 4806|  83.9k|        return MP_EQ;
  ------------------
  |  |   96|  83.9k|#define MP_EQ 0
  ------------------
 4807|       |
 4808|   155k|} /* end s_mp_cmp_d() */
s_mp_ispow2:
 4820|  7.90k|{
 4821|  7.90k|    mp_digit d;
 4822|  7.90k|    int extra = 0, ix;
 4823|       |
 4824|  7.90k|    ARGMPCHK(v != NULL);
  ------------------
  |  |  349|  7.90k|#define ARGMPCHK(X) assert(X)
  ------------------
 4825|       |
 4826|  7.90k|    ix = MP_USED(v) - 1;
  ------------------
  |  |  145|  7.90k|#define MP_USED(MP) ((MP)->used)
  ------------------
 4827|  7.90k|    d = MP_DIGIT(v, ix); /* most significant digit of v */
  ------------------
  |  |  148|  7.90k|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  ------------------
 4828|       |
 4829|  7.90k|    extra = s_mp_ispow2d(d);
 4830|  7.90k|    if (extra < 0 || ix == 0)
  ------------------
  |  Branch (4830:9): [True: 5.90k, False: 2.00k]
  |  Branch (4830:22): [True: 352, False: 1.65k]
  ------------------
 4831|  6.25k|        return extra;
 4832|       |
 4833|  5.20k|    while (--ix >= 0) {
  ------------------
  |  Branch (4833:12): [True: 4.73k, False: 472]
  ------------------
 4834|  4.73k|        if (DIGIT(v, ix) != 0)
  ------------------
  |  |  331|  4.73k|#define DIGIT(MP, N) MP_DIGIT(MP, N)
  |  |  ------------------
  |  |  |  |  148|  4.73k|#define MP_DIGIT(MP, N) (MP)->dp[(N)]
  |  |  ------------------
  ------------------
  |  Branch (4834:13): [True: 1.18k, False: 3.55k]
  ------------------
 4835|  1.18k|            return -1; /* not a power of two */
 4836|  3.55k|        extra += MP_DIGIT_BIT;
  ------------------
  |  |  132|  3.55k|#define MP_DIGIT_BIT (CHAR_BIT * MP_DIGIT_SIZE)
  |  |  ------------------
  |  |  |  |  131|  3.55k|#define MP_DIGIT_SIZE sizeof(mp_digit)
  |  |  ------------------
  ------------------
 4837|  3.55k|    }
 4838|       |
 4839|    472|    return extra;
 4840|       |
 4841|  1.65k|} /* end s_mp_ispow2() */
s_mp_ispow2d:
 4849|  1.37M|{
 4850|  1.37M|    if ((d != 0) && ((d & (d - 1)) == 0)) { /* d is a power of 2 */
  ------------------
  |  Branch (4850:9): [True: 1.37M, False: 0]
  |  Branch (4850:21): [True: 1.34M, False: 23.5k]
  ------------------
 4851|  1.34M|        int pow = 0;
 4852|       |#if defined(MP_USE_UINT_DIGIT)
 4853|       |        if (d & 0xffff0000U)
 4854|       |            pow += 16;
 4855|       |        if (d & 0xff00ff00U)
 4856|       |            pow += 8;
 4857|       |        if (d & 0xf0f0f0f0U)
 4858|       |            pow += 4;
 4859|       |        if (d & 0xccccccccU)
 4860|       |            pow += 2;
 4861|       |        if (d & 0xaaaaaaaaU)
 4862|       |            pow += 1;
 4863|       |#elif defined(MP_USE_LONG_LONG_DIGIT)
 4864|       |        if (d & 0xffffffff00000000ULL)
 4865|       |            pow += 32;
 4866|       |        if (d & 0xffff0000ffff0000ULL)
 4867|       |            pow += 16;
 4868|       |        if (d & 0xff00ff00ff00ff00ULL)
 4869|       |            pow += 8;
 4870|       |        if (d & 0xf0f0f0f0f0f0f0f0ULL)
 4871|       |            pow += 4;
 4872|       |        if (d & 0xccccccccccccccccULL)
 4873|       |            pow += 2;
 4874|       |        if (d & 0xaaaaaaaaaaaaaaaaULL)
 4875|       |            pow += 1;
 4876|       |#elif defined(MP_USE_LONG_DIGIT)
 4877|  1.34M|        if (d & 0xffffffff00000000UL)
  ------------------
  |  Branch (4877:13): [True: 804, False: 1.34M]
  ------------------
 4878|    804|            pow += 32;
 4879|  1.34M|        if (d & 0xffff0000ffff0000UL)
  ------------------
  |  Branch (4879:13): [True: 708, False: 1.34M]
  ------------------
 4880|    708|            pow += 16;
 4881|  1.34M|        if (d & 0xff00ff00ff00ff00UL)
  ------------------
  |  Branch (4881:13): [True: 426k, False: 923k]
  ------------------
 4882|   426k|            pow += 8;
 4883|  1.34M|        if (d & 0xf0f0f0f0f0f0f0f0UL)
  ------------------
  |  Branch (4883:13): [True: 920k, False: 429k]
  ------------------
 4884|   920k|            pow += 4;
 4885|  1.34M|        if (d & 0xccccccccccccccccUL)
  ------------------
  |  Branch (4885:13): [True: 1.08k, False: 1.34M]
  ------------------
 4886|  1.08k|            pow += 2;
 4887|  1.34M|        if (d & 0xaaaaaaaaaaaaaaaaUL)
  ------------------
  |  Branch (4887:13): [True: 1.81k, False: 1.34M]
  ------------------
 4888|  1.81k|            pow += 1;
 4889|       |#else
 4890|       |#error "unknown type for mp_digit"
 4891|       |#endif
 4892|  1.34M|        return pow;
 4893|  1.34M|    }
 4894|  23.5k|    return -1;
 4895|       |
 4896|  1.37M|} /* end s_mp_ispow2d() */
s_mp_todigit:
 4959|   919k|{
 4960|   919k|    char ch;
 4961|       |
 4962|   919k|    if (val >= r)
  ------------------
  |  Branch (4962:9): [True: 0, False: 919k]
  ------------------
 4963|      0|        return 0;
 4964|       |
 4965|   919k|    ch = s_dmap_1[val];
 4966|       |
 4967|   919k|    if (r <= 36 && low)
  ------------------
  |  Branch (4967:9): [True: 919k, False: 0]
  |  Branch (4967:20): [True: 0, False: 919k]
  ------------------
 4968|      0|        ch = tolower(ch);
 4969|       |
 4970|   919k|    return ch;
 4971|       |
 4972|   919k|} /* end s_mp_todigit() */

