1 /*
2 * Copyright (C) by Argonne National Laboratory
3 * See COPYRIGHT in top-level directory
4 *
5 * DO NOT EDIT: AUTOMATICALLY GENERATED FILE !!
6 */
7
8 #include <string.h>
9 #include <stdint.h>
10 #include <wchar.h>
11 #include "yaksuri_seqi_pup.h"
12
yaksuri_seqi_pack_hvector_contig_int64_t(const void * inbuf,void * outbuf,uintptr_t count,yaksi_type_s * type)13 int yaksuri_seqi_pack_hvector_contig_int64_t(const void *inbuf, void *outbuf, uintptr_t count, yaksi_type_s * type)
14 {
15 int rc = YAKSA_SUCCESS;
16 const char *restrict sbuf = (const char *) inbuf;
17 char *restrict dbuf = (char *) outbuf;
18 uintptr_t extent ATTRIBUTE((unused)) = type->extent;
19
20 int count1 = type->u.hvector.count;
21 int blocklength1 ATTRIBUTE((unused)) = type->u.hvector.blocklength;
22 intptr_t stride1 = type->u.hvector.stride;
23 uintptr_t extent1 ATTRIBUTE((unused)) = type->extent;
24
25 int count2 = type->u.hvector.child->u.contig.count;
26 intptr_t stride2 = type->u.hvector.child->u.contig.child->extent;
27 uintptr_t extent2 ATTRIBUTE((unused)) = type->u.hvector.child->extent;
28
29 uintptr_t idx = 0;
30 for (int i = 0; i < count; i++) {
31 for (int j1 = 0; j1 < count1; j1++) {
32 for (int k1 = 0; k1 < blocklength1; k1++) {
33 for (int j2 = 0; j2 < count2; j2++) {
34 *((int64_t *) (void *) (dbuf + idx)) = *((const int64_t *) (const void *) (sbuf + i * extent + j1 * stride1 + k1 * extent2 + j2 * stride2));
35 idx += sizeof(int64_t);
36 }
37 }
38 }
39 }
40
41 return rc;
42 }
43
yaksuri_seqi_unpack_hvector_contig_int64_t(const void * inbuf,void * outbuf,uintptr_t count,yaksi_type_s * type)44 int yaksuri_seqi_unpack_hvector_contig_int64_t(const void *inbuf, void *outbuf, uintptr_t count, yaksi_type_s * type)
45 {
46 int rc = YAKSA_SUCCESS;
47 const char *restrict sbuf = (const char *) inbuf;
48 char *restrict dbuf = (char *) outbuf;
49 uintptr_t extent ATTRIBUTE((unused)) = type->extent;
50
51 int count1 = type->u.hvector.count;
52 int blocklength1 ATTRIBUTE((unused)) = type->u.hvector.blocklength;
53 intptr_t stride1 = type->u.hvector.stride;
54 uintptr_t extent1 ATTRIBUTE((unused)) = type->extent;
55
56 int count2 = type->u.hvector.child->u.contig.count;
57 intptr_t stride2 = type->u.hvector.child->u.contig.child->extent;
58 uintptr_t extent2 ATTRIBUTE((unused)) = type->u.hvector.child->extent;
59
60 uintptr_t idx = 0;
61 for (int i = 0; i < count; i++) {
62 for (int j1 = 0; j1 < count1; j1++) {
63 for (int k1 = 0; k1 < blocklength1; k1++) {
64 for (int j2 = 0; j2 < count2; j2++) {
65 *((int64_t *) (void *) (dbuf + i * extent + j1 * stride1 + k1 * extent2 + j2 * stride2)) = *((const int64_t *) (const void *) (sbuf + idx));
66 idx += sizeof(int64_t);
67 }
68 }
69 }
70 }
71
72 return rc;
73 }
74
yaksuri_seqi_pack_hvector_hvector_contig_int64_t(const void * inbuf,void * outbuf,uintptr_t count,yaksi_type_s * type)75 int yaksuri_seqi_pack_hvector_hvector_contig_int64_t(const void *inbuf, void *outbuf, uintptr_t count, yaksi_type_s * type)
76 {
77 int rc = YAKSA_SUCCESS;
78 const char *restrict sbuf = (const char *) inbuf;
79 char *restrict dbuf = (char *) outbuf;
80 uintptr_t extent ATTRIBUTE((unused)) = type->extent;
81
82 int count1 = type->u.hvector.count;
83 int blocklength1 ATTRIBUTE((unused)) = type->u.hvector.blocklength;
84 intptr_t stride1 = type->u.hvector.stride;
85 uintptr_t extent1 ATTRIBUTE((unused)) = type->extent;
86
87 int count2 = type->u.hvector.child->u.hvector.count;
88 int blocklength2 ATTRIBUTE((unused)) = type->u.hvector.child->u.hvector.blocklength;
89 intptr_t stride2 = type->u.hvector.child->u.hvector.stride;
90 uintptr_t extent2 ATTRIBUTE((unused)) = type->u.hvector.child->extent;
91
92 int count3 = type->u.hvector.child->u.hvector.child->u.contig.count;
93 intptr_t stride3 = type->u.hvector.child->u.hvector.child->u.contig.child->extent;
94 uintptr_t extent3 ATTRIBUTE((unused)) = type->u.hvector.child->u.hvector.child->extent;
95
96 uintptr_t idx = 0;
97 for (int i = 0; i < count; i++) {
98 for (int j1 = 0; j1 < count1; j1++) {
99 for (int k1 = 0; k1 < blocklength1; k1++) {
100 for (int j2 = 0; j2 < count2; j2++) {
101 for (int k2 = 0; k2 < blocklength2; k2++) {
102 for (int j3 = 0; j3 < count3; j3++) {
103 *((int64_t *) (void *) (dbuf + idx)) = *((const int64_t *) (const void *) (sbuf + i * extent + j1 * stride1 + k1 * extent2 + j2 * stride2 + k2 * extent3 + j3 * stride3));
104 idx += sizeof(int64_t);
105 }
106 }
107 }
108 }
109 }
110 }
111
112 return rc;
113 }
114
yaksuri_seqi_unpack_hvector_hvector_contig_int64_t(const void * inbuf,void * outbuf,uintptr_t count,yaksi_type_s * type)115 int yaksuri_seqi_unpack_hvector_hvector_contig_int64_t(const void *inbuf, void *outbuf, uintptr_t count, yaksi_type_s * type)
116 {
117 int rc = YAKSA_SUCCESS;
118 const char *restrict sbuf = (const char *) inbuf;
119 char *restrict dbuf = (char *) outbuf;
120 uintptr_t extent ATTRIBUTE((unused)) = type->extent;
121
122 int count1 = type->u.hvector.count;
123 int blocklength1 ATTRIBUTE((unused)) = type->u.hvector.blocklength;
124 intptr_t stride1 = type->u.hvector.stride;
125 uintptr_t extent1 ATTRIBUTE((unused)) = type->extent;
126
127 int count2 = type->u.hvector.child->u.hvector.count;
128 int blocklength2 ATTRIBUTE((unused)) = type->u.hvector.child->u.hvector.blocklength;
129 intptr_t stride2 = type->u.hvector.child->u.hvector.stride;
130 uintptr_t extent2 ATTRIBUTE((unused)) = type->u.hvector.child->extent;
131
132 int count3 = type->u.hvector.child->u.hvector.child->u.contig.count;
133 intptr_t stride3 = type->u.hvector.child->u.hvector.child->u.contig.child->extent;
134 uintptr_t extent3 ATTRIBUTE((unused)) = type->u.hvector.child->u.hvector.child->extent;
135
136 uintptr_t idx = 0;
137 for (int i = 0; i < count; i++) {
138 for (int j1 = 0; j1 < count1; j1++) {
139 for (int k1 = 0; k1 < blocklength1; k1++) {
140 for (int j2 = 0; j2 < count2; j2++) {
141 for (int k2 = 0; k2 < blocklength2; k2++) {
142 for (int j3 = 0; j3 < count3; j3++) {
143 *((int64_t *) (void *) (dbuf + i * extent + j1 * stride1 + k1 * extent2 + j2 * stride2 + k2 * extent3 + j3 * stride3)) = *((const int64_t *) (const void *) (sbuf + idx));
144 idx += sizeof(int64_t);
145 }
146 }
147 }
148 }
149 }
150 }
151
152 return rc;
153 }
154
yaksuri_seqi_pack_blkhindx_hvector_contig_int64_t(const void * inbuf,void * outbuf,uintptr_t count,yaksi_type_s * type)155 int yaksuri_seqi_pack_blkhindx_hvector_contig_int64_t(const void *inbuf, void *outbuf, uintptr_t count, yaksi_type_s * type)
156 {
157 int rc = YAKSA_SUCCESS;
158 const char *restrict sbuf = (const char *) inbuf;
159 char *restrict dbuf = (char *) outbuf;
160 uintptr_t extent ATTRIBUTE((unused)) = type->extent;
161
162 int count1 = type->u.blkhindx.count;
163 int blocklength1 ATTRIBUTE((unused)) = type->u.blkhindx.blocklength;
164 intptr_t *restrict array_of_displs1 = type->u.blkhindx.array_of_displs;
165 uintptr_t extent1 ATTRIBUTE((unused)) = type->extent;
166
167 int count2 = type->u.blkhindx.child->u.hvector.count;
168 int blocklength2 ATTRIBUTE((unused)) = type->u.blkhindx.child->u.hvector.blocklength;
169 intptr_t stride2 = type->u.blkhindx.child->u.hvector.stride;
170 uintptr_t extent2 ATTRIBUTE((unused)) = type->u.blkhindx.child->extent;
171
172 int count3 = type->u.blkhindx.child->u.hvector.child->u.contig.count;
173 intptr_t stride3 = type->u.blkhindx.child->u.hvector.child->u.contig.child->extent;
174 uintptr_t extent3 ATTRIBUTE((unused)) = type->u.blkhindx.child->u.hvector.child->extent;
175
176 uintptr_t idx = 0;
177 for (int i = 0; i < count; i++) {
178 for (int j1 = 0; j1 < count1; j1++) {
179 for (int k1 = 0; k1 < blocklength1; k1++) {
180 for (int j2 = 0; j2 < count2; j2++) {
181 for (int k2 = 0; k2 < blocklength2; k2++) {
182 for (int j3 = 0; j3 < count3; j3++) {
183 *((int64_t *) (void *) (dbuf + idx)) = *((const int64_t *) (const void *) (sbuf + i * extent + array_of_displs1[j1] + k1 * extent2 + j2 * stride2 + k2 * extent3 + j3 * stride3));
184 idx += sizeof(int64_t);
185 }
186 }
187 }
188 }
189 }
190 }
191
192 return rc;
193 }
194
yaksuri_seqi_unpack_blkhindx_hvector_contig_int64_t(const void * inbuf,void * outbuf,uintptr_t count,yaksi_type_s * type)195 int yaksuri_seqi_unpack_blkhindx_hvector_contig_int64_t(const void *inbuf, void *outbuf, uintptr_t count, yaksi_type_s * type)
196 {
197 int rc = YAKSA_SUCCESS;
198 const char *restrict sbuf = (const char *) inbuf;
199 char *restrict dbuf = (char *) outbuf;
200 uintptr_t extent ATTRIBUTE((unused)) = type->extent;
201
202 int count1 = type->u.blkhindx.count;
203 int blocklength1 ATTRIBUTE((unused)) = type->u.blkhindx.blocklength;
204 intptr_t *restrict array_of_displs1 = type->u.blkhindx.array_of_displs;
205 uintptr_t extent1 ATTRIBUTE((unused)) = type->extent;
206
207 int count2 = type->u.blkhindx.child->u.hvector.count;
208 int blocklength2 ATTRIBUTE((unused)) = type->u.blkhindx.child->u.hvector.blocklength;
209 intptr_t stride2 = type->u.blkhindx.child->u.hvector.stride;
210 uintptr_t extent2 ATTRIBUTE((unused)) = type->u.blkhindx.child->extent;
211
212 int count3 = type->u.blkhindx.child->u.hvector.child->u.contig.count;
213 intptr_t stride3 = type->u.blkhindx.child->u.hvector.child->u.contig.child->extent;
214 uintptr_t extent3 ATTRIBUTE((unused)) = type->u.blkhindx.child->u.hvector.child->extent;
215
216 uintptr_t idx = 0;
217 for (int i = 0; i < count; i++) {
218 for (int j1 = 0; j1 < count1; j1++) {
219 for (int k1 = 0; k1 < blocklength1; k1++) {
220 for (int j2 = 0; j2 < count2; j2++) {
221 for (int k2 = 0; k2 < blocklength2; k2++) {
222 for (int j3 = 0; j3 < count3; j3++) {
223 *((int64_t *) (void *) (dbuf + i * extent + array_of_displs1[j1] + k1 * extent2 + j2 * stride2 + k2 * extent3 + j3 * stride3)) = *((const int64_t *) (const void *) (sbuf + idx));
224 idx += sizeof(int64_t);
225 }
226 }
227 }
228 }
229 }
230 }
231
232 return rc;
233 }
234
yaksuri_seqi_pack_hindexed_hvector_contig_int64_t(const void * inbuf,void * outbuf,uintptr_t count,yaksi_type_s * type)235 int yaksuri_seqi_pack_hindexed_hvector_contig_int64_t(const void *inbuf, void *outbuf, uintptr_t count, yaksi_type_s * type)
236 {
237 int rc = YAKSA_SUCCESS;
238 const char *restrict sbuf = (const char *) inbuf;
239 char *restrict dbuf = (char *) outbuf;
240 uintptr_t extent ATTRIBUTE((unused)) = type->extent;
241
242 int count1 = type->u.hindexed.count;
243 int *restrict array_of_blocklengths1 = type->u.hindexed.array_of_blocklengths;
244 intptr_t *restrict array_of_displs1 = type->u.hindexed.array_of_displs;
245 uintptr_t extent1 ATTRIBUTE((unused)) = type->extent;
246
247 int count2 = type->u.hindexed.child->u.hvector.count;
248 int blocklength2 ATTRIBUTE((unused)) = type->u.hindexed.child->u.hvector.blocklength;
249 intptr_t stride2 = type->u.hindexed.child->u.hvector.stride;
250 uintptr_t extent2 ATTRIBUTE((unused)) = type->u.hindexed.child->extent;
251
252 int count3 = type->u.hindexed.child->u.hvector.child->u.contig.count;
253 intptr_t stride3 = type->u.hindexed.child->u.hvector.child->u.contig.child->extent;
254 uintptr_t extent3 ATTRIBUTE((unused)) = type->u.hindexed.child->u.hvector.child->extent;
255
256 uintptr_t idx = 0;
257 for (int i = 0; i < count; i++) {
258 for (int j1 = 0; j1 < count1; j1++) {
259 for (int k1 = 0; k1 < array_of_blocklengths1[j1]; k1++) {
260 for (int j2 = 0; j2 < count2; j2++) {
261 for (int k2 = 0; k2 < blocklength2; k2++) {
262 for (int j3 = 0; j3 < count3; j3++) {
263 *((int64_t *) (void *) (dbuf + idx)) = *((const int64_t *) (const void *) (sbuf + i * extent + array_of_displs1[j1] + k1 * extent2 + j2 * stride2 + k2 * extent3 + j3 * stride3));
264 idx += sizeof(int64_t);
265 }
266 }
267 }
268 }
269 }
270 }
271
272 return rc;
273 }
274
yaksuri_seqi_unpack_hindexed_hvector_contig_int64_t(const void * inbuf,void * outbuf,uintptr_t count,yaksi_type_s * type)275 int yaksuri_seqi_unpack_hindexed_hvector_contig_int64_t(const void *inbuf, void *outbuf, uintptr_t count, yaksi_type_s * type)
276 {
277 int rc = YAKSA_SUCCESS;
278 const char *restrict sbuf = (const char *) inbuf;
279 char *restrict dbuf = (char *) outbuf;
280 uintptr_t extent ATTRIBUTE((unused)) = type->extent;
281
282 int count1 = type->u.hindexed.count;
283 int *restrict array_of_blocklengths1 = type->u.hindexed.array_of_blocklengths;
284 intptr_t *restrict array_of_displs1 = type->u.hindexed.array_of_displs;
285 uintptr_t extent1 ATTRIBUTE((unused)) = type->extent;
286
287 int count2 = type->u.hindexed.child->u.hvector.count;
288 int blocklength2 ATTRIBUTE((unused)) = type->u.hindexed.child->u.hvector.blocklength;
289 intptr_t stride2 = type->u.hindexed.child->u.hvector.stride;
290 uintptr_t extent2 ATTRIBUTE((unused)) = type->u.hindexed.child->extent;
291
292 int count3 = type->u.hindexed.child->u.hvector.child->u.contig.count;
293 intptr_t stride3 = type->u.hindexed.child->u.hvector.child->u.contig.child->extent;
294 uintptr_t extent3 ATTRIBUTE((unused)) = type->u.hindexed.child->u.hvector.child->extent;
295
296 uintptr_t idx = 0;
297 for (int i = 0; i < count; i++) {
298 for (int j1 = 0; j1 < count1; j1++) {
299 for (int k1 = 0; k1 < array_of_blocklengths1[j1]; k1++) {
300 for (int j2 = 0; j2 < count2; j2++) {
301 for (int k2 = 0; k2 < blocklength2; k2++) {
302 for (int j3 = 0; j3 < count3; j3++) {
303 *((int64_t *) (void *) (dbuf + i * extent + array_of_displs1[j1] + k1 * extent2 + j2 * stride2 + k2 * extent3 + j3 * stride3)) = *((const int64_t *) (const void *) (sbuf + idx));
304 idx += sizeof(int64_t);
305 }
306 }
307 }
308 }
309 }
310 }
311
312 return rc;
313 }
314
yaksuri_seqi_pack_contig_hvector_contig_int64_t(const void * inbuf,void * outbuf,uintptr_t count,yaksi_type_s * type)315 int yaksuri_seqi_pack_contig_hvector_contig_int64_t(const void *inbuf, void *outbuf, uintptr_t count, yaksi_type_s * type)
316 {
317 int rc = YAKSA_SUCCESS;
318 const char *restrict sbuf = (const char *) inbuf;
319 char *restrict dbuf = (char *) outbuf;
320 uintptr_t extent ATTRIBUTE((unused)) = type->extent;
321
322 int count1 = type->u.contig.count;
323 intptr_t stride1 = type->u.contig.child->extent;
324 uintptr_t extent1 ATTRIBUTE((unused)) = type->extent;
325
326 int count2 = type->u.contig.child->u.hvector.count;
327 int blocklength2 ATTRIBUTE((unused)) = type->u.contig.child->u.hvector.blocklength;
328 intptr_t stride2 = type->u.contig.child->u.hvector.stride;
329 uintptr_t extent2 ATTRIBUTE((unused)) = type->u.contig.child->extent;
330
331 int count3 = type->u.contig.child->u.hvector.child->u.contig.count;
332 intptr_t stride3 = type->u.contig.child->u.hvector.child->u.contig.child->extent;
333 uintptr_t extent3 ATTRIBUTE((unused)) = type->u.contig.child->u.hvector.child->extent;
334
335 uintptr_t idx = 0;
336 for (int i = 0; i < count; i++) {
337 for (int j1 = 0; j1 < count1; j1++) {
338 for (int j2 = 0; j2 < count2; j2++) {
339 for (int k2 = 0; k2 < blocklength2; k2++) {
340 for (int j3 = 0; j3 < count3; j3++) {
341 *((int64_t *) (void *) (dbuf + idx)) = *((const int64_t *) (const void *) (sbuf + i * extent + j1 * stride1 + j2 * stride2 + k2 * extent3 + j3 * stride3));
342 idx += sizeof(int64_t);
343 }
344 }
345 }
346 }
347 }
348
349 return rc;
350 }
351
yaksuri_seqi_unpack_contig_hvector_contig_int64_t(const void * inbuf,void * outbuf,uintptr_t count,yaksi_type_s * type)352 int yaksuri_seqi_unpack_contig_hvector_contig_int64_t(const void *inbuf, void *outbuf, uintptr_t count, yaksi_type_s * type)
353 {
354 int rc = YAKSA_SUCCESS;
355 const char *restrict sbuf = (const char *) inbuf;
356 char *restrict dbuf = (char *) outbuf;
357 uintptr_t extent ATTRIBUTE((unused)) = type->extent;
358
359 int count1 = type->u.contig.count;
360 intptr_t stride1 = type->u.contig.child->extent;
361 uintptr_t extent1 ATTRIBUTE((unused)) = type->extent;
362
363 int count2 = type->u.contig.child->u.hvector.count;
364 int blocklength2 ATTRIBUTE((unused)) = type->u.contig.child->u.hvector.blocklength;
365 intptr_t stride2 = type->u.contig.child->u.hvector.stride;
366 uintptr_t extent2 ATTRIBUTE((unused)) = type->u.contig.child->extent;
367
368 int count3 = type->u.contig.child->u.hvector.child->u.contig.count;
369 intptr_t stride3 = type->u.contig.child->u.hvector.child->u.contig.child->extent;
370 uintptr_t extent3 ATTRIBUTE((unused)) = type->u.contig.child->u.hvector.child->extent;
371
372 uintptr_t idx = 0;
373 for (int i = 0; i < count; i++) {
374 for (int j1 = 0; j1 < count1; j1++) {
375 for (int j2 = 0; j2 < count2; j2++) {
376 for (int k2 = 0; k2 < blocklength2; k2++) {
377 for (int j3 = 0; j3 < count3; j3++) {
378 *((int64_t *) (void *) (dbuf + i * extent + j1 * stride1 + j2 * stride2 + k2 * extent3 + j3 * stride3)) = *((const int64_t *) (const void *) (sbuf + idx));
379 idx += sizeof(int64_t);
380 }
381 }
382 }
383 }
384 }
385
386 return rc;
387 }
388
yaksuri_seqi_pack_resized_hvector_contig_int64_t(const void * inbuf,void * outbuf,uintptr_t count,yaksi_type_s * type)389 int yaksuri_seqi_pack_resized_hvector_contig_int64_t(const void *inbuf, void *outbuf, uintptr_t count, yaksi_type_s * type)
390 {
391 int rc = YAKSA_SUCCESS;
392 const char *restrict sbuf = (const char *) inbuf;
393 char *restrict dbuf = (char *) outbuf;
394 uintptr_t extent ATTRIBUTE((unused)) = type->extent;
395
396 uintptr_t extent1 ATTRIBUTE((unused)) = type->extent;
397
398 int count2 = type->u.resized.child->u.hvector.count;
399 int blocklength2 ATTRIBUTE((unused)) = type->u.resized.child->u.hvector.blocklength;
400 intptr_t stride2 = type->u.resized.child->u.hvector.stride;
401 uintptr_t extent2 ATTRIBUTE((unused)) = type->u.resized.child->extent;
402
403 int count3 = type->u.resized.child->u.hvector.child->u.contig.count;
404 intptr_t stride3 = type->u.resized.child->u.hvector.child->u.contig.child->extent;
405 uintptr_t extent3 ATTRIBUTE((unused)) = type->u.resized.child->u.hvector.child->extent;
406
407 uintptr_t idx = 0;
408 for (int i = 0; i < count; i++) {
409 for (int j2 = 0; j2 < count2; j2++) {
410 for (int k2 = 0; k2 < blocklength2; k2++) {
411 for (int j3 = 0; j3 < count3; j3++) {
412 *((int64_t *) (void *) (dbuf + idx)) = *((const int64_t *) (const void *) (sbuf + i * extent + j2 * stride2 + k2 * extent3 + j3 * stride3));
413 idx += sizeof(int64_t);
414 }
415 }
416 }
417 }
418
419 return rc;
420 }
421
yaksuri_seqi_unpack_resized_hvector_contig_int64_t(const void * inbuf,void * outbuf,uintptr_t count,yaksi_type_s * type)422 int yaksuri_seqi_unpack_resized_hvector_contig_int64_t(const void *inbuf, void *outbuf, uintptr_t count, yaksi_type_s * type)
423 {
424 int rc = YAKSA_SUCCESS;
425 const char *restrict sbuf = (const char *) inbuf;
426 char *restrict dbuf = (char *) outbuf;
427 uintptr_t extent ATTRIBUTE((unused)) = type->extent;
428
429 uintptr_t extent1 ATTRIBUTE((unused)) = type->extent;
430
431 int count2 = type->u.resized.child->u.hvector.count;
432 int blocklength2 ATTRIBUTE((unused)) = type->u.resized.child->u.hvector.blocklength;
433 intptr_t stride2 = type->u.resized.child->u.hvector.stride;
434 uintptr_t extent2 ATTRIBUTE((unused)) = type->u.resized.child->extent;
435
436 int count3 = type->u.resized.child->u.hvector.child->u.contig.count;
437 intptr_t stride3 = type->u.resized.child->u.hvector.child->u.contig.child->extent;
438 uintptr_t extent3 ATTRIBUTE((unused)) = type->u.resized.child->u.hvector.child->extent;
439
440 uintptr_t idx = 0;
441 for (int i = 0; i < count; i++) {
442 for (int j2 = 0; j2 < count2; j2++) {
443 for (int k2 = 0; k2 < blocklength2; k2++) {
444 for (int j3 = 0; j3 < count3; j3++) {
445 *((int64_t *) (void *) (dbuf + i * extent + j2 * stride2 + k2 * extent3 + j3 * stride3)) = *((const int64_t *) (const void *) (sbuf + idx));
446 idx += sizeof(int64_t);
447 }
448 }
449 }
450 }
451
452 return rc;
453 }
454
455