Lines Matching refs:X

32 #define _FP_FRAC_DECL_4(X)	_FP_W_TYPE X##_f[4]  argument
36 #define _FP_FRAC_SET_4(X, I) __FP_FRAC_SET_4 (X, I) argument
37 #define _FP_FRAC_HIGH_4(X) (X##_f[3]) argument
38 #define _FP_FRAC_LOW_4(X) (X##_f[0]) argument
39 #define _FP_FRAC_WORD_4(X, w) (X##_f[w]) argument
41 #define _FP_FRAC_SLL_4(X, N) \ argument
53 X##_f[_FP_FRAC_SLL_4_i] \
54 = X##_f[_FP_FRAC_SLL_4_i-_FP_FRAC_SLL_4_skip]; \
60 X##_f[_FP_FRAC_SLL_4_i] \
61 = ((X##_f[_FP_FRAC_SLL_4_i-_FP_FRAC_SLL_4_skip] \
63 | (X##_f[_FP_FRAC_SLL_4_i-_FP_FRAC_SLL_4_skip-1] \
65 X##_f[_FP_FRAC_SLL_4_i--] = X##_f[0] << _FP_FRAC_SLL_4_up; \
68 X##_f[_FP_FRAC_SLL_4_i] = 0; \
73 #define _FP_FRAC_SRL_4(X, N) \ argument
85 X##_f[_FP_FRAC_SRL_4_i] \
86 = X##_f[_FP_FRAC_SRL_4_i+_FP_FRAC_SRL_4_skip]; \
92 X##_f[_FP_FRAC_SRL_4_i] \
93 = ((X##_f[_FP_FRAC_SRL_4_i+_FP_FRAC_SRL_4_skip] \
95 | (X##_f[_FP_FRAC_SRL_4_i+_FP_FRAC_SRL_4_skip+1] \
97 X##_f[_FP_FRAC_SRL_4_i++] = X##_f[3] >> _FP_FRAC_SRL_4_down; \
100 X##_f[_FP_FRAC_SRL_4_i] = 0; \
109 #define _FP_FRAC_SRST_4(X, S, N, size) \ argument
121 _FP_FRAC_SRST_4_s |= X##_f[_FP_FRAC_SRST_4_i]; \
126 X##_f[_FP_FRAC_SRST_4_i] \
127 = X##_f[_FP_FRAC_SRST_4_i+_FP_FRAC_SRST_4_skip]; \
131 |= X##_f[_FP_FRAC_SRST_4_i] << _FP_FRAC_SRST_4_up; \
135 X##_f[_FP_FRAC_SRST_4_i] \
136 = ((X##_f[_FP_FRAC_SRST_4_i+_FP_FRAC_SRST_4_skip] \
138 | (X##_f[_FP_FRAC_SRST_4_i+_FP_FRAC_SRST_4_skip+1] \
140 X##_f[_FP_FRAC_SRST_4_i++] \
141 = X##_f[3] >> _FP_FRAC_SRST_4_down; \
144 X##_f[_FP_FRAC_SRST_4_i] = 0; \
149 #define _FP_FRAC_SRS_4(X, N, size) \ argument
153 _FP_FRAC_SRST_4 (X, _FP_FRAC_SRS_4_sticky, (N), (size)); \
154 X##_f[0] |= _FP_FRAC_SRS_4_sticky; \
158 #define _FP_FRAC_ADD_4(R, X, Y) \ argument
160 X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
163 #define _FP_FRAC_SUB_4(R, X, Y) \ argument
165 X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
168 #define _FP_FRAC_DEC_4(X, Y) \ argument
169 __FP_FRAC_DEC_4 (X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
172 #define _FP_FRAC_ADDI_4(X, I) \ argument
173 __FP_FRAC_ADDI_4 (X##_f[3], X##_f[2], X##_f[1], X##_f[0], I)
179 #define _FP_FRAC_ZEROP_4(X) ((X##_f[0] | X##_f[1] | X##_f[2] | X##_f[3]) == 0) argument
180 #define _FP_FRAC_NEGP_4(X) ((_FP_WS_TYPE) X##_f[3] < 0) argument
181 #define _FP_FRAC_OVERP_4(fs, X) (_FP_FRAC_HIGH_##fs (X) & _FP_OVERFLOW_##fs) argument
182 #define _FP_FRAC_HIGHBIT_DW_4(fs, X) \ argument
183 (_FP_FRAC_HIGH_DW_##fs (X) & _FP_HIGHBIT_DW_##fs)
184 #define _FP_FRAC_CLEAR_OVERP_4(fs, X) (_FP_FRAC_HIGH_##fs (X) &= ~_FP_OVERFLOW_##fs) argument
186 #define _FP_FRAC_EQ_4(X, Y) \ argument
187 (X##_f[0] == Y##_f[0] && X##_f[1] == Y##_f[1] \
188 && X##_f[2] == Y##_f[2] && X##_f[3] == Y##_f[3])
190 #define _FP_FRAC_GT_4(X, Y) \ argument
191 (X##_f[3] > Y##_f[3] \
192 || (X##_f[3] == Y##_f[3] \
193 && (X##_f[2] > Y##_f[2] \
194 || (X##_f[2] == Y##_f[2] \
195 && (X##_f[1] > Y##_f[1] \
196 || (X##_f[1] == Y##_f[1] \
197 && X##_f[0] > Y##_f[0]))))))
199 #define _FP_FRAC_GE_4(X, Y) \ argument
200 (X##_f[3] > Y##_f[3] \
201 || (X##_f[3] == Y##_f[3] \
202 && (X##_f[2] > Y##_f[2] \
203 || (X##_f[2] == Y##_f[2] \
204 && (X##_f[1] > Y##_f[1] \
205 || (X##_f[1] == Y##_f[1] \
206 && X##_f[0] >= Y##_f[0]))))))
209 #define _FP_FRAC_CLZ_4(R, X) \ argument
212 if (X##_f[3]) \
213 __FP_CLZ ((R), X##_f[3]); \
214 else if (X##_f[2]) \
216 __FP_CLZ ((R), X##_f[2]); \
219 else if (X##_f[1]) \
221 __FP_CLZ ((R), X##_f[1]); \
226 __FP_CLZ ((R), X##_f[0]); \
233 #define _FP_UNPACK_RAW_4(fs, X, val) \ argument
238 X##_f[0] = _FP_UNPACK_RAW_4_flo.bits.frac0; \
239 X##_f[1] = _FP_UNPACK_RAW_4_flo.bits.frac1; \
240 X##_f[2] = _FP_UNPACK_RAW_4_flo.bits.frac2; \
241 X##_f[3] = _FP_UNPACK_RAW_4_flo.bits.frac3; \
242 X##_e = _FP_UNPACK_RAW_4_flo.bits.exp; \
243 X##_s = _FP_UNPACK_RAW_4_flo.bits.sign; \
247 #define _FP_UNPACK_RAW_4_P(fs, X, val) \ argument
253 X##_f[0] = _FP_UNPACK_RAW_4_P_flo->bits.frac0; \
254 X##_f[1] = _FP_UNPACK_RAW_4_P_flo->bits.frac1; \
255 X##_f[2] = _FP_UNPACK_RAW_4_P_flo->bits.frac2; \
256 X##_f[3] = _FP_UNPACK_RAW_4_P_flo->bits.frac3; \
257 X##_e = _FP_UNPACK_RAW_4_P_flo->bits.exp; \
258 X##_s = _FP_UNPACK_RAW_4_P_flo->bits.sign; \
262 #define _FP_PACK_RAW_4(fs, val, X) \ argument
266 _FP_PACK_RAW_4_flo.bits.frac0 = X##_f[0]; \
267 _FP_PACK_RAW_4_flo.bits.frac1 = X##_f[1]; \
268 _FP_PACK_RAW_4_flo.bits.frac2 = X##_f[2]; \
269 _FP_PACK_RAW_4_flo.bits.frac3 = X##_f[3]; \
270 _FP_PACK_RAW_4_flo.bits.exp = X##_e; \
271 _FP_PACK_RAW_4_flo.bits.sign = X##_s; \
276 #define _FP_PACK_RAW_4_P(fs, val, X) \ argument
282 _FP_PACK_RAW_4_P_flo->bits.frac0 = X##_f[0]; \
283 _FP_PACK_RAW_4_P_flo->bits.frac1 = X##_f[1]; \
284 _FP_PACK_RAW_4_P_flo->bits.frac2 = X##_f[2]; \
285 _FP_PACK_RAW_4_P_flo->bits.frac3 = X##_f[3]; \
286 _FP_PACK_RAW_4_P_flo->bits.exp = X##_e; \
287 _FP_PACK_RAW_4_P_flo->bits.sign = X##_s; \
295 #define _FP_MUL_MEAT_DW_4_wide(wfracbits, R, X, Y, doit) \ argument
305 X##_f[0], Y##_f[0]); \
307 X##_f[0], Y##_f[1]); \
309 X##_f[1], Y##_f[0]); \
311 X##_f[1], Y##_f[1]); \
313 X##_f[0], Y##_f[2]); \
315 X##_f[2], Y##_f[0]); \
345 _FP_MUL_MEAT_DW_4_wide_b_f0, X##_f[0], Y##_f[3]); \
347 _FP_MUL_MEAT_DW_4_wide_c_f0, X##_f[3], Y##_f[0]); \
349 X##_f[1], Y##_f[2]); \
351 X##_f[2], Y##_f[1]); \
376 X##_f[2], Y##_f[2]); \
378 X##_f[1], Y##_f[3]); \
380 X##_f[3], Y##_f[1]); \
382 X##_f[2], Y##_f[3]); \
384 X##_f[3], Y##_f[2]); \
414 X##_f[3], Y##_f[3]); \
422 #define _FP_MUL_MEAT_4_wide(wfracbits, R, X, Y, doit) \ argument
428 X, Y, doit); \
442 #define _FP_MUL_MEAT_DW_4_gmp(wfracbits, R, X, Y) \ argument
449 #define _FP_MUL_MEAT_4_gmp(wfracbits, R, X, Y) \ argument
454 _FP_MUL_MEAT_DW_4_gmp ((wfracbits), _FP_MUL_MEAT_4_gmp_z, X, Y); \
484 #define _FP_DIV_MEAT_4_udiv(fs, R, X, Y) \ argument
491 if (_FP_FRAC_GE_4 (X, Y)) \
494 = X##_f[0] << (_FP_W_TYPE_SIZE - 1); \
495 _FP_FRAC_SRL_4 (X, 1); \
506 if (X##_f[3] == Y##_f[3]) \
516 __FP_FRAC_SUB_4 (X##_f[3], X##_f[2], X##_f[1], X##_f[0], \
518 X##_f[2], X##_f[1], X##_f[0], \
520 _FP_FRAC_SUB_4 (X, Y, X); \
521 if (X##_f[3] > Y##_f[3]) \
524 _FP_FRAC_ADD_4 (X, Y, X); \
530 X##_f[3], X##_f[3], X##_f[2], Y##_f[3]); \
537 X##_f[2] = X##_f[1]; \
538 X##_f[1] = X##_f[0]; \
539 X##_f[0] \
541 if (_FP_FRAC_GT_4 (_FP_DIV_MEAT_4_udiv_m, X)) \
544 _FP_FRAC_ADD_4 (X, Y, X); \
545 if (_FP_FRAC_GE_4 (X, Y) \
546 && _FP_FRAC_GT_4 (_FP_DIV_MEAT_4_udiv_m, X)) \
549 _FP_FRAC_ADD_4 (X, Y, X); \
552 _FP_FRAC_DEC_4 (X, _FP_DIV_MEAT_4_udiv_m); \
555 if (!_FP_FRAC_EQ_4 (X, _FP_DIV_MEAT_4_udiv_m)) \
569 #define _FP_SQRT_MEAT_4(R, S, T, X, q) \ argument
575 if (T##_f[3] <= X##_f[3]) \
578 X##_f[3] -= T##_f[3]; \
581 _FP_FRAC_SLL_4 (X, 1); \
589 if (T##_f[3] < X##_f[3] \
590 || (T##_f[3] == X##_f[3] && T##_f[2] <= X##_f[2])) \
594 __FP_FRAC_DEC_2 (X##_f[3], X##_f[2], \
598 _FP_FRAC_SLL_4 (X, 1); \
607 if (T##_f[3] < X##_f[3] \
608 || (T##_f[3] == X##_f[3] \
609 && (T##_f[2] < X##_f[2] \
610 || (T##_f[2] == X##_f[2] \
611 && T##_f[1] <= X##_f[1])))) \
616 __FP_FRAC_DEC_3 (X##_f[3], X##_f[2], X##_f[1], \
620 _FP_FRAC_SLL_4 (X, 1); \
630 if (_FP_FRAC_GE_4 (X, T)) \
636 _FP_FRAC_DEC_4 (X, T); \
639 _FP_FRAC_SLL_4 (X, 1); \
642 if (!_FP_FRAC_ZEROP_4 (X)) \
644 if (_FP_FRAC_GT_4 (X, S)) \
654 #define __FP_FRAC_SET_4(X, I3, I2, I1, I0) \ argument
655 (X##_f[3] = I3, X##_f[2] = I2, X##_f[1] = I1, X##_f[0] = I0)
805 #define _FP_FRAC_ASSEMBLE_4(r, X, rsize) \ argument
809 (r) = X##_f[0]; \
812 (r) = X##_f[1]; \
816 (r) += X##_f[0]; \
822 (r) = X##_f[3]; \
826 (r) += X##_f[2]; \
830 (r) += X##_f[1]; \
834 (r) += X##_f[0]; \
843 #define _FP_FRAC_DISASSEMBLE_4(X, r, rsize) \ argument
846 X##_f[0] = (r); \
847 X##_f[1] = ((rsize) <= _FP_W_TYPE_SIZE \
850 X##_f[2] = ((rsize) <= 2*_FP_W_TYPE_SIZE \
853 X##_f[3] = ((rsize) <= 3*_FP_W_TYPE_SIZE \