1
2
3
4
5
6
7
8
9 package simd_test
10
11 import (
12 "simd/archsimd"
13 "testing"
14 )
15
16
17
18
19 func testInt8x16ConvertToInt8(t *testing.T, f func(x archsimd.Int8x16) archsimd.Int8x16, want func(x []int8) []int8) {
20 n := 16
21 t.Helper()
22 forSlice(t, int8s, n, func(x []int8) bool {
23 t.Helper()
24 a := archsimd.LoadInt8x16(x)
25 g := make([]int8, 16)
26 f(a).Store(g)
27 w := want(x)
28 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
29 })
30 }
31
32
33
34
35 func testInt16x8ConvertToInt8(t *testing.T, f func(x archsimd.Int16x8) archsimd.Int8x16, want func(x []int16) []int8) {
36 n := 8
37 t.Helper()
38 forSlice(t, int16s, n, func(x []int16) bool {
39 t.Helper()
40 a := archsimd.LoadInt16x8(x)
41 g := make([]int8, 16)
42 f(a).Store(g)
43 w := want(x)
44 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
45 })
46 }
47
48
49
50
51 func testInt32x4ConvertToInt8(t *testing.T, f func(x archsimd.Int32x4) archsimd.Int8x16, want func(x []int32) []int8) {
52 n := 4
53 t.Helper()
54 forSlice(t, int32s, n, func(x []int32) bool {
55 t.Helper()
56 a := archsimd.LoadInt32x4(x)
57 g := make([]int8, 16)
58 f(a).Store(g)
59 w := want(x)
60 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
61 })
62 }
63
64
65
66
67 func testInt64x2ConvertToInt8(t *testing.T, f func(x archsimd.Int64x2) archsimd.Int8x16, want func(x []int64) []int8) {
68 n := 2
69 t.Helper()
70 forSlice(t, int64s, n, func(x []int64) bool {
71 t.Helper()
72 a := archsimd.LoadInt64x2(x)
73 g := make([]int8, 16)
74 f(a).Store(g)
75 w := want(x)
76 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
77 })
78 }
79
80
81
82
83 func testUint8x16ConvertToInt8(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Int8x16, want func(x []uint8) []int8) {
84 n := 16
85 t.Helper()
86 forSlice(t, uint8s, n, func(x []uint8) bool {
87 t.Helper()
88 a := archsimd.LoadUint8x16(x)
89 g := make([]int8, 16)
90 f(a).Store(g)
91 w := want(x)
92 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
93 })
94 }
95
96
97
98
99 func testUint16x8ConvertToInt8(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Int8x16, want func(x []uint16) []int8) {
100 n := 8
101 t.Helper()
102 forSlice(t, uint16s, n, func(x []uint16) bool {
103 t.Helper()
104 a := archsimd.LoadUint16x8(x)
105 g := make([]int8, 16)
106 f(a).Store(g)
107 w := want(x)
108 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
109 })
110 }
111
112
113
114
115 func testUint32x4ConvertToInt8(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Int8x16, want func(x []uint32) []int8) {
116 n := 4
117 t.Helper()
118 forSlice(t, uint32s, n, func(x []uint32) bool {
119 t.Helper()
120 a := archsimd.LoadUint32x4(x)
121 g := make([]int8, 16)
122 f(a).Store(g)
123 w := want(x)
124 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
125 })
126 }
127
128
129
130
131 func testUint64x2ConvertToInt8(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Int8x16, want func(x []uint64) []int8) {
132 n := 2
133 t.Helper()
134 forSlice(t, uint64s, n, func(x []uint64) bool {
135 t.Helper()
136 a := archsimd.LoadUint64x2(x)
137 g := make([]int8, 16)
138 f(a).Store(g)
139 w := want(x)
140 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
141 })
142 }
143
144
145
146
147 func testFloat32x4ConvertToInt8(t *testing.T, f func(x archsimd.Float32x4) archsimd.Int8x16, want func(x []float32) []int8) {
148 n := 4
149 t.Helper()
150 forSlice(t, float32s, n, func(x []float32) bool {
151 t.Helper()
152 a := archsimd.LoadFloat32x4(x)
153 g := make([]int8, 16)
154 f(a).Store(g)
155 w := want(x)
156 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
157 })
158 }
159
160
161
162
163 func testFloat64x2ConvertToInt8(t *testing.T, f func(x archsimd.Float64x2) archsimd.Int8x16, want func(x []float64) []int8) {
164 n := 2
165 t.Helper()
166 forSlice(t, float64s, n, func(x []float64) bool {
167 t.Helper()
168 a := archsimd.LoadFloat64x2(x)
169 g := make([]int8, 16)
170 f(a).Store(g)
171 w := want(x)
172 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
173 })
174 }
175
176
177
178
179 func testInt8x32ConvertToInt8(t *testing.T, f func(x archsimd.Int8x32) archsimd.Int8x32, want func(x []int8) []int8) {
180 n := 32
181 t.Helper()
182 forSlice(t, int8s, n, func(x []int8) bool {
183 t.Helper()
184 a := archsimd.LoadInt8x32(x)
185 g := make([]int8, 32)
186 f(a).Store(g)
187 w := want(x)
188 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
189 })
190 }
191
192
193
194
195 func testInt16x16ConvertToInt8(t *testing.T, f func(x archsimd.Int16x16) archsimd.Int8x16, want func(x []int16) []int8) {
196 n := 16
197 t.Helper()
198 forSlice(t, int16s, n, func(x []int16) bool {
199 t.Helper()
200 a := archsimd.LoadInt16x16(x)
201 g := make([]int8, 16)
202 f(a).Store(g)
203 w := want(x)
204 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
205 })
206 }
207
208
209
210
211 func testInt32x8ConvertToInt8(t *testing.T, f func(x archsimd.Int32x8) archsimd.Int8x16, want func(x []int32) []int8) {
212 n := 8
213 t.Helper()
214 forSlice(t, int32s, n, func(x []int32) bool {
215 t.Helper()
216 a := archsimd.LoadInt32x8(x)
217 g := make([]int8, 16)
218 f(a).Store(g)
219 w := want(x)
220 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
221 })
222 }
223
224
225
226
227 func testInt64x4ConvertToInt8(t *testing.T, f func(x archsimd.Int64x4) archsimd.Int8x16, want func(x []int64) []int8) {
228 n := 4
229 t.Helper()
230 forSlice(t, int64s, n, func(x []int64) bool {
231 t.Helper()
232 a := archsimd.LoadInt64x4(x)
233 g := make([]int8, 16)
234 f(a).Store(g)
235 w := want(x)
236 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
237 })
238 }
239
240
241
242
243 func testUint8x32ConvertToInt8(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Int8x32, want func(x []uint8) []int8) {
244 n := 32
245 t.Helper()
246 forSlice(t, uint8s, n, func(x []uint8) bool {
247 t.Helper()
248 a := archsimd.LoadUint8x32(x)
249 g := make([]int8, 32)
250 f(a).Store(g)
251 w := want(x)
252 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
253 })
254 }
255
256
257
258
259 func testUint16x16ConvertToInt8(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Int8x16, want func(x []uint16) []int8) {
260 n := 16
261 t.Helper()
262 forSlice(t, uint16s, n, func(x []uint16) bool {
263 t.Helper()
264 a := archsimd.LoadUint16x16(x)
265 g := make([]int8, 16)
266 f(a).Store(g)
267 w := want(x)
268 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
269 })
270 }
271
272
273
274
275 func testUint32x8ConvertToInt8(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Int8x16, want func(x []uint32) []int8) {
276 n := 8
277 t.Helper()
278 forSlice(t, uint32s, n, func(x []uint32) bool {
279 t.Helper()
280 a := archsimd.LoadUint32x8(x)
281 g := make([]int8, 16)
282 f(a).Store(g)
283 w := want(x)
284 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
285 })
286 }
287
288
289
290
291 func testUint64x4ConvertToInt8(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Int8x16, want func(x []uint64) []int8) {
292 n := 4
293 t.Helper()
294 forSlice(t, uint64s, n, func(x []uint64) bool {
295 t.Helper()
296 a := archsimd.LoadUint64x4(x)
297 g := make([]int8, 16)
298 f(a).Store(g)
299 w := want(x)
300 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
301 })
302 }
303
304
305
306
307 func testFloat32x8ConvertToInt8(t *testing.T, f func(x archsimd.Float32x8) archsimd.Int8x16, want func(x []float32) []int8) {
308 n := 8
309 t.Helper()
310 forSlice(t, float32s, n, func(x []float32) bool {
311 t.Helper()
312 a := archsimd.LoadFloat32x8(x)
313 g := make([]int8, 16)
314 f(a).Store(g)
315 w := want(x)
316 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
317 })
318 }
319
320
321
322
323 func testFloat64x4ConvertToInt8(t *testing.T, f func(x archsimd.Float64x4) archsimd.Int8x16, want func(x []float64) []int8) {
324 n := 4
325 t.Helper()
326 forSlice(t, float64s, n, func(x []float64) bool {
327 t.Helper()
328 a := archsimd.LoadFloat64x4(x)
329 g := make([]int8, 16)
330 f(a).Store(g)
331 w := want(x)
332 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
333 })
334 }
335
336
337
338
339 func testInt8x64ConvertToInt8(t *testing.T, f func(x archsimd.Int8x64) archsimd.Int8x64, want func(x []int8) []int8) {
340 n := 64
341 t.Helper()
342 forSlice(t, int8s, n, func(x []int8) bool {
343 t.Helper()
344 a := archsimd.LoadInt8x64(x)
345 g := make([]int8, 64)
346 f(a).Store(g)
347 w := want(x)
348 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
349 })
350 }
351
352
353
354
355 func testInt16x32ConvertToInt8(t *testing.T, f func(x archsimd.Int16x32) archsimd.Int8x32, want func(x []int16) []int8) {
356 n := 32
357 t.Helper()
358 forSlice(t, int16s, n, func(x []int16) bool {
359 t.Helper()
360 a := archsimd.LoadInt16x32(x)
361 g := make([]int8, 32)
362 f(a).Store(g)
363 w := want(x)
364 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
365 })
366 }
367
368
369
370
371 func testInt32x16ConvertToInt8(t *testing.T, f func(x archsimd.Int32x16) archsimd.Int8x16, want func(x []int32) []int8) {
372 n := 16
373 t.Helper()
374 forSlice(t, int32s, n, func(x []int32) bool {
375 t.Helper()
376 a := archsimd.LoadInt32x16(x)
377 g := make([]int8, 16)
378 f(a).Store(g)
379 w := want(x)
380 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
381 })
382 }
383
384
385
386
387 func testInt64x8ConvertToInt8(t *testing.T, f func(x archsimd.Int64x8) archsimd.Int8x16, want func(x []int64) []int8) {
388 n := 8
389 t.Helper()
390 forSlice(t, int64s, n, func(x []int64) bool {
391 t.Helper()
392 a := archsimd.LoadInt64x8(x)
393 g := make([]int8, 16)
394 f(a).Store(g)
395 w := want(x)
396 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
397 })
398 }
399
400
401
402
403 func testUint8x64ConvertToInt8(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Int8x64, want func(x []uint8) []int8) {
404 n := 64
405 t.Helper()
406 forSlice(t, uint8s, n, func(x []uint8) bool {
407 t.Helper()
408 a := archsimd.LoadUint8x64(x)
409 g := make([]int8, 64)
410 f(a).Store(g)
411 w := want(x)
412 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
413 })
414 }
415
416
417
418
419 func testUint16x32ConvertToInt8(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Int8x32, want func(x []uint16) []int8) {
420 n := 32
421 t.Helper()
422 forSlice(t, uint16s, n, func(x []uint16) bool {
423 t.Helper()
424 a := archsimd.LoadUint16x32(x)
425 g := make([]int8, 32)
426 f(a).Store(g)
427 w := want(x)
428 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
429 })
430 }
431
432
433
434
435 func testUint32x16ConvertToInt8(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Int8x16, want func(x []uint32) []int8) {
436 n := 16
437 t.Helper()
438 forSlice(t, uint32s, n, func(x []uint32) bool {
439 t.Helper()
440 a := archsimd.LoadUint32x16(x)
441 g := make([]int8, 16)
442 f(a).Store(g)
443 w := want(x)
444 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
445 })
446 }
447
448
449
450
451 func testUint64x8ConvertToInt8(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Int8x16, want func(x []uint64) []int8) {
452 n := 8
453 t.Helper()
454 forSlice(t, uint64s, n, func(x []uint64) bool {
455 t.Helper()
456 a := archsimd.LoadUint64x8(x)
457 g := make([]int8, 16)
458 f(a).Store(g)
459 w := want(x)
460 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
461 })
462 }
463
464
465
466
467 func testFloat32x16ConvertToInt8(t *testing.T, f func(x archsimd.Float32x16) archsimd.Int8x16, want func(x []float32) []int8) {
468 n := 16
469 t.Helper()
470 forSlice(t, float32s, n, func(x []float32) bool {
471 t.Helper()
472 a := archsimd.LoadFloat32x16(x)
473 g := make([]int8, 16)
474 f(a).Store(g)
475 w := want(x)
476 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
477 })
478 }
479
480
481
482
483 func testFloat64x8ConvertToInt8(t *testing.T, f func(x archsimd.Float64x8) archsimd.Int8x16, want func(x []float64) []int8) {
484 n := 8
485 t.Helper()
486 forSlice(t, float64s, n, func(x []float64) bool {
487 t.Helper()
488 a := archsimd.LoadFloat64x8(x)
489 g := make([]int8, 16)
490 f(a).Store(g)
491 w := want(x)
492 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
493 })
494 }
495
496
497
498
499 func testInt8x16ConvertToUint8(t *testing.T, f func(x archsimd.Int8x16) archsimd.Uint8x16, want func(x []int8) []uint8) {
500 n := 16
501 t.Helper()
502 forSlice(t, int8s, n, func(x []int8) bool {
503 t.Helper()
504 a := archsimd.LoadInt8x16(x)
505 g := make([]uint8, 16)
506 f(a).Store(g)
507 w := want(x)
508 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
509 })
510 }
511
512
513
514
515 func testInt16x8ConvertToUint8(t *testing.T, f func(x archsimd.Int16x8) archsimd.Uint8x16, want func(x []int16) []uint8) {
516 n := 8
517 t.Helper()
518 forSlice(t, int16s, n, func(x []int16) bool {
519 t.Helper()
520 a := archsimd.LoadInt16x8(x)
521 g := make([]uint8, 16)
522 f(a).Store(g)
523 w := want(x)
524 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
525 })
526 }
527
528
529
530
531 func testInt32x4ConvertToUint8(t *testing.T, f func(x archsimd.Int32x4) archsimd.Uint8x16, want func(x []int32) []uint8) {
532 n := 4
533 t.Helper()
534 forSlice(t, int32s, n, func(x []int32) bool {
535 t.Helper()
536 a := archsimd.LoadInt32x4(x)
537 g := make([]uint8, 16)
538 f(a).Store(g)
539 w := want(x)
540 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
541 })
542 }
543
544
545
546
547 func testInt64x2ConvertToUint8(t *testing.T, f func(x archsimd.Int64x2) archsimd.Uint8x16, want func(x []int64) []uint8) {
548 n := 2
549 t.Helper()
550 forSlice(t, int64s, n, func(x []int64) bool {
551 t.Helper()
552 a := archsimd.LoadInt64x2(x)
553 g := make([]uint8, 16)
554 f(a).Store(g)
555 w := want(x)
556 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
557 })
558 }
559
560
561
562
563 func testUint8x16ConvertToUint8(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Uint8x16, want func(x []uint8) []uint8) {
564 n := 16
565 t.Helper()
566 forSlice(t, uint8s, n, func(x []uint8) bool {
567 t.Helper()
568 a := archsimd.LoadUint8x16(x)
569 g := make([]uint8, 16)
570 f(a).Store(g)
571 w := want(x)
572 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
573 })
574 }
575
576
577
578
579 func testUint16x8ConvertToUint8(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Uint8x16, want func(x []uint16) []uint8) {
580 n := 8
581 t.Helper()
582 forSlice(t, uint16s, n, func(x []uint16) bool {
583 t.Helper()
584 a := archsimd.LoadUint16x8(x)
585 g := make([]uint8, 16)
586 f(a).Store(g)
587 w := want(x)
588 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
589 })
590 }
591
592
593
594
595 func testUint32x4ConvertToUint8(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Uint8x16, want func(x []uint32) []uint8) {
596 n := 4
597 t.Helper()
598 forSlice(t, uint32s, n, func(x []uint32) bool {
599 t.Helper()
600 a := archsimd.LoadUint32x4(x)
601 g := make([]uint8, 16)
602 f(a).Store(g)
603 w := want(x)
604 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
605 })
606 }
607
608
609
610
611 func testUint64x2ConvertToUint8(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Uint8x16, want func(x []uint64) []uint8) {
612 n := 2
613 t.Helper()
614 forSlice(t, uint64s, n, func(x []uint64) bool {
615 t.Helper()
616 a := archsimd.LoadUint64x2(x)
617 g := make([]uint8, 16)
618 f(a).Store(g)
619 w := want(x)
620 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
621 })
622 }
623
624
625
626
627 func testFloat32x4ConvertToUint8(t *testing.T, f func(x archsimd.Float32x4) archsimd.Uint8x16, want func(x []float32) []uint8) {
628 n := 4
629 t.Helper()
630 forSlice(t, float32s, n, func(x []float32) bool {
631 t.Helper()
632 a := archsimd.LoadFloat32x4(x)
633 g := make([]uint8, 16)
634 f(a).Store(g)
635 w := want(x)
636 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
637 })
638 }
639
640
641
642
643 func testFloat64x2ConvertToUint8(t *testing.T, f func(x archsimd.Float64x2) archsimd.Uint8x16, want func(x []float64) []uint8) {
644 n := 2
645 t.Helper()
646 forSlice(t, float64s, n, func(x []float64) bool {
647 t.Helper()
648 a := archsimd.LoadFloat64x2(x)
649 g := make([]uint8, 16)
650 f(a).Store(g)
651 w := want(x)
652 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
653 })
654 }
655
656
657
658
659 func testInt8x32ConvertToUint8(t *testing.T, f func(x archsimd.Int8x32) archsimd.Uint8x32, want func(x []int8) []uint8) {
660 n := 32
661 t.Helper()
662 forSlice(t, int8s, n, func(x []int8) bool {
663 t.Helper()
664 a := archsimd.LoadInt8x32(x)
665 g := make([]uint8, 32)
666 f(a).Store(g)
667 w := want(x)
668 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
669 })
670 }
671
672
673
674
675 func testInt16x16ConvertToUint8(t *testing.T, f func(x archsimd.Int16x16) archsimd.Uint8x16, want func(x []int16) []uint8) {
676 n := 16
677 t.Helper()
678 forSlice(t, int16s, n, func(x []int16) bool {
679 t.Helper()
680 a := archsimd.LoadInt16x16(x)
681 g := make([]uint8, 16)
682 f(a).Store(g)
683 w := want(x)
684 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
685 })
686 }
687
688
689
690
691 func testInt32x8ConvertToUint8(t *testing.T, f func(x archsimd.Int32x8) archsimd.Uint8x16, want func(x []int32) []uint8) {
692 n := 8
693 t.Helper()
694 forSlice(t, int32s, n, func(x []int32) bool {
695 t.Helper()
696 a := archsimd.LoadInt32x8(x)
697 g := make([]uint8, 16)
698 f(a).Store(g)
699 w := want(x)
700 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
701 })
702 }
703
704
705
706
707 func testInt64x4ConvertToUint8(t *testing.T, f func(x archsimd.Int64x4) archsimd.Uint8x16, want func(x []int64) []uint8) {
708 n := 4
709 t.Helper()
710 forSlice(t, int64s, n, func(x []int64) bool {
711 t.Helper()
712 a := archsimd.LoadInt64x4(x)
713 g := make([]uint8, 16)
714 f(a).Store(g)
715 w := want(x)
716 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
717 })
718 }
719
720
721
722
723 func testUint8x32ConvertToUint8(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Uint8x32, want func(x []uint8) []uint8) {
724 n := 32
725 t.Helper()
726 forSlice(t, uint8s, n, func(x []uint8) bool {
727 t.Helper()
728 a := archsimd.LoadUint8x32(x)
729 g := make([]uint8, 32)
730 f(a).Store(g)
731 w := want(x)
732 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
733 })
734 }
735
736
737
738
739 func testUint16x16ConvertToUint8(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Uint8x16, want func(x []uint16) []uint8) {
740 n := 16
741 t.Helper()
742 forSlice(t, uint16s, n, func(x []uint16) bool {
743 t.Helper()
744 a := archsimd.LoadUint16x16(x)
745 g := make([]uint8, 16)
746 f(a).Store(g)
747 w := want(x)
748 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
749 })
750 }
751
752
753
754
755 func testUint32x8ConvertToUint8(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Uint8x16, want func(x []uint32) []uint8) {
756 n := 8
757 t.Helper()
758 forSlice(t, uint32s, n, func(x []uint32) bool {
759 t.Helper()
760 a := archsimd.LoadUint32x8(x)
761 g := make([]uint8, 16)
762 f(a).Store(g)
763 w := want(x)
764 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
765 })
766 }
767
768
769
770
771 func testUint64x4ConvertToUint8(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Uint8x16, want func(x []uint64) []uint8) {
772 n := 4
773 t.Helper()
774 forSlice(t, uint64s, n, func(x []uint64) bool {
775 t.Helper()
776 a := archsimd.LoadUint64x4(x)
777 g := make([]uint8, 16)
778 f(a).Store(g)
779 w := want(x)
780 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
781 })
782 }
783
784
785
786
787 func testFloat32x8ConvertToUint8(t *testing.T, f func(x archsimd.Float32x8) archsimd.Uint8x16, want func(x []float32) []uint8) {
788 n := 8
789 t.Helper()
790 forSlice(t, float32s, n, func(x []float32) bool {
791 t.Helper()
792 a := archsimd.LoadFloat32x8(x)
793 g := make([]uint8, 16)
794 f(a).Store(g)
795 w := want(x)
796 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
797 })
798 }
799
800
801
802
803 func testFloat64x4ConvertToUint8(t *testing.T, f func(x archsimd.Float64x4) archsimd.Uint8x16, want func(x []float64) []uint8) {
804 n := 4
805 t.Helper()
806 forSlice(t, float64s, n, func(x []float64) bool {
807 t.Helper()
808 a := archsimd.LoadFloat64x4(x)
809 g := make([]uint8, 16)
810 f(a).Store(g)
811 w := want(x)
812 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
813 })
814 }
815
816
817
818
819 func testInt8x64ConvertToUint8(t *testing.T, f func(x archsimd.Int8x64) archsimd.Uint8x64, want func(x []int8) []uint8) {
820 n := 64
821 t.Helper()
822 forSlice(t, int8s, n, func(x []int8) bool {
823 t.Helper()
824 a := archsimd.LoadInt8x64(x)
825 g := make([]uint8, 64)
826 f(a).Store(g)
827 w := want(x)
828 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
829 })
830 }
831
832
833
834
835 func testInt16x32ConvertToUint8(t *testing.T, f func(x archsimd.Int16x32) archsimd.Uint8x32, want func(x []int16) []uint8) {
836 n := 32
837 t.Helper()
838 forSlice(t, int16s, n, func(x []int16) bool {
839 t.Helper()
840 a := archsimd.LoadInt16x32(x)
841 g := make([]uint8, 32)
842 f(a).Store(g)
843 w := want(x)
844 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
845 })
846 }
847
848
849
850
851 func testInt32x16ConvertToUint8(t *testing.T, f func(x archsimd.Int32x16) archsimd.Uint8x16, want func(x []int32) []uint8) {
852 n := 16
853 t.Helper()
854 forSlice(t, int32s, n, func(x []int32) bool {
855 t.Helper()
856 a := archsimd.LoadInt32x16(x)
857 g := make([]uint8, 16)
858 f(a).Store(g)
859 w := want(x)
860 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
861 })
862 }
863
864
865
866
867 func testInt64x8ConvertToUint8(t *testing.T, f func(x archsimd.Int64x8) archsimd.Uint8x16, want func(x []int64) []uint8) {
868 n := 8
869 t.Helper()
870 forSlice(t, int64s, n, func(x []int64) bool {
871 t.Helper()
872 a := archsimd.LoadInt64x8(x)
873 g := make([]uint8, 16)
874 f(a).Store(g)
875 w := want(x)
876 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
877 })
878 }
879
880
881
882
883 func testUint8x64ConvertToUint8(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Uint8x64, want func(x []uint8) []uint8) {
884 n := 64
885 t.Helper()
886 forSlice(t, uint8s, n, func(x []uint8) bool {
887 t.Helper()
888 a := archsimd.LoadUint8x64(x)
889 g := make([]uint8, 64)
890 f(a).Store(g)
891 w := want(x)
892 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
893 })
894 }
895
896
897
898
899 func testUint16x32ConvertToUint8(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Uint8x32, want func(x []uint16) []uint8) {
900 n := 32
901 t.Helper()
902 forSlice(t, uint16s, n, func(x []uint16) bool {
903 t.Helper()
904 a := archsimd.LoadUint16x32(x)
905 g := make([]uint8, 32)
906 f(a).Store(g)
907 w := want(x)
908 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
909 })
910 }
911
912
913
914
915 func testUint32x16ConvertToUint8(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Uint8x16, want func(x []uint32) []uint8) {
916 n := 16
917 t.Helper()
918 forSlice(t, uint32s, n, func(x []uint32) bool {
919 t.Helper()
920 a := archsimd.LoadUint32x16(x)
921 g := make([]uint8, 16)
922 f(a).Store(g)
923 w := want(x)
924 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
925 })
926 }
927
928
929
930
931 func testUint64x8ConvertToUint8(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Uint8x16, want func(x []uint64) []uint8) {
932 n := 8
933 t.Helper()
934 forSlice(t, uint64s, n, func(x []uint64) bool {
935 t.Helper()
936 a := archsimd.LoadUint64x8(x)
937 g := make([]uint8, 16)
938 f(a).Store(g)
939 w := want(x)
940 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
941 })
942 }
943
944
945
946
947 func testFloat32x16ConvertToUint8(t *testing.T, f func(x archsimd.Float32x16) archsimd.Uint8x16, want func(x []float32) []uint8) {
948 n := 16
949 t.Helper()
950 forSlice(t, float32s, n, func(x []float32) bool {
951 t.Helper()
952 a := archsimd.LoadFloat32x16(x)
953 g := make([]uint8, 16)
954 f(a).Store(g)
955 w := want(x)
956 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
957 })
958 }
959
960
961
962
963 func testFloat64x8ConvertToUint8(t *testing.T, f func(x archsimd.Float64x8) archsimd.Uint8x16, want func(x []float64) []uint8) {
964 n := 8
965 t.Helper()
966 forSlice(t, float64s, n, func(x []float64) bool {
967 t.Helper()
968 a := archsimd.LoadFloat64x8(x)
969 g := make([]uint8, 16)
970 f(a).Store(g)
971 w := want(x)
972 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
973 })
974 }
975
976
977
978
979 func testInt8x16ConvertToInt16(t *testing.T, f func(x archsimd.Int8x16) archsimd.Int16x16, want func(x []int8) []int16) {
980 n := 16
981 t.Helper()
982 forSlice(t, int8s, n, func(x []int8) bool {
983 t.Helper()
984 a := archsimd.LoadInt8x16(x)
985 g := make([]int16, 16)
986 f(a).Store(g)
987 w := want(x)
988 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
989 })
990 }
991
992
993
994
995 func testInt16x8ConvertToInt16(t *testing.T, f func(x archsimd.Int16x8) archsimd.Int16x8, want func(x []int16) []int16) {
996 n := 8
997 t.Helper()
998 forSlice(t, int16s, n, func(x []int16) bool {
999 t.Helper()
1000 a := archsimd.LoadInt16x8(x)
1001 g := make([]int16, 8)
1002 f(a).Store(g)
1003 w := want(x)
1004 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1005 })
1006 }
1007
1008
1009
1010
1011 func testInt32x4ConvertToInt16(t *testing.T, f func(x archsimd.Int32x4) archsimd.Int16x8, want func(x []int32) []int16) {
1012 n := 4
1013 t.Helper()
1014 forSlice(t, int32s, n, func(x []int32) bool {
1015 t.Helper()
1016 a := archsimd.LoadInt32x4(x)
1017 g := make([]int16, 8)
1018 f(a).Store(g)
1019 w := want(x)
1020 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1021 })
1022 }
1023
1024
1025
1026
1027 func testInt64x2ConvertToInt16(t *testing.T, f func(x archsimd.Int64x2) archsimd.Int16x8, want func(x []int64) []int16) {
1028 n := 2
1029 t.Helper()
1030 forSlice(t, int64s, n, func(x []int64) bool {
1031 t.Helper()
1032 a := archsimd.LoadInt64x2(x)
1033 g := make([]int16, 8)
1034 f(a).Store(g)
1035 w := want(x)
1036 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1037 })
1038 }
1039
1040
1041
1042
1043 func testUint8x16ConvertToInt16(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Int16x16, want func(x []uint8) []int16) {
1044 n := 16
1045 t.Helper()
1046 forSlice(t, uint8s, n, func(x []uint8) bool {
1047 t.Helper()
1048 a := archsimd.LoadUint8x16(x)
1049 g := make([]int16, 16)
1050 f(a).Store(g)
1051 w := want(x)
1052 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1053 })
1054 }
1055
1056
1057
1058
1059 func testUint16x8ConvertToInt16(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Int16x8, want func(x []uint16) []int16) {
1060 n := 8
1061 t.Helper()
1062 forSlice(t, uint16s, n, func(x []uint16) bool {
1063 t.Helper()
1064 a := archsimd.LoadUint16x8(x)
1065 g := make([]int16, 8)
1066 f(a).Store(g)
1067 w := want(x)
1068 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1069 })
1070 }
1071
1072
1073
1074
1075 func testUint32x4ConvertToInt16(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Int16x8, want func(x []uint32) []int16) {
1076 n := 4
1077 t.Helper()
1078 forSlice(t, uint32s, n, func(x []uint32) bool {
1079 t.Helper()
1080 a := archsimd.LoadUint32x4(x)
1081 g := make([]int16, 8)
1082 f(a).Store(g)
1083 w := want(x)
1084 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1085 })
1086 }
1087
1088
1089
1090
1091 func testUint64x2ConvertToInt16(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Int16x8, want func(x []uint64) []int16) {
1092 n := 2
1093 t.Helper()
1094 forSlice(t, uint64s, n, func(x []uint64) bool {
1095 t.Helper()
1096 a := archsimd.LoadUint64x2(x)
1097 g := make([]int16, 8)
1098 f(a).Store(g)
1099 w := want(x)
1100 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1101 })
1102 }
1103
1104
1105
1106
1107 func testFloat32x4ConvertToInt16(t *testing.T, f func(x archsimd.Float32x4) archsimd.Int16x8, want func(x []float32) []int16) {
1108 n := 4
1109 t.Helper()
1110 forSlice(t, float32s, n, func(x []float32) bool {
1111 t.Helper()
1112 a := archsimd.LoadFloat32x4(x)
1113 g := make([]int16, 8)
1114 f(a).Store(g)
1115 w := want(x)
1116 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1117 })
1118 }
1119
1120
1121
1122
1123 func testFloat64x2ConvertToInt16(t *testing.T, f func(x archsimd.Float64x2) archsimd.Int16x8, want func(x []float64) []int16) {
1124 n := 2
1125 t.Helper()
1126 forSlice(t, float64s, n, func(x []float64) bool {
1127 t.Helper()
1128 a := archsimd.LoadFloat64x2(x)
1129 g := make([]int16, 8)
1130 f(a).Store(g)
1131 w := want(x)
1132 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1133 })
1134 }
1135
1136
1137
1138
1139 func testInt8x32ConvertToInt16(t *testing.T, f func(x archsimd.Int8x32) archsimd.Int16x32, want func(x []int8) []int16) {
1140 n := 32
1141 t.Helper()
1142 forSlice(t, int8s, n, func(x []int8) bool {
1143 t.Helper()
1144 a := archsimd.LoadInt8x32(x)
1145 g := make([]int16, 32)
1146 f(a).Store(g)
1147 w := want(x)
1148 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1149 })
1150 }
1151
1152
1153
1154
1155 func testInt16x16ConvertToInt16(t *testing.T, f func(x archsimd.Int16x16) archsimd.Int16x16, want func(x []int16) []int16) {
1156 n := 16
1157 t.Helper()
1158 forSlice(t, int16s, n, func(x []int16) bool {
1159 t.Helper()
1160 a := archsimd.LoadInt16x16(x)
1161 g := make([]int16, 16)
1162 f(a).Store(g)
1163 w := want(x)
1164 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1165 })
1166 }
1167
1168
1169
1170
1171 func testInt32x8ConvertToInt16(t *testing.T, f func(x archsimd.Int32x8) archsimd.Int16x8, want func(x []int32) []int16) {
1172 n := 8
1173 t.Helper()
1174 forSlice(t, int32s, n, func(x []int32) bool {
1175 t.Helper()
1176 a := archsimd.LoadInt32x8(x)
1177 g := make([]int16, 8)
1178 f(a).Store(g)
1179 w := want(x)
1180 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1181 })
1182 }
1183
1184
1185
1186
1187 func testInt64x4ConvertToInt16(t *testing.T, f func(x archsimd.Int64x4) archsimd.Int16x8, want func(x []int64) []int16) {
1188 n := 4
1189 t.Helper()
1190 forSlice(t, int64s, n, func(x []int64) bool {
1191 t.Helper()
1192 a := archsimd.LoadInt64x4(x)
1193 g := make([]int16, 8)
1194 f(a).Store(g)
1195 w := want(x)
1196 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1197 })
1198 }
1199
1200
1201
1202
1203 func testUint8x32ConvertToInt16(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Int16x32, want func(x []uint8) []int16) {
1204 n := 32
1205 t.Helper()
1206 forSlice(t, uint8s, n, func(x []uint8) bool {
1207 t.Helper()
1208 a := archsimd.LoadUint8x32(x)
1209 g := make([]int16, 32)
1210 f(a).Store(g)
1211 w := want(x)
1212 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1213 })
1214 }
1215
1216
1217
1218
1219 func testUint16x16ConvertToInt16(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Int16x16, want func(x []uint16) []int16) {
1220 n := 16
1221 t.Helper()
1222 forSlice(t, uint16s, n, func(x []uint16) bool {
1223 t.Helper()
1224 a := archsimd.LoadUint16x16(x)
1225 g := make([]int16, 16)
1226 f(a).Store(g)
1227 w := want(x)
1228 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1229 })
1230 }
1231
1232
1233
1234
1235 func testUint32x8ConvertToInt16(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Int16x8, want func(x []uint32) []int16) {
1236 n := 8
1237 t.Helper()
1238 forSlice(t, uint32s, n, func(x []uint32) bool {
1239 t.Helper()
1240 a := archsimd.LoadUint32x8(x)
1241 g := make([]int16, 8)
1242 f(a).Store(g)
1243 w := want(x)
1244 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1245 })
1246 }
1247
1248
1249
1250
1251 func testUint64x4ConvertToInt16(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Int16x8, want func(x []uint64) []int16) {
1252 n := 4
1253 t.Helper()
1254 forSlice(t, uint64s, n, func(x []uint64) bool {
1255 t.Helper()
1256 a := archsimd.LoadUint64x4(x)
1257 g := make([]int16, 8)
1258 f(a).Store(g)
1259 w := want(x)
1260 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1261 })
1262 }
1263
1264
1265
1266
1267 func testFloat32x8ConvertToInt16(t *testing.T, f func(x archsimd.Float32x8) archsimd.Int16x8, want func(x []float32) []int16) {
1268 n := 8
1269 t.Helper()
1270 forSlice(t, float32s, n, func(x []float32) bool {
1271 t.Helper()
1272 a := archsimd.LoadFloat32x8(x)
1273 g := make([]int16, 8)
1274 f(a).Store(g)
1275 w := want(x)
1276 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1277 })
1278 }
1279
1280
1281
1282
1283 func testFloat64x4ConvertToInt16(t *testing.T, f func(x archsimd.Float64x4) archsimd.Int16x8, want func(x []float64) []int16) {
1284 n := 4
1285 t.Helper()
1286 forSlice(t, float64s, n, func(x []float64) bool {
1287 t.Helper()
1288 a := archsimd.LoadFloat64x4(x)
1289 g := make([]int16, 8)
1290 f(a).Store(g)
1291 w := want(x)
1292 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1293 })
1294 }
1295
1296
1297
1298
1299 func testInt8x64ConvertToInt16(t *testing.T, f func(x archsimd.Int8x64) archsimd.Int16x32, want func(x []int8) []int16) {
1300 n := 64
1301 t.Helper()
1302 forSlice(t, int8s, n, func(x []int8) bool {
1303 t.Helper()
1304 a := archsimd.LoadInt8x64(x)
1305 g := make([]int16, 32)
1306 f(a).Store(g)
1307 w := want(x)
1308 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1309 })
1310 }
1311
1312
1313
1314
1315 func testInt16x32ConvertToInt16(t *testing.T, f func(x archsimd.Int16x32) archsimd.Int16x32, want func(x []int16) []int16) {
1316 n := 32
1317 t.Helper()
1318 forSlice(t, int16s, n, func(x []int16) bool {
1319 t.Helper()
1320 a := archsimd.LoadInt16x32(x)
1321 g := make([]int16, 32)
1322 f(a).Store(g)
1323 w := want(x)
1324 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1325 })
1326 }
1327
1328
1329
1330
1331 func testInt32x16ConvertToInt16(t *testing.T, f func(x archsimd.Int32x16) archsimd.Int16x16, want func(x []int32) []int16) {
1332 n := 16
1333 t.Helper()
1334 forSlice(t, int32s, n, func(x []int32) bool {
1335 t.Helper()
1336 a := archsimd.LoadInt32x16(x)
1337 g := make([]int16, 16)
1338 f(a).Store(g)
1339 w := want(x)
1340 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1341 })
1342 }
1343
1344
1345
1346
1347 func testInt64x8ConvertToInt16(t *testing.T, f func(x archsimd.Int64x8) archsimd.Int16x8, want func(x []int64) []int16) {
1348 n := 8
1349 t.Helper()
1350 forSlice(t, int64s, n, func(x []int64) bool {
1351 t.Helper()
1352 a := archsimd.LoadInt64x8(x)
1353 g := make([]int16, 8)
1354 f(a).Store(g)
1355 w := want(x)
1356 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1357 })
1358 }
1359
1360
1361
1362
1363 func testUint8x64ConvertToInt16(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Int16x32, want func(x []uint8) []int16) {
1364 n := 64
1365 t.Helper()
1366 forSlice(t, uint8s, n, func(x []uint8) bool {
1367 t.Helper()
1368 a := archsimd.LoadUint8x64(x)
1369 g := make([]int16, 32)
1370 f(a).Store(g)
1371 w := want(x)
1372 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1373 })
1374 }
1375
1376
1377
1378
1379 func testUint16x32ConvertToInt16(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Int16x32, want func(x []uint16) []int16) {
1380 n := 32
1381 t.Helper()
1382 forSlice(t, uint16s, n, func(x []uint16) bool {
1383 t.Helper()
1384 a := archsimd.LoadUint16x32(x)
1385 g := make([]int16, 32)
1386 f(a).Store(g)
1387 w := want(x)
1388 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1389 })
1390 }
1391
1392
1393
1394
1395 func testUint32x16ConvertToInt16(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Int16x16, want func(x []uint32) []int16) {
1396 n := 16
1397 t.Helper()
1398 forSlice(t, uint32s, n, func(x []uint32) bool {
1399 t.Helper()
1400 a := archsimd.LoadUint32x16(x)
1401 g := make([]int16, 16)
1402 f(a).Store(g)
1403 w := want(x)
1404 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1405 })
1406 }
1407
1408
1409
1410
1411 func testUint64x8ConvertToInt16(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Int16x8, want func(x []uint64) []int16) {
1412 n := 8
1413 t.Helper()
1414 forSlice(t, uint64s, n, func(x []uint64) bool {
1415 t.Helper()
1416 a := archsimd.LoadUint64x8(x)
1417 g := make([]int16, 8)
1418 f(a).Store(g)
1419 w := want(x)
1420 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1421 })
1422 }
1423
1424
1425
1426
1427 func testFloat32x16ConvertToInt16(t *testing.T, f func(x archsimd.Float32x16) archsimd.Int16x16, want func(x []float32) []int16) {
1428 n := 16
1429 t.Helper()
1430 forSlice(t, float32s, n, func(x []float32) bool {
1431 t.Helper()
1432 a := archsimd.LoadFloat32x16(x)
1433 g := make([]int16, 16)
1434 f(a).Store(g)
1435 w := want(x)
1436 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1437 })
1438 }
1439
1440
1441
1442
1443 func testFloat64x8ConvertToInt16(t *testing.T, f func(x archsimd.Float64x8) archsimd.Int16x8, want func(x []float64) []int16) {
1444 n := 8
1445 t.Helper()
1446 forSlice(t, float64s, n, func(x []float64) bool {
1447 t.Helper()
1448 a := archsimd.LoadFloat64x8(x)
1449 g := make([]int16, 8)
1450 f(a).Store(g)
1451 w := want(x)
1452 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1453 })
1454 }
1455
1456
1457
1458
1459 func testInt8x16ConvertToUint16(t *testing.T, f func(x archsimd.Int8x16) archsimd.Uint16x16, want func(x []int8) []uint16) {
1460 n := 16
1461 t.Helper()
1462 forSlice(t, int8s, n, func(x []int8) bool {
1463 t.Helper()
1464 a := archsimd.LoadInt8x16(x)
1465 g := make([]uint16, 16)
1466 f(a).Store(g)
1467 w := want(x)
1468 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1469 })
1470 }
1471
1472
1473
1474
1475 func testInt16x8ConvertToUint16(t *testing.T, f func(x archsimd.Int16x8) archsimd.Uint16x8, want func(x []int16) []uint16) {
1476 n := 8
1477 t.Helper()
1478 forSlice(t, int16s, n, func(x []int16) bool {
1479 t.Helper()
1480 a := archsimd.LoadInt16x8(x)
1481 g := make([]uint16, 8)
1482 f(a).Store(g)
1483 w := want(x)
1484 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1485 })
1486 }
1487
1488
1489
1490
1491 func testInt32x4ConvertToUint16(t *testing.T, f func(x archsimd.Int32x4) archsimd.Uint16x8, want func(x []int32) []uint16) {
1492 n := 4
1493 t.Helper()
1494 forSlice(t, int32s, n, func(x []int32) bool {
1495 t.Helper()
1496 a := archsimd.LoadInt32x4(x)
1497 g := make([]uint16, 8)
1498 f(a).Store(g)
1499 w := want(x)
1500 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1501 })
1502 }
1503
1504
1505
1506
1507 func testInt64x2ConvertToUint16(t *testing.T, f func(x archsimd.Int64x2) archsimd.Uint16x8, want func(x []int64) []uint16) {
1508 n := 2
1509 t.Helper()
1510 forSlice(t, int64s, n, func(x []int64) bool {
1511 t.Helper()
1512 a := archsimd.LoadInt64x2(x)
1513 g := make([]uint16, 8)
1514 f(a).Store(g)
1515 w := want(x)
1516 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1517 })
1518 }
1519
1520
1521
1522
1523 func testUint8x16ConvertToUint16(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Uint16x16, want func(x []uint8) []uint16) {
1524 n := 16
1525 t.Helper()
1526 forSlice(t, uint8s, n, func(x []uint8) bool {
1527 t.Helper()
1528 a := archsimd.LoadUint8x16(x)
1529 g := make([]uint16, 16)
1530 f(a).Store(g)
1531 w := want(x)
1532 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1533 })
1534 }
1535
1536
1537
1538
1539 func testUint16x8ConvertToUint16(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Uint16x8, want func(x []uint16) []uint16) {
1540 n := 8
1541 t.Helper()
1542 forSlice(t, uint16s, n, func(x []uint16) bool {
1543 t.Helper()
1544 a := archsimd.LoadUint16x8(x)
1545 g := make([]uint16, 8)
1546 f(a).Store(g)
1547 w := want(x)
1548 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1549 })
1550 }
1551
1552
1553
1554
1555 func testUint32x4ConvertToUint16(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Uint16x8, want func(x []uint32) []uint16) {
1556 n := 4
1557 t.Helper()
1558 forSlice(t, uint32s, n, func(x []uint32) bool {
1559 t.Helper()
1560 a := archsimd.LoadUint32x4(x)
1561 g := make([]uint16, 8)
1562 f(a).Store(g)
1563 w := want(x)
1564 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1565 })
1566 }
1567
1568
1569
1570
1571 func testUint64x2ConvertToUint16(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Uint16x8, want func(x []uint64) []uint16) {
1572 n := 2
1573 t.Helper()
1574 forSlice(t, uint64s, n, func(x []uint64) bool {
1575 t.Helper()
1576 a := archsimd.LoadUint64x2(x)
1577 g := make([]uint16, 8)
1578 f(a).Store(g)
1579 w := want(x)
1580 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1581 })
1582 }
1583
1584
1585
1586
1587 func testFloat32x4ConvertToUint16(t *testing.T, f func(x archsimd.Float32x4) archsimd.Uint16x8, want func(x []float32) []uint16) {
1588 n := 4
1589 t.Helper()
1590 forSlice(t, float32s, n, func(x []float32) bool {
1591 t.Helper()
1592 a := archsimd.LoadFloat32x4(x)
1593 g := make([]uint16, 8)
1594 f(a).Store(g)
1595 w := want(x)
1596 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1597 })
1598 }
1599
1600
1601
1602
1603 func testFloat64x2ConvertToUint16(t *testing.T, f func(x archsimd.Float64x2) archsimd.Uint16x8, want func(x []float64) []uint16) {
1604 n := 2
1605 t.Helper()
1606 forSlice(t, float64s, n, func(x []float64) bool {
1607 t.Helper()
1608 a := archsimd.LoadFloat64x2(x)
1609 g := make([]uint16, 8)
1610 f(a).Store(g)
1611 w := want(x)
1612 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1613 })
1614 }
1615
1616
1617
1618
1619 func testInt8x32ConvertToUint16(t *testing.T, f func(x archsimd.Int8x32) archsimd.Uint16x32, want func(x []int8) []uint16) {
1620 n := 32
1621 t.Helper()
1622 forSlice(t, int8s, n, func(x []int8) bool {
1623 t.Helper()
1624 a := archsimd.LoadInt8x32(x)
1625 g := make([]uint16, 32)
1626 f(a).Store(g)
1627 w := want(x)
1628 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1629 })
1630 }
1631
1632
1633
1634
1635 func testInt16x16ConvertToUint16(t *testing.T, f func(x archsimd.Int16x16) archsimd.Uint16x16, want func(x []int16) []uint16) {
1636 n := 16
1637 t.Helper()
1638 forSlice(t, int16s, n, func(x []int16) bool {
1639 t.Helper()
1640 a := archsimd.LoadInt16x16(x)
1641 g := make([]uint16, 16)
1642 f(a).Store(g)
1643 w := want(x)
1644 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1645 })
1646 }
1647
1648
1649
1650
1651 func testInt32x8ConvertToUint16(t *testing.T, f func(x archsimd.Int32x8) archsimd.Uint16x8, want func(x []int32) []uint16) {
1652 n := 8
1653 t.Helper()
1654 forSlice(t, int32s, n, func(x []int32) bool {
1655 t.Helper()
1656 a := archsimd.LoadInt32x8(x)
1657 g := make([]uint16, 8)
1658 f(a).Store(g)
1659 w := want(x)
1660 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1661 })
1662 }
1663
1664
1665
1666
1667 func testInt64x4ConvertToUint16(t *testing.T, f func(x archsimd.Int64x4) archsimd.Uint16x8, want func(x []int64) []uint16) {
1668 n := 4
1669 t.Helper()
1670 forSlice(t, int64s, n, func(x []int64) bool {
1671 t.Helper()
1672 a := archsimd.LoadInt64x4(x)
1673 g := make([]uint16, 8)
1674 f(a).Store(g)
1675 w := want(x)
1676 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1677 })
1678 }
1679
1680
1681
1682
1683 func testUint8x32ConvertToUint16(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Uint16x32, want func(x []uint8) []uint16) {
1684 n := 32
1685 t.Helper()
1686 forSlice(t, uint8s, n, func(x []uint8) bool {
1687 t.Helper()
1688 a := archsimd.LoadUint8x32(x)
1689 g := make([]uint16, 32)
1690 f(a).Store(g)
1691 w := want(x)
1692 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1693 })
1694 }
1695
1696
1697
1698
1699 func testUint16x16ConvertToUint16(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Uint16x16, want func(x []uint16) []uint16) {
1700 n := 16
1701 t.Helper()
1702 forSlice(t, uint16s, n, func(x []uint16) bool {
1703 t.Helper()
1704 a := archsimd.LoadUint16x16(x)
1705 g := make([]uint16, 16)
1706 f(a).Store(g)
1707 w := want(x)
1708 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1709 })
1710 }
1711
1712
1713
1714
1715 func testUint32x8ConvertToUint16(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Uint16x8, want func(x []uint32) []uint16) {
1716 n := 8
1717 t.Helper()
1718 forSlice(t, uint32s, n, func(x []uint32) bool {
1719 t.Helper()
1720 a := archsimd.LoadUint32x8(x)
1721 g := make([]uint16, 8)
1722 f(a).Store(g)
1723 w := want(x)
1724 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1725 })
1726 }
1727
1728
1729
1730
1731 func testUint64x4ConvertToUint16(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Uint16x8, want func(x []uint64) []uint16) {
1732 n := 4
1733 t.Helper()
1734 forSlice(t, uint64s, n, func(x []uint64) bool {
1735 t.Helper()
1736 a := archsimd.LoadUint64x4(x)
1737 g := make([]uint16, 8)
1738 f(a).Store(g)
1739 w := want(x)
1740 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1741 })
1742 }
1743
1744
1745
1746
1747 func testFloat32x8ConvertToUint16(t *testing.T, f func(x archsimd.Float32x8) archsimd.Uint16x8, want func(x []float32) []uint16) {
1748 n := 8
1749 t.Helper()
1750 forSlice(t, float32s, n, func(x []float32) bool {
1751 t.Helper()
1752 a := archsimd.LoadFloat32x8(x)
1753 g := make([]uint16, 8)
1754 f(a).Store(g)
1755 w := want(x)
1756 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1757 })
1758 }
1759
1760
1761
1762
1763 func testFloat64x4ConvertToUint16(t *testing.T, f func(x archsimd.Float64x4) archsimd.Uint16x8, want func(x []float64) []uint16) {
1764 n := 4
1765 t.Helper()
1766 forSlice(t, float64s, n, func(x []float64) bool {
1767 t.Helper()
1768 a := archsimd.LoadFloat64x4(x)
1769 g := make([]uint16, 8)
1770 f(a).Store(g)
1771 w := want(x)
1772 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1773 })
1774 }
1775
1776
1777
1778
1779 func testInt8x64ConvertToUint16(t *testing.T, f func(x archsimd.Int8x64) archsimd.Uint16x32, want func(x []int8) []uint16) {
1780 n := 64
1781 t.Helper()
1782 forSlice(t, int8s, n, func(x []int8) bool {
1783 t.Helper()
1784 a := archsimd.LoadInt8x64(x)
1785 g := make([]uint16, 32)
1786 f(a).Store(g)
1787 w := want(x)
1788 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1789 })
1790 }
1791
1792
1793
1794
1795 func testInt16x32ConvertToUint16(t *testing.T, f func(x archsimd.Int16x32) archsimd.Uint16x32, want func(x []int16) []uint16) {
1796 n := 32
1797 t.Helper()
1798 forSlice(t, int16s, n, func(x []int16) bool {
1799 t.Helper()
1800 a := archsimd.LoadInt16x32(x)
1801 g := make([]uint16, 32)
1802 f(a).Store(g)
1803 w := want(x)
1804 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1805 })
1806 }
1807
1808
1809
1810
1811 func testInt32x16ConvertToUint16(t *testing.T, f func(x archsimd.Int32x16) archsimd.Uint16x16, want func(x []int32) []uint16) {
1812 n := 16
1813 t.Helper()
1814 forSlice(t, int32s, n, func(x []int32) bool {
1815 t.Helper()
1816 a := archsimd.LoadInt32x16(x)
1817 g := make([]uint16, 16)
1818 f(a).Store(g)
1819 w := want(x)
1820 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1821 })
1822 }
1823
1824
1825
1826
1827 func testInt64x8ConvertToUint16(t *testing.T, f func(x archsimd.Int64x8) archsimd.Uint16x8, want func(x []int64) []uint16) {
1828 n := 8
1829 t.Helper()
1830 forSlice(t, int64s, n, func(x []int64) bool {
1831 t.Helper()
1832 a := archsimd.LoadInt64x8(x)
1833 g := make([]uint16, 8)
1834 f(a).Store(g)
1835 w := want(x)
1836 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1837 })
1838 }
1839
1840
1841
1842
1843 func testUint8x64ConvertToUint16(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Uint16x32, want func(x []uint8) []uint16) {
1844 n := 64
1845 t.Helper()
1846 forSlice(t, uint8s, n, func(x []uint8) bool {
1847 t.Helper()
1848 a := archsimd.LoadUint8x64(x)
1849 g := make([]uint16, 32)
1850 f(a).Store(g)
1851 w := want(x)
1852 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1853 })
1854 }
1855
1856
1857
1858
1859 func testUint16x32ConvertToUint16(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Uint16x32, want func(x []uint16) []uint16) {
1860 n := 32
1861 t.Helper()
1862 forSlice(t, uint16s, n, func(x []uint16) bool {
1863 t.Helper()
1864 a := archsimd.LoadUint16x32(x)
1865 g := make([]uint16, 32)
1866 f(a).Store(g)
1867 w := want(x)
1868 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1869 })
1870 }
1871
1872
1873
1874
1875 func testUint32x16ConvertToUint16(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Uint16x16, want func(x []uint32) []uint16) {
1876 n := 16
1877 t.Helper()
1878 forSlice(t, uint32s, n, func(x []uint32) bool {
1879 t.Helper()
1880 a := archsimd.LoadUint32x16(x)
1881 g := make([]uint16, 16)
1882 f(a).Store(g)
1883 w := want(x)
1884 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1885 })
1886 }
1887
1888
1889
1890
1891 func testUint64x8ConvertToUint16(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Uint16x8, want func(x []uint64) []uint16) {
1892 n := 8
1893 t.Helper()
1894 forSlice(t, uint64s, n, func(x []uint64) bool {
1895 t.Helper()
1896 a := archsimd.LoadUint64x8(x)
1897 g := make([]uint16, 8)
1898 f(a).Store(g)
1899 w := want(x)
1900 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1901 })
1902 }
1903
1904
1905
1906
1907 func testFloat32x16ConvertToUint16(t *testing.T, f func(x archsimd.Float32x16) archsimd.Uint16x16, want func(x []float32) []uint16) {
1908 n := 16
1909 t.Helper()
1910 forSlice(t, float32s, n, func(x []float32) bool {
1911 t.Helper()
1912 a := archsimd.LoadFloat32x16(x)
1913 g := make([]uint16, 16)
1914 f(a).Store(g)
1915 w := want(x)
1916 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1917 })
1918 }
1919
1920
1921
1922
1923 func testFloat64x8ConvertToUint16(t *testing.T, f func(x archsimd.Float64x8) archsimd.Uint16x8, want func(x []float64) []uint16) {
1924 n := 8
1925 t.Helper()
1926 forSlice(t, float64s, n, func(x []float64) bool {
1927 t.Helper()
1928 a := archsimd.LoadFloat64x8(x)
1929 g := make([]uint16, 8)
1930 f(a).Store(g)
1931 w := want(x)
1932 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1933 })
1934 }
1935
1936
1937
1938
1939 func testInt8x16ConvertToInt32(t *testing.T, f func(x archsimd.Int8x16) archsimd.Int32x16, want func(x []int8) []int32) {
1940 n := 16
1941 t.Helper()
1942 forSlice(t, int8s, n, func(x []int8) bool {
1943 t.Helper()
1944 a := archsimd.LoadInt8x16(x)
1945 g := make([]int32, 16)
1946 f(a).Store(g)
1947 w := want(x)
1948 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1949 })
1950 }
1951
1952
1953
1954
1955 func testInt16x8ConvertToInt32(t *testing.T, f func(x archsimd.Int16x8) archsimd.Int32x8, want func(x []int16) []int32) {
1956 n := 8
1957 t.Helper()
1958 forSlice(t, int16s, n, func(x []int16) bool {
1959 t.Helper()
1960 a := archsimd.LoadInt16x8(x)
1961 g := make([]int32, 8)
1962 f(a).Store(g)
1963 w := want(x)
1964 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1965 })
1966 }
1967
1968
1969
1970
1971 func testInt32x4ConvertToInt32(t *testing.T, f func(x archsimd.Int32x4) archsimd.Int32x4, want func(x []int32) []int32) {
1972 n := 4
1973 t.Helper()
1974 forSlice(t, int32s, n, func(x []int32) bool {
1975 t.Helper()
1976 a := archsimd.LoadInt32x4(x)
1977 g := make([]int32, 4)
1978 f(a).Store(g)
1979 w := want(x)
1980 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1981 })
1982 }
1983
1984
1985
1986
1987 func testInt64x2ConvertToInt32(t *testing.T, f func(x archsimd.Int64x2) archsimd.Int32x4, want func(x []int64) []int32) {
1988 n := 2
1989 t.Helper()
1990 forSlice(t, int64s, n, func(x []int64) bool {
1991 t.Helper()
1992 a := archsimd.LoadInt64x2(x)
1993 g := make([]int32, 4)
1994 f(a).Store(g)
1995 w := want(x)
1996 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
1997 })
1998 }
1999
2000
2001
2002
2003 func testUint8x16ConvertToInt32(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Int32x16, want func(x []uint8) []int32) {
2004 n := 16
2005 t.Helper()
2006 forSlice(t, uint8s, n, func(x []uint8) bool {
2007 t.Helper()
2008 a := archsimd.LoadUint8x16(x)
2009 g := make([]int32, 16)
2010 f(a).Store(g)
2011 w := want(x)
2012 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2013 })
2014 }
2015
2016
2017
2018
2019 func testUint16x8ConvertToInt32(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Int32x8, want func(x []uint16) []int32) {
2020 n := 8
2021 t.Helper()
2022 forSlice(t, uint16s, n, func(x []uint16) bool {
2023 t.Helper()
2024 a := archsimd.LoadUint16x8(x)
2025 g := make([]int32, 8)
2026 f(a).Store(g)
2027 w := want(x)
2028 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2029 })
2030 }
2031
2032
2033
2034
2035 func testUint32x4ConvertToInt32(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Int32x4, want func(x []uint32) []int32) {
2036 n := 4
2037 t.Helper()
2038 forSlice(t, uint32s, n, func(x []uint32) bool {
2039 t.Helper()
2040 a := archsimd.LoadUint32x4(x)
2041 g := make([]int32, 4)
2042 f(a).Store(g)
2043 w := want(x)
2044 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2045 })
2046 }
2047
2048
2049
2050
2051 func testUint64x2ConvertToInt32(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Int32x4, want func(x []uint64) []int32) {
2052 n := 2
2053 t.Helper()
2054 forSlice(t, uint64s, n, func(x []uint64) bool {
2055 t.Helper()
2056 a := archsimd.LoadUint64x2(x)
2057 g := make([]int32, 4)
2058 f(a).Store(g)
2059 w := want(x)
2060 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2061 })
2062 }
2063
2064
2065
2066
2067 func testFloat32x4ConvertToInt32(t *testing.T, f func(x archsimd.Float32x4) archsimd.Int32x4, want func(x []float32) []int32) {
2068 n := 4
2069 t.Helper()
2070 forSlice(t, float32s, n, func(x []float32) bool {
2071 t.Helper()
2072 a := archsimd.LoadFloat32x4(x)
2073 g := make([]int32, 4)
2074 f(a).Store(g)
2075 w := want(x)
2076 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2077 })
2078 }
2079
2080
2081
2082
2083 func testFloat64x2ConvertToInt32(t *testing.T, f func(x archsimd.Float64x2) archsimd.Int32x4, want func(x []float64) []int32) {
2084 n := 2
2085 t.Helper()
2086 forSlice(t, float64s, n, func(x []float64) bool {
2087 t.Helper()
2088 a := archsimd.LoadFloat64x2(x)
2089 g := make([]int32, 4)
2090 f(a).Store(g)
2091 w := want(x)
2092 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2093 })
2094 }
2095
2096
2097
2098
2099 func testInt8x32ConvertToInt32(t *testing.T, f func(x archsimd.Int8x32) archsimd.Int32x16, want func(x []int8) []int32) {
2100 n := 32
2101 t.Helper()
2102 forSlice(t, int8s, n, func(x []int8) bool {
2103 t.Helper()
2104 a := archsimd.LoadInt8x32(x)
2105 g := make([]int32, 16)
2106 f(a).Store(g)
2107 w := want(x)
2108 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2109 })
2110 }
2111
2112
2113
2114
2115 func testInt16x16ConvertToInt32(t *testing.T, f func(x archsimd.Int16x16) archsimd.Int32x16, want func(x []int16) []int32) {
2116 n := 16
2117 t.Helper()
2118 forSlice(t, int16s, n, func(x []int16) bool {
2119 t.Helper()
2120 a := archsimd.LoadInt16x16(x)
2121 g := make([]int32, 16)
2122 f(a).Store(g)
2123 w := want(x)
2124 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2125 })
2126 }
2127
2128
2129
2130
2131 func testInt32x8ConvertToInt32(t *testing.T, f func(x archsimd.Int32x8) archsimd.Int32x8, want func(x []int32) []int32) {
2132 n := 8
2133 t.Helper()
2134 forSlice(t, int32s, n, func(x []int32) bool {
2135 t.Helper()
2136 a := archsimd.LoadInt32x8(x)
2137 g := make([]int32, 8)
2138 f(a).Store(g)
2139 w := want(x)
2140 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2141 })
2142 }
2143
2144
2145
2146
2147 func testInt64x4ConvertToInt32(t *testing.T, f func(x archsimd.Int64x4) archsimd.Int32x4, want func(x []int64) []int32) {
2148 n := 4
2149 t.Helper()
2150 forSlice(t, int64s, n, func(x []int64) bool {
2151 t.Helper()
2152 a := archsimd.LoadInt64x4(x)
2153 g := make([]int32, 4)
2154 f(a).Store(g)
2155 w := want(x)
2156 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2157 })
2158 }
2159
2160
2161
2162
2163 func testUint8x32ConvertToInt32(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Int32x16, want func(x []uint8) []int32) {
2164 n := 32
2165 t.Helper()
2166 forSlice(t, uint8s, n, func(x []uint8) bool {
2167 t.Helper()
2168 a := archsimd.LoadUint8x32(x)
2169 g := make([]int32, 16)
2170 f(a).Store(g)
2171 w := want(x)
2172 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2173 })
2174 }
2175
2176
2177
2178
2179 func testUint16x16ConvertToInt32(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Int32x16, want func(x []uint16) []int32) {
2180 n := 16
2181 t.Helper()
2182 forSlice(t, uint16s, n, func(x []uint16) bool {
2183 t.Helper()
2184 a := archsimd.LoadUint16x16(x)
2185 g := make([]int32, 16)
2186 f(a).Store(g)
2187 w := want(x)
2188 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2189 })
2190 }
2191
2192
2193
2194
2195 func testUint32x8ConvertToInt32(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Int32x8, want func(x []uint32) []int32) {
2196 n := 8
2197 t.Helper()
2198 forSlice(t, uint32s, n, func(x []uint32) bool {
2199 t.Helper()
2200 a := archsimd.LoadUint32x8(x)
2201 g := make([]int32, 8)
2202 f(a).Store(g)
2203 w := want(x)
2204 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2205 })
2206 }
2207
2208
2209
2210
2211 func testUint64x4ConvertToInt32(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Int32x4, want func(x []uint64) []int32) {
2212 n := 4
2213 t.Helper()
2214 forSlice(t, uint64s, n, func(x []uint64) bool {
2215 t.Helper()
2216 a := archsimd.LoadUint64x4(x)
2217 g := make([]int32, 4)
2218 f(a).Store(g)
2219 w := want(x)
2220 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2221 })
2222 }
2223
2224
2225
2226
2227 func testFloat32x8ConvertToInt32(t *testing.T, f func(x archsimd.Float32x8) archsimd.Int32x8, want func(x []float32) []int32) {
2228 n := 8
2229 t.Helper()
2230 forSlice(t, float32s, n, func(x []float32) bool {
2231 t.Helper()
2232 a := archsimd.LoadFloat32x8(x)
2233 g := make([]int32, 8)
2234 f(a).Store(g)
2235 w := want(x)
2236 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2237 })
2238 }
2239
2240
2241
2242
2243 func testFloat64x4ConvertToInt32(t *testing.T, f func(x archsimd.Float64x4) archsimd.Int32x4, want func(x []float64) []int32) {
2244 n := 4
2245 t.Helper()
2246 forSlice(t, float64s, n, func(x []float64) bool {
2247 t.Helper()
2248 a := archsimd.LoadFloat64x4(x)
2249 g := make([]int32, 4)
2250 f(a).Store(g)
2251 w := want(x)
2252 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2253 })
2254 }
2255
2256
2257
2258
2259 func testInt8x64ConvertToInt32(t *testing.T, f func(x archsimd.Int8x64) archsimd.Int32x16, want func(x []int8) []int32) {
2260 n := 64
2261 t.Helper()
2262 forSlice(t, int8s, n, func(x []int8) bool {
2263 t.Helper()
2264 a := archsimd.LoadInt8x64(x)
2265 g := make([]int32, 16)
2266 f(a).Store(g)
2267 w := want(x)
2268 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2269 })
2270 }
2271
2272
2273
2274
2275 func testInt16x32ConvertToInt32(t *testing.T, f func(x archsimd.Int16x32) archsimd.Int32x16, want func(x []int16) []int32) {
2276 n := 32
2277 t.Helper()
2278 forSlice(t, int16s, n, func(x []int16) bool {
2279 t.Helper()
2280 a := archsimd.LoadInt16x32(x)
2281 g := make([]int32, 16)
2282 f(a).Store(g)
2283 w := want(x)
2284 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2285 })
2286 }
2287
2288
2289
2290
2291 func testInt32x16ConvertToInt32(t *testing.T, f func(x archsimd.Int32x16) archsimd.Int32x16, want func(x []int32) []int32) {
2292 n := 16
2293 t.Helper()
2294 forSlice(t, int32s, n, func(x []int32) bool {
2295 t.Helper()
2296 a := archsimd.LoadInt32x16(x)
2297 g := make([]int32, 16)
2298 f(a).Store(g)
2299 w := want(x)
2300 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2301 })
2302 }
2303
2304
2305
2306
2307 func testInt64x8ConvertToInt32(t *testing.T, f func(x archsimd.Int64x8) archsimd.Int32x8, want func(x []int64) []int32) {
2308 n := 8
2309 t.Helper()
2310 forSlice(t, int64s, n, func(x []int64) bool {
2311 t.Helper()
2312 a := archsimd.LoadInt64x8(x)
2313 g := make([]int32, 8)
2314 f(a).Store(g)
2315 w := want(x)
2316 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2317 })
2318 }
2319
2320
2321
2322
2323 func testUint8x64ConvertToInt32(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Int32x16, want func(x []uint8) []int32) {
2324 n := 64
2325 t.Helper()
2326 forSlice(t, uint8s, n, func(x []uint8) bool {
2327 t.Helper()
2328 a := archsimd.LoadUint8x64(x)
2329 g := make([]int32, 16)
2330 f(a).Store(g)
2331 w := want(x)
2332 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2333 })
2334 }
2335
2336
2337
2338
2339 func testUint16x32ConvertToInt32(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Int32x16, want func(x []uint16) []int32) {
2340 n := 32
2341 t.Helper()
2342 forSlice(t, uint16s, n, func(x []uint16) bool {
2343 t.Helper()
2344 a := archsimd.LoadUint16x32(x)
2345 g := make([]int32, 16)
2346 f(a).Store(g)
2347 w := want(x)
2348 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2349 })
2350 }
2351
2352
2353
2354
2355 func testUint32x16ConvertToInt32(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Int32x16, want func(x []uint32) []int32) {
2356 n := 16
2357 t.Helper()
2358 forSlice(t, uint32s, n, func(x []uint32) bool {
2359 t.Helper()
2360 a := archsimd.LoadUint32x16(x)
2361 g := make([]int32, 16)
2362 f(a).Store(g)
2363 w := want(x)
2364 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2365 })
2366 }
2367
2368
2369
2370
2371 func testUint64x8ConvertToInt32(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Int32x8, want func(x []uint64) []int32) {
2372 n := 8
2373 t.Helper()
2374 forSlice(t, uint64s, n, func(x []uint64) bool {
2375 t.Helper()
2376 a := archsimd.LoadUint64x8(x)
2377 g := make([]int32, 8)
2378 f(a).Store(g)
2379 w := want(x)
2380 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2381 })
2382 }
2383
2384
2385
2386
2387 func testFloat32x16ConvertToInt32(t *testing.T, f func(x archsimd.Float32x16) archsimd.Int32x16, want func(x []float32) []int32) {
2388 n := 16
2389 t.Helper()
2390 forSlice(t, float32s, n, func(x []float32) bool {
2391 t.Helper()
2392 a := archsimd.LoadFloat32x16(x)
2393 g := make([]int32, 16)
2394 f(a).Store(g)
2395 w := want(x)
2396 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2397 })
2398 }
2399
2400
2401
2402
2403 func testFloat64x8ConvertToInt32(t *testing.T, f func(x archsimd.Float64x8) archsimd.Int32x8, want func(x []float64) []int32) {
2404 n := 8
2405 t.Helper()
2406 forSlice(t, float64s, n, func(x []float64) bool {
2407 t.Helper()
2408 a := archsimd.LoadFloat64x8(x)
2409 g := make([]int32, 8)
2410 f(a).Store(g)
2411 w := want(x)
2412 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2413 })
2414 }
2415
2416
2417
2418
2419 func testInt8x16ConvertToUint32(t *testing.T, f func(x archsimd.Int8x16) archsimd.Uint32x16, want func(x []int8) []uint32) {
2420 n := 16
2421 t.Helper()
2422 forSlice(t, int8s, n, func(x []int8) bool {
2423 t.Helper()
2424 a := archsimd.LoadInt8x16(x)
2425 g := make([]uint32, 16)
2426 f(a).Store(g)
2427 w := want(x)
2428 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2429 })
2430 }
2431
2432
2433
2434
2435 func testInt16x8ConvertToUint32(t *testing.T, f func(x archsimd.Int16x8) archsimd.Uint32x8, want func(x []int16) []uint32) {
2436 n := 8
2437 t.Helper()
2438 forSlice(t, int16s, n, func(x []int16) bool {
2439 t.Helper()
2440 a := archsimd.LoadInt16x8(x)
2441 g := make([]uint32, 8)
2442 f(a).Store(g)
2443 w := want(x)
2444 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2445 })
2446 }
2447
2448
2449
2450
2451 func testInt32x4ConvertToUint32(t *testing.T, f func(x archsimd.Int32x4) archsimd.Uint32x4, want func(x []int32) []uint32) {
2452 n := 4
2453 t.Helper()
2454 forSlice(t, int32s, n, func(x []int32) bool {
2455 t.Helper()
2456 a := archsimd.LoadInt32x4(x)
2457 g := make([]uint32, 4)
2458 f(a).Store(g)
2459 w := want(x)
2460 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2461 })
2462 }
2463
2464
2465
2466
2467 func testInt64x2ConvertToUint32(t *testing.T, f func(x archsimd.Int64x2) archsimd.Uint32x4, want func(x []int64) []uint32) {
2468 n := 2
2469 t.Helper()
2470 forSlice(t, int64s, n, func(x []int64) bool {
2471 t.Helper()
2472 a := archsimd.LoadInt64x2(x)
2473 g := make([]uint32, 4)
2474 f(a).Store(g)
2475 w := want(x)
2476 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2477 })
2478 }
2479
2480
2481
2482
2483 func testUint8x16ConvertToUint32(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Uint32x16, want func(x []uint8) []uint32) {
2484 n := 16
2485 t.Helper()
2486 forSlice(t, uint8s, n, func(x []uint8) bool {
2487 t.Helper()
2488 a := archsimd.LoadUint8x16(x)
2489 g := make([]uint32, 16)
2490 f(a).Store(g)
2491 w := want(x)
2492 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2493 })
2494 }
2495
2496
2497
2498
2499 func testUint16x8ConvertToUint32(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Uint32x8, want func(x []uint16) []uint32) {
2500 n := 8
2501 t.Helper()
2502 forSlice(t, uint16s, n, func(x []uint16) bool {
2503 t.Helper()
2504 a := archsimd.LoadUint16x8(x)
2505 g := make([]uint32, 8)
2506 f(a).Store(g)
2507 w := want(x)
2508 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2509 })
2510 }
2511
2512
2513
2514
2515 func testUint32x4ConvertToUint32(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Uint32x4, want func(x []uint32) []uint32) {
2516 n := 4
2517 t.Helper()
2518 forSlice(t, uint32s, n, func(x []uint32) bool {
2519 t.Helper()
2520 a := archsimd.LoadUint32x4(x)
2521 g := make([]uint32, 4)
2522 f(a).Store(g)
2523 w := want(x)
2524 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2525 })
2526 }
2527
2528
2529
2530
2531 func testUint64x2ConvertToUint32(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Uint32x4, want func(x []uint64) []uint32) {
2532 n := 2
2533 t.Helper()
2534 forSlice(t, uint64s, n, func(x []uint64) bool {
2535 t.Helper()
2536 a := archsimd.LoadUint64x2(x)
2537 g := make([]uint32, 4)
2538 f(a).Store(g)
2539 w := want(x)
2540 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2541 })
2542 }
2543
2544
2545
2546
2547 func testFloat32x4ConvertToUint32(t *testing.T, f func(x archsimd.Float32x4) archsimd.Uint32x4, want func(x []float32) []uint32) {
2548 n := 4
2549 t.Helper()
2550 forSlice(t, float32s, n, func(x []float32) bool {
2551 t.Helper()
2552 a := archsimd.LoadFloat32x4(x)
2553 g := make([]uint32, 4)
2554 f(a).Store(g)
2555 w := want(x)
2556 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2557 })
2558 }
2559
2560
2561
2562
2563 func testFloat64x2ConvertToUint32(t *testing.T, f func(x archsimd.Float64x2) archsimd.Uint32x4, want func(x []float64) []uint32) {
2564 n := 2
2565 t.Helper()
2566 forSlice(t, float64s, n, func(x []float64) bool {
2567 t.Helper()
2568 a := archsimd.LoadFloat64x2(x)
2569 g := make([]uint32, 4)
2570 f(a).Store(g)
2571 w := want(x)
2572 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2573 })
2574 }
2575
2576
2577
2578
2579 func testInt8x32ConvertToUint32(t *testing.T, f func(x archsimd.Int8x32) archsimd.Uint32x16, want func(x []int8) []uint32) {
2580 n := 32
2581 t.Helper()
2582 forSlice(t, int8s, n, func(x []int8) bool {
2583 t.Helper()
2584 a := archsimd.LoadInt8x32(x)
2585 g := make([]uint32, 16)
2586 f(a).Store(g)
2587 w := want(x)
2588 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2589 })
2590 }
2591
2592
2593
2594
2595 func testInt16x16ConvertToUint32(t *testing.T, f func(x archsimd.Int16x16) archsimd.Uint32x16, want func(x []int16) []uint32) {
2596 n := 16
2597 t.Helper()
2598 forSlice(t, int16s, n, func(x []int16) bool {
2599 t.Helper()
2600 a := archsimd.LoadInt16x16(x)
2601 g := make([]uint32, 16)
2602 f(a).Store(g)
2603 w := want(x)
2604 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2605 })
2606 }
2607
2608
2609
2610
2611 func testInt32x8ConvertToUint32(t *testing.T, f func(x archsimd.Int32x8) archsimd.Uint32x8, want func(x []int32) []uint32) {
2612 n := 8
2613 t.Helper()
2614 forSlice(t, int32s, n, func(x []int32) bool {
2615 t.Helper()
2616 a := archsimd.LoadInt32x8(x)
2617 g := make([]uint32, 8)
2618 f(a).Store(g)
2619 w := want(x)
2620 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2621 })
2622 }
2623
2624
2625
2626
2627 func testInt64x4ConvertToUint32(t *testing.T, f func(x archsimd.Int64x4) archsimd.Uint32x4, want func(x []int64) []uint32) {
2628 n := 4
2629 t.Helper()
2630 forSlice(t, int64s, n, func(x []int64) bool {
2631 t.Helper()
2632 a := archsimd.LoadInt64x4(x)
2633 g := make([]uint32, 4)
2634 f(a).Store(g)
2635 w := want(x)
2636 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2637 })
2638 }
2639
2640
2641
2642
2643 func testUint8x32ConvertToUint32(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Uint32x16, want func(x []uint8) []uint32) {
2644 n := 32
2645 t.Helper()
2646 forSlice(t, uint8s, n, func(x []uint8) bool {
2647 t.Helper()
2648 a := archsimd.LoadUint8x32(x)
2649 g := make([]uint32, 16)
2650 f(a).Store(g)
2651 w := want(x)
2652 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2653 })
2654 }
2655
2656
2657
2658
2659 func testUint16x16ConvertToUint32(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Uint32x16, want func(x []uint16) []uint32) {
2660 n := 16
2661 t.Helper()
2662 forSlice(t, uint16s, n, func(x []uint16) bool {
2663 t.Helper()
2664 a := archsimd.LoadUint16x16(x)
2665 g := make([]uint32, 16)
2666 f(a).Store(g)
2667 w := want(x)
2668 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2669 })
2670 }
2671
2672
2673
2674
2675 func testUint32x8ConvertToUint32(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Uint32x8, want func(x []uint32) []uint32) {
2676 n := 8
2677 t.Helper()
2678 forSlice(t, uint32s, n, func(x []uint32) bool {
2679 t.Helper()
2680 a := archsimd.LoadUint32x8(x)
2681 g := make([]uint32, 8)
2682 f(a).Store(g)
2683 w := want(x)
2684 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2685 })
2686 }
2687
2688
2689
2690
2691 func testUint64x4ConvertToUint32(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Uint32x4, want func(x []uint64) []uint32) {
2692 n := 4
2693 t.Helper()
2694 forSlice(t, uint64s, n, func(x []uint64) bool {
2695 t.Helper()
2696 a := archsimd.LoadUint64x4(x)
2697 g := make([]uint32, 4)
2698 f(a).Store(g)
2699 w := want(x)
2700 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2701 })
2702 }
2703
2704
2705
2706
2707 func testFloat32x8ConvertToUint32(t *testing.T, f func(x archsimd.Float32x8) archsimd.Uint32x8, want func(x []float32) []uint32) {
2708 n := 8
2709 t.Helper()
2710 forSlice(t, float32s, n, func(x []float32) bool {
2711 t.Helper()
2712 a := archsimd.LoadFloat32x8(x)
2713 g := make([]uint32, 8)
2714 f(a).Store(g)
2715 w := want(x)
2716 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2717 })
2718 }
2719
2720
2721
2722
2723 func testFloat64x4ConvertToUint32(t *testing.T, f func(x archsimd.Float64x4) archsimd.Uint32x4, want func(x []float64) []uint32) {
2724 n := 4
2725 t.Helper()
2726 forSlice(t, float64s, n, func(x []float64) bool {
2727 t.Helper()
2728 a := archsimd.LoadFloat64x4(x)
2729 g := make([]uint32, 4)
2730 f(a).Store(g)
2731 w := want(x)
2732 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2733 })
2734 }
2735
2736
2737
2738
2739 func testInt8x64ConvertToUint32(t *testing.T, f func(x archsimd.Int8x64) archsimd.Uint32x16, want func(x []int8) []uint32) {
2740 n := 64
2741 t.Helper()
2742 forSlice(t, int8s, n, func(x []int8) bool {
2743 t.Helper()
2744 a := archsimd.LoadInt8x64(x)
2745 g := make([]uint32, 16)
2746 f(a).Store(g)
2747 w := want(x)
2748 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2749 })
2750 }
2751
2752
2753
2754
2755 func testInt16x32ConvertToUint32(t *testing.T, f func(x archsimd.Int16x32) archsimd.Uint32x16, want func(x []int16) []uint32) {
2756 n := 32
2757 t.Helper()
2758 forSlice(t, int16s, n, func(x []int16) bool {
2759 t.Helper()
2760 a := archsimd.LoadInt16x32(x)
2761 g := make([]uint32, 16)
2762 f(a).Store(g)
2763 w := want(x)
2764 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2765 })
2766 }
2767
2768
2769
2770
2771 func testInt32x16ConvertToUint32(t *testing.T, f func(x archsimd.Int32x16) archsimd.Uint32x16, want func(x []int32) []uint32) {
2772 n := 16
2773 t.Helper()
2774 forSlice(t, int32s, n, func(x []int32) bool {
2775 t.Helper()
2776 a := archsimd.LoadInt32x16(x)
2777 g := make([]uint32, 16)
2778 f(a).Store(g)
2779 w := want(x)
2780 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2781 })
2782 }
2783
2784
2785
2786
2787 func testInt64x8ConvertToUint32(t *testing.T, f func(x archsimd.Int64x8) archsimd.Uint32x8, want func(x []int64) []uint32) {
2788 n := 8
2789 t.Helper()
2790 forSlice(t, int64s, n, func(x []int64) bool {
2791 t.Helper()
2792 a := archsimd.LoadInt64x8(x)
2793 g := make([]uint32, 8)
2794 f(a).Store(g)
2795 w := want(x)
2796 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2797 })
2798 }
2799
2800
2801
2802
2803 func testUint8x64ConvertToUint32(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Uint32x16, want func(x []uint8) []uint32) {
2804 n := 64
2805 t.Helper()
2806 forSlice(t, uint8s, n, func(x []uint8) bool {
2807 t.Helper()
2808 a := archsimd.LoadUint8x64(x)
2809 g := make([]uint32, 16)
2810 f(a).Store(g)
2811 w := want(x)
2812 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2813 })
2814 }
2815
2816
2817
2818
2819 func testUint16x32ConvertToUint32(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Uint32x16, want func(x []uint16) []uint32) {
2820 n := 32
2821 t.Helper()
2822 forSlice(t, uint16s, n, func(x []uint16) bool {
2823 t.Helper()
2824 a := archsimd.LoadUint16x32(x)
2825 g := make([]uint32, 16)
2826 f(a).Store(g)
2827 w := want(x)
2828 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2829 })
2830 }
2831
2832
2833
2834
2835 func testUint32x16ConvertToUint32(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Uint32x16, want func(x []uint32) []uint32) {
2836 n := 16
2837 t.Helper()
2838 forSlice(t, uint32s, n, func(x []uint32) bool {
2839 t.Helper()
2840 a := archsimd.LoadUint32x16(x)
2841 g := make([]uint32, 16)
2842 f(a).Store(g)
2843 w := want(x)
2844 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2845 })
2846 }
2847
2848
2849
2850
2851 func testUint64x8ConvertToUint32(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Uint32x8, want func(x []uint64) []uint32) {
2852 n := 8
2853 t.Helper()
2854 forSlice(t, uint64s, n, func(x []uint64) bool {
2855 t.Helper()
2856 a := archsimd.LoadUint64x8(x)
2857 g := make([]uint32, 8)
2858 f(a).Store(g)
2859 w := want(x)
2860 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2861 })
2862 }
2863
2864
2865
2866
2867 func testFloat32x16ConvertToUint32(t *testing.T, f func(x archsimd.Float32x16) archsimd.Uint32x16, want func(x []float32) []uint32) {
2868 n := 16
2869 t.Helper()
2870 forSlice(t, float32s, n, func(x []float32) bool {
2871 t.Helper()
2872 a := archsimd.LoadFloat32x16(x)
2873 g := make([]uint32, 16)
2874 f(a).Store(g)
2875 w := want(x)
2876 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2877 })
2878 }
2879
2880
2881
2882
2883 func testFloat64x8ConvertToUint32(t *testing.T, f func(x archsimd.Float64x8) archsimd.Uint32x8, want func(x []float64) []uint32) {
2884 n := 8
2885 t.Helper()
2886 forSlice(t, float64s, n, func(x []float64) bool {
2887 t.Helper()
2888 a := archsimd.LoadFloat64x8(x)
2889 g := make([]uint32, 8)
2890 f(a).Store(g)
2891 w := want(x)
2892 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2893 })
2894 }
2895
2896
2897
2898
2899 func testInt8x16ConvertToInt64(t *testing.T, f func(x archsimd.Int8x16) archsimd.Int64x8, want func(x []int8) []int64) {
2900 n := 16
2901 t.Helper()
2902 forSlice(t, int8s, n, func(x []int8) bool {
2903 t.Helper()
2904 a := archsimd.LoadInt8x16(x)
2905 g := make([]int64, 8)
2906 f(a).Store(g)
2907 w := want(x)
2908 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2909 })
2910 }
2911
2912
2913
2914
2915 func testInt16x8ConvertToInt64(t *testing.T, f func(x archsimd.Int16x8) archsimd.Int64x8, want func(x []int16) []int64) {
2916 n := 8
2917 t.Helper()
2918 forSlice(t, int16s, n, func(x []int16) bool {
2919 t.Helper()
2920 a := archsimd.LoadInt16x8(x)
2921 g := make([]int64, 8)
2922 f(a).Store(g)
2923 w := want(x)
2924 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2925 })
2926 }
2927
2928
2929
2930
2931 func testInt32x4ConvertToInt64(t *testing.T, f func(x archsimd.Int32x4) archsimd.Int64x4, want func(x []int32) []int64) {
2932 n := 4
2933 t.Helper()
2934 forSlice(t, int32s, n, func(x []int32) bool {
2935 t.Helper()
2936 a := archsimd.LoadInt32x4(x)
2937 g := make([]int64, 4)
2938 f(a).Store(g)
2939 w := want(x)
2940 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2941 })
2942 }
2943
2944
2945
2946
2947 func testInt64x2ConvertToInt64(t *testing.T, f func(x archsimd.Int64x2) archsimd.Int64x2, want func(x []int64) []int64) {
2948 n := 2
2949 t.Helper()
2950 forSlice(t, int64s, n, func(x []int64) bool {
2951 t.Helper()
2952 a := archsimd.LoadInt64x2(x)
2953 g := make([]int64, 2)
2954 f(a).Store(g)
2955 w := want(x)
2956 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2957 })
2958 }
2959
2960
2961
2962
2963 func testUint8x16ConvertToInt64(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Int64x8, want func(x []uint8) []int64) {
2964 n := 16
2965 t.Helper()
2966 forSlice(t, uint8s, n, func(x []uint8) bool {
2967 t.Helper()
2968 a := archsimd.LoadUint8x16(x)
2969 g := make([]int64, 8)
2970 f(a).Store(g)
2971 w := want(x)
2972 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2973 })
2974 }
2975
2976
2977
2978
2979 func testUint16x8ConvertToInt64(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Int64x8, want func(x []uint16) []int64) {
2980 n := 8
2981 t.Helper()
2982 forSlice(t, uint16s, n, func(x []uint16) bool {
2983 t.Helper()
2984 a := archsimd.LoadUint16x8(x)
2985 g := make([]int64, 8)
2986 f(a).Store(g)
2987 w := want(x)
2988 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
2989 })
2990 }
2991
2992
2993
2994
2995 func testUint32x4ConvertToInt64(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Int64x4, want func(x []uint32) []int64) {
2996 n := 4
2997 t.Helper()
2998 forSlice(t, uint32s, n, func(x []uint32) bool {
2999 t.Helper()
3000 a := archsimd.LoadUint32x4(x)
3001 g := make([]int64, 4)
3002 f(a).Store(g)
3003 w := want(x)
3004 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3005 })
3006 }
3007
3008
3009
3010
3011 func testUint64x2ConvertToInt64(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Int64x2, want func(x []uint64) []int64) {
3012 n := 2
3013 t.Helper()
3014 forSlice(t, uint64s, n, func(x []uint64) bool {
3015 t.Helper()
3016 a := archsimd.LoadUint64x2(x)
3017 g := make([]int64, 2)
3018 f(a).Store(g)
3019 w := want(x)
3020 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3021 })
3022 }
3023
3024
3025
3026
3027 func testFloat32x4ConvertToInt64(t *testing.T, f func(x archsimd.Float32x4) archsimd.Int64x4, want func(x []float32) []int64) {
3028 n := 4
3029 t.Helper()
3030 forSlice(t, float32s, n, func(x []float32) bool {
3031 t.Helper()
3032 a := archsimd.LoadFloat32x4(x)
3033 g := make([]int64, 4)
3034 f(a).Store(g)
3035 w := want(x)
3036 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3037 })
3038 }
3039
3040
3041
3042
3043 func testFloat64x2ConvertToInt64(t *testing.T, f func(x archsimd.Float64x2) archsimd.Int64x2, want func(x []float64) []int64) {
3044 n := 2
3045 t.Helper()
3046 forSlice(t, float64s, n, func(x []float64) bool {
3047 t.Helper()
3048 a := archsimd.LoadFloat64x2(x)
3049 g := make([]int64, 2)
3050 f(a).Store(g)
3051 w := want(x)
3052 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3053 })
3054 }
3055
3056
3057
3058
3059 func testInt8x32ConvertToInt64(t *testing.T, f func(x archsimd.Int8x32) archsimd.Int64x8, want func(x []int8) []int64) {
3060 n := 32
3061 t.Helper()
3062 forSlice(t, int8s, n, func(x []int8) bool {
3063 t.Helper()
3064 a := archsimd.LoadInt8x32(x)
3065 g := make([]int64, 8)
3066 f(a).Store(g)
3067 w := want(x)
3068 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3069 })
3070 }
3071
3072
3073
3074
3075 func testInt16x16ConvertToInt64(t *testing.T, f func(x archsimd.Int16x16) archsimd.Int64x8, want func(x []int16) []int64) {
3076 n := 16
3077 t.Helper()
3078 forSlice(t, int16s, n, func(x []int16) bool {
3079 t.Helper()
3080 a := archsimd.LoadInt16x16(x)
3081 g := make([]int64, 8)
3082 f(a).Store(g)
3083 w := want(x)
3084 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3085 })
3086 }
3087
3088
3089
3090
3091 func testInt32x8ConvertToInt64(t *testing.T, f func(x archsimd.Int32x8) archsimd.Int64x8, want func(x []int32) []int64) {
3092 n := 8
3093 t.Helper()
3094 forSlice(t, int32s, n, func(x []int32) bool {
3095 t.Helper()
3096 a := archsimd.LoadInt32x8(x)
3097 g := make([]int64, 8)
3098 f(a).Store(g)
3099 w := want(x)
3100 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3101 })
3102 }
3103
3104
3105
3106
3107 func testInt64x4ConvertToInt64(t *testing.T, f func(x archsimd.Int64x4) archsimd.Int64x4, want func(x []int64) []int64) {
3108 n := 4
3109 t.Helper()
3110 forSlice(t, int64s, n, func(x []int64) bool {
3111 t.Helper()
3112 a := archsimd.LoadInt64x4(x)
3113 g := make([]int64, 4)
3114 f(a).Store(g)
3115 w := want(x)
3116 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3117 })
3118 }
3119
3120
3121
3122
3123 func testUint8x32ConvertToInt64(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Int64x8, want func(x []uint8) []int64) {
3124 n := 32
3125 t.Helper()
3126 forSlice(t, uint8s, n, func(x []uint8) bool {
3127 t.Helper()
3128 a := archsimd.LoadUint8x32(x)
3129 g := make([]int64, 8)
3130 f(a).Store(g)
3131 w := want(x)
3132 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3133 })
3134 }
3135
3136
3137
3138
3139 func testUint16x16ConvertToInt64(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Int64x8, want func(x []uint16) []int64) {
3140 n := 16
3141 t.Helper()
3142 forSlice(t, uint16s, n, func(x []uint16) bool {
3143 t.Helper()
3144 a := archsimd.LoadUint16x16(x)
3145 g := make([]int64, 8)
3146 f(a).Store(g)
3147 w := want(x)
3148 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3149 })
3150 }
3151
3152
3153
3154
3155 func testUint32x8ConvertToInt64(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Int64x8, want func(x []uint32) []int64) {
3156 n := 8
3157 t.Helper()
3158 forSlice(t, uint32s, n, func(x []uint32) bool {
3159 t.Helper()
3160 a := archsimd.LoadUint32x8(x)
3161 g := make([]int64, 8)
3162 f(a).Store(g)
3163 w := want(x)
3164 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3165 })
3166 }
3167
3168
3169
3170
3171 func testUint64x4ConvertToInt64(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Int64x4, want func(x []uint64) []int64) {
3172 n := 4
3173 t.Helper()
3174 forSlice(t, uint64s, n, func(x []uint64) bool {
3175 t.Helper()
3176 a := archsimd.LoadUint64x4(x)
3177 g := make([]int64, 4)
3178 f(a).Store(g)
3179 w := want(x)
3180 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3181 })
3182 }
3183
3184
3185
3186
3187 func testFloat32x8ConvertToInt64(t *testing.T, f func(x archsimd.Float32x8) archsimd.Int64x8, want func(x []float32) []int64) {
3188 n := 8
3189 t.Helper()
3190 forSlice(t, float32s, n, func(x []float32) bool {
3191 t.Helper()
3192 a := archsimd.LoadFloat32x8(x)
3193 g := make([]int64, 8)
3194 f(a).Store(g)
3195 w := want(x)
3196 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3197 })
3198 }
3199
3200
3201
3202
3203 func testFloat64x4ConvertToInt64(t *testing.T, f func(x archsimd.Float64x4) archsimd.Int64x4, want func(x []float64) []int64) {
3204 n := 4
3205 t.Helper()
3206 forSlice(t, float64s, n, func(x []float64) bool {
3207 t.Helper()
3208 a := archsimd.LoadFloat64x4(x)
3209 g := make([]int64, 4)
3210 f(a).Store(g)
3211 w := want(x)
3212 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3213 })
3214 }
3215
3216
3217
3218
3219 func testInt8x64ConvertToInt64(t *testing.T, f func(x archsimd.Int8x64) archsimd.Int64x8, want func(x []int8) []int64) {
3220 n := 64
3221 t.Helper()
3222 forSlice(t, int8s, n, func(x []int8) bool {
3223 t.Helper()
3224 a := archsimd.LoadInt8x64(x)
3225 g := make([]int64, 8)
3226 f(a).Store(g)
3227 w := want(x)
3228 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3229 })
3230 }
3231
3232
3233
3234
3235 func testInt16x32ConvertToInt64(t *testing.T, f func(x archsimd.Int16x32) archsimd.Int64x8, want func(x []int16) []int64) {
3236 n := 32
3237 t.Helper()
3238 forSlice(t, int16s, n, func(x []int16) bool {
3239 t.Helper()
3240 a := archsimd.LoadInt16x32(x)
3241 g := make([]int64, 8)
3242 f(a).Store(g)
3243 w := want(x)
3244 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3245 })
3246 }
3247
3248
3249
3250
3251 func testInt32x16ConvertToInt64(t *testing.T, f func(x archsimd.Int32x16) archsimd.Int64x8, want func(x []int32) []int64) {
3252 n := 16
3253 t.Helper()
3254 forSlice(t, int32s, n, func(x []int32) bool {
3255 t.Helper()
3256 a := archsimd.LoadInt32x16(x)
3257 g := make([]int64, 8)
3258 f(a).Store(g)
3259 w := want(x)
3260 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3261 })
3262 }
3263
3264
3265
3266
3267 func testInt64x8ConvertToInt64(t *testing.T, f func(x archsimd.Int64x8) archsimd.Int64x8, want func(x []int64) []int64) {
3268 n := 8
3269 t.Helper()
3270 forSlice(t, int64s, n, func(x []int64) bool {
3271 t.Helper()
3272 a := archsimd.LoadInt64x8(x)
3273 g := make([]int64, 8)
3274 f(a).Store(g)
3275 w := want(x)
3276 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3277 })
3278 }
3279
3280
3281
3282
3283 func testUint8x64ConvertToInt64(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Int64x8, want func(x []uint8) []int64) {
3284 n := 64
3285 t.Helper()
3286 forSlice(t, uint8s, n, func(x []uint8) bool {
3287 t.Helper()
3288 a := archsimd.LoadUint8x64(x)
3289 g := make([]int64, 8)
3290 f(a).Store(g)
3291 w := want(x)
3292 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3293 })
3294 }
3295
3296
3297
3298
3299 func testUint16x32ConvertToInt64(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Int64x8, want func(x []uint16) []int64) {
3300 n := 32
3301 t.Helper()
3302 forSlice(t, uint16s, n, func(x []uint16) bool {
3303 t.Helper()
3304 a := archsimd.LoadUint16x32(x)
3305 g := make([]int64, 8)
3306 f(a).Store(g)
3307 w := want(x)
3308 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3309 })
3310 }
3311
3312
3313
3314
3315 func testUint32x16ConvertToInt64(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Int64x8, want func(x []uint32) []int64) {
3316 n := 16
3317 t.Helper()
3318 forSlice(t, uint32s, n, func(x []uint32) bool {
3319 t.Helper()
3320 a := archsimd.LoadUint32x16(x)
3321 g := make([]int64, 8)
3322 f(a).Store(g)
3323 w := want(x)
3324 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3325 })
3326 }
3327
3328
3329
3330
3331 func testUint64x8ConvertToInt64(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Int64x8, want func(x []uint64) []int64) {
3332 n := 8
3333 t.Helper()
3334 forSlice(t, uint64s, n, func(x []uint64) bool {
3335 t.Helper()
3336 a := archsimd.LoadUint64x8(x)
3337 g := make([]int64, 8)
3338 f(a).Store(g)
3339 w := want(x)
3340 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3341 })
3342 }
3343
3344
3345
3346
3347 func testFloat32x16ConvertToInt64(t *testing.T, f func(x archsimd.Float32x16) archsimd.Int64x8, want func(x []float32) []int64) {
3348 n := 16
3349 t.Helper()
3350 forSlice(t, float32s, n, func(x []float32) bool {
3351 t.Helper()
3352 a := archsimd.LoadFloat32x16(x)
3353 g := make([]int64, 8)
3354 f(a).Store(g)
3355 w := want(x)
3356 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3357 })
3358 }
3359
3360
3361
3362
3363 func testFloat64x8ConvertToInt64(t *testing.T, f func(x archsimd.Float64x8) archsimd.Int64x8, want func(x []float64) []int64) {
3364 n := 8
3365 t.Helper()
3366 forSlice(t, float64s, n, func(x []float64) bool {
3367 t.Helper()
3368 a := archsimd.LoadFloat64x8(x)
3369 g := make([]int64, 8)
3370 f(a).Store(g)
3371 w := want(x)
3372 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3373 })
3374 }
3375
3376
3377
3378
3379 func testInt8x16ConvertToUint64(t *testing.T, f func(x archsimd.Int8x16) archsimd.Uint64x8, want func(x []int8) []uint64) {
3380 n := 16
3381 t.Helper()
3382 forSlice(t, int8s, n, func(x []int8) bool {
3383 t.Helper()
3384 a := archsimd.LoadInt8x16(x)
3385 g := make([]uint64, 8)
3386 f(a).Store(g)
3387 w := want(x)
3388 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3389 })
3390 }
3391
3392
3393
3394
3395 func testInt16x8ConvertToUint64(t *testing.T, f func(x archsimd.Int16x8) archsimd.Uint64x8, want func(x []int16) []uint64) {
3396 n := 8
3397 t.Helper()
3398 forSlice(t, int16s, n, func(x []int16) bool {
3399 t.Helper()
3400 a := archsimd.LoadInt16x8(x)
3401 g := make([]uint64, 8)
3402 f(a).Store(g)
3403 w := want(x)
3404 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3405 })
3406 }
3407
3408
3409
3410
3411 func testInt32x4ConvertToUint64(t *testing.T, f func(x archsimd.Int32x4) archsimd.Uint64x4, want func(x []int32) []uint64) {
3412 n := 4
3413 t.Helper()
3414 forSlice(t, int32s, n, func(x []int32) bool {
3415 t.Helper()
3416 a := archsimd.LoadInt32x4(x)
3417 g := make([]uint64, 4)
3418 f(a).Store(g)
3419 w := want(x)
3420 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3421 })
3422 }
3423
3424
3425
3426
3427 func testInt64x2ConvertToUint64(t *testing.T, f func(x archsimd.Int64x2) archsimd.Uint64x2, want func(x []int64) []uint64) {
3428 n := 2
3429 t.Helper()
3430 forSlice(t, int64s, n, func(x []int64) bool {
3431 t.Helper()
3432 a := archsimd.LoadInt64x2(x)
3433 g := make([]uint64, 2)
3434 f(a).Store(g)
3435 w := want(x)
3436 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3437 })
3438 }
3439
3440
3441
3442
3443 func testUint8x16ConvertToUint64(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Uint64x8, want func(x []uint8) []uint64) {
3444 n := 16
3445 t.Helper()
3446 forSlice(t, uint8s, n, func(x []uint8) bool {
3447 t.Helper()
3448 a := archsimd.LoadUint8x16(x)
3449 g := make([]uint64, 8)
3450 f(a).Store(g)
3451 w := want(x)
3452 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3453 })
3454 }
3455
3456
3457
3458
3459 func testUint16x8ConvertToUint64(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Uint64x8, want func(x []uint16) []uint64) {
3460 n := 8
3461 t.Helper()
3462 forSlice(t, uint16s, n, func(x []uint16) bool {
3463 t.Helper()
3464 a := archsimd.LoadUint16x8(x)
3465 g := make([]uint64, 8)
3466 f(a).Store(g)
3467 w := want(x)
3468 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3469 })
3470 }
3471
3472
3473
3474
3475 func testUint32x4ConvertToUint64(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Uint64x4, want func(x []uint32) []uint64) {
3476 n := 4
3477 t.Helper()
3478 forSlice(t, uint32s, n, func(x []uint32) bool {
3479 t.Helper()
3480 a := archsimd.LoadUint32x4(x)
3481 g := make([]uint64, 4)
3482 f(a).Store(g)
3483 w := want(x)
3484 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3485 })
3486 }
3487
3488
3489
3490
3491 func testUint64x2ConvertToUint64(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Uint64x2, want func(x []uint64) []uint64) {
3492 n := 2
3493 t.Helper()
3494 forSlice(t, uint64s, n, func(x []uint64) bool {
3495 t.Helper()
3496 a := archsimd.LoadUint64x2(x)
3497 g := make([]uint64, 2)
3498 f(a).Store(g)
3499 w := want(x)
3500 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3501 })
3502 }
3503
3504
3505
3506
3507 func testFloat32x4ConvertToUint64(t *testing.T, f func(x archsimd.Float32x4) archsimd.Uint64x4, want func(x []float32) []uint64) {
3508 n := 4
3509 t.Helper()
3510 forSlice(t, float32s, n, func(x []float32) bool {
3511 t.Helper()
3512 a := archsimd.LoadFloat32x4(x)
3513 g := make([]uint64, 4)
3514 f(a).Store(g)
3515 w := want(x)
3516 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3517 })
3518 }
3519
3520
3521
3522
3523 func testFloat64x2ConvertToUint64(t *testing.T, f func(x archsimd.Float64x2) archsimd.Uint64x2, want func(x []float64) []uint64) {
3524 n := 2
3525 t.Helper()
3526 forSlice(t, float64s, n, func(x []float64) bool {
3527 t.Helper()
3528 a := archsimd.LoadFloat64x2(x)
3529 g := make([]uint64, 2)
3530 f(a).Store(g)
3531 w := want(x)
3532 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3533 })
3534 }
3535
3536
3537
3538
3539 func testInt8x32ConvertToUint64(t *testing.T, f func(x archsimd.Int8x32) archsimd.Uint64x8, want func(x []int8) []uint64) {
3540 n := 32
3541 t.Helper()
3542 forSlice(t, int8s, n, func(x []int8) bool {
3543 t.Helper()
3544 a := archsimd.LoadInt8x32(x)
3545 g := make([]uint64, 8)
3546 f(a).Store(g)
3547 w := want(x)
3548 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3549 })
3550 }
3551
3552
3553
3554
3555 func testInt16x16ConvertToUint64(t *testing.T, f func(x archsimd.Int16x16) archsimd.Uint64x8, want func(x []int16) []uint64) {
3556 n := 16
3557 t.Helper()
3558 forSlice(t, int16s, n, func(x []int16) bool {
3559 t.Helper()
3560 a := archsimd.LoadInt16x16(x)
3561 g := make([]uint64, 8)
3562 f(a).Store(g)
3563 w := want(x)
3564 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3565 })
3566 }
3567
3568
3569
3570
3571 func testInt32x8ConvertToUint64(t *testing.T, f func(x archsimd.Int32x8) archsimd.Uint64x8, want func(x []int32) []uint64) {
3572 n := 8
3573 t.Helper()
3574 forSlice(t, int32s, n, func(x []int32) bool {
3575 t.Helper()
3576 a := archsimd.LoadInt32x8(x)
3577 g := make([]uint64, 8)
3578 f(a).Store(g)
3579 w := want(x)
3580 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3581 })
3582 }
3583
3584
3585
3586
3587 func testInt64x4ConvertToUint64(t *testing.T, f func(x archsimd.Int64x4) archsimd.Uint64x4, want func(x []int64) []uint64) {
3588 n := 4
3589 t.Helper()
3590 forSlice(t, int64s, n, func(x []int64) bool {
3591 t.Helper()
3592 a := archsimd.LoadInt64x4(x)
3593 g := make([]uint64, 4)
3594 f(a).Store(g)
3595 w := want(x)
3596 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3597 })
3598 }
3599
3600
3601
3602
3603 func testUint8x32ConvertToUint64(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Uint64x8, want func(x []uint8) []uint64) {
3604 n := 32
3605 t.Helper()
3606 forSlice(t, uint8s, n, func(x []uint8) bool {
3607 t.Helper()
3608 a := archsimd.LoadUint8x32(x)
3609 g := make([]uint64, 8)
3610 f(a).Store(g)
3611 w := want(x)
3612 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3613 })
3614 }
3615
3616
3617
3618
3619 func testUint16x16ConvertToUint64(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Uint64x8, want func(x []uint16) []uint64) {
3620 n := 16
3621 t.Helper()
3622 forSlice(t, uint16s, n, func(x []uint16) bool {
3623 t.Helper()
3624 a := archsimd.LoadUint16x16(x)
3625 g := make([]uint64, 8)
3626 f(a).Store(g)
3627 w := want(x)
3628 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3629 })
3630 }
3631
3632
3633
3634
3635 func testUint32x8ConvertToUint64(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Uint64x8, want func(x []uint32) []uint64) {
3636 n := 8
3637 t.Helper()
3638 forSlice(t, uint32s, n, func(x []uint32) bool {
3639 t.Helper()
3640 a := archsimd.LoadUint32x8(x)
3641 g := make([]uint64, 8)
3642 f(a).Store(g)
3643 w := want(x)
3644 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3645 })
3646 }
3647
3648
3649
3650
3651 func testUint64x4ConvertToUint64(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Uint64x4, want func(x []uint64) []uint64) {
3652 n := 4
3653 t.Helper()
3654 forSlice(t, uint64s, n, func(x []uint64) bool {
3655 t.Helper()
3656 a := archsimd.LoadUint64x4(x)
3657 g := make([]uint64, 4)
3658 f(a).Store(g)
3659 w := want(x)
3660 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3661 })
3662 }
3663
3664
3665
3666
3667 func testFloat32x8ConvertToUint64(t *testing.T, f func(x archsimd.Float32x8) archsimd.Uint64x8, want func(x []float32) []uint64) {
3668 n := 8
3669 t.Helper()
3670 forSlice(t, float32s, n, func(x []float32) bool {
3671 t.Helper()
3672 a := archsimd.LoadFloat32x8(x)
3673 g := make([]uint64, 8)
3674 f(a).Store(g)
3675 w := want(x)
3676 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3677 })
3678 }
3679
3680
3681
3682
3683 func testFloat64x4ConvertToUint64(t *testing.T, f func(x archsimd.Float64x4) archsimd.Uint64x4, want func(x []float64) []uint64) {
3684 n := 4
3685 t.Helper()
3686 forSlice(t, float64s, n, func(x []float64) bool {
3687 t.Helper()
3688 a := archsimd.LoadFloat64x4(x)
3689 g := make([]uint64, 4)
3690 f(a).Store(g)
3691 w := want(x)
3692 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3693 })
3694 }
3695
3696
3697
3698
3699 func testInt8x64ConvertToUint64(t *testing.T, f func(x archsimd.Int8x64) archsimd.Uint64x8, want func(x []int8) []uint64) {
3700 n := 64
3701 t.Helper()
3702 forSlice(t, int8s, n, func(x []int8) bool {
3703 t.Helper()
3704 a := archsimd.LoadInt8x64(x)
3705 g := make([]uint64, 8)
3706 f(a).Store(g)
3707 w := want(x)
3708 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3709 })
3710 }
3711
3712
3713
3714
3715 func testInt16x32ConvertToUint64(t *testing.T, f func(x archsimd.Int16x32) archsimd.Uint64x8, want func(x []int16) []uint64) {
3716 n := 32
3717 t.Helper()
3718 forSlice(t, int16s, n, func(x []int16) bool {
3719 t.Helper()
3720 a := archsimd.LoadInt16x32(x)
3721 g := make([]uint64, 8)
3722 f(a).Store(g)
3723 w := want(x)
3724 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3725 })
3726 }
3727
3728
3729
3730
3731 func testInt32x16ConvertToUint64(t *testing.T, f func(x archsimd.Int32x16) archsimd.Uint64x8, want func(x []int32) []uint64) {
3732 n := 16
3733 t.Helper()
3734 forSlice(t, int32s, n, func(x []int32) bool {
3735 t.Helper()
3736 a := archsimd.LoadInt32x16(x)
3737 g := make([]uint64, 8)
3738 f(a).Store(g)
3739 w := want(x)
3740 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3741 })
3742 }
3743
3744
3745
3746
3747 func testInt64x8ConvertToUint64(t *testing.T, f func(x archsimd.Int64x8) archsimd.Uint64x8, want func(x []int64) []uint64) {
3748 n := 8
3749 t.Helper()
3750 forSlice(t, int64s, n, func(x []int64) bool {
3751 t.Helper()
3752 a := archsimd.LoadInt64x8(x)
3753 g := make([]uint64, 8)
3754 f(a).Store(g)
3755 w := want(x)
3756 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3757 })
3758 }
3759
3760
3761
3762
3763 func testUint8x64ConvertToUint64(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Uint64x8, want func(x []uint8) []uint64) {
3764 n := 64
3765 t.Helper()
3766 forSlice(t, uint8s, n, func(x []uint8) bool {
3767 t.Helper()
3768 a := archsimd.LoadUint8x64(x)
3769 g := make([]uint64, 8)
3770 f(a).Store(g)
3771 w := want(x)
3772 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3773 })
3774 }
3775
3776
3777
3778
3779 func testUint16x32ConvertToUint64(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Uint64x8, want func(x []uint16) []uint64) {
3780 n := 32
3781 t.Helper()
3782 forSlice(t, uint16s, n, func(x []uint16) bool {
3783 t.Helper()
3784 a := archsimd.LoadUint16x32(x)
3785 g := make([]uint64, 8)
3786 f(a).Store(g)
3787 w := want(x)
3788 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3789 })
3790 }
3791
3792
3793
3794
3795 func testUint32x16ConvertToUint64(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Uint64x8, want func(x []uint32) []uint64) {
3796 n := 16
3797 t.Helper()
3798 forSlice(t, uint32s, n, func(x []uint32) bool {
3799 t.Helper()
3800 a := archsimd.LoadUint32x16(x)
3801 g := make([]uint64, 8)
3802 f(a).Store(g)
3803 w := want(x)
3804 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3805 })
3806 }
3807
3808
3809
3810
3811 func testUint64x8ConvertToUint64(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Uint64x8, want func(x []uint64) []uint64) {
3812 n := 8
3813 t.Helper()
3814 forSlice(t, uint64s, n, func(x []uint64) bool {
3815 t.Helper()
3816 a := archsimd.LoadUint64x8(x)
3817 g := make([]uint64, 8)
3818 f(a).Store(g)
3819 w := want(x)
3820 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3821 })
3822 }
3823
3824
3825
3826
3827 func testFloat32x16ConvertToUint64(t *testing.T, f func(x archsimd.Float32x16) archsimd.Uint64x8, want func(x []float32) []uint64) {
3828 n := 16
3829 t.Helper()
3830 forSlice(t, float32s, n, func(x []float32) bool {
3831 t.Helper()
3832 a := archsimd.LoadFloat32x16(x)
3833 g := make([]uint64, 8)
3834 f(a).Store(g)
3835 w := want(x)
3836 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3837 })
3838 }
3839
3840
3841
3842
3843 func testFloat64x8ConvertToUint64(t *testing.T, f func(x archsimd.Float64x8) archsimd.Uint64x8, want func(x []float64) []uint64) {
3844 n := 8
3845 t.Helper()
3846 forSlice(t, float64s, n, func(x []float64) bool {
3847 t.Helper()
3848 a := archsimd.LoadFloat64x8(x)
3849 g := make([]uint64, 8)
3850 f(a).Store(g)
3851 w := want(x)
3852 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3853 })
3854 }
3855
3856
3857
3858
3859 func testInt8x16ConvertToFloat32(t *testing.T, f func(x archsimd.Int8x16) archsimd.Float32x16, want func(x []int8) []float32) {
3860 n := 16
3861 t.Helper()
3862 forSlice(t, int8s, n, func(x []int8) bool {
3863 t.Helper()
3864 a := archsimd.LoadInt8x16(x)
3865 g := make([]float32, 16)
3866 f(a).Store(g)
3867 w := want(x)
3868 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3869 })
3870 }
3871
3872
3873
3874
3875 func testInt16x8ConvertToFloat32(t *testing.T, f func(x archsimd.Int16x8) archsimd.Float32x8, want func(x []int16) []float32) {
3876 n := 8
3877 t.Helper()
3878 forSlice(t, int16s, n, func(x []int16) bool {
3879 t.Helper()
3880 a := archsimd.LoadInt16x8(x)
3881 g := make([]float32, 8)
3882 f(a).Store(g)
3883 w := want(x)
3884 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3885 })
3886 }
3887
3888
3889
3890
3891 func testInt32x4ConvertToFloat32(t *testing.T, f func(x archsimd.Int32x4) archsimd.Float32x4, want func(x []int32) []float32) {
3892 n := 4
3893 t.Helper()
3894 forSlice(t, int32s, n, func(x []int32) bool {
3895 t.Helper()
3896 a := archsimd.LoadInt32x4(x)
3897 g := make([]float32, 4)
3898 f(a).Store(g)
3899 w := want(x)
3900 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3901 })
3902 }
3903
3904
3905
3906
3907 func testInt64x2ConvertToFloat32(t *testing.T, f func(x archsimd.Int64x2) archsimd.Float32x4, want func(x []int64) []float32) {
3908 n := 2
3909 t.Helper()
3910 forSlice(t, int64s, n, func(x []int64) bool {
3911 t.Helper()
3912 a := archsimd.LoadInt64x2(x)
3913 g := make([]float32, 4)
3914 f(a).Store(g)
3915 w := want(x)
3916 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3917 })
3918 }
3919
3920
3921
3922
3923 func testUint8x16ConvertToFloat32(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Float32x16, want func(x []uint8) []float32) {
3924 n := 16
3925 t.Helper()
3926 forSlice(t, uint8s, n, func(x []uint8) bool {
3927 t.Helper()
3928 a := archsimd.LoadUint8x16(x)
3929 g := make([]float32, 16)
3930 f(a).Store(g)
3931 w := want(x)
3932 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3933 })
3934 }
3935
3936
3937
3938
3939 func testUint16x8ConvertToFloat32(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Float32x8, want func(x []uint16) []float32) {
3940 n := 8
3941 t.Helper()
3942 forSlice(t, uint16s, n, func(x []uint16) bool {
3943 t.Helper()
3944 a := archsimd.LoadUint16x8(x)
3945 g := make([]float32, 8)
3946 f(a).Store(g)
3947 w := want(x)
3948 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3949 })
3950 }
3951
3952
3953
3954
3955 func testUint32x4ConvertToFloat32(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Float32x4, want func(x []uint32) []float32) {
3956 n := 4
3957 t.Helper()
3958 forSlice(t, uint32s, n, func(x []uint32) bool {
3959 t.Helper()
3960 a := archsimd.LoadUint32x4(x)
3961 g := make([]float32, 4)
3962 f(a).Store(g)
3963 w := want(x)
3964 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3965 })
3966 }
3967
3968
3969
3970
3971 func testUint64x2ConvertToFloat32(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Float32x4, want func(x []uint64) []float32) {
3972 n := 2
3973 t.Helper()
3974 forSlice(t, uint64s, n, func(x []uint64) bool {
3975 t.Helper()
3976 a := archsimd.LoadUint64x2(x)
3977 g := make([]float32, 4)
3978 f(a).Store(g)
3979 w := want(x)
3980 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3981 })
3982 }
3983
3984
3985
3986
3987 func testFloat32x4ConvertToFloat32(t *testing.T, f func(x archsimd.Float32x4) archsimd.Float32x4, want func(x []float32) []float32) {
3988 n := 4
3989 t.Helper()
3990 forSlice(t, float32s, n, func(x []float32) bool {
3991 t.Helper()
3992 a := archsimd.LoadFloat32x4(x)
3993 g := make([]float32, 4)
3994 f(a).Store(g)
3995 w := want(x)
3996 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
3997 })
3998 }
3999
4000
4001
4002
4003 func testFloat64x2ConvertToFloat32(t *testing.T, f func(x archsimd.Float64x2) archsimd.Float32x4, want func(x []float64) []float32) {
4004 n := 2
4005 t.Helper()
4006 forSlice(t, float64s, n, func(x []float64) bool {
4007 t.Helper()
4008 a := archsimd.LoadFloat64x2(x)
4009 g := make([]float32, 4)
4010 f(a).Store(g)
4011 w := want(x)
4012 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4013 })
4014 }
4015
4016
4017
4018
4019 func testInt8x32ConvertToFloat32(t *testing.T, f func(x archsimd.Int8x32) archsimd.Float32x16, want func(x []int8) []float32) {
4020 n := 32
4021 t.Helper()
4022 forSlice(t, int8s, n, func(x []int8) bool {
4023 t.Helper()
4024 a := archsimd.LoadInt8x32(x)
4025 g := make([]float32, 16)
4026 f(a).Store(g)
4027 w := want(x)
4028 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4029 })
4030 }
4031
4032
4033
4034
4035 func testInt16x16ConvertToFloat32(t *testing.T, f func(x archsimd.Int16x16) archsimd.Float32x16, want func(x []int16) []float32) {
4036 n := 16
4037 t.Helper()
4038 forSlice(t, int16s, n, func(x []int16) bool {
4039 t.Helper()
4040 a := archsimd.LoadInt16x16(x)
4041 g := make([]float32, 16)
4042 f(a).Store(g)
4043 w := want(x)
4044 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4045 })
4046 }
4047
4048
4049
4050
4051 func testInt32x8ConvertToFloat32(t *testing.T, f func(x archsimd.Int32x8) archsimd.Float32x8, want func(x []int32) []float32) {
4052 n := 8
4053 t.Helper()
4054 forSlice(t, int32s, n, func(x []int32) bool {
4055 t.Helper()
4056 a := archsimd.LoadInt32x8(x)
4057 g := make([]float32, 8)
4058 f(a).Store(g)
4059 w := want(x)
4060 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4061 })
4062 }
4063
4064
4065
4066
4067 func testInt64x4ConvertToFloat32(t *testing.T, f func(x archsimd.Int64x4) archsimd.Float32x4, want func(x []int64) []float32) {
4068 n := 4
4069 t.Helper()
4070 forSlice(t, int64s, n, func(x []int64) bool {
4071 t.Helper()
4072 a := archsimd.LoadInt64x4(x)
4073 g := make([]float32, 4)
4074 f(a).Store(g)
4075 w := want(x)
4076 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4077 })
4078 }
4079
4080
4081
4082
4083 func testUint8x32ConvertToFloat32(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Float32x16, want func(x []uint8) []float32) {
4084 n := 32
4085 t.Helper()
4086 forSlice(t, uint8s, n, func(x []uint8) bool {
4087 t.Helper()
4088 a := archsimd.LoadUint8x32(x)
4089 g := make([]float32, 16)
4090 f(a).Store(g)
4091 w := want(x)
4092 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4093 })
4094 }
4095
4096
4097
4098
4099 func testUint16x16ConvertToFloat32(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Float32x16, want func(x []uint16) []float32) {
4100 n := 16
4101 t.Helper()
4102 forSlice(t, uint16s, n, func(x []uint16) bool {
4103 t.Helper()
4104 a := archsimd.LoadUint16x16(x)
4105 g := make([]float32, 16)
4106 f(a).Store(g)
4107 w := want(x)
4108 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4109 })
4110 }
4111
4112
4113
4114
4115 func testUint32x8ConvertToFloat32(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Float32x8, want func(x []uint32) []float32) {
4116 n := 8
4117 t.Helper()
4118 forSlice(t, uint32s, n, func(x []uint32) bool {
4119 t.Helper()
4120 a := archsimd.LoadUint32x8(x)
4121 g := make([]float32, 8)
4122 f(a).Store(g)
4123 w := want(x)
4124 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4125 })
4126 }
4127
4128
4129
4130
4131 func testUint64x4ConvertToFloat32(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Float32x4, want func(x []uint64) []float32) {
4132 n := 4
4133 t.Helper()
4134 forSlice(t, uint64s, n, func(x []uint64) bool {
4135 t.Helper()
4136 a := archsimd.LoadUint64x4(x)
4137 g := make([]float32, 4)
4138 f(a).Store(g)
4139 w := want(x)
4140 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4141 })
4142 }
4143
4144
4145
4146
4147 func testFloat32x8ConvertToFloat32(t *testing.T, f func(x archsimd.Float32x8) archsimd.Float32x8, want func(x []float32) []float32) {
4148 n := 8
4149 t.Helper()
4150 forSlice(t, float32s, n, func(x []float32) bool {
4151 t.Helper()
4152 a := archsimd.LoadFloat32x8(x)
4153 g := make([]float32, 8)
4154 f(a).Store(g)
4155 w := want(x)
4156 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4157 })
4158 }
4159
4160
4161
4162
4163 func testFloat64x4ConvertToFloat32(t *testing.T, f func(x archsimd.Float64x4) archsimd.Float32x4, want func(x []float64) []float32) {
4164 n := 4
4165 t.Helper()
4166 forSlice(t, float64s, n, func(x []float64) bool {
4167 t.Helper()
4168 a := archsimd.LoadFloat64x4(x)
4169 g := make([]float32, 4)
4170 f(a).Store(g)
4171 w := want(x)
4172 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4173 })
4174 }
4175
4176
4177
4178
4179 func testInt8x64ConvertToFloat32(t *testing.T, f func(x archsimd.Int8x64) archsimd.Float32x16, want func(x []int8) []float32) {
4180 n := 64
4181 t.Helper()
4182 forSlice(t, int8s, n, func(x []int8) bool {
4183 t.Helper()
4184 a := archsimd.LoadInt8x64(x)
4185 g := make([]float32, 16)
4186 f(a).Store(g)
4187 w := want(x)
4188 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4189 })
4190 }
4191
4192
4193
4194
4195 func testInt16x32ConvertToFloat32(t *testing.T, f func(x archsimd.Int16x32) archsimd.Float32x16, want func(x []int16) []float32) {
4196 n := 32
4197 t.Helper()
4198 forSlice(t, int16s, n, func(x []int16) bool {
4199 t.Helper()
4200 a := archsimd.LoadInt16x32(x)
4201 g := make([]float32, 16)
4202 f(a).Store(g)
4203 w := want(x)
4204 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4205 })
4206 }
4207
4208
4209
4210
4211 func testInt32x16ConvertToFloat32(t *testing.T, f func(x archsimd.Int32x16) archsimd.Float32x16, want func(x []int32) []float32) {
4212 n := 16
4213 t.Helper()
4214 forSlice(t, int32s, n, func(x []int32) bool {
4215 t.Helper()
4216 a := archsimd.LoadInt32x16(x)
4217 g := make([]float32, 16)
4218 f(a).Store(g)
4219 w := want(x)
4220 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4221 })
4222 }
4223
4224
4225
4226
4227 func testInt64x8ConvertToFloat32(t *testing.T, f func(x archsimd.Int64x8) archsimd.Float32x8, want func(x []int64) []float32) {
4228 n := 8
4229 t.Helper()
4230 forSlice(t, int64s, n, func(x []int64) bool {
4231 t.Helper()
4232 a := archsimd.LoadInt64x8(x)
4233 g := make([]float32, 8)
4234 f(a).Store(g)
4235 w := want(x)
4236 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4237 })
4238 }
4239
4240
4241
4242
4243 func testUint8x64ConvertToFloat32(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Float32x16, want func(x []uint8) []float32) {
4244 n := 64
4245 t.Helper()
4246 forSlice(t, uint8s, n, func(x []uint8) bool {
4247 t.Helper()
4248 a := archsimd.LoadUint8x64(x)
4249 g := make([]float32, 16)
4250 f(a).Store(g)
4251 w := want(x)
4252 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4253 })
4254 }
4255
4256
4257
4258
4259 func testUint16x32ConvertToFloat32(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Float32x16, want func(x []uint16) []float32) {
4260 n := 32
4261 t.Helper()
4262 forSlice(t, uint16s, n, func(x []uint16) bool {
4263 t.Helper()
4264 a := archsimd.LoadUint16x32(x)
4265 g := make([]float32, 16)
4266 f(a).Store(g)
4267 w := want(x)
4268 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4269 })
4270 }
4271
4272
4273
4274
4275 func testUint32x16ConvertToFloat32(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Float32x16, want func(x []uint32) []float32) {
4276 n := 16
4277 t.Helper()
4278 forSlice(t, uint32s, n, func(x []uint32) bool {
4279 t.Helper()
4280 a := archsimd.LoadUint32x16(x)
4281 g := make([]float32, 16)
4282 f(a).Store(g)
4283 w := want(x)
4284 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4285 })
4286 }
4287
4288
4289
4290
4291 func testUint64x8ConvertToFloat32(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Float32x8, want func(x []uint64) []float32) {
4292 n := 8
4293 t.Helper()
4294 forSlice(t, uint64s, n, func(x []uint64) bool {
4295 t.Helper()
4296 a := archsimd.LoadUint64x8(x)
4297 g := make([]float32, 8)
4298 f(a).Store(g)
4299 w := want(x)
4300 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4301 })
4302 }
4303
4304
4305
4306
4307 func testFloat32x16ConvertToFloat32(t *testing.T, f func(x archsimd.Float32x16) archsimd.Float32x16, want func(x []float32) []float32) {
4308 n := 16
4309 t.Helper()
4310 forSlice(t, float32s, n, func(x []float32) bool {
4311 t.Helper()
4312 a := archsimd.LoadFloat32x16(x)
4313 g := make([]float32, 16)
4314 f(a).Store(g)
4315 w := want(x)
4316 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4317 })
4318 }
4319
4320
4321
4322
4323 func testFloat64x8ConvertToFloat32(t *testing.T, f func(x archsimd.Float64x8) archsimd.Float32x8, want func(x []float64) []float32) {
4324 n := 8
4325 t.Helper()
4326 forSlice(t, float64s, n, func(x []float64) bool {
4327 t.Helper()
4328 a := archsimd.LoadFloat64x8(x)
4329 g := make([]float32, 8)
4330 f(a).Store(g)
4331 w := want(x)
4332 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4333 })
4334 }
4335
4336
4337
4338
4339 func testInt8x16ConvertToFloat64(t *testing.T, f func(x archsimd.Int8x16) archsimd.Float64x8, want func(x []int8) []float64) {
4340 n := 16
4341 t.Helper()
4342 forSlice(t, int8s, n, func(x []int8) bool {
4343 t.Helper()
4344 a := archsimd.LoadInt8x16(x)
4345 g := make([]float64, 8)
4346 f(a).Store(g)
4347 w := want(x)
4348 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4349 })
4350 }
4351
4352
4353
4354
4355 func testInt16x8ConvertToFloat64(t *testing.T, f func(x archsimd.Int16x8) archsimd.Float64x8, want func(x []int16) []float64) {
4356 n := 8
4357 t.Helper()
4358 forSlice(t, int16s, n, func(x []int16) bool {
4359 t.Helper()
4360 a := archsimd.LoadInt16x8(x)
4361 g := make([]float64, 8)
4362 f(a).Store(g)
4363 w := want(x)
4364 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4365 })
4366 }
4367
4368
4369
4370
4371 func testInt32x4ConvertToFloat64(t *testing.T, f func(x archsimd.Int32x4) archsimd.Float64x4, want func(x []int32) []float64) {
4372 n := 4
4373 t.Helper()
4374 forSlice(t, int32s, n, func(x []int32) bool {
4375 t.Helper()
4376 a := archsimd.LoadInt32x4(x)
4377 g := make([]float64, 4)
4378 f(a).Store(g)
4379 w := want(x)
4380 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4381 })
4382 }
4383
4384
4385
4386
4387 func testInt64x2ConvertToFloat64(t *testing.T, f func(x archsimd.Int64x2) archsimd.Float64x2, want func(x []int64) []float64) {
4388 n := 2
4389 t.Helper()
4390 forSlice(t, int64s, n, func(x []int64) bool {
4391 t.Helper()
4392 a := archsimd.LoadInt64x2(x)
4393 g := make([]float64, 2)
4394 f(a).Store(g)
4395 w := want(x)
4396 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4397 })
4398 }
4399
4400
4401
4402
4403 func testUint8x16ConvertToFloat64(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Float64x8, want func(x []uint8) []float64) {
4404 n := 16
4405 t.Helper()
4406 forSlice(t, uint8s, n, func(x []uint8) bool {
4407 t.Helper()
4408 a := archsimd.LoadUint8x16(x)
4409 g := make([]float64, 8)
4410 f(a).Store(g)
4411 w := want(x)
4412 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4413 })
4414 }
4415
4416
4417
4418
4419 func testUint16x8ConvertToFloat64(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Float64x8, want func(x []uint16) []float64) {
4420 n := 8
4421 t.Helper()
4422 forSlice(t, uint16s, n, func(x []uint16) bool {
4423 t.Helper()
4424 a := archsimd.LoadUint16x8(x)
4425 g := make([]float64, 8)
4426 f(a).Store(g)
4427 w := want(x)
4428 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4429 })
4430 }
4431
4432
4433
4434
4435 func testUint32x4ConvertToFloat64(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Float64x4, want func(x []uint32) []float64) {
4436 n := 4
4437 t.Helper()
4438 forSlice(t, uint32s, n, func(x []uint32) bool {
4439 t.Helper()
4440 a := archsimd.LoadUint32x4(x)
4441 g := make([]float64, 4)
4442 f(a).Store(g)
4443 w := want(x)
4444 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4445 })
4446 }
4447
4448
4449
4450
4451 func testUint64x2ConvertToFloat64(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Float64x2, want func(x []uint64) []float64) {
4452 n := 2
4453 t.Helper()
4454 forSlice(t, uint64s, n, func(x []uint64) bool {
4455 t.Helper()
4456 a := archsimd.LoadUint64x2(x)
4457 g := make([]float64, 2)
4458 f(a).Store(g)
4459 w := want(x)
4460 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4461 })
4462 }
4463
4464
4465
4466
4467 func testFloat32x4ConvertToFloat64(t *testing.T, f func(x archsimd.Float32x4) archsimd.Float64x4, want func(x []float32) []float64) {
4468 n := 4
4469 t.Helper()
4470 forSlice(t, float32s, n, func(x []float32) bool {
4471 t.Helper()
4472 a := archsimd.LoadFloat32x4(x)
4473 g := make([]float64, 4)
4474 f(a).Store(g)
4475 w := want(x)
4476 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4477 })
4478 }
4479
4480
4481
4482
4483 func testFloat64x2ConvertToFloat64(t *testing.T, f func(x archsimd.Float64x2) archsimd.Float64x2, want func(x []float64) []float64) {
4484 n := 2
4485 t.Helper()
4486 forSlice(t, float64s, n, func(x []float64) bool {
4487 t.Helper()
4488 a := archsimd.LoadFloat64x2(x)
4489 g := make([]float64, 2)
4490 f(a).Store(g)
4491 w := want(x)
4492 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4493 })
4494 }
4495
4496
4497
4498
4499 func testInt8x32ConvertToFloat64(t *testing.T, f func(x archsimd.Int8x32) archsimd.Float64x8, want func(x []int8) []float64) {
4500 n := 32
4501 t.Helper()
4502 forSlice(t, int8s, n, func(x []int8) bool {
4503 t.Helper()
4504 a := archsimd.LoadInt8x32(x)
4505 g := make([]float64, 8)
4506 f(a).Store(g)
4507 w := want(x)
4508 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4509 })
4510 }
4511
4512
4513
4514
4515 func testInt16x16ConvertToFloat64(t *testing.T, f func(x archsimd.Int16x16) archsimd.Float64x8, want func(x []int16) []float64) {
4516 n := 16
4517 t.Helper()
4518 forSlice(t, int16s, n, func(x []int16) bool {
4519 t.Helper()
4520 a := archsimd.LoadInt16x16(x)
4521 g := make([]float64, 8)
4522 f(a).Store(g)
4523 w := want(x)
4524 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4525 })
4526 }
4527
4528
4529
4530
4531 func testInt32x8ConvertToFloat64(t *testing.T, f func(x archsimd.Int32x8) archsimd.Float64x8, want func(x []int32) []float64) {
4532 n := 8
4533 t.Helper()
4534 forSlice(t, int32s, n, func(x []int32) bool {
4535 t.Helper()
4536 a := archsimd.LoadInt32x8(x)
4537 g := make([]float64, 8)
4538 f(a).Store(g)
4539 w := want(x)
4540 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4541 })
4542 }
4543
4544
4545
4546
4547 func testInt64x4ConvertToFloat64(t *testing.T, f func(x archsimd.Int64x4) archsimd.Float64x4, want func(x []int64) []float64) {
4548 n := 4
4549 t.Helper()
4550 forSlice(t, int64s, n, func(x []int64) bool {
4551 t.Helper()
4552 a := archsimd.LoadInt64x4(x)
4553 g := make([]float64, 4)
4554 f(a).Store(g)
4555 w := want(x)
4556 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4557 })
4558 }
4559
4560
4561
4562
4563 func testUint8x32ConvertToFloat64(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Float64x8, want func(x []uint8) []float64) {
4564 n := 32
4565 t.Helper()
4566 forSlice(t, uint8s, n, func(x []uint8) bool {
4567 t.Helper()
4568 a := archsimd.LoadUint8x32(x)
4569 g := make([]float64, 8)
4570 f(a).Store(g)
4571 w := want(x)
4572 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4573 })
4574 }
4575
4576
4577
4578
4579 func testUint16x16ConvertToFloat64(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Float64x8, want func(x []uint16) []float64) {
4580 n := 16
4581 t.Helper()
4582 forSlice(t, uint16s, n, func(x []uint16) bool {
4583 t.Helper()
4584 a := archsimd.LoadUint16x16(x)
4585 g := make([]float64, 8)
4586 f(a).Store(g)
4587 w := want(x)
4588 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4589 })
4590 }
4591
4592
4593
4594
4595 func testUint32x8ConvertToFloat64(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Float64x8, want func(x []uint32) []float64) {
4596 n := 8
4597 t.Helper()
4598 forSlice(t, uint32s, n, func(x []uint32) bool {
4599 t.Helper()
4600 a := archsimd.LoadUint32x8(x)
4601 g := make([]float64, 8)
4602 f(a).Store(g)
4603 w := want(x)
4604 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4605 })
4606 }
4607
4608
4609
4610
4611 func testUint64x4ConvertToFloat64(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Float64x4, want func(x []uint64) []float64) {
4612 n := 4
4613 t.Helper()
4614 forSlice(t, uint64s, n, func(x []uint64) bool {
4615 t.Helper()
4616 a := archsimd.LoadUint64x4(x)
4617 g := make([]float64, 4)
4618 f(a).Store(g)
4619 w := want(x)
4620 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4621 })
4622 }
4623
4624
4625
4626
4627 func testFloat32x8ConvertToFloat64(t *testing.T, f func(x archsimd.Float32x8) archsimd.Float64x8, want func(x []float32) []float64) {
4628 n := 8
4629 t.Helper()
4630 forSlice(t, float32s, n, func(x []float32) bool {
4631 t.Helper()
4632 a := archsimd.LoadFloat32x8(x)
4633 g := make([]float64, 8)
4634 f(a).Store(g)
4635 w := want(x)
4636 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4637 })
4638 }
4639
4640
4641
4642
4643 func testFloat64x4ConvertToFloat64(t *testing.T, f func(x archsimd.Float64x4) archsimd.Float64x4, want func(x []float64) []float64) {
4644 n := 4
4645 t.Helper()
4646 forSlice(t, float64s, n, func(x []float64) bool {
4647 t.Helper()
4648 a := archsimd.LoadFloat64x4(x)
4649 g := make([]float64, 4)
4650 f(a).Store(g)
4651 w := want(x)
4652 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4653 })
4654 }
4655
4656
4657
4658
4659 func testInt8x64ConvertToFloat64(t *testing.T, f func(x archsimd.Int8x64) archsimd.Float64x8, want func(x []int8) []float64) {
4660 n := 64
4661 t.Helper()
4662 forSlice(t, int8s, n, func(x []int8) bool {
4663 t.Helper()
4664 a := archsimd.LoadInt8x64(x)
4665 g := make([]float64, 8)
4666 f(a).Store(g)
4667 w := want(x)
4668 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4669 })
4670 }
4671
4672
4673
4674
4675 func testInt16x32ConvertToFloat64(t *testing.T, f func(x archsimd.Int16x32) archsimd.Float64x8, want func(x []int16) []float64) {
4676 n := 32
4677 t.Helper()
4678 forSlice(t, int16s, n, func(x []int16) bool {
4679 t.Helper()
4680 a := archsimd.LoadInt16x32(x)
4681 g := make([]float64, 8)
4682 f(a).Store(g)
4683 w := want(x)
4684 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4685 })
4686 }
4687
4688
4689
4690
4691 func testInt32x16ConvertToFloat64(t *testing.T, f func(x archsimd.Int32x16) archsimd.Float64x8, want func(x []int32) []float64) {
4692 n := 16
4693 t.Helper()
4694 forSlice(t, int32s, n, func(x []int32) bool {
4695 t.Helper()
4696 a := archsimd.LoadInt32x16(x)
4697 g := make([]float64, 8)
4698 f(a).Store(g)
4699 w := want(x)
4700 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4701 })
4702 }
4703
4704
4705
4706
4707 func testInt64x8ConvertToFloat64(t *testing.T, f func(x archsimd.Int64x8) archsimd.Float64x8, want func(x []int64) []float64) {
4708 n := 8
4709 t.Helper()
4710 forSlice(t, int64s, n, func(x []int64) bool {
4711 t.Helper()
4712 a := archsimd.LoadInt64x8(x)
4713 g := make([]float64, 8)
4714 f(a).Store(g)
4715 w := want(x)
4716 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4717 })
4718 }
4719
4720
4721
4722
4723 func testUint8x64ConvertToFloat64(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Float64x8, want func(x []uint8) []float64) {
4724 n := 64
4725 t.Helper()
4726 forSlice(t, uint8s, n, func(x []uint8) bool {
4727 t.Helper()
4728 a := archsimd.LoadUint8x64(x)
4729 g := make([]float64, 8)
4730 f(a).Store(g)
4731 w := want(x)
4732 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4733 })
4734 }
4735
4736
4737
4738
4739 func testUint16x32ConvertToFloat64(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Float64x8, want func(x []uint16) []float64) {
4740 n := 32
4741 t.Helper()
4742 forSlice(t, uint16s, n, func(x []uint16) bool {
4743 t.Helper()
4744 a := archsimd.LoadUint16x32(x)
4745 g := make([]float64, 8)
4746 f(a).Store(g)
4747 w := want(x)
4748 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4749 })
4750 }
4751
4752
4753
4754
4755 func testUint32x16ConvertToFloat64(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Float64x8, want func(x []uint32) []float64) {
4756 n := 16
4757 t.Helper()
4758 forSlice(t, uint32s, n, func(x []uint32) bool {
4759 t.Helper()
4760 a := archsimd.LoadUint32x16(x)
4761 g := make([]float64, 8)
4762 f(a).Store(g)
4763 w := want(x)
4764 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4765 })
4766 }
4767
4768
4769
4770
4771 func testUint64x8ConvertToFloat64(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Float64x8, want func(x []uint64) []float64) {
4772 n := 8
4773 t.Helper()
4774 forSlice(t, uint64s, n, func(x []uint64) bool {
4775 t.Helper()
4776 a := archsimd.LoadUint64x8(x)
4777 g := make([]float64, 8)
4778 f(a).Store(g)
4779 w := want(x)
4780 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4781 })
4782 }
4783
4784
4785
4786
4787 func testFloat32x16ConvertToFloat64(t *testing.T, f func(x archsimd.Float32x16) archsimd.Float64x8, want func(x []float32) []float64) {
4788 n := 16
4789 t.Helper()
4790 forSlice(t, float32s, n, func(x []float32) bool {
4791 t.Helper()
4792 a := archsimd.LoadFloat32x16(x)
4793 g := make([]float64, 8)
4794 f(a).Store(g)
4795 w := want(x)
4796 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4797 })
4798 }
4799
4800
4801
4802
4803 func testFloat64x8ConvertToFloat64(t *testing.T, f func(x archsimd.Float64x8) archsimd.Float64x8, want func(x []float64) []float64) {
4804 n := 8
4805 t.Helper()
4806 forSlice(t, float64s, n, func(x []float64) bool {
4807 t.Helper()
4808 a := archsimd.LoadFloat64x8(x)
4809 g := make([]float64, 8)
4810 f(a).Store(g)
4811 w := want(x)
4812 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4813 })
4814 }
4815
4816
4817
4818 func testInt8x16ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Int8x16) archsimd.Int64x2, want func(x []int8) []int64) {
4819 n := 16
4820 t.Helper()
4821 forSlice(t, int8s, n, func(x []int8) bool {
4822 t.Helper()
4823 a := archsimd.LoadInt8x16(x)
4824 g := make([]int64, 2)
4825 f(a).Store(g)
4826 w := want(x)
4827 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4828 })
4829 }
4830
4831
4832
4833 func testInt16x8ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Int16x8) archsimd.Int64x2, want func(x []int16) []int64) {
4834 n := 8
4835 t.Helper()
4836 forSlice(t, int16s, n, func(x []int16) bool {
4837 t.Helper()
4838 a := archsimd.LoadInt16x8(x)
4839 g := make([]int64, 2)
4840 f(a).Store(g)
4841 w := want(x)
4842 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4843 })
4844 }
4845
4846
4847
4848 func testInt32x4ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Int32x4) archsimd.Int64x2, want func(x []int32) []int64) {
4849 n := 4
4850 t.Helper()
4851 forSlice(t, int32s, n, func(x []int32) bool {
4852 t.Helper()
4853 a := archsimd.LoadInt32x4(x)
4854 g := make([]int64, 2)
4855 f(a).Store(g)
4856 w := want(x)
4857 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4858 })
4859 }
4860
4861
4862
4863 func testInt64x2ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Int64x2) archsimd.Int64x2, want func(x []int64) []int64) {
4864 n := 2
4865 t.Helper()
4866 forSlice(t, int64s, n, func(x []int64) bool {
4867 t.Helper()
4868 a := archsimd.LoadInt64x2(x)
4869 g := make([]int64, 2)
4870 f(a).Store(g)
4871 w := want(x)
4872 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4873 })
4874 }
4875
4876
4877
4878 func testUint8x16ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Int64x2, want func(x []uint8) []int64) {
4879 n := 16
4880 t.Helper()
4881 forSlice(t, uint8s, n, func(x []uint8) bool {
4882 t.Helper()
4883 a := archsimd.LoadUint8x16(x)
4884 g := make([]int64, 2)
4885 f(a).Store(g)
4886 w := want(x)
4887 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4888 })
4889 }
4890
4891
4892
4893 func testUint16x8ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Int64x2, want func(x []uint16) []int64) {
4894 n := 8
4895 t.Helper()
4896 forSlice(t, uint16s, n, func(x []uint16) bool {
4897 t.Helper()
4898 a := archsimd.LoadUint16x8(x)
4899 g := make([]int64, 2)
4900 f(a).Store(g)
4901 w := want(x)
4902 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4903 })
4904 }
4905
4906
4907
4908 func testUint32x4ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Int64x2, want func(x []uint32) []int64) {
4909 n := 4
4910 t.Helper()
4911 forSlice(t, uint32s, n, func(x []uint32) bool {
4912 t.Helper()
4913 a := archsimd.LoadUint32x4(x)
4914 g := make([]int64, 2)
4915 f(a).Store(g)
4916 w := want(x)
4917 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4918 })
4919 }
4920
4921
4922
4923 func testUint64x2ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Int64x2, want func(x []uint64) []int64) {
4924 n := 2
4925 t.Helper()
4926 forSlice(t, uint64s, n, func(x []uint64) bool {
4927 t.Helper()
4928 a := archsimd.LoadUint64x2(x)
4929 g := make([]int64, 2)
4930 f(a).Store(g)
4931 w := want(x)
4932 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4933 })
4934 }
4935
4936
4937
4938 func testInt8x32ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Int8x32) archsimd.Int64x2, want func(x []int8) []int64) {
4939 n := 32
4940 t.Helper()
4941 forSlice(t, int8s, n, func(x []int8) bool {
4942 t.Helper()
4943 a := archsimd.LoadInt8x32(x)
4944 g := make([]int64, 2)
4945 f(a).Store(g)
4946 w := want(x)
4947 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4948 })
4949 }
4950
4951
4952
4953 func testInt16x16ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Int16x16) archsimd.Int64x2, want func(x []int16) []int64) {
4954 n := 16
4955 t.Helper()
4956 forSlice(t, int16s, n, func(x []int16) bool {
4957 t.Helper()
4958 a := archsimd.LoadInt16x16(x)
4959 g := make([]int64, 2)
4960 f(a).Store(g)
4961 w := want(x)
4962 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4963 })
4964 }
4965
4966
4967
4968 func testInt32x8ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Int32x8) archsimd.Int64x2, want func(x []int32) []int64) {
4969 n := 8
4970 t.Helper()
4971 forSlice(t, int32s, n, func(x []int32) bool {
4972 t.Helper()
4973 a := archsimd.LoadInt32x8(x)
4974 g := make([]int64, 2)
4975 f(a).Store(g)
4976 w := want(x)
4977 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4978 })
4979 }
4980
4981
4982
4983 func testInt64x4ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Int64x4) archsimd.Int64x2, want func(x []int64) []int64) {
4984 n := 4
4985 t.Helper()
4986 forSlice(t, int64s, n, func(x []int64) bool {
4987 t.Helper()
4988 a := archsimd.LoadInt64x4(x)
4989 g := make([]int64, 2)
4990 f(a).Store(g)
4991 w := want(x)
4992 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
4993 })
4994 }
4995
4996
4997
4998 func testUint8x32ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Int64x2, want func(x []uint8) []int64) {
4999 n := 32
5000 t.Helper()
5001 forSlice(t, uint8s, n, func(x []uint8) bool {
5002 t.Helper()
5003 a := archsimd.LoadUint8x32(x)
5004 g := make([]int64, 2)
5005 f(a).Store(g)
5006 w := want(x)
5007 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5008 })
5009 }
5010
5011
5012
5013 func testUint16x16ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Int64x2, want func(x []uint16) []int64) {
5014 n := 16
5015 t.Helper()
5016 forSlice(t, uint16s, n, func(x []uint16) bool {
5017 t.Helper()
5018 a := archsimd.LoadUint16x16(x)
5019 g := make([]int64, 2)
5020 f(a).Store(g)
5021 w := want(x)
5022 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5023 })
5024 }
5025
5026
5027
5028 func testUint32x8ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Int64x2, want func(x []uint32) []int64) {
5029 n := 8
5030 t.Helper()
5031 forSlice(t, uint32s, n, func(x []uint32) bool {
5032 t.Helper()
5033 a := archsimd.LoadUint32x8(x)
5034 g := make([]int64, 2)
5035 f(a).Store(g)
5036 w := want(x)
5037 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5038 })
5039 }
5040
5041
5042
5043 func testUint64x4ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Int64x2, want func(x []uint64) []int64) {
5044 n := 4
5045 t.Helper()
5046 forSlice(t, uint64s, n, func(x []uint64) bool {
5047 t.Helper()
5048 a := archsimd.LoadUint64x4(x)
5049 g := make([]int64, 2)
5050 f(a).Store(g)
5051 w := want(x)
5052 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5053 })
5054 }
5055
5056
5057
5058 func testInt8x64ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Int8x64) archsimd.Int64x2, want func(x []int8) []int64) {
5059 n := 64
5060 t.Helper()
5061 forSlice(t, int8s, n, func(x []int8) bool {
5062 t.Helper()
5063 a := archsimd.LoadInt8x64(x)
5064 g := make([]int64, 2)
5065 f(a).Store(g)
5066 w := want(x)
5067 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5068 })
5069 }
5070
5071
5072
5073 func testInt16x32ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Int16x32) archsimd.Int64x2, want func(x []int16) []int64) {
5074 n := 32
5075 t.Helper()
5076 forSlice(t, int16s, n, func(x []int16) bool {
5077 t.Helper()
5078 a := archsimd.LoadInt16x32(x)
5079 g := make([]int64, 2)
5080 f(a).Store(g)
5081 w := want(x)
5082 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5083 })
5084 }
5085
5086
5087
5088 func testInt32x16ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Int32x16) archsimd.Int64x2, want func(x []int32) []int64) {
5089 n := 16
5090 t.Helper()
5091 forSlice(t, int32s, n, func(x []int32) bool {
5092 t.Helper()
5093 a := archsimd.LoadInt32x16(x)
5094 g := make([]int64, 2)
5095 f(a).Store(g)
5096 w := want(x)
5097 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5098 })
5099 }
5100
5101
5102
5103 func testInt64x8ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Int64x8) archsimd.Int64x2, want func(x []int64) []int64) {
5104 n := 8
5105 t.Helper()
5106 forSlice(t, int64s, n, func(x []int64) bool {
5107 t.Helper()
5108 a := archsimd.LoadInt64x8(x)
5109 g := make([]int64, 2)
5110 f(a).Store(g)
5111 w := want(x)
5112 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5113 })
5114 }
5115
5116
5117
5118 func testUint8x64ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Int64x2, want func(x []uint8) []int64) {
5119 n := 64
5120 t.Helper()
5121 forSlice(t, uint8s, n, func(x []uint8) bool {
5122 t.Helper()
5123 a := archsimd.LoadUint8x64(x)
5124 g := make([]int64, 2)
5125 f(a).Store(g)
5126 w := want(x)
5127 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5128 })
5129 }
5130
5131
5132
5133 func testUint16x32ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Int64x2, want func(x []uint16) []int64) {
5134 n := 32
5135 t.Helper()
5136 forSlice(t, uint16s, n, func(x []uint16) bool {
5137 t.Helper()
5138 a := archsimd.LoadUint16x32(x)
5139 g := make([]int64, 2)
5140 f(a).Store(g)
5141 w := want(x)
5142 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5143 })
5144 }
5145
5146
5147
5148 func testUint32x16ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Int64x2, want func(x []uint32) []int64) {
5149 n := 16
5150 t.Helper()
5151 forSlice(t, uint32s, n, func(x []uint32) bool {
5152 t.Helper()
5153 a := archsimd.LoadUint32x16(x)
5154 g := make([]int64, 2)
5155 f(a).Store(g)
5156 w := want(x)
5157 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5158 })
5159 }
5160
5161
5162
5163 func testUint64x8ConvertLoToInt64x2(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Int64x2, want func(x []uint64) []int64) {
5164 n := 8
5165 t.Helper()
5166 forSlice(t, uint64s, n, func(x []uint64) bool {
5167 t.Helper()
5168 a := archsimd.LoadUint64x8(x)
5169 g := make([]int64, 2)
5170 f(a).Store(g)
5171 w := want(x)
5172 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5173 })
5174 }
5175
5176
5177
5178 func testInt8x16ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Int8x16) archsimd.Int64x4, want func(x []int8) []int64) {
5179 n := 16
5180 t.Helper()
5181 forSlice(t, int8s, n, func(x []int8) bool {
5182 t.Helper()
5183 a := archsimd.LoadInt8x16(x)
5184 g := make([]int64, 4)
5185 f(a).Store(g)
5186 w := want(x)
5187 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5188 })
5189 }
5190
5191
5192
5193 func testInt16x8ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Int16x8) archsimd.Int64x4, want func(x []int16) []int64) {
5194 n := 8
5195 t.Helper()
5196 forSlice(t, int16s, n, func(x []int16) bool {
5197 t.Helper()
5198 a := archsimd.LoadInt16x8(x)
5199 g := make([]int64, 4)
5200 f(a).Store(g)
5201 w := want(x)
5202 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5203 })
5204 }
5205
5206
5207
5208 func testInt32x4ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Int32x4) archsimd.Int64x4, want func(x []int32) []int64) {
5209 n := 4
5210 t.Helper()
5211 forSlice(t, int32s, n, func(x []int32) bool {
5212 t.Helper()
5213 a := archsimd.LoadInt32x4(x)
5214 g := make([]int64, 4)
5215 f(a).Store(g)
5216 w := want(x)
5217 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5218 })
5219 }
5220
5221
5222
5223 func testInt64x2ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Int64x2) archsimd.Int64x4, want func(x []int64) []int64) {
5224 n := 2
5225 t.Helper()
5226 forSlice(t, int64s, n, func(x []int64) bool {
5227 t.Helper()
5228 a := archsimd.LoadInt64x2(x)
5229 g := make([]int64, 4)
5230 f(a).Store(g)
5231 w := want(x)
5232 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5233 })
5234 }
5235
5236
5237
5238 func testUint8x16ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Int64x4, want func(x []uint8) []int64) {
5239 n := 16
5240 t.Helper()
5241 forSlice(t, uint8s, n, func(x []uint8) bool {
5242 t.Helper()
5243 a := archsimd.LoadUint8x16(x)
5244 g := make([]int64, 4)
5245 f(a).Store(g)
5246 w := want(x)
5247 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5248 })
5249 }
5250
5251
5252
5253 func testUint16x8ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Int64x4, want func(x []uint16) []int64) {
5254 n := 8
5255 t.Helper()
5256 forSlice(t, uint16s, n, func(x []uint16) bool {
5257 t.Helper()
5258 a := archsimd.LoadUint16x8(x)
5259 g := make([]int64, 4)
5260 f(a).Store(g)
5261 w := want(x)
5262 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5263 })
5264 }
5265
5266
5267
5268 func testUint32x4ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Int64x4, want func(x []uint32) []int64) {
5269 n := 4
5270 t.Helper()
5271 forSlice(t, uint32s, n, func(x []uint32) bool {
5272 t.Helper()
5273 a := archsimd.LoadUint32x4(x)
5274 g := make([]int64, 4)
5275 f(a).Store(g)
5276 w := want(x)
5277 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5278 })
5279 }
5280
5281
5282
5283 func testUint64x2ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Int64x4, want func(x []uint64) []int64) {
5284 n := 2
5285 t.Helper()
5286 forSlice(t, uint64s, n, func(x []uint64) bool {
5287 t.Helper()
5288 a := archsimd.LoadUint64x2(x)
5289 g := make([]int64, 4)
5290 f(a).Store(g)
5291 w := want(x)
5292 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5293 })
5294 }
5295
5296
5297
5298 func testInt8x32ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Int8x32) archsimd.Int64x4, want func(x []int8) []int64) {
5299 n := 32
5300 t.Helper()
5301 forSlice(t, int8s, n, func(x []int8) bool {
5302 t.Helper()
5303 a := archsimd.LoadInt8x32(x)
5304 g := make([]int64, 4)
5305 f(a).Store(g)
5306 w := want(x)
5307 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5308 })
5309 }
5310
5311
5312
5313 func testInt16x16ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Int16x16) archsimd.Int64x4, want func(x []int16) []int64) {
5314 n := 16
5315 t.Helper()
5316 forSlice(t, int16s, n, func(x []int16) bool {
5317 t.Helper()
5318 a := archsimd.LoadInt16x16(x)
5319 g := make([]int64, 4)
5320 f(a).Store(g)
5321 w := want(x)
5322 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5323 })
5324 }
5325
5326
5327
5328 func testInt32x8ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Int32x8) archsimd.Int64x4, want func(x []int32) []int64) {
5329 n := 8
5330 t.Helper()
5331 forSlice(t, int32s, n, func(x []int32) bool {
5332 t.Helper()
5333 a := archsimd.LoadInt32x8(x)
5334 g := make([]int64, 4)
5335 f(a).Store(g)
5336 w := want(x)
5337 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5338 })
5339 }
5340
5341
5342
5343 func testInt64x4ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Int64x4) archsimd.Int64x4, want func(x []int64) []int64) {
5344 n := 4
5345 t.Helper()
5346 forSlice(t, int64s, n, func(x []int64) bool {
5347 t.Helper()
5348 a := archsimd.LoadInt64x4(x)
5349 g := make([]int64, 4)
5350 f(a).Store(g)
5351 w := want(x)
5352 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5353 })
5354 }
5355
5356
5357
5358 func testUint8x32ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Int64x4, want func(x []uint8) []int64) {
5359 n := 32
5360 t.Helper()
5361 forSlice(t, uint8s, n, func(x []uint8) bool {
5362 t.Helper()
5363 a := archsimd.LoadUint8x32(x)
5364 g := make([]int64, 4)
5365 f(a).Store(g)
5366 w := want(x)
5367 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5368 })
5369 }
5370
5371
5372
5373 func testUint16x16ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Int64x4, want func(x []uint16) []int64) {
5374 n := 16
5375 t.Helper()
5376 forSlice(t, uint16s, n, func(x []uint16) bool {
5377 t.Helper()
5378 a := archsimd.LoadUint16x16(x)
5379 g := make([]int64, 4)
5380 f(a).Store(g)
5381 w := want(x)
5382 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5383 })
5384 }
5385
5386
5387
5388 func testUint32x8ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Int64x4, want func(x []uint32) []int64) {
5389 n := 8
5390 t.Helper()
5391 forSlice(t, uint32s, n, func(x []uint32) bool {
5392 t.Helper()
5393 a := archsimd.LoadUint32x8(x)
5394 g := make([]int64, 4)
5395 f(a).Store(g)
5396 w := want(x)
5397 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5398 })
5399 }
5400
5401
5402
5403 func testUint64x4ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Int64x4, want func(x []uint64) []int64) {
5404 n := 4
5405 t.Helper()
5406 forSlice(t, uint64s, n, func(x []uint64) bool {
5407 t.Helper()
5408 a := archsimd.LoadUint64x4(x)
5409 g := make([]int64, 4)
5410 f(a).Store(g)
5411 w := want(x)
5412 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5413 })
5414 }
5415
5416
5417
5418 func testInt8x64ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Int8x64) archsimd.Int64x4, want func(x []int8) []int64) {
5419 n := 64
5420 t.Helper()
5421 forSlice(t, int8s, n, func(x []int8) bool {
5422 t.Helper()
5423 a := archsimd.LoadInt8x64(x)
5424 g := make([]int64, 4)
5425 f(a).Store(g)
5426 w := want(x)
5427 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5428 })
5429 }
5430
5431
5432
5433 func testInt16x32ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Int16x32) archsimd.Int64x4, want func(x []int16) []int64) {
5434 n := 32
5435 t.Helper()
5436 forSlice(t, int16s, n, func(x []int16) bool {
5437 t.Helper()
5438 a := archsimd.LoadInt16x32(x)
5439 g := make([]int64, 4)
5440 f(a).Store(g)
5441 w := want(x)
5442 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5443 })
5444 }
5445
5446
5447
5448 func testInt32x16ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Int32x16) archsimd.Int64x4, want func(x []int32) []int64) {
5449 n := 16
5450 t.Helper()
5451 forSlice(t, int32s, n, func(x []int32) bool {
5452 t.Helper()
5453 a := archsimd.LoadInt32x16(x)
5454 g := make([]int64, 4)
5455 f(a).Store(g)
5456 w := want(x)
5457 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5458 })
5459 }
5460
5461
5462
5463 func testInt64x8ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Int64x8) archsimd.Int64x4, want func(x []int64) []int64) {
5464 n := 8
5465 t.Helper()
5466 forSlice(t, int64s, n, func(x []int64) bool {
5467 t.Helper()
5468 a := archsimd.LoadInt64x8(x)
5469 g := make([]int64, 4)
5470 f(a).Store(g)
5471 w := want(x)
5472 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5473 })
5474 }
5475
5476
5477
5478 func testUint8x64ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Int64x4, want func(x []uint8) []int64) {
5479 n := 64
5480 t.Helper()
5481 forSlice(t, uint8s, n, func(x []uint8) bool {
5482 t.Helper()
5483 a := archsimd.LoadUint8x64(x)
5484 g := make([]int64, 4)
5485 f(a).Store(g)
5486 w := want(x)
5487 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5488 })
5489 }
5490
5491
5492
5493 func testUint16x32ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Int64x4, want func(x []uint16) []int64) {
5494 n := 32
5495 t.Helper()
5496 forSlice(t, uint16s, n, func(x []uint16) bool {
5497 t.Helper()
5498 a := archsimd.LoadUint16x32(x)
5499 g := make([]int64, 4)
5500 f(a).Store(g)
5501 w := want(x)
5502 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5503 })
5504 }
5505
5506
5507
5508 func testUint32x16ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Int64x4, want func(x []uint32) []int64) {
5509 n := 16
5510 t.Helper()
5511 forSlice(t, uint32s, n, func(x []uint32) bool {
5512 t.Helper()
5513 a := archsimd.LoadUint32x16(x)
5514 g := make([]int64, 4)
5515 f(a).Store(g)
5516 w := want(x)
5517 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5518 })
5519 }
5520
5521
5522
5523 func testUint64x8ConvertLoToInt64x4(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Int64x4, want func(x []uint64) []int64) {
5524 n := 8
5525 t.Helper()
5526 forSlice(t, uint64s, n, func(x []uint64) bool {
5527 t.Helper()
5528 a := archsimd.LoadUint64x8(x)
5529 g := make([]int64, 4)
5530 f(a).Store(g)
5531 w := want(x)
5532 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5533 })
5534 }
5535
5536
5537
5538 func testInt8x16ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Int8x16) archsimd.Uint64x2, want func(x []int8) []uint64) {
5539 n := 16
5540 t.Helper()
5541 forSlice(t, int8s, n, func(x []int8) bool {
5542 t.Helper()
5543 a := archsimd.LoadInt8x16(x)
5544 g := make([]uint64, 2)
5545 f(a).Store(g)
5546 w := want(x)
5547 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5548 })
5549 }
5550
5551
5552
5553 func testInt16x8ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Int16x8) archsimd.Uint64x2, want func(x []int16) []uint64) {
5554 n := 8
5555 t.Helper()
5556 forSlice(t, int16s, n, func(x []int16) bool {
5557 t.Helper()
5558 a := archsimd.LoadInt16x8(x)
5559 g := make([]uint64, 2)
5560 f(a).Store(g)
5561 w := want(x)
5562 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5563 })
5564 }
5565
5566
5567
5568 func testInt32x4ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Int32x4) archsimd.Uint64x2, want func(x []int32) []uint64) {
5569 n := 4
5570 t.Helper()
5571 forSlice(t, int32s, n, func(x []int32) bool {
5572 t.Helper()
5573 a := archsimd.LoadInt32x4(x)
5574 g := make([]uint64, 2)
5575 f(a).Store(g)
5576 w := want(x)
5577 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5578 })
5579 }
5580
5581
5582
5583 func testInt64x2ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Int64x2) archsimd.Uint64x2, want func(x []int64) []uint64) {
5584 n := 2
5585 t.Helper()
5586 forSlice(t, int64s, n, func(x []int64) bool {
5587 t.Helper()
5588 a := archsimd.LoadInt64x2(x)
5589 g := make([]uint64, 2)
5590 f(a).Store(g)
5591 w := want(x)
5592 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5593 })
5594 }
5595
5596
5597
5598 func testUint8x16ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Uint64x2, want func(x []uint8) []uint64) {
5599 n := 16
5600 t.Helper()
5601 forSlice(t, uint8s, n, func(x []uint8) bool {
5602 t.Helper()
5603 a := archsimd.LoadUint8x16(x)
5604 g := make([]uint64, 2)
5605 f(a).Store(g)
5606 w := want(x)
5607 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5608 })
5609 }
5610
5611
5612
5613 func testUint16x8ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Uint64x2, want func(x []uint16) []uint64) {
5614 n := 8
5615 t.Helper()
5616 forSlice(t, uint16s, n, func(x []uint16) bool {
5617 t.Helper()
5618 a := archsimd.LoadUint16x8(x)
5619 g := make([]uint64, 2)
5620 f(a).Store(g)
5621 w := want(x)
5622 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5623 })
5624 }
5625
5626
5627
5628 func testUint32x4ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Uint64x2, want func(x []uint32) []uint64) {
5629 n := 4
5630 t.Helper()
5631 forSlice(t, uint32s, n, func(x []uint32) bool {
5632 t.Helper()
5633 a := archsimd.LoadUint32x4(x)
5634 g := make([]uint64, 2)
5635 f(a).Store(g)
5636 w := want(x)
5637 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5638 })
5639 }
5640
5641
5642
5643 func testUint64x2ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Uint64x2, want func(x []uint64) []uint64) {
5644 n := 2
5645 t.Helper()
5646 forSlice(t, uint64s, n, func(x []uint64) bool {
5647 t.Helper()
5648 a := archsimd.LoadUint64x2(x)
5649 g := make([]uint64, 2)
5650 f(a).Store(g)
5651 w := want(x)
5652 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5653 })
5654 }
5655
5656
5657
5658 func testInt8x32ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Int8x32) archsimd.Uint64x2, want func(x []int8) []uint64) {
5659 n := 32
5660 t.Helper()
5661 forSlice(t, int8s, n, func(x []int8) bool {
5662 t.Helper()
5663 a := archsimd.LoadInt8x32(x)
5664 g := make([]uint64, 2)
5665 f(a).Store(g)
5666 w := want(x)
5667 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5668 })
5669 }
5670
5671
5672
5673 func testInt16x16ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Int16x16) archsimd.Uint64x2, want func(x []int16) []uint64) {
5674 n := 16
5675 t.Helper()
5676 forSlice(t, int16s, n, func(x []int16) bool {
5677 t.Helper()
5678 a := archsimd.LoadInt16x16(x)
5679 g := make([]uint64, 2)
5680 f(a).Store(g)
5681 w := want(x)
5682 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5683 })
5684 }
5685
5686
5687
5688 func testInt32x8ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Int32x8) archsimd.Uint64x2, want func(x []int32) []uint64) {
5689 n := 8
5690 t.Helper()
5691 forSlice(t, int32s, n, func(x []int32) bool {
5692 t.Helper()
5693 a := archsimd.LoadInt32x8(x)
5694 g := make([]uint64, 2)
5695 f(a).Store(g)
5696 w := want(x)
5697 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5698 })
5699 }
5700
5701
5702
5703 func testInt64x4ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Int64x4) archsimd.Uint64x2, want func(x []int64) []uint64) {
5704 n := 4
5705 t.Helper()
5706 forSlice(t, int64s, n, func(x []int64) bool {
5707 t.Helper()
5708 a := archsimd.LoadInt64x4(x)
5709 g := make([]uint64, 2)
5710 f(a).Store(g)
5711 w := want(x)
5712 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5713 })
5714 }
5715
5716
5717
5718 func testUint8x32ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Uint64x2, want func(x []uint8) []uint64) {
5719 n := 32
5720 t.Helper()
5721 forSlice(t, uint8s, n, func(x []uint8) bool {
5722 t.Helper()
5723 a := archsimd.LoadUint8x32(x)
5724 g := make([]uint64, 2)
5725 f(a).Store(g)
5726 w := want(x)
5727 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5728 })
5729 }
5730
5731
5732
5733 func testUint16x16ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Uint64x2, want func(x []uint16) []uint64) {
5734 n := 16
5735 t.Helper()
5736 forSlice(t, uint16s, n, func(x []uint16) bool {
5737 t.Helper()
5738 a := archsimd.LoadUint16x16(x)
5739 g := make([]uint64, 2)
5740 f(a).Store(g)
5741 w := want(x)
5742 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5743 })
5744 }
5745
5746
5747
5748 func testUint32x8ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Uint64x2, want func(x []uint32) []uint64) {
5749 n := 8
5750 t.Helper()
5751 forSlice(t, uint32s, n, func(x []uint32) bool {
5752 t.Helper()
5753 a := archsimd.LoadUint32x8(x)
5754 g := make([]uint64, 2)
5755 f(a).Store(g)
5756 w := want(x)
5757 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5758 })
5759 }
5760
5761
5762
5763 func testUint64x4ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Uint64x2, want func(x []uint64) []uint64) {
5764 n := 4
5765 t.Helper()
5766 forSlice(t, uint64s, n, func(x []uint64) bool {
5767 t.Helper()
5768 a := archsimd.LoadUint64x4(x)
5769 g := make([]uint64, 2)
5770 f(a).Store(g)
5771 w := want(x)
5772 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5773 })
5774 }
5775
5776
5777
5778 func testInt8x64ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Int8x64) archsimd.Uint64x2, want func(x []int8) []uint64) {
5779 n := 64
5780 t.Helper()
5781 forSlice(t, int8s, n, func(x []int8) bool {
5782 t.Helper()
5783 a := archsimd.LoadInt8x64(x)
5784 g := make([]uint64, 2)
5785 f(a).Store(g)
5786 w := want(x)
5787 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5788 })
5789 }
5790
5791
5792
5793 func testInt16x32ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Int16x32) archsimd.Uint64x2, want func(x []int16) []uint64) {
5794 n := 32
5795 t.Helper()
5796 forSlice(t, int16s, n, func(x []int16) bool {
5797 t.Helper()
5798 a := archsimd.LoadInt16x32(x)
5799 g := make([]uint64, 2)
5800 f(a).Store(g)
5801 w := want(x)
5802 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5803 })
5804 }
5805
5806
5807
5808 func testInt32x16ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Int32x16) archsimd.Uint64x2, want func(x []int32) []uint64) {
5809 n := 16
5810 t.Helper()
5811 forSlice(t, int32s, n, func(x []int32) bool {
5812 t.Helper()
5813 a := archsimd.LoadInt32x16(x)
5814 g := make([]uint64, 2)
5815 f(a).Store(g)
5816 w := want(x)
5817 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5818 })
5819 }
5820
5821
5822
5823 func testInt64x8ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Int64x8) archsimd.Uint64x2, want func(x []int64) []uint64) {
5824 n := 8
5825 t.Helper()
5826 forSlice(t, int64s, n, func(x []int64) bool {
5827 t.Helper()
5828 a := archsimd.LoadInt64x8(x)
5829 g := make([]uint64, 2)
5830 f(a).Store(g)
5831 w := want(x)
5832 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5833 })
5834 }
5835
5836
5837
5838 func testUint8x64ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Uint64x2, want func(x []uint8) []uint64) {
5839 n := 64
5840 t.Helper()
5841 forSlice(t, uint8s, n, func(x []uint8) bool {
5842 t.Helper()
5843 a := archsimd.LoadUint8x64(x)
5844 g := make([]uint64, 2)
5845 f(a).Store(g)
5846 w := want(x)
5847 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5848 })
5849 }
5850
5851
5852
5853 func testUint16x32ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Uint64x2, want func(x []uint16) []uint64) {
5854 n := 32
5855 t.Helper()
5856 forSlice(t, uint16s, n, func(x []uint16) bool {
5857 t.Helper()
5858 a := archsimd.LoadUint16x32(x)
5859 g := make([]uint64, 2)
5860 f(a).Store(g)
5861 w := want(x)
5862 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5863 })
5864 }
5865
5866
5867
5868 func testUint32x16ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Uint64x2, want func(x []uint32) []uint64) {
5869 n := 16
5870 t.Helper()
5871 forSlice(t, uint32s, n, func(x []uint32) bool {
5872 t.Helper()
5873 a := archsimd.LoadUint32x16(x)
5874 g := make([]uint64, 2)
5875 f(a).Store(g)
5876 w := want(x)
5877 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5878 })
5879 }
5880
5881
5882
5883 func testUint64x8ConvertLoToUint64x2(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Uint64x2, want func(x []uint64) []uint64) {
5884 n := 8
5885 t.Helper()
5886 forSlice(t, uint64s, n, func(x []uint64) bool {
5887 t.Helper()
5888 a := archsimd.LoadUint64x8(x)
5889 g := make([]uint64, 2)
5890 f(a).Store(g)
5891 w := want(x)
5892 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5893 })
5894 }
5895
5896
5897
5898 func testInt8x16ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Int8x16) archsimd.Uint64x4, want func(x []int8) []uint64) {
5899 n := 16
5900 t.Helper()
5901 forSlice(t, int8s, n, func(x []int8) bool {
5902 t.Helper()
5903 a := archsimd.LoadInt8x16(x)
5904 g := make([]uint64, 4)
5905 f(a).Store(g)
5906 w := want(x)
5907 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5908 })
5909 }
5910
5911
5912
5913 func testInt16x8ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Int16x8) archsimd.Uint64x4, want func(x []int16) []uint64) {
5914 n := 8
5915 t.Helper()
5916 forSlice(t, int16s, n, func(x []int16) bool {
5917 t.Helper()
5918 a := archsimd.LoadInt16x8(x)
5919 g := make([]uint64, 4)
5920 f(a).Store(g)
5921 w := want(x)
5922 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5923 })
5924 }
5925
5926
5927
5928 func testInt32x4ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Int32x4) archsimd.Uint64x4, want func(x []int32) []uint64) {
5929 n := 4
5930 t.Helper()
5931 forSlice(t, int32s, n, func(x []int32) bool {
5932 t.Helper()
5933 a := archsimd.LoadInt32x4(x)
5934 g := make([]uint64, 4)
5935 f(a).Store(g)
5936 w := want(x)
5937 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5938 })
5939 }
5940
5941
5942
5943 func testInt64x2ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Int64x2) archsimd.Uint64x4, want func(x []int64) []uint64) {
5944 n := 2
5945 t.Helper()
5946 forSlice(t, int64s, n, func(x []int64) bool {
5947 t.Helper()
5948 a := archsimd.LoadInt64x2(x)
5949 g := make([]uint64, 4)
5950 f(a).Store(g)
5951 w := want(x)
5952 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5953 })
5954 }
5955
5956
5957
5958 func testUint8x16ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Uint64x4, want func(x []uint8) []uint64) {
5959 n := 16
5960 t.Helper()
5961 forSlice(t, uint8s, n, func(x []uint8) bool {
5962 t.Helper()
5963 a := archsimd.LoadUint8x16(x)
5964 g := make([]uint64, 4)
5965 f(a).Store(g)
5966 w := want(x)
5967 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5968 })
5969 }
5970
5971
5972
5973 func testUint16x8ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Uint64x4, want func(x []uint16) []uint64) {
5974 n := 8
5975 t.Helper()
5976 forSlice(t, uint16s, n, func(x []uint16) bool {
5977 t.Helper()
5978 a := archsimd.LoadUint16x8(x)
5979 g := make([]uint64, 4)
5980 f(a).Store(g)
5981 w := want(x)
5982 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5983 })
5984 }
5985
5986
5987
5988 func testUint32x4ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Uint64x4, want func(x []uint32) []uint64) {
5989 n := 4
5990 t.Helper()
5991 forSlice(t, uint32s, n, func(x []uint32) bool {
5992 t.Helper()
5993 a := archsimd.LoadUint32x4(x)
5994 g := make([]uint64, 4)
5995 f(a).Store(g)
5996 w := want(x)
5997 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
5998 })
5999 }
6000
6001
6002
6003 func testUint64x2ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Uint64x4, want func(x []uint64) []uint64) {
6004 n := 2
6005 t.Helper()
6006 forSlice(t, uint64s, n, func(x []uint64) bool {
6007 t.Helper()
6008 a := archsimd.LoadUint64x2(x)
6009 g := make([]uint64, 4)
6010 f(a).Store(g)
6011 w := want(x)
6012 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6013 })
6014 }
6015
6016
6017
6018 func testInt8x32ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Int8x32) archsimd.Uint64x4, want func(x []int8) []uint64) {
6019 n := 32
6020 t.Helper()
6021 forSlice(t, int8s, n, func(x []int8) bool {
6022 t.Helper()
6023 a := archsimd.LoadInt8x32(x)
6024 g := make([]uint64, 4)
6025 f(a).Store(g)
6026 w := want(x)
6027 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6028 })
6029 }
6030
6031
6032
6033 func testInt16x16ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Int16x16) archsimd.Uint64x4, want func(x []int16) []uint64) {
6034 n := 16
6035 t.Helper()
6036 forSlice(t, int16s, n, func(x []int16) bool {
6037 t.Helper()
6038 a := archsimd.LoadInt16x16(x)
6039 g := make([]uint64, 4)
6040 f(a).Store(g)
6041 w := want(x)
6042 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6043 })
6044 }
6045
6046
6047
6048 func testInt32x8ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Int32x8) archsimd.Uint64x4, want func(x []int32) []uint64) {
6049 n := 8
6050 t.Helper()
6051 forSlice(t, int32s, n, func(x []int32) bool {
6052 t.Helper()
6053 a := archsimd.LoadInt32x8(x)
6054 g := make([]uint64, 4)
6055 f(a).Store(g)
6056 w := want(x)
6057 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6058 })
6059 }
6060
6061
6062
6063 func testInt64x4ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Int64x4) archsimd.Uint64x4, want func(x []int64) []uint64) {
6064 n := 4
6065 t.Helper()
6066 forSlice(t, int64s, n, func(x []int64) bool {
6067 t.Helper()
6068 a := archsimd.LoadInt64x4(x)
6069 g := make([]uint64, 4)
6070 f(a).Store(g)
6071 w := want(x)
6072 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6073 })
6074 }
6075
6076
6077
6078 func testUint8x32ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Uint64x4, want func(x []uint8) []uint64) {
6079 n := 32
6080 t.Helper()
6081 forSlice(t, uint8s, n, func(x []uint8) bool {
6082 t.Helper()
6083 a := archsimd.LoadUint8x32(x)
6084 g := make([]uint64, 4)
6085 f(a).Store(g)
6086 w := want(x)
6087 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6088 })
6089 }
6090
6091
6092
6093 func testUint16x16ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Uint64x4, want func(x []uint16) []uint64) {
6094 n := 16
6095 t.Helper()
6096 forSlice(t, uint16s, n, func(x []uint16) bool {
6097 t.Helper()
6098 a := archsimd.LoadUint16x16(x)
6099 g := make([]uint64, 4)
6100 f(a).Store(g)
6101 w := want(x)
6102 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6103 })
6104 }
6105
6106
6107
6108 func testUint32x8ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Uint64x4, want func(x []uint32) []uint64) {
6109 n := 8
6110 t.Helper()
6111 forSlice(t, uint32s, n, func(x []uint32) bool {
6112 t.Helper()
6113 a := archsimd.LoadUint32x8(x)
6114 g := make([]uint64, 4)
6115 f(a).Store(g)
6116 w := want(x)
6117 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6118 })
6119 }
6120
6121
6122
6123 func testUint64x4ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Uint64x4, want func(x []uint64) []uint64) {
6124 n := 4
6125 t.Helper()
6126 forSlice(t, uint64s, n, func(x []uint64) bool {
6127 t.Helper()
6128 a := archsimd.LoadUint64x4(x)
6129 g := make([]uint64, 4)
6130 f(a).Store(g)
6131 w := want(x)
6132 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6133 })
6134 }
6135
6136
6137
6138 func testInt8x64ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Int8x64) archsimd.Uint64x4, want func(x []int8) []uint64) {
6139 n := 64
6140 t.Helper()
6141 forSlice(t, int8s, n, func(x []int8) bool {
6142 t.Helper()
6143 a := archsimd.LoadInt8x64(x)
6144 g := make([]uint64, 4)
6145 f(a).Store(g)
6146 w := want(x)
6147 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6148 })
6149 }
6150
6151
6152
6153 func testInt16x32ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Int16x32) archsimd.Uint64x4, want func(x []int16) []uint64) {
6154 n := 32
6155 t.Helper()
6156 forSlice(t, int16s, n, func(x []int16) bool {
6157 t.Helper()
6158 a := archsimd.LoadInt16x32(x)
6159 g := make([]uint64, 4)
6160 f(a).Store(g)
6161 w := want(x)
6162 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6163 })
6164 }
6165
6166
6167
6168 func testInt32x16ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Int32x16) archsimd.Uint64x4, want func(x []int32) []uint64) {
6169 n := 16
6170 t.Helper()
6171 forSlice(t, int32s, n, func(x []int32) bool {
6172 t.Helper()
6173 a := archsimd.LoadInt32x16(x)
6174 g := make([]uint64, 4)
6175 f(a).Store(g)
6176 w := want(x)
6177 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6178 })
6179 }
6180
6181
6182
6183 func testInt64x8ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Int64x8) archsimd.Uint64x4, want func(x []int64) []uint64) {
6184 n := 8
6185 t.Helper()
6186 forSlice(t, int64s, n, func(x []int64) bool {
6187 t.Helper()
6188 a := archsimd.LoadInt64x8(x)
6189 g := make([]uint64, 4)
6190 f(a).Store(g)
6191 w := want(x)
6192 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6193 })
6194 }
6195
6196
6197
6198 func testUint8x64ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Uint64x4, want func(x []uint8) []uint64) {
6199 n := 64
6200 t.Helper()
6201 forSlice(t, uint8s, n, func(x []uint8) bool {
6202 t.Helper()
6203 a := archsimd.LoadUint8x64(x)
6204 g := make([]uint64, 4)
6205 f(a).Store(g)
6206 w := want(x)
6207 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6208 })
6209 }
6210
6211
6212
6213 func testUint16x32ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Uint64x4, want func(x []uint16) []uint64) {
6214 n := 32
6215 t.Helper()
6216 forSlice(t, uint16s, n, func(x []uint16) bool {
6217 t.Helper()
6218 a := archsimd.LoadUint16x32(x)
6219 g := make([]uint64, 4)
6220 f(a).Store(g)
6221 w := want(x)
6222 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6223 })
6224 }
6225
6226
6227
6228 func testUint32x16ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Uint64x4, want func(x []uint32) []uint64) {
6229 n := 16
6230 t.Helper()
6231 forSlice(t, uint32s, n, func(x []uint32) bool {
6232 t.Helper()
6233 a := archsimd.LoadUint32x16(x)
6234 g := make([]uint64, 4)
6235 f(a).Store(g)
6236 w := want(x)
6237 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6238 })
6239 }
6240
6241
6242
6243 func testUint64x8ConvertLoToUint64x4(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Uint64x4, want func(x []uint64) []uint64) {
6244 n := 8
6245 t.Helper()
6246 forSlice(t, uint64s, n, func(x []uint64) bool {
6247 t.Helper()
6248 a := archsimd.LoadUint64x8(x)
6249 g := make([]uint64, 4)
6250 f(a).Store(g)
6251 w := want(x)
6252 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6253 })
6254 }
6255
6256
6257
6258 func testInt8x16ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Int8x16) archsimd.Int32x4, want func(x []int8) []int32) {
6259 n := 16
6260 t.Helper()
6261 forSlice(t, int8s, n, func(x []int8) bool {
6262 t.Helper()
6263 a := archsimd.LoadInt8x16(x)
6264 g := make([]int32, 4)
6265 f(a).Store(g)
6266 w := want(x)
6267 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6268 })
6269 }
6270
6271
6272
6273 func testInt16x8ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Int16x8) archsimd.Int32x4, want func(x []int16) []int32) {
6274 n := 8
6275 t.Helper()
6276 forSlice(t, int16s, n, func(x []int16) bool {
6277 t.Helper()
6278 a := archsimd.LoadInt16x8(x)
6279 g := make([]int32, 4)
6280 f(a).Store(g)
6281 w := want(x)
6282 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6283 })
6284 }
6285
6286
6287
6288 func testInt32x4ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Int32x4) archsimd.Int32x4, want func(x []int32) []int32) {
6289 n := 4
6290 t.Helper()
6291 forSlice(t, int32s, n, func(x []int32) bool {
6292 t.Helper()
6293 a := archsimd.LoadInt32x4(x)
6294 g := make([]int32, 4)
6295 f(a).Store(g)
6296 w := want(x)
6297 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6298 })
6299 }
6300
6301
6302
6303 func testInt64x2ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Int64x2) archsimd.Int32x4, want func(x []int64) []int32) {
6304 n := 2
6305 t.Helper()
6306 forSlice(t, int64s, n, func(x []int64) bool {
6307 t.Helper()
6308 a := archsimd.LoadInt64x2(x)
6309 g := make([]int32, 4)
6310 f(a).Store(g)
6311 w := want(x)
6312 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6313 })
6314 }
6315
6316
6317
6318 func testUint8x16ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Int32x4, want func(x []uint8) []int32) {
6319 n := 16
6320 t.Helper()
6321 forSlice(t, uint8s, n, func(x []uint8) bool {
6322 t.Helper()
6323 a := archsimd.LoadUint8x16(x)
6324 g := make([]int32, 4)
6325 f(a).Store(g)
6326 w := want(x)
6327 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6328 })
6329 }
6330
6331
6332
6333 func testUint16x8ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Int32x4, want func(x []uint16) []int32) {
6334 n := 8
6335 t.Helper()
6336 forSlice(t, uint16s, n, func(x []uint16) bool {
6337 t.Helper()
6338 a := archsimd.LoadUint16x8(x)
6339 g := make([]int32, 4)
6340 f(a).Store(g)
6341 w := want(x)
6342 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6343 })
6344 }
6345
6346
6347
6348 func testUint32x4ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Int32x4, want func(x []uint32) []int32) {
6349 n := 4
6350 t.Helper()
6351 forSlice(t, uint32s, n, func(x []uint32) bool {
6352 t.Helper()
6353 a := archsimd.LoadUint32x4(x)
6354 g := make([]int32, 4)
6355 f(a).Store(g)
6356 w := want(x)
6357 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6358 })
6359 }
6360
6361
6362
6363 func testUint64x2ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Int32x4, want func(x []uint64) []int32) {
6364 n := 2
6365 t.Helper()
6366 forSlice(t, uint64s, n, func(x []uint64) bool {
6367 t.Helper()
6368 a := archsimd.LoadUint64x2(x)
6369 g := make([]int32, 4)
6370 f(a).Store(g)
6371 w := want(x)
6372 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6373 })
6374 }
6375
6376
6377
6378 func testInt8x32ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Int8x32) archsimd.Int32x4, want func(x []int8) []int32) {
6379 n := 32
6380 t.Helper()
6381 forSlice(t, int8s, n, func(x []int8) bool {
6382 t.Helper()
6383 a := archsimd.LoadInt8x32(x)
6384 g := make([]int32, 4)
6385 f(a).Store(g)
6386 w := want(x)
6387 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6388 })
6389 }
6390
6391
6392
6393 func testInt16x16ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Int16x16) archsimd.Int32x4, want func(x []int16) []int32) {
6394 n := 16
6395 t.Helper()
6396 forSlice(t, int16s, n, func(x []int16) bool {
6397 t.Helper()
6398 a := archsimd.LoadInt16x16(x)
6399 g := make([]int32, 4)
6400 f(a).Store(g)
6401 w := want(x)
6402 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6403 })
6404 }
6405
6406
6407
6408 func testInt32x8ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Int32x8) archsimd.Int32x4, want func(x []int32) []int32) {
6409 n := 8
6410 t.Helper()
6411 forSlice(t, int32s, n, func(x []int32) bool {
6412 t.Helper()
6413 a := archsimd.LoadInt32x8(x)
6414 g := make([]int32, 4)
6415 f(a).Store(g)
6416 w := want(x)
6417 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6418 })
6419 }
6420
6421
6422
6423 func testInt64x4ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Int64x4) archsimd.Int32x4, want func(x []int64) []int32) {
6424 n := 4
6425 t.Helper()
6426 forSlice(t, int64s, n, func(x []int64) bool {
6427 t.Helper()
6428 a := archsimd.LoadInt64x4(x)
6429 g := make([]int32, 4)
6430 f(a).Store(g)
6431 w := want(x)
6432 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6433 })
6434 }
6435
6436
6437
6438 func testUint8x32ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Int32x4, want func(x []uint8) []int32) {
6439 n := 32
6440 t.Helper()
6441 forSlice(t, uint8s, n, func(x []uint8) bool {
6442 t.Helper()
6443 a := archsimd.LoadUint8x32(x)
6444 g := make([]int32, 4)
6445 f(a).Store(g)
6446 w := want(x)
6447 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6448 })
6449 }
6450
6451
6452
6453 func testUint16x16ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Int32x4, want func(x []uint16) []int32) {
6454 n := 16
6455 t.Helper()
6456 forSlice(t, uint16s, n, func(x []uint16) bool {
6457 t.Helper()
6458 a := archsimd.LoadUint16x16(x)
6459 g := make([]int32, 4)
6460 f(a).Store(g)
6461 w := want(x)
6462 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6463 })
6464 }
6465
6466
6467
6468 func testUint32x8ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Int32x4, want func(x []uint32) []int32) {
6469 n := 8
6470 t.Helper()
6471 forSlice(t, uint32s, n, func(x []uint32) bool {
6472 t.Helper()
6473 a := archsimd.LoadUint32x8(x)
6474 g := make([]int32, 4)
6475 f(a).Store(g)
6476 w := want(x)
6477 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6478 })
6479 }
6480
6481
6482
6483 func testUint64x4ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Int32x4, want func(x []uint64) []int32) {
6484 n := 4
6485 t.Helper()
6486 forSlice(t, uint64s, n, func(x []uint64) bool {
6487 t.Helper()
6488 a := archsimd.LoadUint64x4(x)
6489 g := make([]int32, 4)
6490 f(a).Store(g)
6491 w := want(x)
6492 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6493 })
6494 }
6495
6496
6497
6498 func testInt8x64ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Int8x64) archsimd.Int32x4, want func(x []int8) []int32) {
6499 n := 64
6500 t.Helper()
6501 forSlice(t, int8s, n, func(x []int8) bool {
6502 t.Helper()
6503 a := archsimd.LoadInt8x64(x)
6504 g := make([]int32, 4)
6505 f(a).Store(g)
6506 w := want(x)
6507 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6508 })
6509 }
6510
6511
6512
6513 func testInt16x32ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Int16x32) archsimd.Int32x4, want func(x []int16) []int32) {
6514 n := 32
6515 t.Helper()
6516 forSlice(t, int16s, n, func(x []int16) bool {
6517 t.Helper()
6518 a := archsimd.LoadInt16x32(x)
6519 g := make([]int32, 4)
6520 f(a).Store(g)
6521 w := want(x)
6522 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6523 })
6524 }
6525
6526
6527
6528 func testInt32x16ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Int32x16) archsimd.Int32x4, want func(x []int32) []int32) {
6529 n := 16
6530 t.Helper()
6531 forSlice(t, int32s, n, func(x []int32) bool {
6532 t.Helper()
6533 a := archsimd.LoadInt32x16(x)
6534 g := make([]int32, 4)
6535 f(a).Store(g)
6536 w := want(x)
6537 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6538 })
6539 }
6540
6541
6542
6543 func testInt64x8ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Int64x8) archsimd.Int32x4, want func(x []int64) []int32) {
6544 n := 8
6545 t.Helper()
6546 forSlice(t, int64s, n, func(x []int64) bool {
6547 t.Helper()
6548 a := archsimd.LoadInt64x8(x)
6549 g := make([]int32, 4)
6550 f(a).Store(g)
6551 w := want(x)
6552 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6553 })
6554 }
6555
6556
6557
6558 func testUint8x64ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Int32x4, want func(x []uint8) []int32) {
6559 n := 64
6560 t.Helper()
6561 forSlice(t, uint8s, n, func(x []uint8) bool {
6562 t.Helper()
6563 a := archsimd.LoadUint8x64(x)
6564 g := make([]int32, 4)
6565 f(a).Store(g)
6566 w := want(x)
6567 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6568 })
6569 }
6570
6571
6572
6573 func testUint16x32ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Int32x4, want func(x []uint16) []int32) {
6574 n := 32
6575 t.Helper()
6576 forSlice(t, uint16s, n, func(x []uint16) bool {
6577 t.Helper()
6578 a := archsimd.LoadUint16x32(x)
6579 g := make([]int32, 4)
6580 f(a).Store(g)
6581 w := want(x)
6582 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6583 })
6584 }
6585
6586
6587
6588 func testUint32x16ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Int32x4, want func(x []uint32) []int32) {
6589 n := 16
6590 t.Helper()
6591 forSlice(t, uint32s, n, func(x []uint32) bool {
6592 t.Helper()
6593 a := archsimd.LoadUint32x16(x)
6594 g := make([]int32, 4)
6595 f(a).Store(g)
6596 w := want(x)
6597 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6598 })
6599 }
6600
6601
6602
6603 func testUint64x8ConvertLoToInt32x4(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Int32x4, want func(x []uint64) []int32) {
6604 n := 8
6605 t.Helper()
6606 forSlice(t, uint64s, n, func(x []uint64) bool {
6607 t.Helper()
6608 a := archsimd.LoadUint64x8(x)
6609 g := make([]int32, 4)
6610 f(a).Store(g)
6611 w := want(x)
6612 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6613 })
6614 }
6615
6616
6617
6618 func testInt8x16ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Int8x16) archsimd.Int32x8, want func(x []int8) []int32) {
6619 n := 16
6620 t.Helper()
6621 forSlice(t, int8s, n, func(x []int8) bool {
6622 t.Helper()
6623 a := archsimd.LoadInt8x16(x)
6624 g := make([]int32, 8)
6625 f(a).Store(g)
6626 w := want(x)
6627 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6628 })
6629 }
6630
6631
6632
6633 func testInt16x8ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Int16x8) archsimd.Int32x8, want func(x []int16) []int32) {
6634 n := 8
6635 t.Helper()
6636 forSlice(t, int16s, n, func(x []int16) bool {
6637 t.Helper()
6638 a := archsimd.LoadInt16x8(x)
6639 g := make([]int32, 8)
6640 f(a).Store(g)
6641 w := want(x)
6642 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6643 })
6644 }
6645
6646
6647
6648 func testInt32x4ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Int32x4) archsimd.Int32x8, want func(x []int32) []int32) {
6649 n := 4
6650 t.Helper()
6651 forSlice(t, int32s, n, func(x []int32) bool {
6652 t.Helper()
6653 a := archsimd.LoadInt32x4(x)
6654 g := make([]int32, 8)
6655 f(a).Store(g)
6656 w := want(x)
6657 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6658 })
6659 }
6660
6661
6662
6663 func testInt64x2ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Int64x2) archsimd.Int32x8, want func(x []int64) []int32) {
6664 n := 2
6665 t.Helper()
6666 forSlice(t, int64s, n, func(x []int64) bool {
6667 t.Helper()
6668 a := archsimd.LoadInt64x2(x)
6669 g := make([]int32, 8)
6670 f(a).Store(g)
6671 w := want(x)
6672 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6673 })
6674 }
6675
6676
6677
6678 func testUint8x16ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Int32x8, want func(x []uint8) []int32) {
6679 n := 16
6680 t.Helper()
6681 forSlice(t, uint8s, n, func(x []uint8) bool {
6682 t.Helper()
6683 a := archsimd.LoadUint8x16(x)
6684 g := make([]int32, 8)
6685 f(a).Store(g)
6686 w := want(x)
6687 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6688 })
6689 }
6690
6691
6692
6693 func testUint16x8ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Int32x8, want func(x []uint16) []int32) {
6694 n := 8
6695 t.Helper()
6696 forSlice(t, uint16s, n, func(x []uint16) bool {
6697 t.Helper()
6698 a := archsimd.LoadUint16x8(x)
6699 g := make([]int32, 8)
6700 f(a).Store(g)
6701 w := want(x)
6702 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6703 })
6704 }
6705
6706
6707
6708 func testUint32x4ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Int32x8, want func(x []uint32) []int32) {
6709 n := 4
6710 t.Helper()
6711 forSlice(t, uint32s, n, func(x []uint32) bool {
6712 t.Helper()
6713 a := archsimd.LoadUint32x4(x)
6714 g := make([]int32, 8)
6715 f(a).Store(g)
6716 w := want(x)
6717 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6718 })
6719 }
6720
6721
6722
6723 func testUint64x2ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Int32x8, want func(x []uint64) []int32) {
6724 n := 2
6725 t.Helper()
6726 forSlice(t, uint64s, n, func(x []uint64) bool {
6727 t.Helper()
6728 a := archsimd.LoadUint64x2(x)
6729 g := make([]int32, 8)
6730 f(a).Store(g)
6731 w := want(x)
6732 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6733 })
6734 }
6735
6736
6737
6738 func testInt8x32ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Int8x32) archsimd.Int32x8, want func(x []int8) []int32) {
6739 n := 32
6740 t.Helper()
6741 forSlice(t, int8s, n, func(x []int8) bool {
6742 t.Helper()
6743 a := archsimd.LoadInt8x32(x)
6744 g := make([]int32, 8)
6745 f(a).Store(g)
6746 w := want(x)
6747 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6748 })
6749 }
6750
6751
6752
6753 func testInt16x16ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Int16x16) archsimd.Int32x8, want func(x []int16) []int32) {
6754 n := 16
6755 t.Helper()
6756 forSlice(t, int16s, n, func(x []int16) bool {
6757 t.Helper()
6758 a := archsimd.LoadInt16x16(x)
6759 g := make([]int32, 8)
6760 f(a).Store(g)
6761 w := want(x)
6762 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6763 })
6764 }
6765
6766
6767
6768 func testInt32x8ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Int32x8) archsimd.Int32x8, want func(x []int32) []int32) {
6769 n := 8
6770 t.Helper()
6771 forSlice(t, int32s, n, func(x []int32) bool {
6772 t.Helper()
6773 a := archsimd.LoadInt32x8(x)
6774 g := make([]int32, 8)
6775 f(a).Store(g)
6776 w := want(x)
6777 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6778 })
6779 }
6780
6781
6782
6783 func testInt64x4ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Int64x4) archsimd.Int32x8, want func(x []int64) []int32) {
6784 n := 4
6785 t.Helper()
6786 forSlice(t, int64s, n, func(x []int64) bool {
6787 t.Helper()
6788 a := archsimd.LoadInt64x4(x)
6789 g := make([]int32, 8)
6790 f(a).Store(g)
6791 w := want(x)
6792 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6793 })
6794 }
6795
6796
6797
6798 func testUint8x32ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Int32x8, want func(x []uint8) []int32) {
6799 n := 32
6800 t.Helper()
6801 forSlice(t, uint8s, n, func(x []uint8) bool {
6802 t.Helper()
6803 a := archsimd.LoadUint8x32(x)
6804 g := make([]int32, 8)
6805 f(a).Store(g)
6806 w := want(x)
6807 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6808 })
6809 }
6810
6811
6812
6813 func testUint16x16ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Int32x8, want func(x []uint16) []int32) {
6814 n := 16
6815 t.Helper()
6816 forSlice(t, uint16s, n, func(x []uint16) bool {
6817 t.Helper()
6818 a := archsimd.LoadUint16x16(x)
6819 g := make([]int32, 8)
6820 f(a).Store(g)
6821 w := want(x)
6822 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6823 })
6824 }
6825
6826
6827
6828 func testUint32x8ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Int32x8, want func(x []uint32) []int32) {
6829 n := 8
6830 t.Helper()
6831 forSlice(t, uint32s, n, func(x []uint32) bool {
6832 t.Helper()
6833 a := archsimd.LoadUint32x8(x)
6834 g := make([]int32, 8)
6835 f(a).Store(g)
6836 w := want(x)
6837 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6838 })
6839 }
6840
6841
6842
6843 func testUint64x4ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Int32x8, want func(x []uint64) []int32) {
6844 n := 4
6845 t.Helper()
6846 forSlice(t, uint64s, n, func(x []uint64) bool {
6847 t.Helper()
6848 a := archsimd.LoadUint64x4(x)
6849 g := make([]int32, 8)
6850 f(a).Store(g)
6851 w := want(x)
6852 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6853 })
6854 }
6855
6856
6857
6858 func testInt8x64ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Int8x64) archsimd.Int32x8, want func(x []int8) []int32) {
6859 n := 64
6860 t.Helper()
6861 forSlice(t, int8s, n, func(x []int8) bool {
6862 t.Helper()
6863 a := archsimd.LoadInt8x64(x)
6864 g := make([]int32, 8)
6865 f(a).Store(g)
6866 w := want(x)
6867 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6868 })
6869 }
6870
6871
6872
6873 func testInt16x32ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Int16x32) archsimd.Int32x8, want func(x []int16) []int32) {
6874 n := 32
6875 t.Helper()
6876 forSlice(t, int16s, n, func(x []int16) bool {
6877 t.Helper()
6878 a := archsimd.LoadInt16x32(x)
6879 g := make([]int32, 8)
6880 f(a).Store(g)
6881 w := want(x)
6882 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6883 })
6884 }
6885
6886
6887
6888 func testInt32x16ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Int32x16) archsimd.Int32x8, want func(x []int32) []int32) {
6889 n := 16
6890 t.Helper()
6891 forSlice(t, int32s, n, func(x []int32) bool {
6892 t.Helper()
6893 a := archsimd.LoadInt32x16(x)
6894 g := make([]int32, 8)
6895 f(a).Store(g)
6896 w := want(x)
6897 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6898 })
6899 }
6900
6901
6902
6903 func testInt64x8ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Int64x8) archsimd.Int32x8, want func(x []int64) []int32) {
6904 n := 8
6905 t.Helper()
6906 forSlice(t, int64s, n, func(x []int64) bool {
6907 t.Helper()
6908 a := archsimd.LoadInt64x8(x)
6909 g := make([]int32, 8)
6910 f(a).Store(g)
6911 w := want(x)
6912 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6913 })
6914 }
6915
6916
6917
6918 func testUint8x64ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Int32x8, want func(x []uint8) []int32) {
6919 n := 64
6920 t.Helper()
6921 forSlice(t, uint8s, n, func(x []uint8) bool {
6922 t.Helper()
6923 a := archsimd.LoadUint8x64(x)
6924 g := make([]int32, 8)
6925 f(a).Store(g)
6926 w := want(x)
6927 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6928 })
6929 }
6930
6931
6932
6933 func testUint16x32ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Int32x8, want func(x []uint16) []int32) {
6934 n := 32
6935 t.Helper()
6936 forSlice(t, uint16s, n, func(x []uint16) bool {
6937 t.Helper()
6938 a := archsimd.LoadUint16x32(x)
6939 g := make([]int32, 8)
6940 f(a).Store(g)
6941 w := want(x)
6942 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6943 })
6944 }
6945
6946
6947
6948 func testUint32x16ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Int32x8, want func(x []uint32) []int32) {
6949 n := 16
6950 t.Helper()
6951 forSlice(t, uint32s, n, func(x []uint32) bool {
6952 t.Helper()
6953 a := archsimd.LoadUint32x16(x)
6954 g := make([]int32, 8)
6955 f(a).Store(g)
6956 w := want(x)
6957 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6958 })
6959 }
6960
6961
6962
6963 func testUint64x8ConvertLoToInt32x8(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Int32x8, want func(x []uint64) []int32) {
6964 n := 8
6965 t.Helper()
6966 forSlice(t, uint64s, n, func(x []uint64) bool {
6967 t.Helper()
6968 a := archsimd.LoadUint64x8(x)
6969 g := make([]int32, 8)
6970 f(a).Store(g)
6971 w := want(x)
6972 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6973 })
6974 }
6975
6976
6977
6978 func testInt8x16ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Int8x16) archsimd.Uint32x4, want func(x []int8) []uint32) {
6979 n := 16
6980 t.Helper()
6981 forSlice(t, int8s, n, func(x []int8) bool {
6982 t.Helper()
6983 a := archsimd.LoadInt8x16(x)
6984 g := make([]uint32, 4)
6985 f(a).Store(g)
6986 w := want(x)
6987 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
6988 })
6989 }
6990
6991
6992
6993 func testInt16x8ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Int16x8) archsimd.Uint32x4, want func(x []int16) []uint32) {
6994 n := 8
6995 t.Helper()
6996 forSlice(t, int16s, n, func(x []int16) bool {
6997 t.Helper()
6998 a := archsimd.LoadInt16x8(x)
6999 g := make([]uint32, 4)
7000 f(a).Store(g)
7001 w := want(x)
7002 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7003 })
7004 }
7005
7006
7007
7008 func testInt32x4ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Int32x4) archsimd.Uint32x4, want func(x []int32) []uint32) {
7009 n := 4
7010 t.Helper()
7011 forSlice(t, int32s, n, func(x []int32) bool {
7012 t.Helper()
7013 a := archsimd.LoadInt32x4(x)
7014 g := make([]uint32, 4)
7015 f(a).Store(g)
7016 w := want(x)
7017 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7018 })
7019 }
7020
7021
7022
7023 func testInt64x2ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Int64x2) archsimd.Uint32x4, want func(x []int64) []uint32) {
7024 n := 2
7025 t.Helper()
7026 forSlice(t, int64s, n, func(x []int64) bool {
7027 t.Helper()
7028 a := archsimd.LoadInt64x2(x)
7029 g := make([]uint32, 4)
7030 f(a).Store(g)
7031 w := want(x)
7032 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7033 })
7034 }
7035
7036
7037
7038 func testUint8x16ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Uint32x4, want func(x []uint8) []uint32) {
7039 n := 16
7040 t.Helper()
7041 forSlice(t, uint8s, n, func(x []uint8) bool {
7042 t.Helper()
7043 a := archsimd.LoadUint8x16(x)
7044 g := make([]uint32, 4)
7045 f(a).Store(g)
7046 w := want(x)
7047 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7048 })
7049 }
7050
7051
7052
7053 func testUint16x8ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Uint32x4, want func(x []uint16) []uint32) {
7054 n := 8
7055 t.Helper()
7056 forSlice(t, uint16s, n, func(x []uint16) bool {
7057 t.Helper()
7058 a := archsimd.LoadUint16x8(x)
7059 g := make([]uint32, 4)
7060 f(a).Store(g)
7061 w := want(x)
7062 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7063 })
7064 }
7065
7066
7067
7068 func testUint32x4ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Uint32x4, want func(x []uint32) []uint32) {
7069 n := 4
7070 t.Helper()
7071 forSlice(t, uint32s, n, func(x []uint32) bool {
7072 t.Helper()
7073 a := archsimd.LoadUint32x4(x)
7074 g := make([]uint32, 4)
7075 f(a).Store(g)
7076 w := want(x)
7077 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7078 })
7079 }
7080
7081
7082
7083 func testUint64x2ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Uint32x4, want func(x []uint64) []uint32) {
7084 n := 2
7085 t.Helper()
7086 forSlice(t, uint64s, n, func(x []uint64) bool {
7087 t.Helper()
7088 a := archsimd.LoadUint64x2(x)
7089 g := make([]uint32, 4)
7090 f(a).Store(g)
7091 w := want(x)
7092 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7093 })
7094 }
7095
7096
7097
7098 func testInt8x32ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Int8x32) archsimd.Uint32x4, want func(x []int8) []uint32) {
7099 n := 32
7100 t.Helper()
7101 forSlice(t, int8s, n, func(x []int8) bool {
7102 t.Helper()
7103 a := archsimd.LoadInt8x32(x)
7104 g := make([]uint32, 4)
7105 f(a).Store(g)
7106 w := want(x)
7107 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7108 })
7109 }
7110
7111
7112
7113 func testInt16x16ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Int16x16) archsimd.Uint32x4, want func(x []int16) []uint32) {
7114 n := 16
7115 t.Helper()
7116 forSlice(t, int16s, n, func(x []int16) bool {
7117 t.Helper()
7118 a := archsimd.LoadInt16x16(x)
7119 g := make([]uint32, 4)
7120 f(a).Store(g)
7121 w := want(x)
7122 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7123 })
7124 }
7125
7126
7127
7128 func testInt32x8ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Int32x8) archsimd.Uint32x4, want func(x []int32) []uint32) {
7129 n := 8
7130 t.Helper()
7131 forSlice(t, int32s, n, func(x []int32) bool {
7132 t.Helper()
7133 a := archsimd.LoadInt32x8(x)
7134 g := make([]uint32, 4)
7135 f(a).Store(g)
7136 w := want(x)
7137 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7138 })
7139 }
7140
7141
7142
7143 func testInt64x4ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Int64x4) archsimd.Uint32x4, want func(x []int64) []uint32) {
7144 n := 4
7145 t.Helper()
7146 forSlice(t, int64s, n, func(x []int64) bool {
7147 t.Helper()
7148 a := archsimd.LoadInt64x4(x)
7149 g := make([]uint32, 4)
7150 f(a).Store(g)
7151 w := want(x)
7152 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7153 })
7154 }
7155
7156
7157
7158 func testUint8x32ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Uint32x4, want func(x []uint8) []uint32) {
7159 n := 32
7160 t.Helper()
7161 forSlice(t, uint8s, n, func(x []uint8) bool {
7162 t.Helper()
7163 a := archsimd.LoadUint8x32(x)
7164 g := make([]uint32, 4)
7165 f(a).Store(g)
7166 w := want(x)
7167 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7168 })
7169 }
7170
7171
7172
7173 func testUint16x16ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Uint32x4, want func(x []uint16) []uint32) {
7174 n := 16
7175 t.Helper()
7176 forSlice(t, uint16s, n, func(x []uint16) bool {
7177 t.Helper()
7178 a := archsimd.LoadUint16x16(x)
7179 g := make([]uint32, 4)
7180 f(a).Store(g)
7181 w := want(x)
7182 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7183 })
7184 }
7185
7186
7187
7188 func testUint32x8ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Uint32x4, want func(x []uint32) []uint32) {
7189 n := 8
7190 t.Helper()
7191 forSlice(t, uint32s, n, func(x []uint32) bool {
7192 t.Helper()
7193 a := archsimd.LoadUint32x8(x)
7194 g := make([]uint32, 4)
7195 f(a).Store(g)
7196 w := want(x)
7197 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7198 })
7199 }
7200
7201
7202
7203 func testUint64x4ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Uint32x4, want func(x []uint64) []uint32) {
7204 n := 4
7205 t.Helper()
7206 forSlice(t, uint64s, n, func(x []uint64) bool {
7207 t.Helper()
7208 a := archsimd.LoadUint64x4(x)
7209 g := make([]uint32, 4)
7210 f(a).Store(g)
7211 w := want(x)
7212 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7213 })
7214 }
7215
7216
7217
7218 func testInt8x64ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Int8x64) archsimd.Uint32x4, want func(x []int8) []uint32) {
7219 n := 64
7220 t.Helper()
7221 forSlice(t, int8s, n, func(x []int8) bool {
7222 t.Helper()
7223 a := archsimd.LoadInt8x64(x)
7224 g := make([]uint32, 4)
7225 f(a).Store(g)
7226 w := want(x)
7227 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7228 })
7229 }
7230
7231
7232
7233 func testInt16x32ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Int16x32) archsimd.Uint32x4, want func(x []int16) []uint32) {
7234 n := 32
7235 t.Helper()
7236 forSlice(t, int16s, n, func(x []int16) bool {
7237 t.Helper()
7238 a := archsimd.LoadInt16x32(x)
7239 g := make([]uint32, 4)
7240 f(a).Store(g)
7241 w := want(x)
7242 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7243 })
7244 }
7245
7246
7247
7248 func testInt32x16ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Int32x16) archsimd.Uint32x4, want func(x []int32) []uint32) {
7249 n := 16
7250 t.Helper()
7251 forSlice(t, int32s, n, func(x []int32) bool {
7252 t.Helper()
7253 a := archsimd.LoadInt32x16(x)
7254 g := make([]uint32, 4)
7255 f(a).Store(g)
7256 w := want(x)
7257 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7258 })
7259 }
7260
7261
7262
7263 func testInt64x8ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Int64x8) archsimd.Uint32x4, want func(x []int64) []uint32) {
7264 n := 8
7265 t.Helper()
7266 forSlice(t, int64s, n, func(x []int64) bool {
7267 t.Helper()
7268 a := archsimd.LoadInt64x8(x)
7269 g := make([]uint32, 4)
7270 f(a).Store(g)
7271 w := want(x)
7272 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7273 })
7274 }
7275
7276
7277
7278 func testUint8x64ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Uint32x4, want func(x []uint8) []uint32) {
7279 n := 64
7280 t.Helper()
7281 forSlice(t, uint8s, n, func(x []uint8) bool {
7282 t.Helper()
7283 a := archsimd.LoadUint8x64(x)
7284 g := make([]uint32, 4)
7285 f(a).Store(g)
7286 w := want(x)
7287 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7288 })
7289 }
7290
7291
7292
7293 func testUint16x32ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Uint32x4, want func(x []uint16) []uint32) {
7294 n := 32
7295 t.Helper()
7296 forSlice(t, uint16s, n, func(x []uint16) bool {
7297 t.Helper()
7298 a := archsimd.LoadUint16x32(x)
7299 g := make([]uint32, 4)
7300 f(a).Store(g)
7301 w := want(x)
7302 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7303 })
7304 }
7305
7306
7307
7308 func testUint32x16ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Uint32x4, want func(x []uint32) []uint32) {
7309 n := 16
7310 t.Helper()
7311 forSlice(t, uint32s, n, func(x []uint32) bool {
7312 t.Helper()
7313 a := archsimd.LoadUint32x16(x)
7314 g := make([]uint32, 4)
7315 f(a).Store(g)
7316 w := want(x)
7317 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7318 })
7319 }
7320
7321
7322
7323 func testUint64x8ConvertLoToUint32x4(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Uint32x4, want func(x []uint64) []uint32) {
7324 n := 8
7325 t.Helper()
7326 forSlice(t, uint64s, n, func(x []uint64) bool {
7327 t.Helper()
7328 a := archsimd.LoadUint64x8(x)
7329 g := make([]uint32, 4)
7330 f(a).Store(g)
7331 w := want(x)
7332 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7333 })
7334 }
7335
7336
7337
7338 func testInt8x16ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Int8x16) archsimd.Uint32x8, want func(x []int8) []uint32) {
7339 n := 16
7340 t.Helper()
7341 forSlice(t, int8s, n, func(x []int8) bool {
7342 t.Helper()
7343 a := archsimd.LoadInt8x16(x)
7344 g := make([]uint32, 8)
7345 f(a).Store(g)
7346 w := want(x)
7347 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7348 })
7349 }
7350
7351
7352
7353 func testInt16x8ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Int16x8) archsimd.Uint32x8, want func(x []int16) []uint32) {
7354 n := 8
7355 t.Helper()
7356 forSlice(t, int16s, n, func(x []int16) bool {
7357 t.Helper()
7358 a := archsimd.LoadInt16x8(x)
7359 g := make([]uint32, 8)
7360 f(a).Store(g)
7361 w := want(x)
7362 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7363 })
7364 }
7365
7366
7367
7368 func testInt32x4ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Int32x4) archsimd.Uint32x8, want func(x []int32) []uint32) {
7369 n := 4
7370 t.Helper()
7371 forSlice(t, int32s, n, func(x []int32) bool {
7372 t.Helper()
7373 a := archsimd.LoadInt32x4(x)
7374 g := make([]uint32, 8)
7375 f(a).Store(g)
7376 w := want(x)
7377 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7378 })
7379 }
7380
7381
7382
7383 func testInt64x2ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Int64x2) archsimd.Uint32x8, want func(x []int64) []uint32) {
7384 n := 2
7385 t.Helper()
7386 forSlice(t, int64s, n, func(x []int64) bool {
7387 t.Helper()
7388 a := archsimd.LoadInt64x2(x)
7389 g := make([]uint32, 8)
7390 f(a).Store(g)
7391 w := want(x)
7392 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7393 })
7394 }
7395
7396
7397
7398 func testUint8x16ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Uint32x8, want func(x []uint8) []uint32) {
7399 n := 16
7400 t.Helper()
7401 forSlice(t, uint8s, n, func(x []uint8) bool {
7402 t.Helper()
7403 a := archsimd.LoadUint8x16(x)
7404 g := make([]uint32, 8)
7405 f(a).Store(g)
7406 w := want(x)
7407 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7408 })
7409 }
7410
7411
7412
7413 func testUint16x8ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Uint32x8, want func(x []uint16) []uint32) {
7414 n := 8
7415 t.Helper()
7416 forSlice(t, uint16s, n, func(x []uint16) bool {
7417 t.Helper()
7418 a := archsimd.LoadUint16x8(x)
7419 g := make([]uint32, 8)
7420 f(a).Store(g)
7421 w := want(x)
7422 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7423 })
7424 }
7425
7426
7427
7428 func testUint32x4ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Uint32x8, want func(x []uint32) []uint32) {
7429 n := 4
7430 t.Helper()
7431 forSlice(t, uint32s, n, func(x []uint32) bool {
7432 t.Helper()
7433 a := archsimd.LoadUint32x4(x)
7434 g := make([]uint32, 8)
7435 f(a).Store(g)
7436 w := want(x)
7437 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7438 })
7439 }
7440
7441
7442
7443 func testUint64x2ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Uint32x8, want func(x []uint64) []uint32) {
7444 n := 2
7445 t.Helper()
7446 forSlice(t, uint64s, n, func(x []uint64) bool {
7447 t.Helper()
7448 a := archsimd.LoadUint64x2(x)
7449 g := make([]uint32, 8)
7450 f(a).Store(g)
7451 w := want(x)
7452 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7453 })
7454 }
7455
7456
7457
7458 func testInt8x32ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Int8x32) archsimd.Uint32x8, want func(x []int8) []uint32) {
7459 n := 32
7460 t.Helper()
7461 forSlice(t, int8s, n, func(x []int8) bool {
7462 t.Helper()
7463 a := archsimd.LoadInt8x32(x)
7464 g := make([]uint32, 8)
7465 f(a).Store(g)
7466 w := want(x)
7467 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7468 })
7469 }
7470
7471
7472
7473 func testInt16x16ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Int16x16) archsimd.Uint32x8, want func(x []int16) []uint32) {
7474 n := 16
7475 t.Helper()
7476 forSlice(t, int16s, n, func(x []int16) bool {
7477 t.Helper()
7478 a := archsimd.LoadInt16x16(x)
7479 g := make([]uint32, 8)
7480 f(a).Store(g)
7481 w := want(x)
7482 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7483 })
7484 }
7485
7486
7487
7488 func testInt32x8ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Int32x8) archsimd.Uint32x8, want func(x []int32) []uint32) {
7489 n := 8
7490 t.Helper()
7491 forSlice(t, int32s, n, func(x []int32) bool {
7492 t.Helper()
7493 a := archsimd.LoadInt32x8(x)
7494 g := make([]uint32, 8)
7495 f(a).Store(g)
7496 w := want(x)
7497 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7498 })
7499 }
7500
7501
7502
7503 func testInt64x4ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Int64x4) archsimd.Uint32x8, want func(x []int64) []uint32) {
7504 n := 4
7505 t.Helper()
7506 forSlice(t, int64s, n, func(x []int64) bool {
7507 t.Helper()
7508 a := archsimd.LoadInt64x4(x)
7509 g := make([]uint32, 8)
7510 f(a).Store(g)
7511 w := want(x)
7512 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7513 })
7514 }
7515
7516
7517
7518 func testUint8x32ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Uint32x8, want func(x []uint8) []uint32) {
7519 n := 32
7520 t.Helper()
7521 forSlice(t, uint8s, n, func(x []uint8) bool {
7522 t.Helper()
7523 a := archsimd.LoadUint8x32(x)
7524 g := make([]uint32, 8)
7525 f(a).Store(g)
7526 w := want(x)
7527 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7528 })
7529 }
7530
7531
7532
7533 func testUint16x16ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Uint32x8, want func(x []uint16) []uint32) {
7534 n := 16
7535 t.Helper()
7536 forSlice(t, uint16s, n, func(x []uint16) bool {
7537 t.Helper()
7538 a := archsimd.LoadUint16x16(x)
7539 g := make([]uint32, 8)
7540 f(a).Store(g)
7541 w := want(x)
7542 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7543 })
7544 }
7545
7546
7547
7548 func testUint32x8ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Uint32x8, want func(x []uint32) []uint32) {
7549 n := 8
7550 t.Helper()
7551 forSlice(t, uint32s, n, func(x []uint32) bool {
7552 t.Helper()
7553 a := archsimd.LoadUint32x8(x)
7554 g := make([]uint32, 8)
7555 f(a).Store(g)
7556 w := want(x)
7557 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7558 })
7559 }
7560
7561
7562
7563 func testUint64x4ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Uint32x8, want func(x []uint64) []uint32) {
7564 n := 4
7565 t.Helper()
7566 forSlice(t, uint64s, n, func(x []uint64) bool {
7567 t.Helper()
7568 a := archsimd.LoadUint64x4(x)
7569 g := make([]uint32, 8)
7570 f(a).Store(g)
7571 w := want(x)
7572 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7573 })
7574 }
7575
7576
7577
7578 func testInt8x64ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Int8x64) archsimd.Uint32x8, want func(x []int8) []uint32) {
7579 n := 64
7580 t.Helper()
7581 forSlice(t, int8s, n, func(x []int8) bool {
7582 t.Helper()
7583 a := archsimd.LoadInt8x64(x)
7584 g := make([]uint32, 8)
7585 f(a).Store(g)
7586 w := want(x)
7587 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7588 })
7589 }
7590
7591
7592
7593 func testInt16x32ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Int16x32) archsimd.Uint32x8, want func(x []int16) []uint32) {
7594 n := 32
7595 t.Helper()
7596 forSlice(t, int16s, n, func(x []int16) bool {
7597 t.Helper()
7598 a := archsimd.LoadInt16x32(x)
7599 g := make([]uint32, 8)
7600 f(a).Store(g)
7601 w := want(x)
7602 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7603 })
7604 }
7605
7606
7607
7608 func testInt32x16ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Int32x16) archsimd.Uint32x8, want func(x []int32) []uint32) {
7609 n := 16
7610 t.Helper()
7611 forSlice(t, int32s, n, func(x []int32) bool {
7612 t.Helper()
7613 a := archsimd.LoadInt32x16(x)
7614 g := make([]uint32, 8)
7615 f(a).Store(g)
7616 w := want(x)
7617 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7618 })
7619 }
7620
7621
7622
7623 func testInt64x8ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Int64x8) archsimd.Uint32x8, want func(x []int64) []uint32) {
7624 n := 8
7625 t.Helper()
7626 forSlice(t, int64s, n, func(x []int64) bool {
7627 t.Helper()
7628 a := archsimd.LoadInt64x8(x)
7629 g := make([]uint32, 8)
7630 f(a).Store(g)
7631 w := want(x)
7632 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7633 })
7634 }
7635
7636
7637
7638 func testUint8x64ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Uint32x8, want func(x []uint8) []uint32) {
7639 n := 64
7640 t.Helper()
7641 forSlice(t, uint8s, n, func(x []uint8) bool {
7642 t.Helper()
7643 a := archsimd.LoadUint8x64(x)
7644 g := make([]uint32, 8)
7645 f(a).Store(g)
7646 w := want(x)
7647 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7648 })
7649 }
7650
7651
7652
7653 func testUint16x32ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Uint32x8, want func(x []uint16) []uint32) {
7654 n := 32
7655 t.Helper()
7656 forSlice(t, uint16s, n, func(x []uint16) bool {
7657 t.Helper()
7658 a := archsimd.LoadUint16x32(x)
7659 g := make([]uint32, 8)
7660 f(a).Store(g)
7661 w := want(x)
7662 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7663 })
7664 }
7665
7666
7667
7668 func testUint32x16ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Uint32x8, want func(x []uint32) []uint32) {
7669 n := 16
7670 t.Helper()
7671 forSlice(t, uint32s, n, func(x []uint32) bool {
7672 t.Helper()
7673 a := archsimd.LoadUint32x16(x)
7674 g := make([]uint32, 8)
7675 f(a).Store(g)
7676 w := want(x)
7677 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7678 })
7679 }
7680
7681
7682
7683 func testUint64x8ConvertLoToUint32x8(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Uint32x8, want func(x []uint64) []uint32) {
7684 n := 8
7685 t.Helper()
7686 forSlice(t, uint64s, n, func(x []uint64) bool {
7687 t.Helper()
7688 a := archsimd.LoadUint64x8(x)
7689 g := make([]uint32, 8)
7690 f(a).Store(g)
7691 w := want(x)
7692 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7693 })
7694 }
7695
7696
7697
7698 func testInt8x16ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Int8x16) archsimd.Int16x8, want func(x []int8) []int16) {
7699 n := 16
7700 t.Helper()
7701 forSlice(t, int8s, n, func(x []int8) bool {
7702 t.Helper()
7703 a := archsimd.LoadInt8x16(x)
7704 g := make([]int16, 8)
7705 f(a).Store(g)
7706 w := want(x)
7707 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7708 })
7709 }
7710
7711
7712
7713 func testInt16x8ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Int16x8) archsimd.Int16x8, want func(x []int16) []int16) {
7714 n := 8
7715 t.Helper()
7716 forSlice(t, int16s, n, func(x []int16) bool {
7717 t.Helper()
7718 a := archsimd.LoadInt16x8(x)
7719 g := make([]int16, 8)
7720 f(a).Store(g)
7721 w := want(x)
7722 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7723 })
7724 }
7725
7726
7727
7728 func testInt32x4ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Int32x4) archsimd.Int16x8, want func(x []int32) []int16) {
7729 n := 4
7730 t.Helper()
7731 forSlice(t, int32s, n, func(x []int32) bool {
7732 t.Helper()
7733 a := archsimd.LoadInt32x4(x)
7734 g := make([]int16, 8)
7735 f(a).Store(g)
7736 w := want(x)
7737 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7738 })
7739 }
7740
7741
7742
7743 func testInt64x2ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Int64x2) archsimd.Int16x8, want func(x []int64) []int16) {
7744 n := 2
7745 t.Helper()
7746 forSlice(t, int64s, n, func(x []int64) bool {
7747 t.Helper()
7748 a := archsimd.LoadInt64x2(x)
7749 g := make([]int16, 8)
7750 f(a).Store(g)
7751 w := want(x)
7752 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7753 })
7754 }
7755
7756
7757
7758 func testUint8x16ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Int16x8, want func(x []uint8) []int16) {
7759 n := 16
7760 t.Helper()
7761 forSlice(t, uint8s, n, func(x []uint8) bool {
7762 t.Helper()
7763 a := archsimd.LoadUint8x16(x)
7764 g := make([]int16, 8)
7765 f(a).Store(g)
7766 w := want(x)
7767 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7768 })
7769 }
7770
7771
7772
7773 func testUint16x8ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Int16x8, want func(x []uint16) []int16) {
7774 n := 8
7775 t.Helper()
7776 forSlice(t, uint16s, n, func(x []uint16) bool {
7777 t.Helper()
7778 a := archsimd.LoadUint16x8(x)
7779 g := make([]int16, 8)
7780 f(a).Store(g)
7781 w := want(x)
7782 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7783 })
7784 }
7785
7786
7787
7788 func testUint32x4ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Int16x8, want func(x []uint32) []int16) {
7789 n := 4
7790 t.Helper()
7791 forSlice(t, uint32s, n, func(x []uint32) bool {
7792 t.Helper()
7793 a := archsimd.LoadUint32x4(x)
7794 g := make([]int16, 8)
7795 f(a).Store(g)
7796 w := want(x)
7797 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7798 })
7799 }
7800
7801
7802
7803 func testUint64x2ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Int16x8, want func(x []uint64) []int16) {
7804 n := 2
7805 t.Helper()
7806 forSlice(t, uint64s, n, func(x []uint64) bool {
7807 t.Helper()
7808 a := archsimd.LoadUint64x2(x)
7809 g := make([]int16, 8)
7810 f(a).Store(g)
7811 w := want(x)
7812 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7813 })
7814 }
7815
7816
7817
7818 func testInt8x32ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Int8x32) archsimd.Int16x8, want func(x []int8) []int16) {
7819 n := 32
7820 t.Helper()
7821 forSlice(t, int8s, n, func(x []int8) bool {
7822 t.Helper()
7823 a := archsimd.LoadInt8x32(x)
7824 g := make([]int16, 8)
7825 f(a).Store(g)
7826 w := want(x)
7827 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7828 })
7829 }
7830
7831
7832
7833 func testInt16x16ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Int16x16) archsimd.Int16x8, want func(x []int16) []int16) {
7834 n := 16
7835 t.Helper()
7836 forSlice(t, int16s, n, func(x []int16) bool {
7837 t.Helper()
7838 a := archsimd.LoadInt16x16(x)
7839 g := make([]int16, 8)
7840 f(a).Store(g)
7841 w := want(x)
7842 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7843 })
7844 }
7845
7846
7847
7848 func testInt32x8ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Int32x8) archsimd.Int16x8, want func(x []int32) []int16) {
7849 n := 8
7850 t.Helper()
7851 forSlice(t, int32s, n, func(x []int32) bool {
7852 t.Helper()
7853 a := archsimd.LoadInt32x8(x)
7854 g := make([]int16, 8)
7855 f(a).Store(g)
7856 w := want(x)
7857 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7858 })
7859 }
7860
7861
7862
7863 func testInt64x4ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Int64x4) archsimd.Int16x8, want func(x []int64) []int16) {
7864 n := 4
7865 t.Helper()
7866 forSlice(t, int64s, n, func(x []int64) bool {
7867 t.Helper()
7868 a := archsimd.LoadInt64x4(x)
7869 g := make([]int16, 8)
7870 f(a).Store(g)
7871 w := want(x)
7872 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7873 })
7874 }
7875
7876
7877
7878 func testUint8x32ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Int16x8, want func(x []uint8) []int16) {
7879 n := 32
7880 t.Helper()
7881 forSlice(t, uint8s, n, func(x []uint8) bool {
7882 t.Helper()
7883 a := archsimd.LoadUint8x32(x)
7884 g := make([]int16, 8)
7885 f(a).Store(g)
7886 w := want(x)
7887 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7888 })
7889 }
7890
7891
7892
7893 func testUint16x16ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Int16x8, want func(x []uint16) []int16) {
7894 n := 16
7895 t.Helper()
7896 forSlice(t, uint16s, n, func(x []uint16) bool {
7897 t.Helper()
7898 a := archsimd.LoadUint16x16(x)
7899 g := make([]int16, 8)
7900 f(a).Store(g)
7901 w := want(x)
7902 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7903 })
7904 }
7905
7906
7907
7908 func testUint32x8ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Int16x8, want func(x []uint32) []int16) {
7909 n := 8
7910 t.Helper()
7911 forSlice(t, uint32s, n, func(x []uint32) bool {
7912 t.Helper()
7913 a := archsimd.LoadUint32x8(x)
7914 g := make([]int16, 8)
7915 f(a).Store(g)
7916 w := want(x)
7917 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7918 })
7919 }
7920
7921
7922
7923 func testUint64x4ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Int16x8, want func(x []uint64) []int16) {
7924 n := 4
7925 t.Helper()
7926 forSlice(t, uint64s, n, func(x []uint64) bool {
7927 t.Helper()
7928 a := archsimd.LoadUint64x4(x)
7929 g := make([]int16, 8)
7930 f(a).Store(g)
7931 w := want(x)
7932 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7933 })
7934 }
7935
7936
7937
7938 func testInt8x64ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Int8x64) archsimd.Int16x8, want func(x []int8) []int16) {
7939 n := 64
7940 t.Helper()
7941 forSlice(t, int8s, n, func(x []int8) bool {
7942 t.Helper()
7943 a := archsimd.LoadInt8x64(x)
7944 g := make([]int16, 8)
7945 f(a).Store(g)
7946 w := want(x)
7947 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7948 })
7949 }
7950
7951
7952
7953 func testInt16x32ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Int16x32) archsimd.Int16x8, want func(x []int16) []int16) {
7954 n := 32
7955 t.Helper()
7956 forSlice(t, int16s, n, func(x []int16) bool {
7957 t.Helper()
7958 a := archsimd.LoadInt16x32(x)
7959 g := make([]int16, 8)
7960 f(a).Store(g)
7961 w := want(x)
7962 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7963 })
7964 }
7965
7966
7967
7968 func testInt32x16ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Int32x16) archsimd.Int16x8, want func(x []int32) []int16) {
7969 n := 16
7970 t.Helper()
7971 forSlice(t, int32s, n, func(x []int32) bool {
7972 t.Helper()
7973 a := archsimd.LoadInt32x16(x)
7974 g := make([]int16, 8)
7975 f(a).Store(g)
7976 w := want(x)
7977 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7978 })
7979 }
7980
7981
7982
7983 func testInt64x8ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Int64x8) archsimd.Int16x8, want func(x []int64) []int16) {
7984 n := 8
7985 t.Helper()
7986 forSlice(t, int64s, n, func(x []int64) bool {
7987 t.Helper()
7988 a := archsimd.LoadInt64x8(x)
7989 g := make([]int16, 8)
7990 f(a).Store(g)
7991 w := want(x)
7992 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
7993 })
7994 }
7995
7996
7997
7998 func testUint8x64ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Int16x8, want func(x []uint8) []int16) {
7999 n := 64
8000 t.Helper()
8001 forSlice(t, uint8s, n, func(x []uint8) bool {
8002 t.Helper()
8003 a := archsimd.LoadUint8x64(x)
8004 g := make([]int16, 8)
8005 f(a).Store(g)
8006 w := want(x)
8007 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8008 })
8009 }
8010
8011
8012
8013 func testUint16x32ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Int16x8, want func(x []uint16) []int16) {
8014 n := 32
8015 t.Helper()
8016 forSlice(t, uint16s, n, func(x []uint16) bool {
8017 t.Helper()
8018 a := archsimd.LoadUint16x32(x)
8019 g := make([]int16, 8)
8020 f(a).Store(g)
8021 w := want(x)
8022 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8023 })
8024 }
8025
8026
8027
8028 func testUint32x16ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Int16x8, want func(x []uint32) []int16) {
8029 n := 16
8030 t.Helper()
8031 forSlice(t, uint32s, n, func(x []uint32) bool {
8032 t.Helper()
8033 a := archsimd.LoadUint32x16(x)
8034 g := make([]int16, 8)
8035 f(a).Store(g)
8036 w := want(x)
8037 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8038 })
8039 }
8040
8041
8042
8043 func testUint64x8ConvertLoToInt16x8(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Int16x8, want func(x []uint64) []int16) {
8044 n := 8
8045 t.Helper()
8046 forSlice(t, uint64s, n, func(x []uint64) bool {
8047 t.Helper()
8048 a := archsimd.LoadUint64x8(x)
8049 g := make([]int16, 8)
8050 f(a).Store(g)
8051 w := want(x)
8052 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8053 })
8054 }
8055
8056
8057
8058 func testInt8x16ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Int8x16) archsimd.Uint16x8, want func(x []int8) []uint16) {
8059 n := 16
8060 t.Helper()
8061 forSlice(t, int8s, n, func(x []int8) bool {
8062 t.Helper()
8063 a := archsimd.LoadInt8x16(x)
8064 g := make([]uint16, 8)
8065 f(a).Store(g)
8066 w := want(x)
8067 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8068 })
8069 }
8070
8071
8072
8073 func testInt16x8ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Int16x8) archsimd.Uint16x8, want func(x []int16) []uint16) {
8074 n := 8
8075 t.Helper()
8076 forSlice(t, int16s, n, func(x []int16) bool {
8077 t.Helper()
8078 a := archsimd.LoadInt16x8(x)
8079 g := make([]uint16, 8)
8080 f(a).Store(g)
8081 w := want(x)
8082 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8083 })
8084 }
8085
8086
8087
8088 func testInt32x4ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Int32x4) archsimd.Uint16x8, want func(x []int32) []uint16) {
8089 n := 4
8090 t.Helper()
8091 forSlice(t, int32s, n, func(x []int32) bool {
8092 t.Helper()
8093 a := archsimd.LoadInt32x4(x)
8094 g := make([]uint16, 8)
8095 f(a).Store(g)
8096 w := want(x)
8097 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8098 })
8099 }
8100
8101
8102
8103 func testInt64x2ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Int64x2) archsimd.Uint16x8, want func(x []int64) []uint16) {
8104 n := 2
8105 t.Helper()
8106 forSlice(t, int64s, n, func(x []int64) bool {
8107 t.Helper()
8108 a := archsimd.LoadInt64x2(x)
8109 g := make([]uint16, 8)
8110 f(a).Store(g)
8111 w := want(x)
8112 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8113 })
8114 }
8115
8116
8117
8118 func testUint8x16ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Uint8x16) archsimd.Uint16x8, want func(x []uint8) []uint16) {
8119 n := 16
8120 t.Helper()
8121 forSlice(t, uint8s, n, func(x []uint8) bool {
8122 t.Helper()
8123 a := archsimd.LoadUint8x16(x)
8124 g := make([]uint16, 8)
8125 f(a).Store(g)
8126 w := want(x)
8127 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8128 })
8129 }
8130
8131
8132
8133 func testUint16x8ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Uint16x8) archsimd.Uint16x8, want func(x []uint16) []uint16) {
8134 n := 8
8135 t.Helper()
8136 forSlice(t, uint16s, n, func(x []uint16) bool {
8137 t.Helper()
8138 a := archsimd.LoadUint16x8(x)
8139 g := make([]uint16, 8)
8140 f(a).Store(g)
8141 w := want(x)
8142 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8143 })
8144 }
8145
8146
8147
8148 func testUint32x4ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Uint32x4) archsimd.Uint16x8, want func(x []uint32) []uint16) {
8149 n := 4
8150 t.Helper()
8151 forSlice(t, uint32s, n, func(x []uint32) bool {
8152 t.Helper()
8153 a := archsimd.LoadUint32x4(x)
8154 g := make([]uint16, 8)
8155 f(a).Store(g)
8156 w := want(x)
8157 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8158 })
8159 }
8160
8161
8162
8163 func testUint64x2ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Uint64x2) archsimd.Uint16x8, want func(x []uint64) []uint16) {
8164 n := 2
8165 t.Helper()
8166 forSlice(t, uint64s, n, func(x []uint64) bool {
8167 t.Helper()
8168 a := archsimd.LoadUint64x2(x)
8169 g := make([]uint16, 8)
8170 f(a).Store(g)
8171 w := want(x)
8172 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8173 })
8174 }
8175
8176
8177
8178 func testInt8x32ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Int8x32) archsimd.Uint16x8, want func(x []int8) []uint16) {
8179 n := 32
8180 t.Helper()
8181 forSlice(t, int8s, n, func(x []int8) bool {
8182 t.Helper()
8183 a := archsimd.LoadInt8x32(x)
8184 g := make([]uint16, 8)
8185 f(a).Store(g)
8186 w := want(x)
8187 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8188 })
8189 }
8190
8191
8192
8193 func testInt16x16ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Int16x16) archsimd.Uint16x8, want func(x []int16) []uint16) {
8194 n := 16
8195 t.Helper()
8196 forSlice(t, int16s, n, func(x []int16) bool {
8197 t.Helper()
8198 a := archsimd.LoadInt16x16(x)
8199 g := make([]uint16, 8)
8200 f(a).Store(g)
8201 w := want(x)
8202 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8203 })
8204 }
8205
8206
8207
8208 func testInt32x8ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Int32x8) archsimd.Uint16x8, want func(x []int32) []uint16) {
8209 n := 8
8210 t.Helper()
8211 forSlice(t, int32s, n, func(x []int32) bool {
8212 t.Helper()
8213 a := archsimd.LoadInt32x8(x)
8214 g := make([]uint16, 8)
8215 f(a).Store(g)
8216 w := want(x)
8217 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8218 })
8219 }
8220
8221
8222
8223 func testInt64x4ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Int64x4) archsimd.Uint16x8, want func(x []int64) []uint16) {
8224 n := 4
8225 t.Helper()
8226 forSlice(t, int64s, n, func(x []int64) bool {
8227 t.Helper()
8228 a := archsimd.LoadInt64x4(x)
8229 g := make([]uint16, 8)
8230 f(a).Store(g)
8231 w := want(x)
8232 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8233 })
8234 }
8235
8236
8237
8238 func testUint8x32ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Uint8x32) archsimd.Uint16x8, want func(x []uint8) []uint16) {
8239 n := 32
8240 t.Helper()
8241 forSlice(t, uint8s, n, func(x []uint8) bool {
8242 t.Helper()
8243 a := archsimd.LoadUint8x32(x)
8244 g := make([]uint16, 8)
8245 f(a).Store(g)
8246 w := want(x)
8247 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8248 })
8249 }
8250
8251
8252
8253 func testUint16x16ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Uint16x16) archsimd.Uint16x8, want func(x []uint16) []uint16) {
8254 n := 16
8255 t.Helper()
8256 forSlice(t, uint16s, n, func(x []uint16) bool {
8257 t.Helper()
8258 a := archsimd.LoadUint16x16(x)
8259 g := make([]uint16, 8)
8260 f(a).Store(g)
8261 w := want(x)
8262 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8263 })
8264 }
8265
8266
8267
8268 func testUint32x8ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Uint32x8) archsimd.Uint16x8, want func(x []uint32) []uint16) {
8269 n := 8
8270 t.Helper()
8271 forSlice(t, uint32s, n, func(x []uint32) bool {
8272 t.Helper()
8273 a := archsimd.LoadUint32x8(x)
8274 g := make([]uint16, 8)
8275 f(a).Store(g)
8276 w := want(x)
8277 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8278 })
8279 }
8280
8281
8282
8283 func testUint64x4ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Uint64x4) archsimd.Uint16x8, want func(x []uint64) []uint16) {
8284 n := 4
8285 t.Helper()
8286 forSlice(t, uint64s, n, func(x []uint64) bool {
8287 t.Helper()
8288 a := archsimd.LoadUint64x4(x)
8289 g := make([]uint16, 8)
8290 f(a).Store(g)
8291 w := want(x)
8292 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8293 })
8294 }
8295
8296
8297
8298 func testInt8x64ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Int8x64) archsimd.Uint16x8, want func(x []int8) []uint16) {
8299 n := 64
8300 t.Helper()
8301 forSlice(t, int8s, n, func(x []int8) bool {
8302 t.Helper()
8303 a := archsimd.LoadInt8x64(x)
8304 g := make([]uint16, 8)
8305 f(a).Store(g)
8306 w := want(x)
8307 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8308 })
8309 }
8310
8311
8312
8313 func testInt16x32ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Int16x32) archsimd.Uint16x8, want func(x []int16) []uint16) {
8314 n := 32
8315 t.Helper()
8316 forSlice(t, int16s, n, func(x []int16) bool {
8317 t.Helper()
8318 a := archsimd.LoadInt16x32(x)
8319 g := make([]uint16, 8)
8320 f(a).Store(g)
8321 w := want(x)
8322 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8323 })
8324 }
8325
8326
8327
8328 func testInt32x16ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Int32x16) archsimd.Uint16x8, want func(x []int32) []uint16) {
8329 n := 16
8330 t.Helper()
8331 forSlice(t, int32s, n, func(x []int32) bool {
8332 t.Helper()
8333 a := archsimd.LoadInt32x16(x)
8334 g := make([]uint16, 8)
8335 f(a).Store(g)
8336 w := want(x)
8337 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8338 })
8339 }
8340
8341
8342
8343 func testInt64x8ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Int64x8) archsimd.Uint16x8, want func(x []int64) []uint16) {
8344 n := 8
8345 t.Helper()
8346 forSlice(t, int64s, n, func(x []int64) bool {
8347 t.Helper()
8348 a := archsimd.LoadInt64x8(x)
8349 g := make([]uint16, 8)
8350 f(a).Store(g)
8351 w := want(x)
8352 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8353 })
8354 }
8355
8356
8357
8358 func testUint8x64ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Uint8x64) archsimd.Uint16x8, want func(x []uint8) []uint16) {
8359 n := 64
8360 t.Helper()
8361 forSlice(t, uint8s, n, func(x []uint8) bool {
8362 t.Helper()
8363 a := archsimd.LoadUint8x64(x)
8364 g := make([]uint16, 8)
8365 f(a).Store(g)
8366 w := want(x)
8367 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8368 })
8369 }
8370
8371
8372
8373 func testUint16x32ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Uint16x32) archsimd.Uint16x8, want func(x []uint16) []uint16) {
8374 n := 32
8375 t.Helper()
8376 forSlice(t, uint16s, n, func(x []uint16) bool {
8377 t.Helper()
8378 a := archsimd.LoadUint16x32(x)
8379 g := make([]uint16, 8)
8380 f(a).Store(g)
8381 w := want(x)
8382 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8383 })
8384 }
8385
8386
8387
8388 func testUint32x16ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Uint32x16) archsimd.Uint16x8, want func(x []uint32) []uint16) {
8389 n := 16
8390 t.Helper()
8391 forSlice(t, uint32s, n, func(x []uint32) bool {
8392 t.Helper()
8393 a := archsimd.LoadUint32x16(x)
8394 g := make([]uint16, 8)
8395 f(a).Store(g)
8396 w := want(x)
8397 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8398 })
8399 }
8400
8401
8402
8403 func testUint64x8ConvertLoToUint16x8(t *testing.T, f func(x archsimd.Uint64x8) archsimd.Uint16x8, want func(x []uint64) []uint16) {
8404 n := 8
8405 t.Helper()
8406 forSlice(t, uint64s, n, func(x []uint64) bool {
8407 t.Helper()
8408 a := archsimd.LoadUint64x8(x)
8409 g := make([]uint16, 8)
8410 f(a).Store(g)
8411 w := want(x)
8412 return checkSlicesLogInput(t, g, w, 0.0, func() { t.Helper(); t.Logf("x=%v", x) })
8413 })
8414 }
8415
8416
8417
8418 func testFloat32x4UnaryFlaky(t *testing.T, f func(x archsimd.Float32x4) archsimd.Float32x4, want func(x []float32) []float32, flakiness float64) {
8419 n := 4
8420 t.Helper()
8421 forSlice(t, float32s, n, func(x []float32) bool {
8422 t.Helper()
8423 a := archsimd.LoadFloat32x4(x)
8424 g := make([]float32, n)
8425 f(a).Store(g)
8426 w := want(x)
8427 return checkSlicesLogInput(t, g, w, flakiness, func() { t.Helper(); t.Logf("x=%v", x) })
8428 })
8429 }
8430
8431
8432
8433 func testFloat64x2UnaryFlaky(t *testing.T, f func(x archsimd.Float64x2) archsimd.Float64x2, want func(x []float64) []float64, flakiness float64) {
8434 n := 2
8435 t.Helper()
8436 forSlice(t, float64s, n, func(x []float64) bool {
8437 t.Helper()
8438 a := archsimd.LoadFloat64x2(x)
8439 g := make([]float64, n)
8440 f(a).Store(g)
8441 w := want(x)
8442 return checkSlicesLogInput(t, g, w, flakiness, func() { t.Helper(); t.Logf("x=%v", x) })
8443 })
8444 }
8445
8446
8447
8448 func testFloat32x8UnaryFlaky(t *testing.T, f func(x archsimd.Float32x8) archsimd.Float32x8, want func(x []float32) []float32, flakiness float64) {
8449 n := 8
8450 t.Helper()
8451 forSlice(t, float32s, n, func(x []float32) bool {
8452 t.Helper()
8453 a := archsimd.LoadFloat32x8(x)
8454 g := make([]float32, n)
8455 f(a).Store(g)
8456 w := want(x)
8457 return checkSlicesLogInput(t, g, w, flakiness, func() { t.Helper(); t.Logf("x=%v", x) })
8458 })
8459 }
8460
8461
8462
8463 func testFloat64x4UnaryFlaky(t *testing.T, f func(x archsimd.Float64x4) archsimd.Float64x4, want func(x []float64) []float64, flakiness float64) {
8464 n := 4
8465 t.Helper()
8466 forSlice(t, float64s, n, func(x []float64) bool {
8467 t.Helper()
8468 a := archsimd.LoadFloat64x4(x)
8469 g := make([]float64, n)
8470 f(a).Store(g)
8471 w := want(x)
8472 return checkSlicesLogInput(t, g, w, flakiness, func() { t.Helper(); t.Logf("x=%v", x) })
8473 })
8474 }
8475
8476
8477
8478 func testFloat32x16UnaryFlaky(t *testing.T, f func(x archsimd.Float32x16) archsimd.Float32x16, want func(x []float32) []float32, flakiness float64) {
8479 n := 16
8480 t.Helper()
8481 forSlice(t, float32s, n, func(x []float32) bool {
8482 t.Helper()
8483 a := archsimd.LoadFloat32x16(x)
8484 g := make([]float32, n)
8485 f(a).Store(g)
8486 w := want(x)
8487 return checkSlicesLogInput(t, g, w, flakiness, func() { t.Helper(); t.Logf("x=%v", x) })
8488 })
8489 }
8490
8491
8492
8493 func testFloat64x8UnaryFlaky(t *testing.T, f func(x archsimd.Float64x8) archsimd.Float64x8, want func(x []float64) []float64, flakiness float64) {
8494 n := 8
8495 t.Helper()
8496 forSlice(t, float64s, n, func(x []float64) bool {
8497 t.Helper()
8498 a := archsimd.LoadFloat64x8(x)
8499 g := make([]float64, n)
8500 f(a).Store(g)
8501 w := want(x)
8502 return checkSlicesLogInput(t, g, w, flakiness, func() { t.Helper(); t.Logf("x=%v", x) })
8503 })
8504 }
8505
View as plain text