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