Lines Matching refs:X
28 #define _FP_FRAC_DECL_4(X) _FP_W_TYPE X##_f[4] argument
32 #define _FP_FRAC_SET_4(X,I) __FP_FRAC_SET_4(X, I) argument
33 #define _FP_FRAC_HIGH_4(X) (X##_f[3]) argument
34 #define _FP_FRAC_LOW_4(X) (X##_f[0]) argument
35 #define _FP_FRAC_WORD_4(X,w) (X##_f[w]) argument
37 #define _FP_FRAC_SLL_4(X,N) \ argument
45 X##_f[_i] = X##_f[_i-_skip]; \
49 X##_f[_i] = X##_f[_i-_skip] << _up \
50 | X##_f[_i-_skip-1] >> _down; \
51 X##_f[_i--] = X##_f[0] << _up; \
54 X##_f[_i] = 0; \
58 #define _FP_FRAC_SRL_4(X,N) \ argument
66 X##_f[_i] = X##_f[_i+_skip]; \
70 X##_f[_i] = X##_f[_i+_skip] >> _down \
71 | X##_f[_i+_skip+1] << _up; \
72 X##_f[_i++] = X##_f[3] >> _down; \
75 X##_f[_i] = 0; \
84 #define _FP_FRAC_SRS_4(X,N,size) \ argument
92 _s |= X##_f[_i]; \
93 _s |= X##_f[_i] << _up; \
97 X##_f[_i] = X##_f[_i+_skip]; \
101 X##_f[_i] = X##_f[_i+_skip] >> _down \
102 | X##_f[_i+_skip+1] << _up; \
103 X##_f[_i++] = X##_f[3] >> _down; \
106 X##_f[_i] = 0; \
108 X##_f[0] |= (_s != 0); \
111 #define _FP_FRAC_ADD_4(R,X,Y) \ argument
113 X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
116 #define _FP_FRAC_SUB_4(R,X,Y) \ argument
118 X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
121 #define _FP_FRAC_DEC_4(X,Y) \ argument
122 __FP_FRAC_DEC_4(X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
125 #define _FP_FRAC_ADDI_4(X,I) \ argument
126 __FP_FRAC_ADDI_4(X##_f[3], X##_f[2], X##_f[1], X##_f[0], I)
132 #define _FP_FRAC_ZEROP_4(X) ((X##_f[0] | X##_f[1] | X##_f[2] | X##_f[3]) == 0) argument
133 #define _FP_FRAC_NEGP_4(X) ((_FP_WS_TYPE)X##_f[3] < 0) argument
134 #define _FP_FRAC_OVERP_4(fs,X) (_FP_FRAC_HIGH_##fs(X) & _FP_OVERFLOW_##fs) argument
135 #define _FP_FRAC_CLEAR_OVERP_4(fs,X) (_FP_FRAC_HIGH_##fs(X) &= ~_FP_OVERFLOW_##fs) argument
137 #define _FP_FRAC_EQ_4(X,Y) \ argument
138 (X##_f[0] == Y##_f[0] && X##_f[1] == Y##_f[1] \
139 && X##_f[2] == Y##_f[2] && X##_f[3] == Y##_f[3])
141 #define _FP_FRAC_GT_4(X,Y) \ argument
142 (X##_f[3] > Y##_f[3] || \
143 (X##_f[3] == Y##_f[3] && (X##_f[2] > Y##_f[2] || \
144 (X##_f[2] == Y##_f[2] && (X##_f[1] > Y##_f[1] || \
145 (X##_f[1] == Y##_f[1] && X##_f[0] > Y##_f[0]) \
150 #define _FP_FRAC_GE_4(X,Y) \ argument
151 (X##_f[3] > Y##_f[3] || \
152 (X##_f[3] == Y##_f[3] && (X##_f[2] > Y##_f[2] || \
153 (X##_f[2] == Y##_f[2] && (X##_f[1] > Y##_f[1] || \
154 (X##_f[1] == Y##_f[1] && X##_f[0] >= Y##_f[0]) \
160 #define _FP_FRAC_CLZ_4(R,X) \ argument
162 if (X##_f[3]) \
164 __FP_CLZ(R,X##_f[3]); \
166 else if (X##_f[2]) \
168 __FP_CLZ(R,X##_f[2]); \
171 else if (X##_f[1]) \
173 __FP_CLZ(R,X##_f[2]); \
178 __FP_CLZ(R,X##_f[0]); \
184 #define _FP_UNPACK_RAW_4(fs, X, val) \ argument
187 X##_f[0] = _flo.bits.frac0; \
188 X##_f[1] = _flo.bits.frac1; \
189 X##_f[2] = _flo.bits.frac2; \
190 X##_f[3] = _flo.bits.frac3; \
191 X##_e = _flo.bits.exp; \
192 X##_s = _flo.bits.sign; \
195 #define _FP_UNPACK_RAW_4_P(fs, X, val) \ argument
200 X##_f[0] = _flo->bits.frac0; \
201 X##_f[1] = _flo->bits.frac1; \
202 X##_f[2] = _flo->bits.frac2; \
203 X##_f[3] = _flo->bits.frac3; \
204 X##_e = _flo->bits.exp; \
205 X##_s = _flo->bits.sign; \
208 #define _FP_PACK_RAW_4(fs, val, X) \ argument
211 _flo.bits.frac0 = X##_f[0]; \
212 _flo.bits.frac1 = X##_f[1]; \
213 _flo.bits.frac2 = X##_f[2]; \
214 _flo.bits.frac3 = X##_f[3]; \
215 _flo.bits.exp = X##_e; \
216 _flo.bits.sign = X##_s; \
220 #define _FP_PACK_RAW_4_P(fs, val, X) \ argument
225 _flo->bits.frac0 = X##_f[0]; \
226 _flo->bits.frac1 = X##_f[1]; \
227 _flo->bits.frac2 = X##_f[2]; \
228 _flo->bits.frac3 = X##_f[3]; \
229 _flo->bits.exp = X##_e; \
230 _flo->bits.sign = X##_s; \
239 #define _FP_MUL_MEAT_4_wide(wfracbits, R, X, Y, doit) \ argument
244 doit(_FP_FRAC_WORD_8(_z,1), _FP_FRAC_WORD_8(_z,0), X##_f[0], Y##_f[0]); \
245 doit(_b_f1, _b_f0, X##_f[0], Y##_f[1]); \
246 doit(_c_f1, _c_f0, X##_f[1], Y##_f[0]); \
247 doit(_d_f1, _d_f0, X##_f[1], Y##_f[1]); \
248 doit(_e_f1, _e_f0, X##_f[0], Y##_f[2]); \
249 doit(_f_f1, _f_f0, X##_f[2], Y##_f[0]); \
268 doit(_b_f1, _b_f0, X##_f[0], Y##_f[3]); \
269 doit(_c_f1, _c_f0, X##_f[3], Y##_f[0]); \
270 doit(_d_f1, _d_f0, X##_f[1], Y##_f[2]); \
271 doit(_e_f1, _e_f0, X##_f[2], Y##_f[1]); \
287 doit(_b_f1, _b_f0, X##_f[2], Y##_f[2]); \
288 doit(_c_f1, _c_f0, X##_f[1], Y##_f[3]); \
289 doit(_d_f1, _d_f0, X##_f[3], Y##_f[1]); \
290 doit(_e_f1, _e_f0, X##_f[2], Y##_f[3]); \
291 doit(_f_f1, _f_f0, X##_f[3], Y##_f[2]); \
310 doit(_b_f1, _b_f0, X##_f[3], Y##_f[3]); \
323 #define _FP_MUL_MEAT_4_gmp(wfracbits, R, X, Y) \ argument
355 #define _FP_DIV_MEAT_4_udiv(fs, R, X, Y) \ argument
360 if (_FP_FRAC_GT_4(X, Y)) \
362 _n_f[3] = X##_f[0] << (_FP_W_TYPE_SIZE - 1); \
363 _FP_FRAC_SRL_4(X, 1); \
374 if (X##_f[3] == Y##_f[3]) \
383 __FP_FRAC_SUB_4(X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
385 X##_f[2], X##_f[1], X##_f[0], _n_f[_i]); \
386 _FP_FRAC_SUB_4(X, Y, X); \
387 if (X##_f[3] > Y##_f[3]) \
390 _FP_FRAC_ADD_4(X, Y, X); \
395 udiv_qrnnd(R##_f[_i], X##_f[3], X##_f[3], X##_f[2], Y##_f[3]); \
398 X##_f[2] = X##_f[1]; \
399 X##_f[1] = X##_f[0]; \
400 X##_f[0] = _n_f[_i]; \
401 if (_FP_FRAC_GT_4(_m, X)) \
404 _FP_FRAC_ADD_4(X, Y, X); \
405 if (_FP_FRAC_GE_4(X, Y) && _FP_FRAC_GT_4(_m, X)) \
408 _FP_FRAC_ADD_4(X, Y, X); \
411 _FP_FRAC_DEC_4(X, _m); \
414 if (!_FP_FRAC_EQ_4(X, _m)) \
429 #define _FP_SQRT_MEAT_4(R, S, T, X, q) \ argument
434 if (T##_f[3] <= X##_f[3]) \
437 X##_f[3] -= T##_f[3]; \
440 _FP_FRAC_SLL_4(X, 1); \
448 if (T##_f[3] < X##_f[3] || \
449 (T##_f[3] == X##_f[3] && T##_f[2] <= X##_f[2])) \
453 __FP_FRAC_DEC_2(X##_f[3], X##_f[2], \
457 _FP_FRAC_SLL_4(X, 1); \
466 if (T##_f[3] < X##_f[3] || \
467 (T##_f[3] == X##_f[3] && (T##_f[2] < X##_f[2] || \
468 (T##_f[2] == X##_f[2] && T##_f[1] <= X##_f[1])))) \
473 __FP_FRAC_DEC_3(X##_f[3], X##_f[2], X##_f[1], \
477 _FP_FRAC_SLL_4(X, 1); \
487 if (_FP_FRAC_GE_4(X,T)) \
493 _FP_FRAC_DEC_4(X, T); \
496 _FP_FRAC_SLL_4(X, 1); \
499 if (!_FP_FRAC_ZEROP_4(X)) \
501 if (_FP_FRAC_GT_4(X,S)) \
512 #define __FP_FRAC_SET_4(X,I3,I2,I1,I0) \ argument
513 (X##_f[3] = I3, X##_f[2] = I2, X##_f[1] = I1, X##_f[0] = I0)
640 #define _FP_FRAC_ASSEMBLE_4(r, X, rsize) \ argument
643 r = X##_f[0]; \
646 r = X##_f[1]; \
648 r += X##_f[0]; \
654 r = X##_f[3]; \
656 r += X##_f[2]; \
658 r += X##_f[1]; \
660 r += X##_f[0]; \
669 #define _FP_FRAC_DISASSEMBLE_4(X, r, rsize) \ argument
671 X##_f[0] = r; \
672 X##_f[1] = (rsize <= _FP_W_TYPE_SIZE ? 0 : r >> _FP_W_TYPE_SIZE); \
673 X##_f[2] = (rsize <= 2*_FP_W_TYPE_SIZE ? 0 : r >> 2*_FP_W_TYPE_SIZE); \
674 X##_f[3] = (rsize <= 3*_FP_W_TYPE_SIZE ? 0 : r >> 3*_FP_W_TYPE_SIZE); \