Lines Matching refs:x_sign

467   UINT64 x_sign, y_sign, tmp_sign;
489 x_sign = x.w[1] & MASK_SIGN; // 0 for positive, MASK_SIGN for negative
552 res.w[1] = x_sign | MASK_INF;
563 res.w[1] = x_sign | MASK_INF;
635 if (x_sign && y_sign)
636 res.w[1] = res.w[1] | x_sign; // both negative
637 else if (rnd_mode == ROUNDING_DOWN && x_sign != y_sign)
782 res.w[1] = res.w[1] | x_sign | x_exp;
790 tmp_sign = x_sign;
794 x_sign = y_sign;
907 // (after scaling) and x_sign != y_sign and C2 > 5*10^(q2-1) =>
914 && C1_lo == 0x38c15b0a00000000ull && x_sign != y_sign
943 if ((rnd_mode == ROUNDING_DOWN && x_sign && y_sign) ||
944 (rnd_mode == ROUNDING_UP && !x_sign && !y_sign)) {
959 x_exp = 0; // x_sign is preserved
964 } else if ((rnd_mode == ROUNDING_DOWN && !x_sign && y_sign) ||
965 (rnd_mode == ROUNDING_UP && x_sign && !y_sign) ||
967 && x_sign != y_sign)) {
992 res.w[1] = x_sign | x_exp | C1_hi;
997 // however, the case C1 = 10^(q1-1) and x_sign != y_sign is special due
999 if (x_sign == y_sign || (q1 <= 20
1004 // if x_sign == y_sign or C1 != 10^(q1-1)
1039 if ((rnd_mode == ROUNDING_DOWN && x_sign && y_sign) ||
1040 (rnd_mode == ROUNDING_UP && !x_sign && !y_sign)) {
1055 x_exp = 0; // x_sign is preserved
1061 if ((rnd_mode == ROUNDING_DOWN && !x_sign && y_sign)
1062 || (rnd_mode == ROUNDING_UP && x_sign && !y_sign)
1064 && x_sign != y_sign)) {
1089 res.w[1] = x_sign | x_exp | C1_hi;
1122 if ((rnd_mode == ROUNDING_TO_NEAREST && x_sign == y_sign
1124 && x_sign == y_sign)
1125 || (rnd_mode == ROUNDING_UP && !x_sign && !y_sign)
1126 || (rnd_mode == ROUNDING_DOWN && x_sign && y_sign)) {
1141 x_exp = 0; // x_sign is preserved
1147 if ((rnd_mode == ROUNDING_TO_NEAREST && x_sign != y_sign
1149 && !x_sign && y_sign)
1150 || (rnd_mode == ROUNDING_UP && x_sign && !y_sign)
1152 && x_sign != y_sign)) {
1176 res.w[1] = x_sign | x_exp | C1_hi;
1217 if ((rnd_mode == ROUNDING_TO_NEAREST && x_sign != y_sign)
1218 || (rnd_mode == ROUNDING_TIES_AWAY && x_sign != y_sign
1220 || (rnd_mode == ROUNDING_DOWN && !x_sign && y_sign)
1221 || (rnd_mode == ROUNDING_UP && x_sign && !y_sign)
1223 && x_sign != y_sign)) {
1237 && x_sign == y_sign)
1239 && x_sign == y_sign)
1240 || (rnd_mode == ROUNDING_DOWN && x_sign && y_sign)
1241 || (rnd_mode == ROUNDING_UP && !x_sign
1244 // for RN x_sign = y_sign, i.e. n1*n2 > 0
1258 x_exp = 0; // x_sign is preserved
1269 res.w[1] = x_sign | x_exp | C1_hi;
1308 if ((rnd_mode == ROUNDING_DOWN && x_sign && y_sign) ||
1309 (rnd_mode == ROUNDING_UP && !x_sign && !y_sign)) {
1324 x_exp = 0; // x_sign is preserved
1330 if ((rnd_mode == ROUNDING_DOWN && !x_sign && y_sign)
1331 || (rnd_mode == ROUNDING_UP && x_sign && !y_sign)
1333 && x_sign != y_sign)) {
1358 res.w[1] = x_sign | x_exp | C1_hi;
1394 if ((rnd_mode == ROUNDING_TIES_AWAY && x_sign == y_sign)
1410 x_exp = 0; // x_sign is preserved
1417 && x_sign != y_sign)) {
1442 res.w[1] = x_sign | x_exp | C1_hi;
1475 if ((rnd_mode == ROUNDING_TO_NEAREST && x_sign != y_sign)
1476 || (rnd_mode == ROUNDING_TIES_AWAY && x_sign != y_sign
1479 || (rnd_mode == ROUNDING_DOWN && !x_sign && y_sign)
1480 || (rnd_mode == ROUNDING_UP && x_sign && !y_sign)
1482 && x_sign != y_sign)) {
1496 && x_sign == y_sign)
1498 && x_sign == y_sign)
1499 || (rnd_mode == ROUNDING_DOWN && x_sign && y_sign)
1500 || (rnd_mode == ROUNDING_UP && !x_sign
1503 // for RN x_sign = y_sign, i.e. n1*n2 > 0
1517 x_exp = 0; // x_sign is preserved
1528 res.w[1] = x_sign | x_exp | C1_hi;
1533 } else { // C1 = 10^(q1-1) and x_sign != y_sign
1537 // Because C1 = 10^(q1-1) and x_sign != y_sign, C' will have P34
1645 // x_sign != y_sign
1653 // x_sign != y_sign
1676 // x_sign != y_sign
1683 // x_sign != y_sign
1702 // x_sign != y_sign
1709 // x_sign != y_sign
1726 // x_sign != y_sign
1733 // x_sign != y_sign
1748 // because x_sign != y_sign this last operation is exact
1761 tmp_sign = x_sign;
1764 x_sign = tmp_sign;
1771 if ((!x_sign
1776 && is_midpoint_gt_even))) || (x_sign
1804 ((x_sign
1807 || (!x_sign
1826 res.w[1] = x_sign | y_exp | C1_hi;
1859 if (x_sign == y_sign) {
1865 } else { // if x_sign != y_sign
1890 x_sign = y_sign; // the result will have the sign of y
1894 res.w[1] = x_sign | y_exp | C1_hi;
1922 if (x_sign == y_sign) {
1983 res.w[1] = x_sign | 0x7800000000000000ull; // +/-inf
2021 if ((!x_sign
2028 && is_midpoint_gt_even))) || (x_sign
2057 ((x_sign
2060 || (!x_sign
2079 if ((rnd_mode == ROUNDING_DOWN && x_sign) || // RM and res < 0
2080 (rnd_mode == ROUNDING_UP && !x_sign)) { // RP and res > 0
2087 y_exp = 0; // x_sign is preserved
2095 } else { // if x_sign != y_sign the result is exact
2120 x_sign = y_sign; // the result will have the sign of y
2124 res.w[1] = x_sign | y_exp | C1_hi;
2247 if (x_sign == y_sign)
2249 else // if (x_sign != y_sign)
2259 if (x_sign == y_sign)
2261 else // if (x_sign != y_sign)
2285 if (x_sign == y_sign)
2287 else // if (x_sign != y_sign)
2296 if (x_sign == y_sign)
2298 else // if (x_sign != y_sign)
2318 if (x_sign == y_sign)
2320 else // if (x_sign != y_sign)
2329 if (x_sign == y_sign)
2331 else // if (x_sign != y_sign)
2348 if (x_sign == y_sign)
2350 else // if (x_sign != y_sign)
2357 if (x_sign == y_sign)
2359 else // if (x_sign != y_sign)
2379 if (x_sign == y_sign) { // addition; could overflow
2380 // no second pass is possible this way (only for x_sign != y_sign)
2513 res.w[1] = 0x7800000000000000ull | x_sign; // +/-inf
2522 } else { // if x_sign != y_sign the result of this subtract. is exact
2536 tmp_sign = x_sign;
2566 x_sign = tmp_sign;
2576 if ((!x_sign
2581 && is_midpoint_gt_even))) || (x_sign
2609 ((x_sign
2612 || (!x_sign
2631 if ((rnd_mode == ROUNDING_DOWN && x_sign) || // RM and res < 0
2632 (rnd_mode == ROUNDING_UP && !x_sign)) { // RP and res > 0
2639 y_exp = 0; // x_sign is preserved
2647 res.w[1] = x_sign | y_exp | C1_hi;
2653 // NOTE: the following, up to "} else { // if x_sign != y_sign
2687 if (x_sign == y_sign) {
2748 res.w[1] = x_sign | 0x7800000000000000ull; // +/-inf
2785 if ((!x_sign
2790 && is_midpoint_gt_even))) || (x_sign
2819 ((x_sign && (rnd_mode == ROUNDING_UP ||
2821 (!x_sign && (rnd_mode == ROUNDING_DOWN ||
2839 if ((rnd_mode == ROUNDING_DOWN && x_sign) || // RM and res < 0
2840 (rnd_mode == ROUNDING_UP && !x_sign)) { // RP and res > 0
2847 y_exp = 0; // x_sign is preserved
2856 res.w[1] = x_sign | y_exp | C1_hi;
2858 } else { // if x_sign != y_sign the result is exact
2869 x_sign = y_sign; // the result will have the sign of y