Lines Matching +full:- +full:a
1 /* -------------------------------------------------------------- */
13 /* - Redistributions of source code must retain the above copyright*/
16 /* - Redistributions in binary form must reproduce the above */
21 /* - Neither the name of IBM Corporation nor the names of its */
29 /* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
39 /* -------------------------------------------------------------- */
56 static __inline vector float _divf4(vector float a, vector float b) in _divf4() argument
59 /* This function has been designed to provide a in _divf4()
62 * single precision inputs <a> and <b>. This includes: in _divf4()
67 * mode of the processor - truncated toward zero. in _divf4()
72 * the divisor <b> has a zero exponent. A quotient in _divf4()
74 * 5) Denorm/zero divided by a denorm/zero generates in _divf4()
75 * a DBZ with the results undefined. in _divf4()
77 * 7) If a non-compliant IEEE result is produced, the in _divf4()
78 * a DIFF exception is generated. in _divf4()
88 /* If b has a zero exponent, then set the divide by zero in _divf4()
98 mant_a = spu_sel(a, one, exp_mask); in _divf4()
102 * followed by one iteration of the Newton-Raphson. in _divf4()
116 q2 = spu_sel(q1, q2, spu_cmpgt((vector signed int)err, -1)); in _divf4()
122 * values by computing a multiplier (mult) that will force the in _divf4()
126 * divisor b is a denorm or zero. in _divf4()
128 exp_a = spu_and((vector unsigned int)a, exp_mask); in _divf4()
133 * either the dividend <a> is a denorm/zero, or the computed exponent is in _divf4()
134 * less than or equal to a biased 0), force the multiplier to 0.0. in _divf4()
143 overflow = spu_or(spu_cmpeq(exp_b, 0), spu_cmpeq(spu_rlmask(exp, -30), 2)); in _divf4()
146 mult = spu_or(mult, (vector float)spu_rlmask(overflow, -1)); in _divf4()