_f0
#define MFIO_MUX_PIN_GROUP(_pin, _f0, _f1, _f2, _reg, _shift, _mask) \
PISTACHIO_FUNCTION_##_f0, \
__FP_CLZ(R,X##_f0); \
#define _FP_FRAC_ZEROP_2(X) ((X##_f1 | X##_f0) == 0)
#define _FP_FRAC_EQ_2(X, Y) (X##_f1 == Y##_f1 && X##_f0 == Y##_f0)
(X##_f1 > Y##_f1 || (X##_f1 == Y##_f1 && X##_f0 > Y##_f0))
(X##_f1 > Y##_f1 || (X##_f1 == Y##_f1 && X##_f0 >= Y##_f0))
#define __FP_FRAC_SET_2(X,I1,I0) (X##_f0 = I0, X##_f1 = I1)
X##_f0 = _flo.bits.frac0; \
X##_f0 = _flo->bits.frac0; \
_flo.bits.frac0 = X##_f0; \
_flo->bits.frac0 = X##_f0; \
doit(_FP_FRAC_WORD_4(_z,1), _FP_FRAC_WORD_4(_z,0), X##_f0, Y##_f0); \
doit(_b_f1, _b_f0, X##_f0, Y##_f1); \
doit(_c_f1, _c_f0, X##_f1, Y##_f0); \
R##_f0 = _FP_FRAC_WORD_4(_z,0); \
_b_f0 = X##_f0 + X##_f1; \
_c1 = _b_f0 < X##_f0; \
_b_f1 = Y##_f0 + Y##_f1; \
_c2 = _b_f1 < Y##_f0; \
doit(_d, _FP_FRAC_WORD_4(_z,0), X##_f0, Y##_f0); \
#define _FP_FRAC_DECL_2(X) _FP_W_TYPE X##_f0 = 0, X##_f1 = 0
#define _FP_FRAC_COPY_2(D,S) (D##_f0 = S##_f0, D##_f1 = S##_f1)
R##_f0 = _FP_FRAC_WORD_4(_z,0); \
_x[0] = X##_f0; _x[1] = X##_f1; \
_y[0] = Y##_f0; _y[1] = Y##_f1; \
R##_f0 = _z_f[0]; \
#define _FP_FRAC_LOW_2(X) (X##_f0)
_e240 = (double)(long)(X##_f0 & 0xffffff); \
_j240 = (double)(long)(Y##_f0 & 0xffffff); \
_d240 = (double)(long)((X##_f0 >> 24) & 0xffffff); \
_i240 = (double)(long)((Y##_f0 >> 24) & 0xffffff); \
_c240 = (double)(long)(((X##_f1 << 16) & 0xffffff) | (X##_f0 >> 48)); \
_h240 = (double)(long)(((Y##_f1 << 16) & 0xffffff) | (Y##_f0 >> 48)); \
(((_FP_WS_TYPE) (X##_f0)) < 0); \
X##_f0 += X##_f0; \
R##_f0 = ((_u240 & 0xffffff) << (168 - (wfracbits - 1))) \
X##_f1 = X##_f1 << (N) | X##_f0 >> \
_n_f1 = X##_f1 << (_FP_W_TYPE_SIZE - 1) | X##_f0 >> 1; \
_n_f0 = X##_f0 << (_FP_W_TYPE_SIZE - 1); \
_n_f1 = X##_f0; \
X##_f0 <<= (N); \
umul_ppmm(_m_f1, _m_f0, R##_f1, Y##_f0); \
R##_f0 = -1; \
udiv_qrnnd(R##_f0, _r_f1, _r_f1, _r_f0, Y##_f1); \
umul_ppmm(_m_f1, _m_f0, R##_f0, Y##_f0); \
R##_f0--; \
R##_f0--; \
R##_f0 |= _FP_WORK_STICKY; \
X##_f1 = X##_f0 << ((N) - _FP_W_TYPE_SIZE); \
_y[0] = Y##_f0; _y[1] = Y##_f1; \
_x[1] = (X##_f0 << (_FP_WFRACBITS_##fs-1 - _FP_W_TYPE_SIZE) | \
X##_f0 = 0; \
_x[1] = (X##_f0 << (_FP_WFRACBITS_##fs - _FP_W_TYPE_SIZE) | \
R##_f0 = _z[0] | ((_x[0] | _x[1]) != 0); \
T##_f0 = S##_f0 + q; \
(T##_f1 == X##_f1 && T##_f0 <= X##_f0)) \
S##_f0 = T##_f0 + q; \
S##_f1 += (T##_f0 > S##_f0); \
R##_f0 += q; \
if (X##_f0 | X##_f1) \
(S##_f1 == X##_f1 && S##_f0 < X##_f0)) \
R##_f0 |= _FP_WORK_ROUND; \
R##_f0 |= _FP_WORK_STICKY; \
X##_f0 = X##_f0 >> (N) | X##_f1 << (_FP_W_TYPE_SIZE - (N)); \
? ({ (r) = X##_f0; }) \
(r) += X##_f0; \
X##_f0 = r; \
D##_f = S##_f0; \
D##_f0 = S##_f; \
X##_f0 = X##_f1 >> ((N) - _FP_W_TYPE_SIZE); \
X##_f0 = (X##_f1 << (_FP_W_TYPE_SIZE - (N)) | X##_f0 >> (N) \
? X##_f0 & 1 \
: (X##_f0 << (_FP_W_TYPE_SIZE - (N))) != 0)); \
X##_f0 = (X##_f1 >> ((N) - _FP_W_TYPE_SIZE) \
| X##_f0) != 0)); \
__FP_FRAC_ADDI_2(X##_f1, X##_f0, I)
__FP_FRAC_ADD_2(R##_f1, R##_f0, X##_f1, X##_f0, Y##_f1, Y##_f0)
__FP_FRAC_SUB_2(R##_f1, R##_f0, X##_f1, X##_f0, Y##_f1, Y##_f0)
__FP_FRAC_DEC_2(X##_f1, X##_f0, Y##_f1, Y##_f0)
D##_f0 = S##_f[0]; \
D##_f[0] = S##_f0; \