Lines Matching refs:wc
27 #define _FP_DECL(wc, X) \ argument
29 _FP_FRAC_DECL_##wc(X)
36 #define _FP_UNPACK_CANONICAL(fs, wc, X) \ argument
42 _FP_FRAC_SLL_##wc(X, _FP_WORKBITS); \
48 if (_FP_FRAC_ZEROP_##wc(X)) \
54 _FP_FRAC_CLZ_##wc(_shift, X); \
56 _FP_FRAC_SLL_##wc(X, (_shift+_FP_WORKBITS)); \
69 if (_FP_FRAC_ZEROP_##wc(X)) \
89 #define _FP_PACK_CANONICAL(fs, wc, X) \ argument
97 _FP_ROUND(wc, X); \
98 if (_FP_FRAC_OVERP_##wc(fs, X)) \
100 _FP_FRAC_CLEAR_OVERP_##wc(fs, X); \
103 _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \
123 _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
129 _FP_FRAC_SET_##wc(X, _FP_MAXFRAC_##wc); \
141 _FP_FRAC_SRS_##wc(X, X##_e, _FP_WFRACBITS_##fs); \
146 _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
150 _FP_ROUND(wc, X); \
155 _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
161 _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \
172 if (!_FP_FRAC_ZEROP_##wc(X)) \
174 _FP_FRAC_SET_##wc(X, _FP_MINFRAC_##wc); \
175 _FP_ROUND(wc, X); \
176 _FP_FRAC_LOW_##wc(X) >>= (_FP_WORKBITS); \
185 _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
190 _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
197 _FP_FRAC_SET_##wc(X, _FP_NANFRAC_##fs); \
209 #define _FP_ISSIGNAN(fs, wc, X) \ argument
214 if (!_FP_FRAC_ZEROP_##wc(X) \
229 #define _FP_ADD_INTERNAL(fs, wc, R, X, Y, OP) \ argument
242 _FP_FRAC_SRS_##wc(X, diff, _FP_WFRACBITS_##fs); \
243 else if (!_FP_FRAC_ZEROP_##wc(X)) \
244 _FP_FRAC_SET_##wc(X, _FP_MINFRAC_##wc); \
252 _FP_FRAC_SRS_##wc(Y, diff, _FP_WFRACBITS_##fs); \
253 else if (!_FP_FRAC_ZEROP_##wc(Y)) \
254 _FP_FRAC_SET_##wc(Y, _FP_MINFRAC_##wc); \
264 _FP_FRAC_ADD_##wc(R, X, Y); \
265 if (_FP_FRAC_OVERP_##wc(fs, R)) \
267 _FP_FRAC_SRS_##wc(R, 1, _FP_WFRACBITS_##fs); \
274 _FP_FRAC_SUB_##wc(R, X, Y); \
275 if (_FP_FRAC_ZEROP_##wc(R)) \
286 if (_FP_FRAC_NEGP_##wc(R)) \
288 _FP_FRAC_SUB_##wc(R, Y, X); \
293 _FP_FRAC_CLZ_##wc(diff, R); \
298 _FP_FRAC_SLL_##wc(R, diff); \
306 _FP_CHOOSENAN(fs, wc, R, X, Y, OP); \
315 _FP_FRAC_COPY_##wc(R, X); \
326 _FP_FRAC_COPY_##wc(R, Y); \
335 _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
369 #define _FP_ADD(fs, wc, R, X, Y) _FP_ADD_INTERNAL(fs, wc, R, X, Y, '+') argument
370 #define _FP_SUB(fs, wc, R, X, Y) \ argument
373 _FP_ADD_INTERNAL(fs, wc, R, X, Y, '-'); \
382 #define _FP_NEG(fs, wc, R, X) \ argument
384 _FP_FRAC_COPY_##wc(R, X); \
395 #define _FP_MUL(fs, wc, R, X, Y) \ argument
406 if (_FP_FRAC_OVERP_##wc(fs, R)) \
407 _FP_FRAC_SRS_##wc(R, 1, _FP_WFRACBITS_##fs); \
413 _FP_CHOOSENAN(fs, wc, R, X, Y, '*'); \
426 _FP_FRAC_COPY_##wc(R, X); \
438 _FP_FRAC_COPY_##wc(R, Y); \
446 _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
460 #define _FP_DIV(fs, wc, R, X, Y) \ argument
473 _FP_CHOOSENAN(fs, wc, R, X, Y, '/'); \
480 _FP_FRAC_COPY_##wc(R, X); \
488 _FP_FRAC_COPY_##wc(R, Y); \
509 _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
516 _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
531 #define _FP_CMP(fs, wc, ret, X, Y, un) \ argument
534 if ((X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(X)) \
535 || (Y##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(Y))) \
544 __is_zero_x = (!X##_e && _FP_FRAC_ZEROP_##wc(X)) ? 1 : 0; \
545 __is_zero_y = (!Y##_e && _FP_FRAC_ZEROP_##wc(Y)) ? 1 : 0; \
559 else if (_FP_FRAC_GT_##wc(X, Y)) \
561 else if (_FP_FRAC_GT_##wc(Y, X)) \
571 #define _FP_CMP_EQ(fs, wc, ret, X, Y) \ argument
574 if ((X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(X)) \
575 || (Y##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc(Y))) \
582 && _FP_FRAC_EQ_##wc(X, Y) \
583 && (X##_s == Y##_s || !X##_e && _FP_FRAC_ZEROP_##wc(X))); \
591 #define _FP_SQRT(fs, wc, R, X) \ argument
593 _FP_FRAC_DECL_##wc(T); _FP_FRAC_DECL_##wc(S); \
598 _FP_FRAC_COPY_##wc(R, X); \
607 _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
626 _FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
632 _FP_FRAC_SLL_##wc(X, 1); \
634 _FP_FRAC_SET_##wc(S, _FP_ZEROFRAC_##wc); \
635 _FP_FRAC_SET_##wc(R, _FP_ZEROFRAC_##wc); \
637 _FP_SQRT_MEAT_##wc(R, S, T, X, q); \
657 #define _FP_TO_INT(fs, wc, r, X, rsize, rsigned) \ argument
682 _FP_FRAC_SLL_##wc(X, (X##_e - _FP_WFRACBITS_##fs + 1)); \
683 _FP_FRAC_ASSEMBLE_##wc(r, X, rsize); \
702 if (_FP_W_TYPE_SIZE*wc < rsize) \
704 _FP_FRAC_ASSEMBLE_##wc(r, X, rsize); \
710 _FP_FRAC_SLL_##wc(X, (X##_e - _FP_WFRACBITS_##fs + 1)); \
713 _FP_FRAC_SRS_##wc(X, (_FP_WFRACBITS_##fs - X##_e - 2), \
715 if (_FP_FRAC_LOW_##wc(X) & 1) \
717 _FP_FRAC_SRL_##wc(X, 1); \
719 _FP_FRAC_ASSEMBLE_##wc(r, X, rsize); \
728 #define _FP_TO_INT_ROUND(fs, wc, r, X, rsize, rsigned) \ argument
740 _FP_FRAC_ASSEMBLE_##wc(r, X, rsize); \
745 _FP_FRAC_SRL_##wc(X, _FP_WORKBITS - X##_e \
747 _FP_FRAC_ASSEMBLE_##wc(r, X, rsize); \
755 _FP_FRAC_SET_##wc(X, _FP_MINFRAC_##wc); \
757 _FP_FRAC_SRS_##wc(X, _FP_FRACBITS_##fs - 1 - X##_e, \
759 _FP_FRAC_CLZ_##wc(_lz0, X); \
760 _FP_ROUND(wc, X); \
761 _FP_FRAC_CLZ_##wc(_lz1, X); \
764 _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \
765 _FP_FRAC_ASSEMBLE_##wc(r, X, rsize); \
795 #define _FP_FROM_INT(fs, wc, X, r, rsize, rtype) \ argument
818 _FP_FRAC_DISASSEMBLE_##wc(X, ur_, rsize); \
820 _FP_FRAC_SLL_##wc(X, (_FP_WFRACBITS_##fs - X##_e - 1)); \