1 #include "cado.h"
2 /* MPFQ generated file -- do not edit */
3
4 #include "mpfq_u64k1_t.h"
5
6 #include "binary-dotprods-backends.h"
7 /* Active handler: simd_u64k */
8 /* Automatically generated code */
9 /* Active handler: Mpfq::defaults */
10 /* Active handler: Mpfq::defaults::vec */
11 /* Active handler: simd_dotprod */
12 /* Active handler: io */
13 /* Active handler: trivialities */
14 /* Active handler: simd_char2 */
15 /* Options used:{
16 family=[
17 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
18 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
19 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
20 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
21 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
22 ],
23 k=1,
24 tag=u64k1,
25 vbase_stuff={
26 choose_byfeatures=<code>,
27 families=[
28 [
29 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
30 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
31 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
32 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
33 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
34 ],
35 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_1, tag=p_1, }, ],
36 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_10, tag=p_10, }, ],
37 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_11, tag=p_11, }, ],
38 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_12, tag=p_12, }, ],
39 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_13, tag=p_13, }, ],
40 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_14, tag=p_14, }, ],
41 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_15, tag=p_15, }, ],
42 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_2, tag=p_2, }, ],
43 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_3, tag=p_3, }, ],
44 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_4, tag=p_4, }, ],
45 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_5, tag=p_5, }, ],
46 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_6, tag=p_6, }, ],
47 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_7, tag=p_7, }, ],
48 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_8, tag=p_8, }, ],
49 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_9, tag=p_9, }, ],
50 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_pz, tag=pz, }, ],
51 ],
52 member_templates_restrict={
53 m128=[
54 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
55 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
56 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
57 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
58 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
59 ],
60 p_1=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_1, tag=p_1, }, ],
61 p_10=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_10, tag=p_10, }, ],
62 p_11=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_11, tag=p_11, }, ],
63 p_12=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_12, tag=p_12, }, ],
64 p_13=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_13, tag=p_13, }, ],
65 p_14=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_14, tag=p_14, }, ],
66 p_15=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_15, tag=p_15, }, ],
67 p_2=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_2, tag=p_2, }, ],
68 p_3=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_3, tag=p_3, }, ],
69 p_4=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_4, tag=p_4, }, ],
70 p_5=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_5, tag=p_5, }, ],
71 p_6=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_6, tag=p_6, }, ],
72 p_7=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_7, tag=p_7, }, ],
73 p_8=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_8, tag=p_8, }, ],
74 p_9=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_9, tag=p_9, }, ],
75 pz=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_pz, tag=pz, }, ],
76 u64k1=[
77 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
78 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
79 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
80 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
81 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
82 ],
83 u64k2=[
84 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
85 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
86 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
87 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
88 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
89 ],
90 u64k3=[
91 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
92 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
93 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
94 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
95 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
96 ],
97 u64k4=[
98 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
99 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
100 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
101 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
102 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
103 ],
104 },
105 vc:includes=[ <stdarg.h>, ],
106 },
107 virtual_base={
108 filebase=mpfq_vbase,
109 global_prefix=mpfq_,
110 name=mpfq_vbase,
111 substitutions=[
112 [ (?^:mpfq_u64k1_elt \*), void *, ],
113 [ (?^:mpfq_u64k1_src_elt\b), const void *, ],
114 [ (?^:mpfq_u64k1_elt\b), void *, ],
115 [ (?^:mpfq_u64k1_dst_elt\b), void *, ],
116 [ (?^:mpfq_u64k1_elt_ur \*), void *, ],
117 [ (?^:mpfq_u64k1_src_elt_ur\b), const void *, ],
118 [ (?^:mpfq_u64k1_elt_ur\b), void *, ],
119 [ (?^:mpfq_u64k1_dst_elt_ur\b), void *, ],
120 [ (?^:mpfq_u64k1_vec \*), void *, ],
121 [ (?^:mpfq_u64k1_src_vec\b), const void *, ],
122 [ (?^:mpfq_u64k1_vec\b), void *, ],
123 [ (?^:mpfq_u64k1_dst_vec\b), void *, ],
124 [ (?^:mpfq_u64k1_vec_ur \*), void *, ],
125 [ (?^:mpfq_u64k1_src_vec_ur\b), const void *, ],
126 [ (?^:mpfq_u64k1_vec_ur\b), void *, ],
127 [ (?^:mpfq_u64k1_dst_vec_ur\b), void *, ],
128 [ (?^:mpfq_u64k1_poly \*), void *, ],
129 [ (?^:mpfq_u64k1_src_poly\b), const void *, ],
130 [ (?^:mpfq_u64k1_poly\b), void *, ],
131 [ (?^:mpfq_u64k1_dst_poly\b), void *, ],
132 ],
133 },
134 w=64,
135 } */
136
137
138 /* Functions operating on the field structure */
139
140 /* Element allocation functions */
141
142 /* Elementary assignment functions */
143
144 /* Assignment of random values */
145
146 /* Arithmetic operations on elements */
147
148 /* Operations involving unreduced elements */
149
150 /* Comparison functions */
151
152 /* Input/output functions */
153
154 /* Vector functions */
155
156 /* Polynomial functions */
157
158 /* Functions related to SIMD operation */
159
160 /* Member templates related to SIMD operation */
161
162 /* Object-oriented interface */
163 #ifdef COMPILE_MPFQ_BINARY_FIELD_m128
164 /* Mpfq::engine::handler::create_code */
mpfq_u64k1_m128_wrapper_add_dotprod(mpfq_vbase_ptr K0 MAYBE_UNUSED,mpfq_vbase_ptr K1 MAYBE_UNUSED,mpfq_u64k1_dst_vec xw,mpfq_m128_src_vec xu1,mpfq_u64k1_src_vec xu0,unsigned int n)165 void mpfq_u64k1_m128_wrapper_add_dotprod(mpfq_vbase_ptr K0 MAYBE_UNUSED, mpfq_vbase_ptr K1 MAYBE_UNUSED, mpfq_u64k1_dst_vec xw, mpfq_m128_src_vec xu1, mpfq_u64k1_src_vec xu0, unsigned int n)
166 {
167 mpfq_u64k1_m128_add_dotprod(K0->obj, K1->obj, xw, xu1, xu0, n);
168 }
169 #endif /* COMPILE_MPFQ_BINARY_FIELD_m128 */
170
171 #ifdef COMPILE_MPFQ_BINARY_FIELD_m128
172 /* *simd_dotprod::code_for_member_template_add_dotprod */
mpfq_u64k1_m128_add_dotprod(mpfq_u64k1_dst_field K0 MAYBE_UNUSED,mpfq_m128_dst_field K1 MAYBE_UNUSED,mpfq_u64k1_dst_vec xw,mpfq_m128_src_vec xu1,mpfq_u64k1_src_vec xu0,unsigned int n)173 void mpfq_u64k1_m128_add_dotprod(mpfq_u64k1_dst_field K0 MAYBE_UNUSED, mpfq_m128_dst_field K1 MAYBE_UNUSED, mpfq_u64k1_dst_vec xw, mpfq_m128_src_vec xu1, mpfq_u64k1_src_vec xu0, unsigned int n)
174 {
175 uint64_t * w = (uint64_t *) xw;
176 const uint64_t * u0 = (const uint64_t *) xu0;
177 const uint64_t * u1 = (const uint64_t *) xu1;
178 add_dotprod_64K_128(w,u0,u1,n,1);
179 }
180 #endif /* COMPILE_MPFQ_BINARY_FIELD_m128 */
181
182 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k1
183 /* Mpfq::engine::handler::create_code */
mpfq_u64k1_u64k1_wrapper_add_dotprod(mpfq_vbase_ptr K0 MAYBE_UNUSED,mpfq_vbase_ptr K1 MAYBE_UNUSED,mpfq_u64k1_dst_vec xw,mpfq_u64k1_src_vec xu1,mpfq_u64k1_src_vec xu0,unsigned int n)184 void mpfq_u64k1_u64k1_wrapper_add_dotprod(mpfq_vbase_ptr K0 MAYBE_UNUSED, mpfq_vbase_ptr K1 MAYBE_UNUSED, mpfq_u64k1_dst_vec xw, mpfq_u64k1_src_vec xu1, mpfq_u64k1_src_vec xu0, unsigned int n)
185 {
186 mpfq_u64k1_u64k1_add_dotprod(K0->obj, K1->obj, xw, xu1, xu0, n);
187 }
188 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k1 */
189
190 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k1
191 /* *simd_dotprod::code_for_member_template_add_dotprod */
mpfq_u64k1_u64k1_add_dotprod(mpfq_u64k1_dst_field K0 MAYBE_UNUSED,mpfq_u64k1_dst_field K1 MAYBE_UNUSED,mpfq_u64k1_dst_vec xw,mpfq_u64k1_src_vec xu1,mpfq_u64k1_src_vec xu0,unsigned int n)192 void mpfq_u64k1_u64k1_add_dotprod(mpfq_u64k1_dst_field K0 MAYBE_UNUSED, mpfq_u64k1_dst_field K1 MAYBE_UNUSED, mpfq_u64k1_dst_vec xw, mpfq_u64k1_src_vec xu1, mpfq_u64k1_src_vec xu0, unsigned int n)
193 {
194 uint64_t * w = (uint64_t *) xw;
195 const uint64_t * u0 = (const uint64_t *) xu0;
196 const uint64_t * u1 = (const uint64_t *) xu1;
197 add_dotprod_64K_64(w,u1,u0,n,1);
198 }
199 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k1 */
200
201 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k2
202 /* Mpfq::engine::handler::create_code */
mpfq_u64k1_u64k2_wrapper_add_dotprod(mpfq_vbase_ptr K0 MAYBE_UNUSED,mpfq_vbase_ptr K1 MAYBE_UNUSED,mpfq_u64k1_dst_vec xw,mpfq_u64k2_src_vec xu1,mpfq_u64k1_src_vec xu0,unsigned int n)203 void mpfq_u64k1_u64k2_wrapper_add_dotprod(mpfq_vbase_ptr K0 MAYBE_UNUSED, mpfq_vbase_ptr K1 MAYBE_UNUSED, mpfq_u64k1_dst_vec xw, mpfq_u64k2_src_vec xu1, mpfq_u64k1_src_vec xu0, unsigned int n)
204 {
205 mpfq_u64k1_u64k2_add_dotprod(K0->obj, K1->obj, xw, xu1, xu0, n);
206 }
207 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k2 */
208
209 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k2
210 /* *simd_dotprod::code_for_member_template_add_dotprod */
mpfq_u64k1_u64k2_add_dotprod(mpfq_u64k1_dst_field K0 MAYBE_UNUSED,mpfq_u64k2_dst_field K1 MAYBE_UNUSED,mpfq_u64k1_dst_vec xw,mpfq_u64k2_src_vec xu1,mpfq_u64k1_src_vec xu0,unsigned int n)211 void mpfq_u64k1_u64k2_add_dotprod(mpfq_u64k1_dst_field K0 MAYBE_UNUSED, mpfq_u64k2_dst_field K1 MAYBE_UNUSED, mpfq_u64k1_dst_vec xw, mpfq_u64k2_src_vec xu1, mpfq_u64k1_src_vec xu0, unsigned int n)
212 {
213 uint64_t * w = (uint64_t *) xw;
214 const uint64_t * u0 = (const uint64_t *) xu0;
215 const uint64_t * u1 = (const uint64_t *) xu1;
216 add_dotprod_64K_128(w,u0,u1,n,1);
217 }
218 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k2 */
219
220 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k3
221 /* Mpfq::engine::handler::create_code */
mpfq_u64k1_u64k3_wrapper_add_dotprod(mpfq_vbase_ptr K0 MAYBE_UNUSED,mpfq_vbase_ptr K1 MAYBE_UNUSED,mpfq_u64k1_dst_vec xw,mpfq_u64k3_src_vec xu1,mpfq_u64k1_src_vec xu0,unsigned int n)222 void mpfq_u64k1_u64k3_wrapper_add_dotprod(mpfq_vbase_ptr K0 MAYBE_UNUSED, mpfq_vbase_ptr K1 MAYBE_UNUSED, mpfq_u64k1_dst_vec xw, mpfq_u64k3_src_vec xu1, mpfq_u64k1_src_vec xu0, unsigned int n)
223 {
224 mpfq_u64k1_u64k3_add_dotprod(K0->obj, K1->obj, xw, xu1, xu0, n);
225 }
226 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k3 */
227
228 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k3
229 /* *simd_dotprod::code_for_member_template_add_dotprod */
mpfq_u64k1_u64k3_add_dotprod(mpfq_u64k1_dst_field K0 MAYBE_UNUSED,mpfq_u64k3_dst_field K1 MAYBE_UNUSED,mpfq_u64k1_dst_vec xw,mpfq_u64k3_src_vec xu1,mpfq_u64k1_src_vec xu0,unsigned int n)230 void mpfq_u64k1_u64k3_add_dotprod(mpfq_u64k1_dst_field K0 MAYBE_UNUSED, mpfq_u64k3_dst_field K1 MAYBE_UNUSED, mpfq_u64k1_dst_vec xw, mpfq_u64k3_src_vec xu1, mpfq_u64k1_src_vec xu0, unsigned int n)
231 {
232 uint64_t * w = (uint64_t *) xw;
233 const uint64_t * u0 = (const uint64_t *) xu0;
234 const uint64_t * u1 = (const uint64_t *) xu1;
235 add_dotprod_64K_64(w,u1,u0,n,3);
236 }
237 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k3 */
238
239 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k4
240 /* Mpfq::engine::handler::create_code */
mpfq_u64k1_u64k4_wrapper_add_dotprod(mpfq_vbase_ptr K0 MAYBE_UNUSED,mpfq_vbase_ptr K1 MAYBE_UNUSED,mpfq_u64k1_dst_vec xw,mpfq_u64k4_src_vec xu1,mpfq_u64k1_src_vec xu0,unsigned int n)241 void mpfq_u64k1_u64k4_wrapper_add_dotprod(mpfq_vbase_ptr K0 MAYBE_UNUSED, mpfq_vbase_ptr K1 MAYBE_UNUSED, mpfq_u64k1_dst_vec xw, mpfq_u64k4_src_vec xu1, mpfq_u64k1_src_vec xu0, unsigned int n)
242 {
243 mpfq_u64k1_u64k4_add_dotprod(K0->obj, K1->obj, xw, xu1, xu0, n);
244 }
245 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k4 */
246
247 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k4
248 /* *simd_dotprod::code_for_member_template_add_dotprod */
mpfq_u64k1_u64k4_add_dotprod(mpfq_u64k1_dst_field K0 MAYBE_UNUSED,mpfq_u64k4_dst_field K1 MAYBE_UNUSED,mpfq_u64k1_dst_vec xw,mpfq_u64k4_src_vec xu1,mpfq_u64k1_src_vec xu0,unsigned int n)249 void mpfq_u64k1_u64k4_add_dotprod(mpfq_u64k1_dst_field K0 MAYBE_UNUSED, mpfq_u64k4_dst_field K1 MAYBE_UNUSED, mpfq_u64k1_dst_vec xw, mpfq_u64k4_src_vec xu1, mpfq_u64k1_src_vec xu0, unsigned int n)
250 {
251 uint64_t * w = (uint64_t *) xw;
252 const uint64_t * u0 = (const uint64_t *) xu0;
253 const uint64_t * u1 = (const uint64_t *) xu1;
254 add_dotprod_64K_64(w,u1,u0,n,4);
255 }
256 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k4 */
257
258 #ifdef COMPILE_MPFQ_BINARY_FIELD_m128
259 /* Mpfq::engine::handler::create_code */
mpfq_u64k1_m128_wrapper_addmul_tiny(mpfq_vbase_ptr K MAYBE_UNUSED,mpfq_vbase_ptr L MAYBE_UNUSED,mpfq_m128_dst_vec w,mpfq_u64k1_src_vec u,mpfq_m128_src_vec v,unsigned int n)260 void mpfq_u64k1_m128_wrapper_addmul_tiny(mpfq_vbase_ptr K MAYBE_UNUSED, mpfq_vbase_ptr L MAYBE_UNUSED, mpfq_m128_dst_vec w, mpfq_u64k1_src_vec u, mpfq_m128_src_vec v, unsigned int n)
261 {
262 mpfq_u64k1_m128_addmul_tiny(K->obj, L->obj, w, u, v, n);
263 }
264 #endif /* COMPILE_MPFQ_BINARY_FIELD_m128 */
265
266 #ifdef COMPILE_MPFQ_BINARY_FIELD_m128
267 /* *simd_dotprod::code_for_member_template_addmul_tiny */
mpfq_u64k1_m128_addmul_tiny(mpfq_u64k1_dst_field K MAYBE_UNUSED,mpfq_m128_dst_field L MAYBE_UNUSED,mpfq_m128_dst_vec w,mpfq_u64k1_src_vec u,mpfq_m128_src_vec v,unsigned int n)268 void mpfq_u64k1_m128_addmul_tiny(mpfq_u64k1_dst_field K MAYBE_UNUSED, mpfq_m128_dst_field L MAYBE_UNUSED, mpfq_m128_dst_vec w, mpfq_u64k1_src_vec u, mpfq_m128_src_vec v, unsigned int n)
269 {
270 vaddmul_tiny_64K_64L((uint64_t*)w[0],(const uint64_t*)u[0],(const uint64_t*)v[0],n,1,2);
271 }
272 #endif /* COMPILE_MPFQ_BINARY_FIELD_m128 */
273
274 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k1
275 /* Mpfq::engine::handler::create_code */
mpfq_u64k1_u64k1_wrapper_addmul_tiny(mpfq_vbase_ptr K MAYBE_UNUSED,mpfq_vbase_ptr L MAYBE_UNUSED,mpfq_u64k1_dst_vec w,mpfq_u64k1_src_vec u,mpfq_u64k1_src_vec v,unsigned int n)276 void mpfq_u64k1_u64k1_wrapper_addmul_tiny(mpfq_vbase_ptr K MAYBE_UNUSED, mpfq_vbase_ptr L MAYBE_UNUSED, mpfq_u64k1_dst_vec w, mpfq_u64k1_src_vec u, mpfq_u64k1_src_vec v, unsigned int n)
277 {
278 mpfq_u64k1_u64k1_addmul_tiny(K->obj, L->obj, w, u, v, n);
279 }
280 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k1 */
281
282 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k1
283 /* *simd_dotprod::code_for_member_template_addmul_tiny */
mpfq_u64k1_u64k1_addmul_tiny(mpfq_u64k1_dst_field K MAYBE_UNUSED,mpfq_u64k1_dst_field L MAYBE_UNUSED,mpfq_u64k1_dst_vec w,mpfq_u64k1_src_vec u,mpfq_u64k1_src_vec v,unsigned int n)284 void mpfq_u64k1_u64k1_addmul_tiny(mpfq_u64k1_dst_field K MAYBE_UNUSED, mpfq_u64k1_dst_field L MAYBE_UNUSED, mpfq_u64k1_dst_vec w, mpfq_u64k1_src_vec u, mpfq_u64k1_src_vec v, unsigned int n)
285 {
286 vaddmul_tiny_64K_64L((uint64_t*)w[0],(const uint64_t*)u[0],(const uint64_t*)v[0],n,1,1);
287 }
288 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k1 */
289
290 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k2
291 /* Mpfq::engine::handler::create_code */
mpfq_u64k1_u64k2_wrapper_addmul_tiny(mpfq_vbase_ptr K MAYBE_UNUSED,mpfq_vbase_ptr L MAYBE_UNUSED,mpfq_u64k2_dst_vec w,mpfq_u64k1_src_vec u,mpfq_u64k2_src_vec v,unsigned int n)292 void mpfq_u64k1_u64k2_wrapper_addmul_tiny(mpfq_vbase_ptr K MAYBE_UNUSED, mpfq_vbase_ptr L MAYBE_UNUSED, mpfq_u64k2_dst_vec w, mpfq_u64k1_src_vec u, mpfq_u64k2_src_vec v, unsigned int n)
293 {
294 mpfq_u64k1_u64k2_addmul_tiny(K->obj, L->obj, w, u, v, n);
295 }
296 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k2 */
297
298 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k2
299 /* *simd_dotprod::code_for_member_template_addmul_tiny */
mpfq_u64k1_u64k2_addmul_tiny(mpfq_u64k1_dst_field K MAYBE_UNUSED,mpfq_u64k2_dst_field L MAYBE_UNUSED,mpfq_u64k2_dst_vec w,mpfq_u64k1_src_vec u,mpfq_u64k2_src_vec v,unsigned int n)300 void mpfq_u64k1_u64k2_addmul_tiny(mpfq_u64k1_dst_field K MAYBE_UNUSED, mpfq_u64k2_dst_field L MAYBE_UNUSED, mpfq_u64k2_dst_vec w, mpfq_u64k1_src_vec u, mpfq_u64k2_src_vec v, unsigned int n)
301 {
302 vaddmul_tiny_64K_64L((uint64_t*)w[0],(const uint64_t*)u[0],(const uint64_t*)v[0],n,1,2);
303 }
304 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k2 */
305
306 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k3
307 /* Mpfq::engine::handler::create_code */
mpfq_u64k1_u64k3_wrapper_addmul_tiny(mpfq_vbase_ptr K MAYBE_UNUSED,mpfq_vbase_ptr L MAYBE_UNUSED,mpfq_u64k3_dst_vec w,mpfq_u64k1_src_vec u,mpfq_u64k3_src_vec v,unsigned int n)308 void mpfq_u64k1_u64k3_wrapper_addmul_tiny(mpfq_vbase_ptr K MAYBE_UNUSED, mpfq_vbase_ptr L MAYBE_UNUSED, mpfq_u64k3_dst_vec w, mpfq_u64k1_src_vec u, mpfq_u64k3_src_vec v, unsigned int n)
309 {
310 mpfq_u64k1_u64k3_addmul_tiny(K->obj, L->obj, w, u, v, n);
311 }
312 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k3 */
313
314 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k3
315 /* *simd_dotprod::code_for_member_template_addmul_tiny */
mpfq_u64k1_u64k3_addmul_tiny(mpfq_u64k1_dst_field K MAYBE_UNUSED,mpfq_u64k3_dst_field L MAYBE_UNUSED,mpfq_u64k3_dst_vec w,mpfq_u64k1_src_vec u,mpfq_u64k3_src_vec v,unsigned int n)316 void mpfq_u64k1_u64k3_addmul_tiny(mpfq_u64k1_dst_field K MAYBE_UNUSED, mpfq_u64k3_dst_field L MAYBE_UNUSED, mpfq_u64k3_dst_vec w, mpfq_u64k1_src_vec u, mpfq_u64k3_src_vec v, unsigned int n)
317 {
318 vaddmul_tiny_64K_64L((uint64_t*)w[0],(const uint64_t*)u[0],(const uint64_t*)v[0],n,1,3);
319 }
320 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k3 */
321
322 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k4
323 /* Mpfq::engine::handler::create_code */
mpfq_u64k1_u64k4_wrapper_addmul_tiny(mpfq_vbase_ptr K MAYBE_UNUSED,mpfq_vbase_ptr L MAYBE_UNUSED,mpfq_u64k4_dst_vec w,mpfq_u64k1_src_vec u,mpfq_u64k4_src_vec v,unsigned int n)324 void mpfq_u64k1_u64k4_wrapper_addmul_tiny(mpfq_vbase_ptr K MAYBE_UNUSED, mpfq_vbase_ptr L MAYBE_UNUSED, mpfq_u64k4_dst_vec w, mpfq_u64k1_src_vec u, mpfq_u64k4_src_vec v, unsigned int n)
325 {
326 mpfq_u64k1_u64k4_addmul_tiny(K->obj, L->obj, w, u, v, n);
327 }
328 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k4 */
329
330 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k4
331 /* *simd_dotprod::code_for_member_template_addmul_tiny */
mpfq_u64k1_u64k4_addmul_tiny(mpfq_u64k1_dst_field K MAYBE_UNUSED,mpfq_u64k4_dst_field L MAYBE_UNUSED,mpfq_u64k4_dst_vec w,mpfq_u64k1_src_vec u,mpfq_u64k4_src_vec v,unsigned int n)332 void mpfq_u64k1_u64k4_addmul_tiny(mpfq_u64k1_dst_field K MAYBE_UNUSED, mpfq_u64k4_dst_field L MAYBE_UNUSED, mpfq_u64k4_dst_vec w, mpfq_u64k1_src_vec u, mpfq_u64k4_src_vec v, unsigned int n)
333 {
334 vaddmul_tiny_64K_64L((uint64_t*)w[0],(const uint64_t*)u[0],(const uint64_t*)v[0],n,1,4);
335 }
336 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k4 */
337
338 #ifdef COMPILE_MPFQ_BINARY_FIELD_m128
339 /* Mpfq::engine::handler::create_code */
mpfq_u64k1_m128_wrapper_transpose(mpfq_vbase_ptr K MAYBE_UNUSED,mpfq_vbase_ptr L MAYBE_UNUSED,mpfq_u64k1_dst_vec w,mpfq_m128_src_vec u)340 void mpfq_u64k1_m128_wrapper_transpose(mpfq_vbase_ptr K MAYBE_UNUSED, mpfq_vbase_ptr L MAYBE_UNUSED, mpfq_u64k1_dst_vec w, mpfq_m128_src_vec u)
341 {
342 mpfq_u64k1_m128_transpose(K->obj, L->obj, w, u);
343 }
344 #endif /* COMPILE_MPFQ_BINARY_FIELD_m128 */
345
346 #ifdef COMPILE_MPFQ_BINARY_FIELD_m128
347 /* *simd_dotprod::code_for_member_template_transpose */
mpfq_u64k1_m128_transpose(mpfq_u64k1_dst_field K MAYBE_UNUSED,mpfq_m128_dst_field L MAYBE_UNUSED,mpfq_u64k1_dst_vec w,mpfq_m128_src_vec u)348 void mpfq_u64k1_m128_transpose(mpfq_u64k1_dst_field K MAYBE_UNUSED, mpfq_m128_dst_field L MAYBE_UNUSED, mpfq_u64k1_dst_vec w, mpfq_m128_src_vec u)
349 {
350 vtranspose_64K_64L((uint64_t*)w[0],(const uint64_t*)u[0],1,2);
351 }
352 #endif /* COMPILE_MPFQ_BINARY_FIELD_m128 */
353
354 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k1
355 /* Mpfq::engine::handler::create_code */
mpfq_u64k1_u64k1_wrapper_transpose(mpfq_vbase_ptr K MAYBE_UNUSED,mpfq_vbase_ptr L MAYBE_UNUSED,mpfq_u64k1_dst_vec w,mpfq_u64k1_src_vec u)356 void mpfq_u64k1_u64k1_wrapper_transpose(mpfq_vbase_ptr K MAYBE_UNUSED, mpfq_vbase_ptr L MAYBE_UNUSED, mpfq_u64k1_dst_vec w, mpfq_u64k1_src_vec u)
357 {
358 mpfq_u64k1_u64k1_transpose(K->obj, L->obj, w, u);
359 }
360 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k1 */
361
362 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k1
363 /* *simd_dotprod::code_for_member_template_transpose */
mpfq_u64k1_u64k1_transpose(mpfq_u64k1_dst_field K MAYBE_UNUSED,mpfq_u64k1_dst_field L MAYBE_UNUSED,mpfq_u64k1_dst_vec w,mpfq_u64k1_src_vec u)364 void mpfq_u64k1_u64k1_transpose(mpfq_u64k1_dst_field K MAYBE_UNUSED, mpfq_u64k1_dst_field L MAYBE_UNUSED, mpfq_u64k1_dst_vec w, mpfq_u64k1_src_vec u)
365 {
366 vtranspose_64K_64L((uint64_t*)w[0],(const uint64_t*)u[0],1,1);
367 }
368 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k1 */
369
370 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k2
371 /* Mpfq::engine::handler::create_code */
mpfq_u64k1_u64k2_wrapper_transpose(mpfq_vbase_ptr K MAYBE_UNUSED,mpfq_vbase_ptr L MAYBE_UNUSED,mpfq_u64k1_dst_vec w,mpfq_u64k2_src_vec u)372 void mpfq_u64k1_u64k2_wrapper_transpose(mpfq_vbase_ptr K MAYBE_UNUSED, mpfq_vbase_ptr L MAYBE_UNUSED, mpfq_u64k1_dst_vec w, mpfq_u64k2_src_vec u)
373 {
374 mpfq_u64k1_u64k2_transpose(K->obj, L->obj, w, u);
375 }
376 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k2 */
377
378 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k2
379 /* *simd_dotprod::code_for_member_template_transpose */
mpfq_u64k1_u64k2_transpose(mpfq_u64k1_dst_field K MAYBE_UNUSED,mpfq_u64k2_dst_field L MAYBE_UNUSED,mpfq_u64k1_dst_vec w,mpfq_u64k2_src_vec u)380 void mpfq_u64k1_u64k2_transpose(mpfq_u64k1_dst_field K MAYBE_UNUSED, mpfq_u64k2_dst_field L MAYBE_UNUSED, mpfq_u64k1_dst_vec w, mpfq_u64k2_src_vec u)
381 {
382 vtranspose_64K_64L((uint64_t*)w[0],(const uint64_t*)u[0],1,2);
383 }
384 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k2 */
385
386 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k3
387 /* Mpfq::engine::handler::create_code */
mpfq_u64k1_u64k3_wrapper_transpose(mpfq_vbase_ptr K MAYBE_UNUSED,mpfq_vbase_ptr L MAYBE_UNUSED,mpfq_u64k1_dst_vec w,mpfq_u64k3_src_vec u)388 void mpfq_u64k1_u64k3_wrapper_transpose(mpfq_vbase_ptr K MAYBE_UNUSED, mpfq_vbase_ptr L MAYBE_UNUSED, mpfq_u64k1_dst_vec w, mpfq_u64k3_src_vec u)
389 {
390 mpfq_u64k1_u64k3_transpose(K->obj, L->obj, w, u);
391 }
392 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k3 */
393
394 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k3
395 /* *simd_dotprod::code_for_member_template_transpose */
mpfq_u64k1_u64k3_transpose(mpfq_u64k1_dst_field K MAYBE_UNUSED,mpfq_u64k3_dst_field L MAYBE_UNUSED,mpfq_u64k1_dst_vec w,mpfq_u64k3_src_vec u)396 void mpfq_u64k1_u64k3_transpose(mpfq_u64k1_dst_field K MAYBE_UNUSED, mpfq_u64k3_dst_field L MAYBE_UNUSED, mpfq_u64k1_dst_vec w, mpfq_u64k3_src_vec u)
397 {
398 vtranspose_64K_64L((uint64_t*)w[0],(const uint64_t*)u[0],1,3);
399 }
400 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k3 */
401
402 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k4
403 /* Mpfq::engine::handler::create_code */
mpfq_u64k1_u64k4_wrapper_transpose(mpfq_vbase_ptr K MAYBE_UNUSED,mpfq_vbase_ptr L MAYBE_UNUSED,mpfq_u64k1_dst_vec w,mpfq_u64k4_src_vec u)404 void mpfq_u64k1_u64k4_wrapper_transpose(mpfq_vbase_ptr K MAYBE_UNUSED, mpfq_vbase_ptr L MAYBE_UNUSED, mpfq_u64k1_dst_vec w, mpfq_u64k4_src_vec u)
405 {
406 mpfq_u64k1_u64k4_transpose(K->obj, L->obj, w, u);
407 }
408 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k4 */
409
410 #ifdef COMPILE_MPFQ_BINARY_FIELD_u64k4
411 /* *simd_dotprod::code_for_member_template_transpose */
mpfq_u64k1_u64k4_transpose(mpfq_u64k1_dst_field K MAYBE_UNUSED,mpfq_u64k4_dst_field L MAYBE_UNUSED,mpfq_u64k1_dst_vec w,mpfq_u64k4_src_vec u)412 void mpfq_u64k1_u64k4_transpose(mpfq_u64k1_dst_field K MAYBE_UNUSED, mpfq_u64k4_dst_field L MAYBE_UNUSED, mpfq_u64k1_dst_vec w, mpfq_u64k4_src_vec u)
413 {
414 vtranspose_64K_64L((uint64_t*)w[0],(const uint64_t*)u[0],1,4);
415 }
416 #endif /* COMPILE_MPFQ_BINARY_FIELD_u64k4 */
417
418
419 /* vim:set ft=cpp: */
420