Lines Matching full:v1
50 * v = 2^n v1 * v0
54 * uv = 2^2n u1 v1 + 2^n u1 v0 + 2^n v1 u0 + u0 v0
55 * = 2^2n u1 v1 + 2^n (u1 v0 + v1 u0) + u0 v0
57 * Now add 2^n u1 v1 to the first term and subtract it from the middle,
61 * uv = (2^2n + 2^n) (u1 v1) +
62 * (2^n) (u1 v0 - u1 v1 + u0 v1 - u0 v0) +
67 * uv = (2^2n + 2^n) (u1 v1) + [u1v1 = high]
68 * (2^n) (u1 - u0) (v0 - v1) + [(u1-u0)... = mid]
71 * The terms (u1 v1), (u1 - u0) (v0 - v1), and (u0 v0) can all be done
73 * of (u1 - u0) or (v0 - v1) may be negative.)
108 #define v1 v.ul[H] in __muldi3() macro
113 * u1, u0, v1, and v0 will be directly accessible through the in __muldi3()
125 if (u1 == 0 && v1 == 0) { in __muldi3()
127 * An (I hope) important optimization occurs when u1 and v1 in __muldi3()
145 if (v0 >= v1) in __muldi3()
146 vdiff = v0 - v1; in __muldi3()
148 vdiff = v1 - v0, negmid ^= 1; in __muldi3()
151 high = u1 * v1; in __muldi3()
163 #undef v1 in __muldi3()
187 u_int u1, u0, v1, v0, udiff, vdiff, high, mid, low; in __lmulq() local
194 v1 = HHALF(v); in __lmulq()
200 if (u1 == 0 && v1 == 0) in __lmulq()
207 if (v0 >= v1) in __lmulq()
208 vdiff = v0 - v1; in __lmulq()
210 vdiff = v1 - v0, neg ^= 1; in __lmulq()
213 high = u1 * v1; in __lmulq()