Lines Matching refs:ix
88 unsigned int ix, iy;
92 ix = hx & 0x7fffffff;
94 if (iy < 0x00800000 || ix == 0)
98 ix &= 0x007fffff;
100 m = (unsigned long long)ix * iy;
107 ix = ((int) (m >> (w - 23)) & 0x007fffff) | (exp << 23);
109 ix = (int) (m >> (w - 22 - exp)) & 0x007fffff;
111 ix = 0;
113 ix |= (hx ^ hy) & 0x80000000;
114 return ix;
154 unsigned long long ix, iy;
158 ix = hx & 0x7fffffffffffffffLL;
160 if (iy < 0x0010000000000000LL || ix == 0)
164 ix &= 0x000fffffffffffffLL;
166 mult64(ix, iy, &mh, &ml);
178 ix = (rshift64(mh, ml, w - 52) & 0x000fffffffffffffLL)
181 ix = rshift64(mh, ml, w - 51 - exp) & 0x000fffffffffffffLL;
183 ix = 0;
185 ix |= (hx ^ hy) & 0x8000000000000000LL;
186 return ix;
189 /* ix - iy where iy: denormal and ix, iy >= 0 */
190 static int denormal_subf1(unsigned int ix, unsigned int iy)
195 if (ix < 0x00800000)
196 return ix - iy;
198 exp = (ix & 0x7f800000) >> 23;
200 return ix;
203 return ix;
205 frac = (ix & 0x007fffff) | 0x00800000;
216 /* ix + iy where iy: denormal and ix, iy >= 0 */
217 static int denormal_addf1(unsigned int ix, unsigned int iy)
222 if (ix < 0x00800000)
223 return ix + iy;
225 exp = (ix & 0x7f800000) >> 23;
227 return ix;
230 return ix;
232 frac = (ix & 0x007fffff) | 0x00800000;
244 unsigned int ix, iy;
249 ix = hx & 0x7fffffff;
252 ix = denormal_subf1(ix, iy);
253 if ((int) ix < 0) {
254 ix = -ix;
258 ix = denormal_subf1(iy, ix);
263 ix = hx & 0x7fffffff;
266 ix = denormal_addf1(ix, iy);
268 ix = denormal_addf1(iy, ix);
271 return sign | ix;
274 /* ix - iy where iy: denormal and ix, iy >= 0 */
275 static long long denormal_subd1(unsigned long long ix, unsigned long long iy)
280 if (ix < 0x0010000000000000LL)
281 return ix - iy;
283 exp = (ix & 0x7ff0000000000000LL) >> 52;
285 return ix;
288 return ix;
290 frac = (ix & 0x000fffffffffffffLL) | 0x0010000000000000LL;
301 /* ix + iy where iy: denormal and ix, iy >= 0 */
302 static long long denormal_addd1(unsigned long long ix, unsigned long long iy)
307 if (ix < 0x0010000000000000LL)
308 return ix + iy;
310 exp = (ix & 0x7ff0000000000000LL) >> 52;
312 return ix;
315 return ix;
317 frac = (ix & 0x000fffffffffffffLL) | 0x0010000000000000LL;
329 unsigned long long ix, iy;
334 ix = hx & 0x7fffffffffffffffLL;
337 ix = denormal_subd1(ix, iy);
338 if ((int) ix < 0) {
339 ix = -ix;
343 ix = denormal_subd1(iy, ix);
348 ix = hx & 0x7fffffffffffffffLL;
351 ix = denormal_addd1(ix, iy);
353 ix = denormal_addd1(iy, ix);
356 return sign | ix;