| .. | .. |
|---|
| 308 | 308 | \ |
|---|
| 309 | 309 | case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_ZERO): \ |
|---|
| 310 | 310 | R##_e = X##_e; \ |
|---|
| 311 | + fallthrough; \ |
|---|
| 311 | 312 | case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_NORMAL): \ |
|---|
| 312 | 313 | case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_INF): \ |
|---|
| 313 | 314 | case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_ZERO): \ |
|---|
| .. | .. |
|---|
| 318 | 319 | \ |
|---|
| 319 | 320 | case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NORMAL): \ |
|---|
| 320 | 321 | R##_e = Y##_e; \ |
|---|
| 322 | + fallthrough; \ |
|---|
| 321 | 323 | case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NAN): \ |
|---|
| 322 | 324 | case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NAN): \ |
|---|
| 323 | 325 | case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NAN): \ |
|---|
| .. | .. |
|---|
| 415 | 417 | case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_INF): \ |
|---|
| 416 | 418 | case _FP_CLS_COMBINE(FP_CLS_NAN,FP_CLS_ZERO): \ |
|---|
| 417 | 419 | R##_s = X##_s; \ |
|---|
| 420 | + fallthrough; \ |
|---|
| 418 | 421 | \ |
|---|
| 419 | 422 | case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_INF): \ |
|---|
| 420 | 423 | case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NORMAL): \ |
|---|
| .. | .. |
|---|
| 428 | 431 | case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NAN): \ |
|---|
| 429 | 432 | case _FP_CLS_COMBINE(FP_CLS_ZERO,FP_CLS_NAN): \ |
|---|
| 430 | 433 | R##_s = Y##_s; \ |
|---|
| 434 | + fallthrough; \ |
|---|
| 431 | 435 | \ |
|---|
| 432 | 436 | case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_INF): \ |
|---|
| 433 | 437 | case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_ZERO): \ |
|---|
| .. | .. |
|---|
| 493 | 497 | \ |
|---|
| 494 | 498 | case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_ZERO): \ |
|---|
| 495 | 499 | FP_SET_EXCEPTION(FP_EX_DIVZERO); \ |
|---|
| 500 | + fallthrough; \ |
|---|
| 496 | 501 | case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_ZERO): \ |
|---|
| 497 | 502 | case _FP_CLS_COMBINE(FP_CLS_INF,FP_CLS_NORMAL): \ |
|---|
| 498 | 503 | R##_c = FP_CLS_INF; \ |
|---|
| .. | .. |
|---|
| 795 | 800 | ur_ = (unsigned rtype) -r; \ |
|---|
| 796 | 801 | else \ |
|---|
| 797 | 802 | ur_ = (unsigned rtype) r; \ |
|---|
| 798 | | - if (rsize <= _FP_W_TYPE_SIZE) \ |
|---|
| 799 | | - __FP_CLZ(X##_e, ur_); \ |
|---|
| 800 | | - else \ |
|---|
| 801 | | - __FP_CLZ_2(X##_e, (_FP_W_TYPE)(ur_ >> _FP_W_TYPE_SIZE), \ |
|---|
| 802 | | - (_FP_W_TYPE)ur_); \ |
|---|
| 803 | + (void) (((rsize) <= _FP_W_TYPE_SIZE) \ |
|---|
| 804 | + ? ({ __FP_CLZ(X##_e, ur_); }) \ |
|---|
| 805 | + : ({ \ |
|---|
| 806 | + __FP_CLZ_2(X##_e, (_FP_W_TYPE)(ur_ >> _FP_W_TYPE_SIZE), \ |
|---|
| 807 | + (_FP_W_TYPE)ur_); \ |
|---|
| 808 | + })); \ |
|---|
| 803 | 809 | if (rsize < _FP_W_TYPE_SIZE) \ |
|---|
| 804 | 810 | X##_e -= (_FP_W_TYPE_SIZE - rsize); \ |
|---|
| 805 | 811 | X##_e = rsize - X##_e - 1; \ |
|---|