Lines Matching refs:X

31 #define _FP_DECL(wc, X)						\  argument
32 _FP_I_TYPE X##_c __attribute__ ((unused)) _FP_ZERO_INIT; \
33 _FP_I_TYPE X##_s __attribute__ ((unused)) _FP_ZERO_INIT; \
34 _FP_I_TYPE X##_e __attribute__ ((unused)) _FP_ZERO_INIT; \
35 _FP_FRAC_DECL_##wc (X)
38 #define _FP_FRAC_SNANP(fs, X) \ argument
40 ? (_FP_FRAC_HIGH_RAW_##fs (X) & _FP_QNANBIT_##fs) \
41 : !(_FP_FRAC_HIGH_RAW_##fs (X) & _FP_QNANBIT_##fs))
42 #define _FP_FRAC_SNANP_SEMIRAW(fs, X) \ argument
44 ? (_FP_FRAC_HIGH_##fs (X) & _FP_QNANBIT_SH_##fs) \
45 : !(_FP_FRAC_HIGH_##fs (X) & _FP_QNANBIT_SH_##fs))
50 #define _FP_UNPACK_CANONICAL(fs, wc, X) \ argument
53 switch (X##_e) \
56 _FP_FRAC_HIGH_RAW_##fs (X) |= _FP_IMPLBIT_##fs; \
57 _FP_FRAC_SLL_##wc (X, _FP_WORKBITS); \
58 X##_e -= _FP_EXPBIAS_##fs; \
59 X##_c = FP_CLS_NORMAL; \
63 if (_FP_FRAC_ZEROP_##wc (X)) \
64 X##_c = FP_CLS_ZERO; \
67 X##_c = FP_CLS_ZERO; \
68 _FP_FRAC_SET_##wc (X, _FP_ZEROFRAC_##wc); \
76 X); \
78 _FP_FRAC_SLL_##wc (X, (_FP_UNPACK_CANONICAL_shift \
80 X##_e -= (_FP_EXPBIAS_##fs - 1 \
82 X##_c = FP_CLS_NORMAL; \
88 if (_FP_FRAC_ZEROP_##wc (X)) \
89 X##_c = FP_CLS_INF; \
92 X##_c = FP_CLS_NAN; \
94 if (_FP_FRAC_SNANP (fs, X)) \
106 #define _FP_UNPACK_SEMIRAW(fs, wc, X) _FP_FRAC_SLL_##wc (X, _FP_WORKBITS) argument
110 #define _FP_CHECK_FLUSH_ZERO(fs, wc, X) \ argument
114 && X##_e == 0 \
115 && !_FP_FRAC_ZEROP_##wc (X)) \
117 _FP_FRAC_SET_##wc (X, _FP_ZEROFRAC_##wc); \
125 #define _FP_OVERFLOW_SEMIRAW(fs, wc, X) \ argument
129 || (FP_ROUNDMODE == FP_RND_PINF && !X##_s) \
130 || (FP_ROUNDMODE == FP_RND_MINF && X##_s)) \
132 X##_e = _FP_EXPMAX_##fs; \
133 _FP_FRAC_SET_##wc (X, _FP_ZEROFRAC_##wc); \
137 X##_e = _FP_EXPMAX_##fs - 1; \
138 _FP_FRAC_SET_##wc (X, _FP_MAXFRAC_##wc); \
147 #define _FP_CHECK_SIGNAN_SEMIRAW(fs, wc, X) \ argument
150 if (X##_e == _FP_EXPMAX_##fs \
151 && !_FP_FRAC_ZEROP_##wc (X) \
152 && _FP_FRAC_SNANP_SEMIRAW (fs, X)) \
159 #define _FP_CHOOSENAN_SEMIRAW(fs, wc, R, X, Y, OP) \ argument
163 _FP_FRAC_SRL_##wc (X, _FP_WORKBITS); \
165 _FP_CHOOSENAN (fs, wc, R, X, Y, OP); \
173 #define _FP_SETQNAN(fs, wc, X) \ argument
178 _FP_FRAC_HIGH_RAW_##fs (X) &= _FP_QNANBIT_##fs - 1; \
179 if (_FP_FRAC_ZEROP_##wc (X)) \
181 X##_s = _FP_NANSIGN_##fs; \
182 _FP_FRAC_SET_##wc (X, _FP_NANFRAC_##fs); \
186 _FP_FRAC_HIGH_RAW_##fs (X) |= _FP_QNANBIT_##fs; \
189 #define _FP_SETQNAN_SEMIRAW(fs, wc, X) \ argument
194 _FP_FRAC_HIGH_##fs (X) &= _FP_QNANBIT_SH_##fs - 1; \
195 if (_FP_FRAC_ZEROP_##wc (X)) \
197 X##_s = _FP_NANSIGN_##fs; \
198 _FP_FRAC_SET_##wc (X, _FP_NANFRAC_##fs); \
199 _FP_FRAC_SLL_##wc (X, _FP_WORKBITS); \
203 _FP_FRAC_HIGH_##fs (X) |= _FP_QNANBIT_SH_##fs; \
208 #define _FP_EXP_NORMAL(fs, wc, X) (((X##_e + 1) & _FP_EXPMAX_##fs) > 1) argument
213 #define _FP_PACK_SEMIRAW(fs, wc, X) \ argument
217 = X##_e == 0 && !_FP_FRAC_ZEROP_##wc (X); \
222 _FP_FRAC_COPY_##wc (_FP_PACK_SEMIRAW_T, X); \
223 _FP_PACK_SEMIRAW_T##_s = X##_s; \
224 _FP_PACK_SEMIRAW_T##_e = X##_e; \
230 _FP_ROUND (wc, X); \
237 if (_FP_FRAC_HIGH_##fs (X) \
240 _FP_FRAC_HIGH_##fs (X) &= ~(_FP_OVERFLOW_##fs >> 1); \
241 X##_e++; \
242 if (X##_e == _FP_EXPMAX_##fs) \
243 _FP_OVERFLOW_SEMIRAW (fs, wc, X); \
245 _FP_FRAC_SRL_##wc (X, _FP_WORKBITS); \
246 if (X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc (X)) \
250 _FP_FRAC_SET_##wc (X, _FP_NANFRAC_##fs); \
251 X##_s = _FP_NANSIGN_##fs; \
254 _FP_SETQNAN (fs, wc, X); \
264 #define _FP_PACK_CANONICAL(fs, wc, X) \ argument
267 switch (X##_c) \
270 X##_e += _FP_EXPBIAS_##fs; \
271 if (X##_e > 0) \
273 _FP_ROUND (wc, X); \
274 if (_FP_FRAC_OVERP_##wc (fs, X)) \
276 _FP_FRAC_CLEAR_OVERP_##wc (fs, X); \
277 X##_e++; \
279 _FP_FRAC_SRL_##wc (X, _FP_WORKBITS); \
280 if (X##_e >= _FP_EXPMAX_##fs) \
286 X##_c = FP_CLS_INF; \
289 if (!X##_s) \
290 X##_c = FP_CLS_INF; \
293 if (X##_s) \
294 X##_c = FP_CLS_INF; \
297 if (X##_c == FP_CLS_INF) \
300 X##_e = _FP_EXPMAX_##fs; \
301 _FP_FRAC_SET_##wc (X, _FP_ZEROFRAC_##wc); \
306 X##_e = _FP_EXPMAX_##fs - 1; \
307 _FP_FRAC_SET_##wc (X, _FP_MAXFRAC_##wc); \
317 if (_FP_TININESS_AFTER_ROUNDING && X##_e == 0) \
320 _FP_FRAC_COPY_##wc (_FP_PACK_CANONICAL_T, X); \
321 _FP_PACK_CANONICAL_T##_s = X##_s; \
322 _FP_PACK_CANONICAL_T##_e = X##_e; \
327 X##_e = -X##_e + 1; \
328 if (X##_e <= _FP_WFRACBITS_##fs) \
330 _FP_FRAC_SRS_##wc (X, X##_e, _FP_WFRACBITS_##fs); \
331 _FP_ROUND (wc, X); \
332 if (_FP_FRAC_HIGH_##fs (X) \
335 X##_e = 1; \
336 _FP_FRAC_SET_##wc (X, _FP_ZEROFRAC_##wc); \
341 X##_e = 0; \
342 _FP_FRAC_SRL_##wc (X, _FP_WORKBITS); \
353 X##_e = 0; \
354 if (!_FP_FRAC_ZEROP_##wc (X)) \
356 _FP_FRAC_SET_##wc (X, _FP_MINFRAC_##wc); \
357 _FP_ROUND (wc, X); \
358 _FP_FRAC_LOW_##wc (X) >>= (_FP_WORKBITS); \
366 X##_e = 0; \
367 _FP_FRAC_SET_##wc (X, _FP_ZEROFRAC_##wc); \
371 X##_e = _FP_EXPMAX_##fs; \
372 _FP_FRAC_SET_##wc (X, _FP_ZEROFRAC_##wc); \
376 X##_e = _FP_EXPMAX_##fs; \
379 _FP_FRAC_SET_##wc (X, _FP_NANFRAC_##fs); \
380 X##_s = _FP_NANSIGN_##fs; \
383 _FP_SETQNAN (fs, wc, X); \
391 #define _FP_ISSIGNAN(fs, wc, X) \ argument
394 if (X##_e == _FP_EXPMAX_##fs) \
396 if (!_FP_FRAC_ZEROP_##wc (X) \
397 && _FP_FRAC_SNANP (fs, X)) \
408 #define _FP_ADD_INTERNAL(fs, wc, R, X, Y, OP) \ argument
411 _FP_CHECK_FLUSH_ZERO (fs, wc, X); \
413 if (X##_s == Y##_s) \
417 R##_s = X##_s; \
418 int _FP_ADD_INTERNAL_ediff = X##_e - Y##_e; \
421 R##_e = X##_e; \
427 _FP_CHECK_SIGNAN_SEMIRAW (fs, wc, X); \
428 _FP_FRAC_COPY_##wc (R, X); \
437 _FP_FRAC_ADD_##wc (R, X, Y); \
440 if (X##_e == _FP_EXPMAX_##fs) \
442 _FP_CHECK_SIGNAN_SEMIRAW (fs, wc, X); \
443 _FP_FRAC_COPY_##wc (R, X); \
449 else if (X##_e == _FP_EXPMAX_##fs) \
452 _FP_CHECK_SIGNAN_SEMIRAW (fs, wc, X); \
453 _FP_FRAC_COPY_##wc (R, X); \
469 _FP_FRAC_ADD_##wc (R, X, Y); \
475 if (X##_e == 0) \
478 if (_FP_FRAC_ZEROP_##wc (X)) \
490 _FP_FRAC_ADD_##wc (R, Y, X); \
511 _FP_FRAC_HIGH_##fs (X) |= _FP_IMPLBIT_SH_##fs; \
518 _FP_FRAC_SRS_##wc (X, _FP_ADD_INTERNAL_ediff, \
520 else if (!_FP_FRAC_ZEROP_##wc (X)) \
521 _FP_FRAC_SET_##wc (X, _FP_MINFRAC_##wc); \
522 _FP_FRAC_ADD_##wc (R, Y, X); \
527 if (!_FP_EXP_NORMAL (fs, wc, X)) \
529 if (X##_e == 0) \
533 if (_FP_FRAC_ZEROP_##wc (X)) \
543 _FP_FRAC_COPY_##wc (R, X); \
549 _FP_FRAC_ADD_##wc (R, X, Y); \
563 _FP_CHECK_SIGNAN_SEMIRAW (fs, wc, X); \
566 if (_FP_FRAC_ZEROP_##wc (X)) \
569 _FP_FRAC_COPY_##wc (R, X); \
571 _FP_CHOOSENAN_SEMIRAW (fs, wc, R, X, Y, OP); \
578 _FP_FRAC_ADD_##wc (R, X, Y); \
579 R##_e = X##_e + 1; \
603 int _FP_ADD_INTERNAL_ediff = X##_e - Y##_e; \
606 R##_e = X##_e; \
607 R##_s = X##_s; \
613 _FP_CHECK_SIGNAN_SEMIRAW (fs, wc, X); \
614 _FP_FRAC_COPY_##wc (R, X); \
623 _FP_FRAC_SUB_##wc (R, X, Y); \
626 if (X##_e == _FP_EXPMAX_##fs) \
628 _FP_CHECK_SIGNAN_SEMIRAW (fs, wc, X); \
629 _FP_FRAC_COPY_##wc (R, X); \
635 else if (X##_e == _FP_EXPMAX_##fs) \
638 _FP_CHECK_SIGNAN_SEMIRAW (fs, wc, X); \
639 _FP_FRAC_COPY_##wc (R, X); \
655 _FP_FRAC_SUB_##wc (R, X, Y); \
662 if (X##_e == 0) \
665 if (_FP_FRAC_ZEROP_##wc (X)) \
677 _FP_FRAC_SUB_##wc (R, Y, X); \
698 _FP_FRAC_HIGH_##fs (X) |= _FP_IMPLBIT_SH_##fs; \
705 _FP_FRAC_SRS_##wc (X, _FP_ADD_INTERNAL_ediff, \
707 else if (!_FP_FRAC_ZEROP_##wc (X)) \
708 _FP_FRAC_SET_##wc (X, _FP_MINFRAC_##wc); \
709 _FP_FRAC_SUB_##wc (R, Y, X); \
714 if (!_FP_EXP_NORMAL (fs, wc, X)) \
716 if (X##_e == 0) \
720 if (_FP_FRAC_ZEROP_##wc (X)) \
735 _FP_FRAC_COPY_##wc (R, X); \
736 R##_s = X##_s; \
742 _FP_FRAC_SUB_##wc (R, X, Y); \
743 R##_s = X##_s; \
747 _FP_FRAC_SUB_##wc (R, Y, X); \
758 _FP_CHECK_SIGNAN_SEMIRAW (fs, wc, X); \
761 if (_FP_FRAC_ZEROP_##wc (X)) \
784 R##_s = X##_s; \
785 _FP_FRAC_COPY_##wc (R, X); \
790 _FP_CHOOSENAN_SEMIRAW (fs, wc, R, X, Y, OP); \
798 R##_e = X##_e; \
799 _FP_FRAC_SUB_##wc (R, X, Y); \
800 R##_s = X##_s; \
804 _FP_FRAC_SUB_##wc (R, Y, X); \
846 #define _FP_ADD(fs, wc, R, X, Y) _FP_ADD_INTERNAL (fs, wc, R, X, Y, '+') argument
847 #define _FP_SUB(fs, wc, R, X, Y) \ argument
852 _FP_ADD_INTERNAL (fs, wc, R, X, Y, '-'); \
859 #define _FP_NEG(fs, wc, R, X) \ argument
862 _FP_FRAC_COPY_##wc (R, X); \
863 R##_e = X##_e; \
864 R##_s = 1 ^ X##_s; \
871 #define _FP_MUL(fs, wc, R, X, Y) \ argument
874 R##_s = X##_s ^ Y##_s; \
875 R##_e = X##_e + Y##_e + 1; \
876 switch (_FP_CLS_COMBINE (X##_c, Y##_c)) \
881 _FP_MUL_MEAT_##fs (R, X, Y); \
890 _FP_CHOOSENAN (fs, wc, R, X, Y, '*'); \
896 R##_s = X##_s; \
903 _FP_FRAC_COPY_##wc (R, X); \
904 R##_c = X##_c; \
936 #define _FP_FMA(fs, wc, dwc, R, X, Y, Z) \ argument
941 _FP_FMA_T##_s = X##_s ^ Y##_s; \
942 _FP_FMA_T##_e = X##_e + Y##_e + 1; \
943 switch (_FP_CLS_COMBINE (X##_c, Y##_c)) \
960 _FP_MUL_MEAT_##fs (R, X, Y); \
972 _FP_MUL_MEAT_DW_##fs (_FP_FMA_TD, X, Y); \
1057 _FP_CHOOSENAN (fs, wc, _FP_FMA_T, X, Y, '*'); \
1063 _FP_FMA_T##_s = X##_s; \
1070 _FP_FRAC_COPY_##wc (_FP_FMA_T, X); \
1071 _FP_FMA_T##_c = X##_c; \
1160 #define _FP_DIV(fs, wc, R, X, Y) \ argument
1163 R##_s = X##_s ^ Y##_s; \
1164 R##_e = X##_e - Y##_e; \
1165 switch (_FP_CLS_COMBINE (X##_c, Y##_c)) \
1170 _FP_DIV_MEAT_##fs (R, X, Y); \
1174 _FP_CHOOSENAN (fs, wc, R, X, Y, '/'); \
1180 R##_s = X##_s; \
1181 _FP_FRAC_COPY_##wc (R, X); \
1182 R##_c = X##_c; \
1213 | (X##_c == FP_CLS_INF \
1230 #define _FP_CMP_CHECK_NAN(fs, wc, X, Y, ex) \ argument
1245 if (_FP_ISSIGNAN (fs, wc, X) \
1252 || _FP_ISSIGNAN (fs, wc, X) \
1263 #define _FP_CMP_CHECK_DENORM(fs, wc, X, Y) \ argument
1273 _FP_CHECK_FLUSH_ZERO (fs, wc, X); \
1278 if ((X##_e == 0 && !_FP_FRAC_ZEROP_##wc (X)) \
1288 #define _FP_CMP_CHECK_FLUSH_ZERO(fs, wc, X, Y) \ argument
1293 _FP_CHECK_FLUSH_ZERO (fs, wc, X); \
1303 #define _FP_CMP(fs, wc, ret, X, Y, un, ex) \ argument
1306 _FP_CMP_CHECK_DENORM (fs, wc, X, Y); \
1308 if ((X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc (X)) \
1312 _FP_CMP_CHECK_NAN (fs, wc, X, Y, (ex)); \
1319 _FP_CMP_CHECK_FLUSH_ZERO (fs, wc, X, Y); \
1322 = (!X##_e && _FP_FRAC_ZEROP_##wc (X)) ? 1 : 0; \
1331 (ret) = X##_s ? -1 : 1; \
1332 else if (X##_s != Y##_s) \
1333 (ret) = X##_s ? -1 : 1; \
1334 else if (X##_e > Y##_e) \
1335 (ret) = X##_s ? -1 : 1; \
1336 else if (X##_e < Y##_e) \
1337 (ret) = X##_s ? 1 : -1; \
1338 else if (_FP_FRAC_GT_##wc (X, Y)) \
1339 (ret) = X##_s ? -1 : 1; \
1340 else if (_FP_FRAC_GT_##wc (Y, X)) \
1341 (ret) = X##_s ? 1 : -1; \
1351 #define _FP_CMP_EQ(fs, wc, ret, X, Y, ex) \ argument
1354 _FP_CMP_CHECK_DENORM (fs, wc, X, Y); \
1356 if ((X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc (X)) \
1360 _FP_CMP_CHECK_NAN (fs, wc, X, Y, (ex)); \
1364 _FP_CMP_CHECK_FLUSH_ZERO (fs, wc, X, Y); \
1366 (ret) = !(X##_e == Y##_e \
1367 && _FP_FRAC_EQ_##wc (X, Y) \
1368 && (X##_s == Y##_s \
1369 || (!X##_e && _FP_FRAC_ZEROP_##wc (X)))); \
1376 #define _FP_CMP_UNORD(fs, wc, ret, X, Y, ex) \ argument
1379 _FP_CMP_CHECK_DENORM (fs, wc, X, Y); \
1380 (ret) = ((X##_e == _FP_EXPMAX_##fs && !_FP_FRAC_ZEROP_##wc (X)) \
1383 _FP_CMP_CHECK_NAN (fs, wc, X, Y, (ex)); \
1389 #define _FP_SQRT(fs, wc, R, X) \ argument
1395 switch (X##_c) \
1398 _FP_FRAC_COPY_##wc (R, X); \
1399 R##_s = X##_s; \
1403 if (X##_s) \
1417 R##_s = X##_s; \
1422 if (X##_s) \
1431 if (X##_e & 1) \
1432 _FP_FRAC_SLL_##wc (X, 1); \
1433 R##_e = X##_e >> 1; \
1437 _FP_SQRT_MEAT_##wc (R, _FP_SQRT_S, _FP_SQRT_T, X, \
1457 #define _FP_TO_INT(fs, wc, r, X, rsize, rsigned) \ argument
1460 if (X##_e < _FP_EXPBIAS_##fs) \
1463 if (X##_e == 0) \
1465 if (!_FP_FRAC_ZEROP_##wc (X)) \
1476 && (X##_e \
1487 && _FP_ISSIGNAN (fs, wc, X)) \
1492 && (X##_e >= (_FP_EXPMAX_##fs < _FP_EXPBIAS_##fs + (rsize) \
1495 - ((rsigned) > 0 || X##_s))) \
1496 || (!(rsigned) && X##_s))) \
1503 (r) -= 1 - X##_s; \
1508 if (!X##_s) \
1514 && X##_s \
1515 && X##_e == _FP_EXPBIAS_##fs + (rsize) - 1) \
1522 _FP_FRAC_SRST_##wc (X, _FP_TO_INT_inexact, \
1528 if (!_FP_FRAC_ZEROP_##wc (X)) \
1537 && _FP_ISSIGNAN (fs, wc, X)) \
1544 _FP_FRAC_HIGH_RAW_##fs (X) |= _FP_IMPLBIT_##fs; \
1545 if (X##_e >= _FP_EXPBIAS_##fs + _FP_FRACBITS_##fs - 1) \
1547 _FP_FRAC_ASSEMBLE_##wc ((r), X, (rsize)); \
1548 (r) <<= X##_e - _FP_EXPBIAS_##fs - _FP_FRACBITS_##fs + 1; \
1552 _FP_FRAC_SRST_##wc (X, _FP_TO_INT_inexact, \
1554 - X##_e), \
1556 _FP_FRAC_ASSEMBLE_##wc ((r), X, (rsize)); \
1558 if ((rsigned) && X##_s) \
1560 if ((rsigned) == 2 && X##_e >= _FP_EXPBIAS_##fs + (rsize) - 1) \
1563 if (X##_e > _FP_EXPBIAS_##fs + (rsize) - 1 \
1564 || !X##_s \
1580 #define _FP_TO_INT_ROUND(fs, wc, r, X, rsize, rsigned) \ argument
1584 if (X##_e < _FP_EXPBIAS_##fs) \
1587 if (X##_e == 0) \
1589 if (_FP_FRAC_ZEROP_##wc (X)) \
1610 = (X##_e == _FP_EXPBIAS_##fs - 1 \
1611 && !_FP_FRAC_ZEROP_##wc (X)); \
1617 _FP_TO_INT_ROUND_rounds_away = !X##_s; \
1620 _FP_TO_INT_ROUND_rounds_away = X##_s; \
1623 if ((rsigned) == 0 && _FP_TO_INT_ROUND_rounds_away && X##_s) \
1630 && _FP_TO_INT_ROUND_rounds_away && !X##_s) \
1640 ? (X##_s ? -1 : 1) \
1646 && (X##_e \
1657 && _FP_ISSIGNAN (fs, wc, X)) \
1662 && (X##_e >= (_FP_EXPMAX_##fs < _FP_EXPBIAS_##fs + (rsize) \
1665 - ((rsigned) > 0 && !X##_s))) \
1666 || ((rsigned) == 0 && X##_s))) \
1673 (r) -= 1 - X##_s; \
1678 if (!X##_s) \
1685 && _FP_ISSIGNAN (fs, wc, X)) \
1699 _FP_FRAC_HIGH_RAW_##fs (X) |= _FP_IMPLBIT_##fs; \
1700 if (X##_e >= _FP_EXPBIAS_##fs + _FP_FRACBITS_##fs - 1) \
1703 _FP_FRAC_ASSEMBLE_##wc ((r), X, (rsize)); \
1704 (r) <<= X##_e - _FP_EXPBIAS_##fs - _FP_FRACBITS_##fs + 1; \
1712 - 1 - _FP_WORKBITS - X##_e); \
1714 _FP_FRAC_SRS_##wc (X, _FP_TO_INT_ROUND_rshift, \
1717 _FP_FRAC_SLL_##wc (X, -_FP_TO_INT_ROUND_rshift); \
1722 if (_FP_FRAC_LOW_##wc (X) & 7) \
1728 _FP_ROUND_NEAREST (wc, X); \
1731 _FP_ROUND_ZERO (wc, X); \
1734 _FP_ROUND_PINF (wc, X); \
1737 _FP_ROUND_MINF (wc, X); \
1741 _FP_FRAC_SRL_##wc (X, _FP_WORKBITS); \
1742 _FP_FRAC_ASSEMBLE_##wc ((r), X, (rsize)); \
1744 if ((rsigned) != 0 && X##_s) \
1752 if (X##_e >= (_FP_EXPBIAS_##fs + (rsize) - 1 \
1753 - ((rsigned) > 0 && !X##_s))) \
1755 if (X##_e > _FP_EXPBIAS_##fs + (rsize) - 1 \
1756 || (X##_e == _FP_EXPBIAS_##fs + (rsize) - 1 \
1757 && (X##_s \
1761 && !X##_s \
1762 && X##_e == _FP_EXPBIAS_##fs + (rsize) - 2 \
1771 (r) -= 1 - X##_s; \
1792 #define _FP_FROM_INT(fs, wc, X, r, rsize, rtype) \ argument
1800 if ((X##_s = ((r) < 0))) \
1810 X##_e = (_FP_EXPBIAS_##fs + _FP_W_TYPE_SIZE - 1 \
1819 X##_e = (_FP_EXPBIAS_##fs + 2 * _FP_W_TYPE_SIZE - 1 \
1824 && X##_e >= _FP_EXPMAX_##fs) \
1828 _FP_OVERFLOW_SEMIRAW (fs, wc, X); \
1833 || X##_e < _FP_EXPBIAS_##fs + _FP_FRACBITS_##fs) \
1836 _FP_FRAC_DISASSEMBLE_##wc (X, _FP_FROM_INT_ur, (rsize)); \
1837 if (_FP_EXPBIAS_##fs + _FP_FRACBITS_##fs - 1 - X##_e > 0) \
1838 _FP_FRAC_SLL_##wc (X, (_FP_EXPBIAS_##fs \
1839 + _FP_FRACBITS_##fs - 1 - X##_e)); \
1845 if (_FP_EXPBIAS_##fs + _FP_WFRACBITS_##fs - 1 < X##_e) \
1847 = ((_FP_FROM_INT_ur >> (X##_e - _FP_EXPBIAS_##fs \
1850 << ((rsize) - (X##_e - _FP_EXPBIAS_##fs \
1853 _FP_FRAC_DISASSEMBLE_##wc (X, _FP_FROM_INT_ur, (rsize)); \
1854 if ((_FP_EXPBIAS_##fs + _FP_WFRACBITS_##fs - 1 - X##_e) > 0) \
1855 _FP_FRAC_SLL_##wc (X, (_FP_EXPBIAS_##fs \
1856 + _FP_WFRACBITS_##fs - 1 - X##_e)); \
1857 _FP_FRAC_HIGH_##fs (X) &= ~(_FP_W_TYPE) _FP_IMPLBIT_SH_##fs; \
1859 _FP_PACK_SEMIRAW (fs, wc, X); \
1864 X##_s = 0; \
1865 X##_e = 0; \
1866 _FP_FRAC_SET_##wc (X, _FP_ZEROFRAC_##wc); \
2096 #define _FP_DIV_MEAT_N_loop(fs, wc, R, X, Y) \ argument
2102 _FP_FRAC_COPY_##wc (_FP_DIV_MEAT_N_loop_u, X); \
2147 #define _FP_DIV_MEAT_1_loop(fs, R, X, Y) _FP_DIV_MEAT_N_loop (fs, 1, R, X, Y) argument
2148 #define _FP_DIV_MEAT_2_loop(fs, R, X, Y) _FP_DIV_MEAT_N_loop (fs, 2, R, X, Y) argument
2149 #define _FP_DIV_MEAT_4_loop(fs, R, X, Y) _FP_DIV_MEAT_N_loop (fs, 4, R, X, Y) argument