File: set.c

package info (click to toggle)
simde 0.8.2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie, trixie-backports
  • size: 58,264 kB
  • sloc: ansic: 817,393; sh: 315; makefile: 45; python: 26
file content (1456 lines) | stat: -rw-r--r-- 138,314 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
/* SPDX-License-Identifier: MIT
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use, copy,
 * modify, merge, publish, distribute, sublicense, and/or sell copies
 * of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 *
 * Copyright:
 *   2020      Evan Nemerson <evan@nemerson.com>
 */

#define SIMDE_TEST_X86_AVX512_INSN set

#include <test/x86/avx512/test-avx512.h>
#include <simde/x86/avx512/set.h>

static int
test_simde_mm512_set_epi8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const int8_t a[64];
    const int8_t r[64];
  } test_vec[] = {
    { {  INT8_C(  83),  INT8_C(  58),  INT8_C(  10),  INT8_C(  67), -INT8_C(  56), -INT8_C(  81), -INT8_C( 100),  INT8_C(  82),
        -INT8_C(   7),  INT8_C(  93), -INT8_C( 108), -INT8_C(  84), -INT8_C(  80), -INT8_C(  17), -INT8_C(  12),  INT8_C(  15),
             INT8_MIN,  INT8_C(  43), -INT8_C(  48), -INT8_C(  20),  INT8_C( 126), -INT8_C( 118),  INT8_C(   4),  INT8_C( 113),
         INT8_C(   4),  INT8_C( 115),  INT8_C(  93),  INT8_C(  20), -INT8_C(  25),  INT8_C(  42), -INT8_C(  91),  INT8_C(  58),
         INT8_C( 100), -INT8_C(  81),  INT8_C( 126),  INT8_C(  44),  INT8_C(  95),  INT8_C(  26),  INT8_C( 126),  INT8_C(  88),
         INT8_C( 119),  INT8_C(  19),  INT8_C(   4),  INT8_C(  39),  INT8_C(   2), -INT8_C(   8),  INT8_C(  54), -INT8_C( 126),
         INT8_C(  36),  INT8_C(   7),  INT8_C( 110), -INT8_C(  94), -INT8_C( 111),  INT8_C( 114),  INT8_C(  19), -INT8_C( 107),
        -INT8_C(  27),  INT8_C( 112), -INT8_C(  86), -INT8_C(  52), -INT8_C( 102),  INT8_C(  79),  INT8_C(   7), -INT8_C(   2) },
      {  INT8_C(  83),  INT8_C(  58),  INT8_C(  10),  INT8_C(  67), -INT8_C(  56), -INT8_C(  81), -INT8_C( 100),  INT8_C(  82),
        -INT8_C(   7),  INT8_C(  93), -INT8_C( 108), -INT8_C(  84), -INT8_C(  80), -INT8_C(  17), -INT8_C(  12),  INT8_C(  15),
             INT8_MIN,  INT8_C(  43), -INT8_C(  48), -INT8_C(  20),  INT8_C( 126), -INT8_C( 118),  INT8_C(   4),  INT8_C( 113),
         INT8_C(   4),  INT8_C( 115),  INT8_C(  93),  INT8_C(  20), -INT8_C(  25),  INT8_C(  42), -INT8_C(  91),  INT8_C(  58),
         INT8_C( 100), -INT8_C(  81),  INT8_C( 126),  INT8_C(  44),  INT8_C(  95),  INT8_C(  26),  INT8_C( 126),  INT8_C(  88),
         INT8_C( 119),  INT8_C(  19),  INT8_C(   4),  INT8_C(  39),  INT8_C(   2), -INT8_C(   8),  INT8_C(  54), -INT8_C( 126),
         INT8_C(  36),  INT8_C(   7),  INT8_C( 110), -INT8_C(  94), -INT8_C( 111),  INT8_C( 114),  INT8_C(  19), -INT8_C( 107),
        -INT8_C(  27),  INT8_C( 112), -INT8_C(  86), -INT8_C(  52), -INT8_C( 102),  INT8_C(  79),  INT8_C(   7), -INT8_C(   2) } },
    { { -INT8_C(   1), -INT8_C( 123),  INT8_C(  42),  INT8_C(  94), -INT8_C(  97), -INT8_C(  87), -INT8_C(  74),  INT8_C(  22),
        -INT8_C(  68), -INT8_C(  70),  INT8_C(  61), -INT8_C(  66), -INT8_C(  78),  INT8_C( 115),  INT8_C(  64), -INT8_C(  42),
         INT8_C( 122), -INT8_C(  82),  INT8_C( 120),  INT8_C(  12),  INT8_C(  32), -INT8_C( 116), -INT8_C(  95),  INT8_C(   6),
        -INT8_C(   4),  INT8_C(  75), -INT8_C(  46), -INT8_C( 105), -INT8_C( 101), -INT8_C(  39), -INT8_C( 107), -INT8_C( 102),
         INT8_C(  94), -INT8_C(  64), -INT8_C(   8), -INT8_C(   3),  INT8_C( 105), -INT8_C(  82),  INT8_C(  19),  INT8_C(  37),
         INT8_C( 104),  INT8_C(  80), -INT8_C(  29),  INT8_C(  26), -INT8_C(  60),  INT8_C(  35), -INT8_C(  15),  INT8_C(  62),
        -INT8_C(  47),  INT8_C( 105),  INT8_C(  74), -INT8_C(  15), -INT8_C(  11), -INT8_C(  20), -INT8_C(   9), -INT8_C(  14),
         INT8_C(  55), -INT8_C(  54), -INT8_C( 119), -INT8_C(  46), -INT8_C(  93),  INT8_C(  30),  INT8_C( 108),  INT8_C(   2) },
      { -INT8_C(   1), -INT8_C( 123),  INT8_C(  42),  INT8_C(  94), -INT8_C(  97), -INT8_C(  87), -INT8_C(  74),  INT8_C(  22),
        -INT8_C(  68), -INT8_C(  70),  INT8_C(  61), -INT8_C(  66), -INT8_C(  78),  INT8_C( 115),  INT8_C(  64), -INT8_C(  42),
         INT8_C( 122), -INT8_C(  82),  INT8_C( 120),  INT8_C(  12),  INT8_C(  32), -INT8_C( 116), -INT8_C(  95),  INT8_C(   6),
        -INT8_C(   4),  INT8_C(  75), -INT8_C(  46), -INT8_C( 105), -INT8_C( 101), -INT8_C(  39), -INT8_C( 107), -INT8_C( 102),
         INT8_C(  94), -INT8_C(  64), -INT8_C(   8), -INT8_C(   3),  INT8_C( 105), -INT8_C(  82),  INT8_C(  19),  INT8_C(  37),
         INT8_C( 104),  INT8_C(  80), -INT8_C(  29),  INT8_C(  26), -INT8_C(  60),  INT8_C(  35), -INT8_C(  15),  INT8_C(  62),
        -INT8_C(  47),  INT8_C( 105),  INT8_C(  74), -INT8_C(  15), -INT8_C(  11), -INT8_C(  20), -INT8_C(   9), -INT8_C(  14),
         INT8_C(  55), -INT8_C(  54), -INT8_C( 119), -INT8_C(  46), -INT8_C(  93),  INT8_C(  30),  INT8_C( 108),  INT8_C(   2) } },
    { { -INT8_C(  34),  INT8_C( 100), -INT8_C(   1),  INT8_C(  71),  INT8_C(  18),  INT8_C(  19),  INT8_C( 108),  INT8_C( 122),
         INT8_C(  99),  INT8_C(  79), -INT8_C( 107),  INT8_C(  39),  INT8_C( 114), -INT8_C( 122),  INT8_C( 102),  INT8_C(  67),
        -INT8_C(  17), -INT8_C(  80),  INT8_C(  53), -INT8_C(  27), -INT8_C( 100),  INT8_C(  44), -INT8_C(  41), -INT8_C(  44),
        -INT8_C(  10),  INT8_C(  96), -INT8_C(  90), -INT8_C( 102),  INT8_C( 126),  INT8_C(  19), -INT8_C( 100),  INT8_C(  93),
         INT8_C( 119), -INT8_C( 101), -INT8_C(  92), -INT8_C( 118), -INT8_C(  82),  INT8_C(  17),  INT8_C(   4),  INT8_C(  18),
         INT8_C(  96), -INT8_C( 103),  INT8_C(  57), -INT8_C(  45),  INT8_C(  31), -INT8_C(  97),  INT8_C(  22),  INT8_C(  15),
         INT8_C(  80),  INT8_C(  75), -INT8_C(  12), -INT8_C(  20),  INT8_C( 120), -INT8_C(  53), -INT8_C(  64),  INT8_C( 110),
         INT8_C(  43),  INT8_C( 103),  INT8_C(   8), -INT8_C(  87),  INT8_C( 122), -INT8_C(  92),  INT8_C(   6), -INT8_C(  15) },
      { -INT8_C(  34),  INT8_C( 100), -INT8_C(   1),  INT8_C(  71),  INT8_C(  18),  INT8_C(  19),  INT8_C( 108),  INT8_C( 122),
         INT8_C(  99),  INT8_C(  79), -INT8_C( 107),  INT8_C(  39),  INT8_C( 114), -INT8_C( 122),  INT8_C( 102),  INT8_C(  67),
        -INT8_C(  17), -INT8_C(  80),  INT8_C(  53), -INT8_C(  27), -INT8_C( 100),  INT8_C(  44), -INT8_C(  41), -INT8_C(  44),
        -INT8_C(  10),  INT8_C(  96), -INT8_C(  90), -INT8_C( 102),  INT8_C( 126),  INT8_C(  19), -INT8_C( 100),  INT8_C(  93),
         INT8_C( 119), -INT8_C( 101), -INT8_C(  92), -INT8_C( 118), -INT8_C(  82),  INT8_C(  17),  INT8_C(   4),  INT8_C(  18),
         INT8_C(  96), -INT8_C( 103),  INT8_C(  57), -INT8_C(  45),  INT8_C(  31), -INT8_C(  97),  INT8_C(  22),  INT8_C(  15),
         INT8_C(  80),  INT8_C(  75), -INT8_C(  12), -INT8_C(  20),  INT8_C( 120), -INT8_C(  53), -INT8_C(  64),  INT8_C( 110),
         INT8_C(  43),  INT8_C( 103),  INT8_C(   8), -INT8_C(  87),  INT8_C( 122), -INT8_C(  92),  INT8_C(   6), -INT8_C(  15) } },
    { {  INT8_C(  64), -INT8_C(  85),  INT8_C( 123), -INT8_C(  18), -INT8_C(  68),      INT8_MIN,  INT8_C(   0),  INT8_C(  28),
         INT8_C(  25),  INT8_C(  58), -INT8_C(  17),  INT8_C(  57), -INT8_C(  39),  INT8_C(   6),  INT8_C(  72),  INT8_C(  41),
         INT8_C(  81),  INT8_C(  60),  INT8_C(  22), -INT8_C(  55),  INT8_C(   7), -INT8_C(  42),  INT8_C(  56),  INT8_C(  50),
         INT8_C(  61),  INT8_C(  64), -INT8_C(  37), -INT8_C(  73), -INT8_C(  27), -INT8_C(  30), -INT8_C(  87),  INT8_C(  37),
        -INT8_C( 115),  INT8_C(  36),  INT8_C(  19),  INT8_C(  73), -INT8_C(  92),  INT8_C(  20),  INT8_C( 101), -INT8_C(  66),
         INT8_C(  78),  INT8_C(  85), -INT8_C(   9),  INT8_C(  39),  INT8_C(  91),  INT8_C(  63),  INT8_C(  81), -INT8_C(  84),
         INT8_C( 123),  INT8_C( 103),  INT8_C( 118), -INT8_C( 126),  INT8_C(  61), -INT8_C(  82), -INT8_C(  76),  INT8_C( 123),
        -INT8_C(  18), -INT8_C( 113),  INT8_C(  50), -INT8_C(  45),  INT8_C( 113), -INT8_C(  37), -INT8_C(   8), -INT8_C(   2) },
      {  INT8_C(  64), -INT8_C(  85),  INT8_C( 123), -INT8_C(  18), -INT8_C(  68),      INT8_MIN,  INT8_C(   0),  INT8_C(  28),
         INT8_C(  25),  INT8_C(  58), -INT8_C(  17),  INT8_C(  57), -INT8_C(  39),  INT8_C(   6),  INT8_C(  72),  INT8_C(  41),
         INT8_C(  81),  INT8_C(  60),  INT8_C(  22), -INT8_C(  55),  INT8_C(   7), -INT8_C(  42),  INT8_C(  56),  INT8_C(  50),
         INT8_C(  61),  INT8_C(  64), -INT8_C(  37), -INT8_C(  73), -INT8_C(  27), -INT8_C(  30), -INT8_C(  87),  INT8_C(  37),
        -INT8_C( 115),  INT8_C(  36),  INT8_C(  19),  INT8_C(  73), -INT8_C(  92),  INT8_C(  20),  INT8_C( 101), -INT8_C(  66),
         INT8_C(  78),  INT8_C(  85), -INT8_C(   9),  INT8_C(  39),  INT8_C(  91),  INT8_C(  63),  INT8_C(  81), -INT8_C(  84),
         INT8_C( 123),  INT8_C( 103),  INT8_C( 118), -INT8_C( 126),  INT8_C(  61), -INT8_C(  82), -INT8_C(  76),  INT8_C( 123),
        -INT8_C(  18), -INT8_C( 113),  INT8_C(  50), -INT8_C(  45),  INT8_C( 113), -INT8_C(  37), -INT8_C(   8), -INT8_C(   2) } },
    { {  INT8_C(   0),  INT8_C(  12),  INT8_C(  71), -INT8_C(  92),  INT8_C(  32), -INT8_C(  83),  INT8_C(  98),  INT8_C( 110),
         INT8_C(   2),  INT8_C(  89), -INT8_C( 107),  INT8_C(  93), -INT8_C( 104), -INT8_C(  26),  INT8_C(   9),  INT8_C(  19),
         INT8_C(  77),      INT8_MAX, -INT8_C( 107), -INT8_C( 117),  INT8_C(  45),  INT8_C(  73),  INT8_C(   6),  INT8_C(  28),
        -INT8_C(  39),  INT8_C(  56), -INT8_C(  17),  INT8_C(  74),  INT8_C(  20), -INT8_C(  24),  INT8_C(  73),  INT8_C(  20),
        -INT8_C(  12), -INT8_C( 112), -INT8_C(  72),  INT8_C(  20),  INT8_C(  61),  INT8_C(  27), -INT8_C( 126),  INT8_C(  63),
         INT8_C( 116),  INT8_C(  23), -INT8_C( 100),  INT8_C(  13), -INT8_C(   2), -INT8_C(  90),  INT8_C(  32),  INT8_C(  75),
         INT8_C(  37), -INT8_C(  74), -INT8_C(  42),  INT8_C(  83), -INT8_C(   1), -INT8_C(  36),  INT8_C( 111), -INT8_C(  40),
         INT8_C(  21),  INT8_C(  94),  INT8_C(  35),  INT8_C(  41),  INT8_C(  70),  INT8_C( 108),  INT8_C(  61),  INT8_C(  58) },
      {  INT8_C(   0),  INT8_C(  12),  INT8_C(  71), -INT8_C(  92),  INT8_C(  32), -INT8_C(  83),  INT8_C(  98),  INT8_C( 110),
         INT8_C(   2),  INT8_C(  89), -INT8_C( 107),  INT8_C(  93), -INT8_C( 104), -INT8_C(  26),  INT8_C(   9),  INT8_C(  19),
         INT8_C(  77),      INT8_MAX, -INT8_C( 107), -INT8_C( 117),  INT8_C(  45),  INT8_C(  73),  INT8_C(   6),  INT8_C(  28),
        -INT8_C(  39),  INT8_C(  56), -INT8_C(  17),  INT8_C(  74),  INT8_C(  20), -INT8_C(  24),  INT8_C(  73),  INT8_C(  20),
        -INT8_C(  12), -INT8_C( 112), -INT8_C(  72),  INT8_C(  20),  INT8_C(  61),  INT8_C(  27), -INT8_C( 126),  INT8_C(  63),
         INT8_C( 116),  INT8_C(  23), -INT8_C( 100),  INT8_C(  13), -INT8_C(   2), -INT8_C(  90),  INT8_C(  32),  INT8_C(  75),
         INT8_C(  37), -INT8_C(  74), -INT8_C(  42),  INT8_C(  83), -INT8_C(   1), -INT8_C(  36),  INT8_C( 111), -INT8_C(  40),
         INT8_C(  21),  INT8_C(  94),  INT8_C(  35),  INT8_C(  41),  INT8_C(  70),  INT8_C( 108),  INT8_C(  61),  INT8_C(  58) } },
    { { -INT8_C(   4), -INT8_C(  11),  INT8_C(  78),  INT8_C(  58),  INT8_C(  16), -INT8_C(  48),  INT8_C( 121), -INT8_C( 123),
        -INT8_C(  24),  INT8_C(  22), -INT8_C( 110), -INT8_C(  26), -INT8_C(  68), -INT8_C(  78),  INT8_C(  49), -INT8_C(  31),
         INT8_C( 104),  INT8_C(   8),  INT8_C(  52),  INT8_C( 104), -INT8_C(  28), -INT8_C(  93),  INT8_C(  64), -INT8_C(   7),
         INT8_C(   2),  INT8_C(  99),  INT8_C(  34),  INT8_C(  72), -INT8_C(  49),  INT8_C(  95), -INT8_C( 125), -INT8_C(  52),
         INT8_C(  85), -INT8_C(  47),  INT8_C(   6),  INT8_C( 101), -INT8_C(  94),      INT8_MAX, -INT8_C(  22), -INT8_C( 118),
        -INT8_C( 107),  INT8_C( 124),  INT8_C( 112),  INT8_C(  81),  INT8_C(  47), -INT8_C(  95),  INT8_C(  51), -INT8_C( 105),
        -INT8_C(  87),  INT8_C( 103), -INT8_C(   1), -INT8_C( 114),  INT8_C(  11),  INT8_C(  64), -INT8_C( 121),  INT8_C(  13),
        -INT8_C(  93), -INT8_C(  86),  INT8_C(  85),  INT8_C( 115),  INT8_C(   9), -INT8_C(  40),  INT8_C(  63),  INT8_C(  94) },
      { -INT8_C(   4), -INT8_C(  11),  INT8_C(  78),  INT8_C(  58),  INT8_C(  16), -INT8_C(  48),  INT8_C( 121), -INT8_C( 123),
        -INT8_C(  24),  INT8_C(  22), -INT8_C( 110), -INT8_C(  26), -INT8_C(  68), -INT8_C(  78),  INT8_C(  49), -INT8_C(  31),
         INT8_C( 104),  INT8_C(   8),  INT8_C(  52),  INT8_C( 104), -INT8_C(  28), -INT8_C(  93),  INT8_C(  64), -INT8_C(   7),
         INT8_C(   2),  INT8_C(  99),  INT8_C(  34),  INT8_C(  72), -INT8_C(  49),  INT8_C(  95), -INT8_C( 125), -INT8_C(  52),
         INT8_C(  85), -INT8_C(  47),  INT8_C(   6),  INT8_C( 101), -INT8_C(  94),      INT8_MAX, -INT8_C(  22), -INT8_C( 118),
        -INT8_C( 107),  INT8_C( 124),  INT8_C( 112),  INT8_C(  81),  INT8_C(  47), -INT8_C(  95),  INT8_C(  51), -INT8_C( 105),
        -INT8_C(  87),  INT8_C( 103), -INT8_C(   1), -INT8_C( 114),  INT8_C(  11),  INT8_C(  64), -INT8_C( 121),  INT8_C(  13),
        -INT8_C(  93), -INT8_C(  86),  INT8_C(  85),  INT8_C( 115),  INT8_C(   9), -INT8_C(  40),  INT8_C(  63),  INT8_C(  94) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i r = simde_mm512_set_epi8(
        test_vec[i].a[63], test_vec[i].a[62], test_vec[i].a[61], test_vec[i].a[60],
        test_vec[i].a[59], test_vec[i].a[58], test_vec[i].a[57], test_vec[i].a[56],
        test_vec[i].a[55], test_vec[i].a[54], test_vec[i].a[53], test_vec[i].a[52],
        test_vec[i].a[51], test_vec[i].a[50], test_vec[i].a[49], test_vec[i].a[48],
        test_vec[i].a[47], test_vec[i].a[46], test_vec[i].a[45], test_vec[i].a[44],
        test_vec[i].a[43], test_vec[i].a[42], test_vec[i].a[41], test_vec[i].a[40],
        test_vec[i].a[39], test_vec[i].a[38], test_vec[i].a[37], test_vec[i].a[36],
        test_vec[i].a[35], test_vec[i].a[34], test_vec[i].a[33], test_vec[i].a[32],
        test_vec[i].a[31], test_vec[i].a[30], test_vec[i].a[29], test_vec[i].a[28],
        test_vec[i].a[27], test_vec[i].a[26], test_vec[i].a[25], test_vec[i].a[24],
        test_vec[i].a[23], test_vec[i].a[22], test_vec[i].a[21], test_vec[i].a[20],
        test_vec[i].a[19], test_vec[i].a[18], test_vec[i].a[17], test_vec[i].a[16],
        test_vec[i].a[15], test_vec[i].a[14], test_vec[i].a[13], test_vec[i].a[12],
        test_vec[i].a[11], test_vec[i].a[10], test_vec[i].a[ 9], test_vec[i].a[ 8],
        test_vec[i].a[ 7], test_vec[i].a[ 6], test_vec[i].a[ 5], test_vec[i].a[ 4],
        test_vec[i].a[ 3], test_vec[i].a[ 2], test_vec[i].a[ 1], test_vec[i].a[ 0]);
    simde_test_x86_assert_equal_i8x64(r, simde_mm512_loadu_epi8(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m512i a = simde_test_x86_random_i8x64();
    simde__m512i r = a;

    simde_test_x86_write_i8x64(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_i8x64(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_mm512_set_epi16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const int16_t a[32];
    const int16_t r[32];
  } test_vec[] = {
    { {  INT16_C( 28208),  INT16_C( 11568), -INT16_C( 18520),  INT16_C( 32673), -INT16_C(  5618), -INT16_C( 32516), -INT16_C( 29675), -INT16_C( 30471),
        -INT16_C( 22650), -INT16_C( 27648), -INT16_C( 32156), -INT16_C( 14845), -INT16_C( 31076), -INT16_C(  2753), -INT16_C(  2052),  INT16_C( 11282),
         INT16_C( 17253),  INT16_C(  3418), -INT16_C(  1030),  INT16_C(  2188), -INT16_C( 30235), -INT16_C(  1144), -INT16_C( 32235), -INT16_C( 25469),
        -INT16_C( 31959), -INT16_C( 29392),  INT16_C( 13062), -INT16_C( 23981), -INT16_C( 27974), -INT16_C( 18793), -INT16_C( 21879), -INT16_C(  4125) },
      {  INT16_C( 28208),  INT16_C( 11568), -INT16_C( 18520),  INT16_C( 32673), -INT16_C(  5618), -INT16_C( 32516), -INT16_C( 29675), -INT16_C( 30471),
        -INT16_C( 22650), -INT16_C( 27648), -INT16_C( 32156), -INT16_C( 14845), -INT16_C( 31076), -INT16_C(  2753), -INT16_C(  2052),  INT16_C( 11282),
         INT16_C( 17253),  INT16_C(  3418), -INT16_C(  1030),  INT16_C(  2188), -INT16_C( 30235), -INT16_C(  1144), -INT16_C( 32235), -INT16_C( 25469),
        -INT16_C( 31959), -INT16_C( 29392),  INT16_C( 13062), -INT16_C( 23981), -INT16_C( 27974), -INT16_C( 18793), -INT16_C( 21879), -INT16_C(  4125) } },
    { {  INT16_C( 15853), -INT16_C(  6148), -INT16_C( 30408),  INT16_C(  7919),  INT16_C( 30482),  INT16_C( 10009), -INT16_C( 25351),  INT16_C(  8899),
        -INT16_C(  3296),  INT16_C(  9903),  INT16_C(   807), -INT16_C(  7736),  INT16_C( 24725),  INT16_C(  8087),  INT16_C( 31242), -INT16_C(  2290),
         INT16_C(  2743), -INT16_C(  3874), -INT16_C( 12909), -INT16_C( 23282),  INT16_C( 10052),  INT16_C( 16077), -INT16_C( 28477), -INT16_C(  7328),
         INT16_C(  4228), -INT16_C( 21751), -INT16_C( 11757), -INT16_C( 22388),  INT16_C(  9010),  INT16_C( 15559), -INT16_C( 10850),  INT16_C( 21811) },
      {  INT16_C( 15853), -INT16_C(  6148), -INT16_C( 30408),  INT16_C(  7919),  INT16_C( 30482),  INT16_C( 10009), -INT16_C( 25351),  INT16_C(  8899),
        -INT16_C(  3296),  INT16_C(  9903),  INT16_C(   807), -INT16_C(  7736),  INT16_C( 24725),  INT16_C(  8087),  INT16_C( 31242), -INT16_C(  2290),
         INT16_C(  2743), -INT16_C(  3874), -INT16_C( 12909), -INT16_C( 23282),  INT16_C( 10052),  INT16_C( 16077), -INT16_C( 28477), -INT16_C(  7328),
         INT16_C(  4228), -INT16_C( 21751), -INT16_C( 11757), -INT16_C( 22388),  INT16_C(  9010),  INT16_C( 15559), -INT16_C( 10850),  INT16_C( 21811) } },
    { {  INT16_C(  4576),  INT16_C( 29509),  INT16_C( 21470),  INT16_C(  8729), -INT16_C(  6534),  INT16_C( 15968), -INT16_C( 16010), -INT16_C(  1503),
         INT16_C( 11217), -INT16_C(  7003),  INT16_C( 12797),  INT16_C( 12172),  INT16_C( 21589), -INT16_C(  3221), -INT16_C( 25047),  INT16_C(  2376),
        -INT16_C( 29009), -INT16_C( 29315), -INT16_C( 26911),  INT16_C( 23727),  INT16_C(  4220), -INT16_C(  3430), -INT16_C( 17455), -INT16_C( 23827),
        -INT16_C( 27930), -INT16_C(  7290),  INT16_C(  4804),  INT16_C(  6418),  INT16_C( 32102), -INT16_C( 28660),  INT16_C( 21531), -INT16_C( 13671) },
      {  INT16_C(  4576),  INT16_C( 29509),  INT16_C( 21470),  INT16_C(  8729), -INT16_C(  6534),  INT16_C( 15968), -INT16_C( 16010), -INT16_C(  1503),
         INT16_C( 11217), -INT16_C(  7003),  INT16_C( 12797),  INT16_C( 12172),  INT16_C( 21589), -INT16_C(  3221), -INT16_C( 25047),  INT16_C(  2376),
        -INT16_C( 29009), -INT16_C( 29315), -INT16_C( 26911),  INT16_C( 23727),  INT16_C(  4220), -INT16_C(  3430), -INT16_C( 17455), -INT16_C( 23827),
        -INT16_C( 27930), -INT16_C(  7290),  INT16_C(  4804),  INT16_C(  6418),  INT16_C( 32102), -INT16_C( 28660),  INT16_C( 21531), -INT16_C( 13671) } },
    { {  INT16_C(  5858), -INT16_C( 15273),  INT16_C(  1964),  INT16_C( 10272), -INT16_C( 17897), -INT16_C(  6117),  INT16_C(  2165),  INT16_C( 23690),
         INT16_C(  4250),  INT16_C( 24127),  INT16_C( 21026), -INT16_C( 30345), -INT16_C( 31793), -INT16_C(  5351), -INT16_C( 19752), -INT16_C( 17739),
         INT16_C(  3529),  INT16_C( 30078), -INT16_C( 25068),  INT16_C( 11166), -INT16_C( 18088), -INT16_C( 12781), -INT16_C( 25151),  INT16_C( 23338),
         INT16_C( 27053), -INT16_C( 12358),  INT16_C( 12731), -INT16_C( 29864),  INT16_C( 29109), -INT16_C( 29322),  INT16_C( 11044), -INT16_C(  4793) },
      {  INT16_C(  5858), -INT16_C( 15273),  INT16_C(  1964),  INT16_C( 10272), -INT16_C( 17897), -INT16_C(  6117),  INT16_C(  2165),  INT16_C( 23690),
         INT16_C(  4250),  INT16_C( 24127),  INT16_C( 21026), -INT16_C( 30345), -INT16_C( 31793), -INT16_C(  5351), -INT16_C( 19752), -INT16_C( 17739),
         INT16_C(  3529),  INT16_C( 30078), -INT16_C( 25068),  INT16_C( 11166), -INT16_C( 18088), -INT16_C( 12781), -INT16_C( 25151),  INT16_C( 23338),
         INT16_C( 27053), -INT16_C( 12358),  INT16_C( 12731), -INT16_C( 29864),  INT16_C( 29109), -INT16_C( 29322),  INT16_C( 11044), -INT16_C(  4793) } },
    { { -INT16_C( 14792),  INT16_C( 19554),  INT16_C(   100), -INT16_C( 17033), -INT16_C( 30023),  INT16_C( 31371), -INT16_C( 19161), -INT16_C( 11050),
        -INT16_C( 28642), -INT16_C(  9564), -INT16_C(   831),  INT16_C( 30309), -INT16_C(  9362), -INT16_C( 28157),  INT16_C( 19206),  INT16_C( 16255),
        -INT16_C(  7919),  INT16_C( 30091),  INT16_C(   994), -INT16_C( 25806), -INT16_C( 17011), -INT16_C( 19178), -INT16_C(  5006), -INT16_C( 28279),
         INT16_C( 11644),  INT16_C( 15723), -INT16_C( 12246), -INT16_C( 26444), -INT16_C( 18517), -INT16_C( 20182), -INT16_C( 22270),  INT16_C(  5104) },
      { -INT16_C( 14792),  INT16_C( 19554),  INT16_C(   100), -INT16_C( 17033), -INT16_C( 30023),  INT16_C( 31371), -INT16_C( 19161), -INT16_C( 11050),
        -INT16_C( 28642), -INT16_C(  9564), -INT16_C(   831),  INT16_C( 30309), -INT16_C(  9362), -INT16_C( 28157),  INT16_C( 19206),  INT16_C( 16255),
        -INT16_C(  7919),  INT16_C( 30091),  INT16_C(   994), -INT16_C( 25806), -INT16_C( 17011), -INT16_C( 19178), -INT16_C(  5006), -INT16_C( 28279),
         INT16_C( 11644),  INT16_C( 15723), -INT16_C( 12246), -INT16_C( 26444), -INT16_C( 18517), -INT16_C( 20182), -INT16_C( 22270),  INT16_C(  5104) } },
    { {  INT16_C( 31882),  INT16_C( 27785), -INT16_C( 17537),  INT16_C(  3080),  INT16_C(  7801), -INT16_C(  5183),  INT16_C( 19210), -INT16_C( 31108),
        -INT16_C(  6280), -INT16_C( 23869),  INT16_C( 30647),  INT16_C( 25146),  INT16_C( 25647),  INT16_C( 12564),  INT16_C(  1037), -INT16_C( 26555),
        -INT16_C( 12672), -INT16_C(   252),  INT16_C(  3209),  INT16_C(   524), -INT16_C( 13014),  INT16_C( 13550),  INT16_C( 27160), -INT16_C( 28230),
         INT16_C( 32338),  INT16_C(  2355),  INT16_C( 28405),  INT16_C(  9324), -INT16_C( 32558), -INT16_C(  8106), -INT16_C( 25724),  INT16_C(  1400) },
      {  INT16_C( 31882),  INT16_C( 27785), -INT16_C( 17537),  INT16_C(  3080),  INT16_C(  7801), -INT16_C(  5183),  INT16_C( 19210), -INT16_C( 31108),
        -INT16_C(  6280), -INT16_C( 23869),  INT16_C( 30647),  INT16_C( 25146),  INT16_C( 25647),  INT16_C( 12564),  INT16_C(  1037), -INT16_C( 26555),
        -INT16_C( 12672), -INT16_C(   252),  INT16_C(  3209),  INT16_C(   524), -INT16_C( 13014),  INT16_C( 13550),  INT16_C( 27160), -INT16_C( 28230),
         INT16_C( 32338),  INT16_C(  2355),  INT16_C( 28405),  INT16_C(  9324), -INT16_C( 32558), -INT16_C(  8106), -INT16_C( 25724),  INT16_C(  1400) } },
    { {  INT16_C( 31849), -INT16_C(  3580),  INT16_C(  4233), -INT16_C( 19467), -INT16_C(  7202), -INT16_C(  2328), -INT16_C( 23987), -INT16_C( 24697),
        -INT16_C( 17632),  INT16_C(  5801),  INT16_C(  5417), -INT16_C(  1222), -INT16_C( 28523),  INT16_C(  6619),  INT16_C( 21291), -INT16_C( 27618),
         INT16_C(  9168),  INT16_C( 22919),  INT16_C( 31795),  INT16_C(  4364), -INT16_C(  2977), -INT16_C( 21496), -INT16_C( 28777), -INT16_C( 18612),
        -INT16_C(  2742),  INT16_C( 29645),  INT16_C(  2058), -INT16_C( 24721),  INT16_C( 19096), -INT16_C( 15176), -INT16_C( 10338),  INT16_C( 28248) },
      {  INT16_C( 31849), -INT16_C(  3580),  INT16_C(  4233), -INT16_C( 19467), -INT16_C(  7202), -INT16_C(  2328), -INT16_C( 23987), -INT16_C( 24697),
        -INT16_C( 17632),  INT16_C(  5801),  INT16_C(  5417), -INT16_C(  1222), -INT16_C( 28523),  INT16_C(  6619),  INT16_C( 21291), -INT16_C( 27618),
         INT16_C(  9168),  INT16_C( 22919),  INT16_C( 31795),  INT16_C(  4364), -INT16_C(  2977), -INT16_C( 21496), -INT16_C( 28777), -INT16_C( 18612),
        -INT16_C(  2742),  INT16_C( 29645),  INT16_C(  2058), -INT16_C( 24721),  INT16_C( 19096), -INT16_C( 15176), -INT16_C( 10338),  INT16_C( 28248) } },
    { { -INT16_C(  8198),  INT16_C( 11719), -INT16_C( 11429), -INT16_C( 17857),  INT16_C( 18376),  INT16_C( 24423), -INT16_C( 19498),  INT16_C(  8470),
        -INT16_C(  7000), -INT16_C( 19820),  INT16_C(  1004), -INT16_C( 31663),  INT16_C(  2382), -INT16_C(  5048), -INT16_C( 24096), -INT16_C(  9638),
         INT16_C(  8576), -INT16_C(  9208),  INT16_C( 18420), -INT16_C( 17258), -INT16_C(   626),  INT16_C( 25627),  INT16_C( 12976),  INT16_C( 22661),
         INT16_C(  6678),  INT16_C(   522),  INT16_C( 23325),  INT16_C( 27526), -INT16_C( 12443),  INT16_C( 17751), -INT16_C( 20112), -INT16_C(  4064) },
      { -INT16_C(  8198),  INT16_C( 11719), -INT16_C( 11429), -INT16_C( 17857),  INT16_C( 18376),  INT16_C( 24423), -INT16_C( 19498),  INT16_C(  8470),
        -INT16_C(  7000), -INT16_C( 19820),  INT16_C(  1004), -INT16_C( 31663),  INT16_C(  2382), -INT16_C(  5048), -INT16_C( 24096), -INT16_C(  9638),
         INT16_C(  8576), -INT16_C(  9208),  INT16_C( 18420), -INT16_C( 17258), -INT16_C(   626),  INT16_C( 25627),  INT16_C( 12976),  INT16_C( 22661),
         INT16_C(  6678),  INT16_C(   522),  INT16_C( 23325),  INT16_C( 27526), -INT16_C( 12443),  INT16_C( 17751), -INT16_C( 20112), -INT16_C(  4064) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i r = simde_mm512_set_epi16(
        test_vec[i].a[31], test_vec[i].a[30], test_vec[i].a[29], test_vec[i].a[28],
        test_vec[i].a[27], test_vec[i].a[26], test_vec[i].a[25], test_vec[i].a[24],
        test_vec[i].a[23], test_vec[i].a[22], test_vec[i].a[21], test_vec[i].a[20],
        test_vec[i].a[19], test_vec[i].a[18], test_vec[i].a[17], test_vec[i].a[16],
        test_vec[i].a[15], test_vec[i].a[14], test_vec[i].a[13], test_vec[i].a[12],
        test_vec[i].a[11], test_vec[i].a[10], test_vec[i].a[ 9], test_vec[i].a[ 8],
        test_vec[i].a[ 7], test_vec[i].a[ 6], test_vec[i].a[ 5], test_vec[i].a[ 4],
        test_vec[i].a[ 3], test_vec[i].a[ 2], test_vec[i].a[ 1], test_vec[i].a[ 0]);
    simde_test_x86_assert_equal_i16x32(r, simde_mm512_loadu_epi16(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m512i a = simde_test_x86_random_i16x32();
    simde__m512i r = a;

    simde_test_x86_write_i16x32(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_i16x32(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_mm512_set_epi32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const int32_t a[16];
    const int32_t r[16];
  } test_vec[] = {
    { { -INT32_C(   718084918), -INT32_C(  1447421420),  INT32_C(  1848496256),  INT32_C(   279896686), -INT32_C(  1716299902),  INT32_C(   757651794), -INT32_C(   612291898), -INT32_C(  2021453635),
         INT32_C(   140293876),  INT32_C(  1353783248),  INT32_C(  1438572519),  INT32_C(  1130785985),  INT32_C(   366746051), -INT32_C(  1186789901), -INT32_C(   325794769), -INT32_C(   931981100) },
      { -INT32_C(   718084918), -INT32_C(  1447421420),  INT32_C(  1848496256),  INT32_C(   279896686), -INT32_C(  1716299902),  INT32_C(   757651794), -INT32_C(   612291898), -INT32_C(  2021453635),
         INT32_C(   140293876),  INT32_C(  1353783248),  INT32_C(  1438572519),  INT32_C(  1130785985),  INT32_C(   366746051), -INT32_C(  1186789901), -INT32_C(   325794769), -INT32_C(   931981100) } },
    { { -INT32_C(  1630416690), -INT32_C(   823229721),  INT32_C(   589605985), -INT32_C(   614036968), -INT32_C(  1762638941),  INT32_C(  2001679176), -INT32_C(   865868552), -INT32_C(   896149764),
        -INT32_C(  1922537818),  INT32_C(  1247565544),  INT32_C(   443383810), -INT32_C(  1376398582),  INT32_C(  1581573398),  INT32_C(   299209497),  INT32_C(  1943877751), -INT32_C(  1254264305) },
      { -INT32_C(  1630416690), -INT32_C(   823229721),  INT32_C(   589605985), -INT32_C(   614036968), -INT32_C(  1762638941),  INT32_C(  2001679176), -INT32_C(   865868552), -INT32_C(   896149764),
        -INT32_C(  1922537818),  INT32_C(  1247565544),  INT32_C(   443383810), -INT32_C(  1376398582),  INT32_C(  1581573398),  INT32_C(   299209497),  INT32_C(  1943877751), -INT32_C(  1254264305) } },
    { { -INT32_C(  1052531240), -INT32_C(    49569797),  INT32_C(   689403935),  INT32_C(  1658195019),  INT32_C(   197139186),  INT32_C(   622630574), -INT32_C(   577111602),  INT32_C(  1150539372),
         INT32_C(  1996871292), -INT32_C(  1804267403), -INT32_C(   725775224), -INT32_C(  1959357543),  INT32_C(  1553397422),  INT32_C(  1535226508),  INT32_C(   389552811),  INT32_C(  1834798065) },
      { -INT32_C(  1052531240), -INT32_C(    49569797),  INT32_C(   689403935),  INT32_C(  1658195019),  INT32_C(   197139186),  INT32_C(   622630574), -INT32_C(   577111602),  INT32_C(  1150539372),
         INT32_C(  1996871292), -INT32_C(  1804267403), -INT32_C(   725775224), -INT32_C(  1959357543),  INT32_C(  1553397422),  INT32_C(  1535226508),  INT32_C(   389552811),  INT32_C(  1834798065) } },
    { {  INT32_C(   384065953), -INT32_C(    89499278),  INT32_C(  2144233446), -INT32_C(  1458961157), -INT32_C(  2029674245), -INT32_C(    35486126), -INT32_C(  1844110431), -INT32_C(  1996525082),
         INT32_C(  1151263698),  INT32_C(   591350077), -INT32_C(  1415443024),  INT32_C(   223652882), -INT32_C(  1634444980), -INT32_C(  2120517664),  INT32_C(  2014556306), -INT32_C(   201321951) },
      {  INT32_C(   384065953), -INT32_C(    89499278),  INT32_C(  2144233446), -INT32_C(  1458961157), -INT32_C(  2029674245), -INT32_C(    35486126), -INT32_C(  1844110431), -INT32_C(  1996525082),
         INT32_C(  1151263698),  INT32_C(   591350077), -INT32_C(  1415443024),  INT32_C(   223652882), -INT32_C(  1634444980), -INT32_C(  2120517664),  INT32_C(  2014556306), -INT32_C(   201321951) } },
    { {  INT32_C(   842571765), -INT32_C(  1739229208), -INT32_C(  1757087867), -INT32_C(   274425693), -INT32_C(   762496782),  INT32_C(  1095969199), -INT32_C(    71670055),  INT32_C(  1844427384),
         INT32_C(  1101014873),  INT32_C(   618329503), -INT32_C(  1866785043), -INT32_C(  1467981898),  INT32_C(  1199181207),  INT32_C(   277400886), -INT32_C(  1425325517),  INT32_C(  1444543229) },
      {  INT32_C(   842571765), -INT32_C(  1739229208), -INT32_C(  1757087867), -INT32_C(   274425693), -INT32_C(   762496782),  INT32_C(  1095969199), -INT32_C(    71670055),  INT32_C(  1844427384),
         INT32_C(  1101014873),  INT32_C(   618329503), -INT32_C(  1866785043), -INT32_C(  1467981898),  INT32_C(  1199181207),  INT32_C(   277400886), -INT32_C(  1425325517),  INT32_C(  1444543229) } },
    { { -INT32_C(  1063732959), -INT32_C(  1679527250),  INT32_C(  1177329552), -INT32_C(  1762677506), -INT32_C(   253924935),  INT32_C(  1778410807), -INT32_C(  1525281880),  INT32_C(   653995781),
        -INT32_C(  1763208216), -INT32_C(  1791833339),  INT32_C(  1776049771), -INT32_C(  1006646518),  INT32_C(  1806949428), -INT32_C(   355028158), -INT32_C(  1013977922),  INT32_C(    65702427) },
      { -INT32_C(  1063732959), -INT32_C(  1679527250),  INT32_C(  1177329552), -INT32_C(  1762677506), -INT32_C(   253924935),  INT32_C(  1778410807), -INT32_C(  1525281880),  INT32_C(   653995781),
        -INT32_C(  1763208216), -INT32_C(  1791833339),  INT32_C(  1776049771), -INT32_C(  1006646518),  INT32_C(  1806949428), -INT32_C(   355028158), -INT32_C(  1013977922),  INT32_C(    65702427) } },
    { {  INT32_C(   597283102),  INT32_C(   129616796),  INT32_C(   863081769), -INT32_C(  1795723168), -INT32_C(  1895781811),  INT32_C(   477746782), -INT32_C(   572520254), -INT32_C(  1327445358),
         INT32_C(   936671643),  INT32_C(  1849658693), -INT32_C(  2103267294),  INT32_C(  1830197536), -INT32_C(  1577314749), -INT32_C(  1363249684),  INT32_C(   277585533),  INT32_C(    62942056) },
      {  INT32_C(   597283102),  INT32_C(   129616796),  INT32_C(   863081769), -INT32_C(  1795723168), -INT32_C(  1895781811),  INT32_C(   477746782), -INT32_C(   572520254), -INT32_C(  1327445358),
         INT32_C(   936671643),  INT32_C(  1849658693), -INT32_C(  2103267294),  INT32_C(  1830197536), -INT32_C(  1577314749), -INT32_C(  1363249684),  INT32_C(   277585533),  INT32_C(    62942056) } },
    { {  INT32_C(   708482277),  INT32_C(  1134065953),  INT32_C(  1254439465),  INT32_C(   397925587), -INT32_C(   541543182), -INT32_C(  1483901399),  INT32_C(  2092374292),  INT32_C(  1769961348),
         INT32_C(   764656140),  INT32_C(  1567697971),  INT32_C(   984036966),  INT32_C(    89218578),  INT32_C(  1021577490), -INT32_C(  1797033600),  INT32_C(   252811914),  INT32_C(   494440465) },
      {  INT32_C(   708482277),  INT32_C(  1134065953),  INT32_C(  1254439465),  INT32_C(   397925587), -INT32_C(   541543182), -INT32_C(  1483901399),  INT32_C(  2092374292),  INT32_C(  1769961348),
         INT32_C(   764656140),  INT32_C(  1567697971),  INT32_C(   984036966),  INT32_C(    89218578),  INT32_C(  1021577490), -INT32_C(  1797033600),  INT32_C(   252811914),  INT32_C(   494440465) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i r = simde_mm512_set_epi32(
        test_vec[i].a[15], test_vec[i].a[14], test_vec[i].a[13], test_vec[i].a[12],
        test_vec[i].a[11], test_vec[i].a[10], test_vec[i].a[ 9], test_vec[i].a[ 8],
        test_vec[i].a[ 7], test_vec[i].a[ 6], test_vec[i].a[ 5], test_vec[i].a[ 4],
        test_vec[i].a[ 3], test_vec[i].a[ 2], test_vec[i].a[ 1], test_vec[i].a[ 0]);
    simde_test_x86_assert_equal_i32x16(r, simde_mm512_loadu_epi32(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m512i a = simde_test_x86_random_i32x16();
    simde__m512i r = a;

    simde_test_x86_write_i32x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_i32x16(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_mm512_set_epi64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const int64_t a[8];
    const int64_t r[8];
  } test_vec[] = {
    { {  INT64_C( 7416271910326683854), -INT64_C( 4897747652392899789),  INT64_C( 6856628829737554158), -INT64_C( 2150993203686264898),
        -INT64_C(  552480653107076628), -INT64_C( 7597675204674063523),  INT64_C( 2749860335145960499),  INT64_C( 4150965691438738086) },
      {  INT64_C( 7416271910326683854), -INT64_C( 4897747652392899789),  INT64_C( 6856628829737554158), -INT64_C( 2150993203686264898),
        -INT64_C(  552480653107076628), -INT64_C( 7597675204674063523),  INT64_C( 2749860335145960499),  INT64_C( 4150965691438738086) } },
    { {  INT64_C( 8129134851571376658),  INT64_C( 4732951216391416688),  INT64_C( 1883688221230759318),  INT64_C( 8207088352664759902),
        -INT64_C(  300305717954802351), -INT64_C( 9091710009513666428),  INT64_C( 8164361002356301502), -INT64_C( 2116124952781577775) },
      {  INT64_C( 8129134851571376658),  INT64_C( 4732951216391416688),  INT64_C( 1883688221230759318),  INT64_C( 8207088352664759902),
        -INT64_C(  300305717954802351), -INT64_C( 9091710009513666428),  INT64_C( 8164361002356301502), -INT64_C( 2116124952781577775) } },
    { { -INT64_C( 8532600538384569584),  INT64_C( 2927884471851788597), -INT64_C( 7758952549258157875), -INT64_C( 8989632965809705014),
        -INT64_C( 2818773282401122989), -INT64_C( 5048647419307688867), -INT64_C( 4751038171580904519), -INT64_C( 7975777913320843685) },
      { -INT64_C( 8532600538384569584),  INT64_C( 2927884471851788597), -INT64_C( 7758952549258157875), -INT64_C( 8989632965809705014),
        -INT64_C( 2818773282401122989), -INT64_C( 5048647419307688867), -INT64_C( 4751038171580904519), -INT64_C( 7975777913320843685) } },
    { {  INT64_C( 9176306490307866333), -INT64_C( 6743235639710953273),  INT64_C( 5418726386948769153), -INT64_C( 8947410401178858236),
         INT64_C( 5726990520023236056),  INT64_C( 8590174245068325035), -INT64_C( 8669956488264133518),  INT64_C(  618854828626003821) },
      {  INT64_C( 9176306490307866333), -INT64_C( 6743235639710953273),  INT64_C( 5418726386948769153), -INT64_C( 8947410401178858236),
         INT64_C( 5726990520023236056),  INT64_C( 8590174245068325035), -INT64_C( 8669956488264133518),  INT64_C(  618854828626003821) } },
    { { -INT64_C( 6975374382109320869),  INT64_C( 1345285050491679549),  INT64_C( 2721902299037669565), -INT64_C( 8636832967257714454),
        -INT64_C( 2235300940097051033),  INT64_C( 6018146754448600529),  INT64_C(  447361715065321816), -INT64_C( 6584470204827275543) },
      { -INT64_C( 6975374382109320869),  INT64_C( 1345285050491679549),  INT64_C( 2721902299037669565), -INT64_C( 8636832967257714454),
        -INT64_C( 2235300940097051033),  INT64_C( 6018146754448600529),  INT64_C(  447361715065321816), -INT64_C( 6584470204827275543) } },
    { {  INT64_C( 8785954047749196649),  INT64_C( 1806347803474723111), -INT64_C( 1762490757418474392),  INT64_C( 6317880597477763789),
        -INT64_C( 3545650502557192791), -INT64_C( 8273783058313988526), -INT64_C( 8995769048611334334),  INT64_C( 7893467386249750085) },
      {  INT64_C( 8785954047749196649),  INT64_C( 1806347803474723111), -INT64_C( 1762490757418474392),  INT64_C( 6317880597477763789),
        -INT64_C( 3545650502557192791), -INT64_C( 8273783058313988526), -INT64_C( 8995769048611334334),  INT64_C( 7893467386249750085) } },
    { { -INT64_C( 7900287636437209113), -INT64_C( 3894817049730946752), -INT64_C( 2061467071467093205),  INT64_C( 1264000947191279704),
         INT64_C( 1397238296100161937),  INT64_C(  663554023642106597), -INT64_C( 3823751311176089747),  INT64_C( 4141747775465784894) },
      { -INT64_C( 7900287636437209113), -INT64_C( 3894817049730946752), -INT64_C( 2061467071467093205),  INT64_C( 1264000947191279704),
         INT64_C( 1397238296100161937),  INT64_C(  663554023642106597), -INT64_C( 3823751311176089747),  INT64_C( 4141747775465784894) } },
    { { -INT64_C(  314569080322778437), -INT64_C(  982175572242785673), -INT64_C( 3091741389357168420),  INT64_C( 3158352032474005235),
        -INT64_C( 4331518035015115054), -INT64_C( 4328671828599354762), -INT64_C( 3806904150389625921), -INT64_C(  810302542018352858) },
      { -INT64_C(  314569080322778437), -INT64_C(  982175572242785673), -INT64_C( 3091741389357168420),  INT64_C( 3158352032474005235),
        -INT64_C( 4331518035015115054), -INT64_C( 4328671828599354762), -INT64_C( 3806904150389625921), -INT64_C(  810302542018352858) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i r = simde_mm512_set_epi64(
        test_vec[i].a[ 7], test_vec[i].a[ 6], test_vec[i].a[ 5], test_vec[i].a[ 4],
        test_vec[i].a[ 3], test_vec[i].a[ 2], test_vec[i].a[ 1], test_vec[i].a[ 0]);
    simde_test_x86_assert_equal_i64x8(r, simde_mm512_loadu_epi64(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m512i a = simde_test_x86_random_i64x8();
    simde__m512i r = a;

    simde_test_x86_write_i64x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_i64x8(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_mm512_set_pd (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const simde_float64 a[8];
    const simde_float64 r[8];
  } test_vec[] = {
    { { SIMDE_FLOAT64_C(   670.56), SIMDE_FLOAT64_C(   769.83), SIMDE_FLOAT64_C(   452.75), SIMDE_FLOAT64_C(  -321.12),
        SIMDE_FLOAT64_C(   540.94), SIMDE_FLOAT64_C(  -744.39), SIMDE_FLOAT64_C(  -392.02), SIMDE_FLOAT64_C(  -608.21) },
      { SIMDE_FLOAT64_C(   670.56), SIMDE_FLOAT64_C(   769.83), SIMDE_FLOAT64_C(   452.75), SIMDE_FLOAT64_C(  -321.12),
        SIMDE_FLOAT64_C(   540.94), SIMDE_FLOAT64_C(  -744.39), SIMDE_FLOAT64_C(  -392.02), SIMDE_FLOAT64_C(  -608.21) } },
    { { SIMDE_FLOAT64_C(  -346.44), SIMDE_FLOAT64_C(  -787.69), SIMDE_FLOAT64_C(    30.52), SIMDE_FLOAT64_C(  -179.08),
        SIMDE_FLOAT64_C(   272.54), SIMDE_FLOAT64_C(  -636.81), SIMDE_FLOAT64_C(   543.83), SIMDE_FLOAT64_C(   519.44) },
      { SIMDE_FLOAT64_C(  -346.44), SIMDE_FLOAT64_C(  -787.69), SIMDE_FLOAT64_C(    30.52), SIMDE_FLOAT64_C(  -179.08),
        SIMDE_FLOAT64_C(   272.54), SIMDE_FLOAT64_C(  -636.81), SIMDE_FLOAT64_C(   543.83), SIMDE_FLOAT64_C(   519.44) } },
    { { SIMDE_FLOAT64_C(  -541.32), SIMDE_FLOAT64_C(   265.86), SIMDE_FLOAT64_C(   389.70), SIMDE_FLOAT64_C(   719.33),
        SIMDE_FLOAT64_C(   489.83), SIMDE_FLOAT64_C(   260.51), SIMDE_FLOAT64_C(   233.90), SIMDE_FLOAT64_C(  -892.98) },
      { SIMDE_FLOAT64_C(  -541.32), SIMDE_FLOAT64_C(   265.86), SIMDE_FLOAT64_C(   389.70), SIMDE_FLOAT64_C(   719.33),
        SIMDE_FLOAT64_C(   489.83), SIMDE_FLOAT64_C(   260.51), SIMDE_FLOAT64_C(   233.90), SIMDE_FLOAT64_C(  -892.98) } },
    { { SIMDE_FLOAT64_C(   -45.07), SIMDE_FLOAT64_C(   174.26), SIMDE_FLOAT64_C(   220.48), SIMDE_FLOAT64_C(   233.05),
        SIMDE_FLOAT64_C(  -537.78), SIMDE_FLOAT64_C(  -609.38), SIMDE_FLOAT64_C(  -208.27), SIMDE_FLOAT64_C(  -867.22) },
      { SIMDE_FLOAT64_C(   -45.07), SIMDE_FLOAT64_C(   174.26), SIMDE_FLOAT64_C(   220.48), SIMDE_FLOAT64_C(   233.05),
        SIMDE_FLOAT64_C(  -537.78), SIMDE_FLOAT64_C(  -609.38), SIMDE_FLOAT64_C(  -208.27), SIMDE_FLOAT64_C(  -867.22) } },
    { { SIMDE_FLOAT64_C(  -839.55), SIMDE_FLOAT64_C(  -755.53), SIMDE_FLOAT64_C(  -188.34), SIMDE_FLOAT64_C(   701.40),
        SIMDE_FLOAT64_C(  -499.92), SIMDE_FLOAT64_C(   419.64), SIMDE_FLOAT64_C(  -906.81), SIMDE_FLOAT64_C(   153.65) },
      { SIMDE_FLOAT64_C(  -839.55), SIMDE_FLOAT64_C(  -755.53), SIMDE_FLOAT64_C(  -188.34), SIMDE_FLOAT64_C(   701.40),
        SIMDE_FLOAT64_C(  -499.92), SIMDE_FLOAT64_C(   419.64), SIMDE_FLOAT64_C(  -906.81), SIMDE_FLOAT64_C(   153.65) } },
    { { SIMDE_FLOAT64_C(   631.95), SIMDE_FLOAT64_C(   123.71), SIMDE_FLOAT64_C(   974.57), SIMDE_FLOAT64_C(   -95.51),
        SIMDE_FLOAT64_C(   486.89), SIMDE_FLOAT64_C(   518.40), SIMDE_FLOAT64_C(  -576.07), SIMDE_FLOAT64_C(   945.58) },
      { SIMDE_FLOAT64_C(   631.95), SIMDE_FLOAT64_C(   123.71), SIMDE_FLOAT64_C(   974.57), SIMDE_FLOAT64_C(   -95.51),
        SIMDE_FLOAT64_C(   486.89), SIMDE_FLOAT64_C(   518.40), SIMDE_FLOAT64_C(  -576.07), SIMDE_FLOAT64_C(   945.58) } },
    { { SIMDE_FLOAT64_C(  -215.73), SIMDE_FLOAT64_C(   813.63), SIMDE_FLOAT64_C(   664.91), SIMDE_FLOAT64_C(  -725.90),
        SIMDE_FLOAT64_C(    74.14), SIMDE_FLOAT64_C(  -101.19), SIMDE_FLOAT64_C(  -618.88), SIMDE_FLOAT64_C(  -970.94) },
      { SIMDE_FLOAT64_C(  -215.73), SIMDE_FLOAT64_C(   813.63), SIMDE_FLOAT64_C(   664.91), SIMDE_FLOAT64_C(  -725.90),
        SIMDE_FLOAT64_C(    74.14), SIMDE_FLOAT64_C(  -101.19), SIMDE_FLOAT64_C(  -618.88), SIMDE_FLOAT64_C(  -970.94) } },
    { { SIMDE_FLOAT64_C(  -926.93), SIMDE_FLOAT64_C(   601.60), SIMDE_FLOAT64_C(   262.11), SIMDE_FLOAT64_C(  -464.71),
        SIMDE_FLOAT64_C(   992.22), SIMDE_FLOAT64_C(  -946.16), SIMDE_FLOAT64_C(  -331.93), SIMDE_FLOAT64_C(  -847.32) },
      { SIMDE_FLOAT64_C(  -926.93), SIMDE_FLOAT64_C(   601.60), SIMDE_FLOAT64_C(   262.11), SIMDE_FLOAT64_C(  -464.71),
        SIMDE_FLOAT64_C(   992.22), SIMDE_FLOAT64_C(  -946.16), SIMDE_FLOAT64_C(  -331.93), SIMDE_FLOAT64_C(  -847.32) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512d r = simde_mm512_set_pd(
        test_vec[i].a[ 7], test_vec[i].a[ 6], test_vec[i].a[ 5], test_vec[i].a[ 4],
        test_vec[i].a[ 3], test_vec[i].a[ 2], test_vec[i].a[ 1], test_vec[i].a[ 0]);
    simde_test_x86_assert_equal_f64x8(r, simde_mm512_loadu_pd(test_vec[i].r), 1);
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m512d a = simde_test_x86_random_f64x8(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0));
    simde__m512d r = a;

    simde_test_x86_write_f64x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_f64x8(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_mm512_set_ps (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const simde_float32 a[16];
    const simde_float32 r[16];
  } test_vec[] = {
    { { SIMDE_FLOAT32_C(  -967.45), SIMDE_FLOAT32_C(   555.14), SIMDE_FLOAT32_C(   395.62), SIMDE_FLOAT32_C(   646.95),
        SIMDE_FLOAT32_C(    -7.99), SIMDE_FLOAT32_C(  -159.39), SIMDE_FLOAT32_C(  -204.24), SIMDE_FLOAT32_C(    19.62),
        SIMDE_FLOAT32_C(   980.65), SIMDE_FLOAT32_C(  -174.06), SIMDE_FLOAT32_C(  -131.07), SIMDE_FLOAT32_C(   -28.25),
        SIMDE_FLOAT32_C(  -768.63), SIMDE_FLOAT32_C(   553.54), SIMDE_FLOAT32_C(   497.97), SIMDE_FLOAT32_C(  -142.92) },
      { SIMDE_FLOAT32_C(  -967.45), SIMDE_FLOAT32_C(   555.14), SIMDE_FLOAT32_C(   395.62), SIMDE_FLOAT32_C(   646.95),
        SIMDE_FLOAT32_C(    -7.99), SIMDE_FLOAT32_C(  -159.39), SIMDE_FLOAT32_C(  -204.24), SIMDE_FLOAT32_C(    19.62),
        SIMDE_FLOAT32_C(   980.65), SIMDE_FLOAT32_C(  -174.06), SIMDE_FLOAT32_C(  -131.07), SIMDE_FLOAT32_C(   -28.25),
        SIMDE_FLOAT32_C(  -768.63), SIMDE_FLOAT32_C(   553.54), SIMDE_FLOAT32_C(   497.97), SIMDE_FLOAT32_C(  -142.92) } },
    { { SIMDE_FLOAT32_C(   -51.14), SIMDE_FLOAT32_C(    28.70), SIMDE_FLOAT32_C(  -598.25), SIMDE_FLOAT32_C(   911.70),
        SIMDE_FLOAT32_C(  -905.59), SIMDE_FLOAT32_C(   815.98), SIMDE_FLOAT32_C(  -798.54), SIMDE_FLOAT32_C(  -677.94),
        SIMDE_FLOAT32_C(   697.56), SIMDE_FLOAT32_C(  -111.92), SIMDE_FLOAT32_C(  -783.66), SIMDE_FLOAT32_C(   226.91),
        SIMDE_FLOAT32_C(  -846.01), SIMDE_FLOAT32_C(   293.51), SIMDE_FLOAT32_C(    37.49), SIMDE_FLOAT32_C(  -813.46) },
      { SIMDE_FLOAT32_C(   -51.14), SIMDE_FLOAT32_C(    28.70), SIMDE_FLOAT32_C(  -598.25), SIMDE_FLOAT32_C(   911.70),
        SIMDE_FLOAT32_C(  -905.59), SIMDE_FLOAT32_C(   815.98), SIMDE_FLOAT32_C(  -798.54), SIMDE_FLOAT32_C(  -677.94),
        SIMDE_FLOAT32_C(   697.56), SIMDE_FLOAT32_C(  -111.92), SIMDE_FLOAT32_C(  -783.66), SIMDE_FLOAT32_C(   226.91),
        SIMDE_FLOAT32_C(  -846.01), SIMDE_FLOAT32_C(   293.51), SIMDE_FLOAT32_C(    37.49), SIMDE_FLOAT32_C(  -813.46) } },
    { { SIMDE_FLOAT32_C(  -151.35), SIMDE_FLOAT32_C(  -566.88), SIMDE_FLOAT32_C(   833.49), SIMDE_FLOAT32_C(   840.66),
        SIMDE_FLOAT32_C(   273.73), SIMDE_FLOAT32_C(  -370.75), SIMDE_FLOAT32_C(  -139.72), SIMDE_FLOAT32_C(   254.38),
        SIMDE_FLOAT32_C(   455.19), SIMDE_FLOAT32_C(   729.21), SIMDE_FLOAT32_C(  -773.88), SIMDE_FLOAT32_C(   686.56),
        SIMDE_FLOAT32_C(   282.75), SIMDE_FLOAT32_C(   724.10), SIMDE_FLOAT32_C(  -456.37), SIMDE_FLOAT32_C(  -768.39) },
      { SIMDE_FLOAT32_C(  -151.35), SIMDE_FLOAT32_C(  -566.88), SIMDE_FLOAT32_C(   833.49), SIMDE_FLOAT32_C(   840.66),
        SIMDE_FLOAT32_C(   273.73), SIMDE_FLOAT32_C(  -370.75), SIMDE_FLOAT32_C(  -139.72), SIMDE_FLOAT32_C(   254.38),
        SIMDE_FLOAT32_C(   455.19), SIMDE_FLOAT32_C(   729.21), SIMDE_FLOAT32_C(  -773.88), SIMDE_FLOAT32_C(   686.56),
        SIMDE_FLOAT32_C(   282.75), SIMDE_FLOAT32_C(   724.10), SIMDE_FLOAT32_C(  -456.37), SIMDE_FLOAT32_C(  -768.39) } },
    { { SIMDE_FLOAT32_C(  -247.20), SIMDE_FLOAT32_C(   -54.62), SIMDE_FLOAT32_C(  -856.69), SIMDE_FLOAT32_C(  -152.80),
        SIMDE_FLOAT32_C(  -238.64), SIMDE_FLOAT32_C(  -655.23), SIMDE_FLOAT32_C(   169.26), SIMDE_FLOAT32_C(  -541.09),
        SIMDE_FLOAT32_C(   232.84), SIMDE_FLOAT32_C(   385.60), SIMDE_FLOAT32_C(   685.83), SIMDE_FLOAT32_C(   386.84),
        SIMDE_FLOAT32_C(  -320.88), SIMDE_FLOAT32_C(  -276.68), SIMDE_FLOAT32_C(   573.38), SIMDE_FLOAT32_C(   527.77) },
      { SIMDE_FLOAT32_C(  -247.20), SIMDE_FLOAT32_C(   -54.62), SIMDE_FLOAT32_C(  -856.69), SIMDE_FLOAT32_C(  -152.80),
        SIMDE_FLOAT32_C(  -238.64), SIMDE_FLOAT32_C(  -655.23), SIMDE_FLOAT32_C(   169.26), SIMDE_FLOAT32_C(  -541.09),
        SIMDE_FLOAT32_C(   232.84), SIMDE_FLOAT32_C(   385.60), SIMDE_FLOAT32_C(   685.83), SIMDE_FLOAT32_C(   386.84),
        SIMDE_FLOAT32_C(  -320.88), SIMDE_FLOAT32_C(  -276.68), SIMDE_FLOAT32_C(   573.38), SIMDE_FLOAT32_C(   527.77) } },
    { { SIMDE_FLOAT32_C(   156.44), SIMDE_FLOAT32_C(   406.87), SIMDE_FLOAT32_C(   368.42), SIMDE_FLOAT32_C(  -569.84),
        SIMDE_FLOAT32_C(  -963.88), SIMDE_FLOAT32_C(  -771.30), SIMDE_FLOAT32_C(   684.54), SIMDE_FLOAT32_C(   491.30),
        SIMDE_FLOAT32_C(   957.91), SIMDE_FLOAT32_C(   910.66), SIMDE_FLOAT32_C(   177.86), SIMDE_FLOAT32_C(   240.66),
        SIMDE_FLOAT32_C(   634.76), SIMDE_FLOAT32_C(   721.49), SIMDE_FLOAT32_C(   472.26), SIMDE_FLOAT32_C(  -612.44) },
      { SIMDE_FLOAT32_C(   156.44), SIMDE_FLOAT32_C(   406.87), SIMDE_FLOAT32_C(   368.42), SIMDE_FLOAT32_C(  -569.84),
        SIMDE_FLOAT32_C(  -963.88), SIMDE_FLOAT32_C(  -771.30), SIMDE_FLOAT32_C(   684.54), SIMDE_FLOAT32_C(   491.30),
        SIMDE_FLOAT32_C(   957.91), SIMDE_FLOAT32_C(   910.66), SIMDE_FLOAT32_C(   177.86), SIMDE_FLOAT32_C(   240.66),
        SIMDE_FLOAT32_C(   634.76), SIMDE_FLOAT32_C(   721.49), SIMDE_FLOAT32_C(   472.26), SIMDE_FLOAT32_C(  -612.44) } },
    { { SIMDE_FLOAT32_C(  -333.13), SIMDE_FLOAT32_C(   615.57), SIMDE_FLOAT32_C(   234.76), SIMDE_FLOAT32_C(   428.23),
        SIMDE_FLOAT32_C(   960.34), SIMDE_FLOAT32_C(  -595.97), SIMDE_FLOAT32_C(   887.14), SIMDE_FLOAT32_C(   193.19),
        SIMDE_FLOAT32_C(   789.63), SIMDE_FLOAT32_C(   572.97), SIMDE_FLOAT32_C(  -419.98), SIMDE_FLOAT32_C(  -531.26),
        SIMDE_FLOAT32_C(  -703.71), SIMDE_FLOAT32_C(  -846.60), SIMDE_FLOAT32_C(   996.51), SIMDE_FLOAT32_C(   452.72) },
      { SIMDE_FLOAT32_C(  -333.13), SIMDE_FLOAT32_C(   615.57), SIMDE_FLOAT32_C(   234.76), SIMDE_FLOAT32_C(   428.23),
        SIMDE_FLOAT32_C(   960.34), SIMDE_FLOAT32_C(  -595.97), SIMDE_FLOAT32_C(   887.14), SIMDE_FLOAT32_C(   193.19),
        SIMDE_FLOAT32_C(   789.63), SIMDE_FLOAT32_C(   572.97), SIMDE_FLOAT32_C(  -419.98), SIMDE_FLOAT32_C(  -531.26),
        SIMDE_FLOAT32_C(  -703.71), SIMDE_FLOAT32_C(  -846.60), SIMDE_FLOAT32_C(   996.51), SIMDE_FLOAT32_C(   452.72) } },
    { { SIMDE_FLOAT32_C(   560.27), SIMDE_FLOAT32_C(   364.93), SIMDE_FLOAT32_C(   882.89), SIMDE_FLOAT32_C(   596.38),
        SIMDE_FLOAT32_C(   593.63), SIMDE_FLOAT32_C(   567.43), SIMDE_FLOAT32_C(    87.69), SIMDE_FLOAT32_C(   551.54),
        SIMDE_FLOAT32_C(   478.09), SIMDE_FLOAT32_C(  -734.45), SIMDE_FLOAT32_C(  -207.80), SIMDE_FLOAT32_C(   112.86),
        SIMDE_FLOAT32_C(   987.04), SIMDE_FLOAT32_C(  -735.54), SIMDE_FLOAT32_C(   500.42), SIMDE_FLOAT32_C(  -346.09) },
      { SIMDE_FLOAT32_C(   560.27), SIMDE_FLOAT32_C(   364.93), SIMDE_FLOAT32_C(   882.89), SIMDE_FLOAT32_C(   596.38),
        SIMDE_FLOAT32_C(   593.63), SIMDE_FLOAT32_C(   567.43), SIMDE_FLOAT32_C(    87.69), SIMDE_FLOAT32_C(   551.54),
        SIMDE_FLOAT32_C(   478.09), SIMDE_FLOAT32_C(  -734.45), SIMDE_FLOAT32_C(  -207.80), SIMDE_FLOAT32_C(   112.86),
        SIMDE_FLOAT32_C(   987.04), SIMDE_FLOAT32_C(  -735.54), SIMDE_FLOAT32_C(   500.42), SIMDE_FLOAT32_C(  -346.09) } },
    { { SIMDE_FLOAT32_C(   880.04), SIMDE_FLOAT32_C(  -264.82), SIMDE_FLOAT32_C(  -917.86), SIMDE_FLOAT32_C(   840.38),
        SIMDE_FLOAT32_C(   139.21), SIMDE_FLOAT32_C(   969.28), SIMDE_FLOAT32_C(    33.57), SIMDE_FLOAT32_C(   -71.16),
        SIMDE_FLOAT32_C(   542.24), SIMDE_FLOAT32_C(   613.59), SIMDE_FLOAT32_C(   397.58), SIMDE_FLOAT32_C(   838.53),
        SIMDE_FLOAT32_C(   766.99), SIMDE_FLOAT32_C(   394.09), SIMDE_FLOAT32_C(   291.25), SIMDE_FLOAT32_C(   327.26) },
      { SIMDE_FLOAT32_C(   880.04), SIMDE_FLOAT32_C(  -264.82), SIMDE_FLOAT32_C(  -917.86), SIMDE_FLOAT32_C(   840.38),
        SIMDE_FLOAT32_C(   139.21), SIMDE_FLOAT32_C(   969.28), SIMDE_FLOAT32_C(    33.57), SIMDE_FLOAT32_C(   -71.16),
        SIMDE_FLOAT32_C(   542.24), SIMDE_FLOAT32_C(   613.59), SIMDE_FLOAT32_C(   397.58), SIMDE_FLOAT32_C(   838.53),
        SIMDE_FLOAT32_C(   766.99), SIMDE_FLOAT32_C(   394.09), SIMDE_FLOAT32_C(   291.25), SIMDE_FLOAT32_C(   327.26) } }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512 r = simde_mm512_set_ps(
        test_vec[i].a[15], test_vec[i].a[14], test_vec[i].a[13], test_vec[i].a[12],
        test_vec[i].a[11], test_vec[i].a[10], test_vec[i].a[ 9], test_vec[i].a[ 8],
        test_vec[i].a[ 7], test_vec[i].a[ 6], test_vec[i].a[ 5], test_vec[i].a[ 4],
        test_vec[i].a[ 3], test_vec[i].a[ 2], test_vec[i].a[ 1], test_vec[i].a[ 0]);
    simde_test_x86_assert_equal_f32x16(r, simde_mm512_loadu_ps(test_vec[i].r), 1);
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m512 a = simde_test_x86_random_f32x16(SIMDE_FLOAT32_C(-1000.0), SIMDE_FLOAT32_C(1000.0));
    simde__m512 r = a;

    simde_test_x86_write_f32x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_f32x16(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

#if defined(SIMDE_FLOAT16_IS_SCALAR)
static int
test_simde_mm512_set_ph (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const simde_float16 a[32];
    const simde_float16 r[32];
  } test_vec[] = {
   { { SIMDE_FLOAT16_VALUE(   282.25), SIMDE_FLOAT16_VALUE(   386.50), SIMDE_FLOAT16_VALUE(   -50.12), SIMDE_FLOAT16_VALUE(   737.50),
        SIMDE_FLOAT16_VALUE(  -190.00), SIMDE_FLOAT16_VALUE(   104.19), SIMDE_FLOAT16_VALUE(   655.00), SIMDE_FLOAT16_VALUE(   400.75),
        SIMDE_FLOAT16_VALUE(  -452.50), SIMDE_FLOAT16_VALUE(  -606.50), SIMDE_FLOAT16_VALUE(   463.75), SIMDE_FLOAT16_VALUE(   894.50),
        SIMDE_FLOAT16_VALUE(   273.50), SIMDE_FLOAT16_VALUE(  -503.50), SIMDE_FLOAT16_VALUE(  -643.50), SIMDE_FLOAT16_VALUE(   728.50),
        SIMDE_FLOAT16_VALUE(  -947.50), SIMDE_FLOAT16_VALUE(  -852.50), SIMDE_FLOAT16_VALUE(  -635.50), SIMDE_FLOAT16_VALUE(   796.00),
        SIMDE_FLOAT16_VALUE(    24.80), SIMDE_FLOAT16_VALUE(   897.00), SIMDE_FLOAT16_VALUE(  -993.00), SIMDE_FLOAT16_VALUE(   685.00),
        SIMDE_FLOAT16_VALUE(  -913.00), SIMDE_FLOAT16_VALUE(   547.50), SIMDE_FLOAT16_VALUE(  -630.00), SIMDE_FLOAT16_VALUE(   433.00),
        SIMDE_FLOAT16_VALUE(   177.25), SIMDE_FLOAT16_VALUE(   580.50), SIMDE_FLOAT16_VALUE(  -988.50), SIMDE_FLOAT16_VALUE(  -540.50) },
      { SIMDE_FLOAT16_VALUE(   282.25), SIMDE_FLOAT16_VALUE(   386.50), SIMDE_FLOAT16_VALUE(   -50.12), SIMDE_FLOAT16_VALUE(   737.50),
        SIMDE_FLOAT16_VALUE(  -190.00), SIMDE_FLOAT16_VALUE(   104.19), SIMDE_FLOAT16_VALUE(   655.00), SIMDE_FLOAT16_VALUE(   400.75),
        SIMDE_FLOAT16_VALUE(  -452.50), SIMDE_FLOAT16_VALUE(  -606.50), SIMDE_FLOAT16_VALUE(   463.75), SIMDE_FLOAT16_VALUE(   894.50),
        SIMDE_FLOAT16_VALUE(   273.50), SIMDE_FLOAT16_VALUE(  -503.50), SIMDE_FLOAT16_VALUE(  -643.50), SIMDE_FLOAT16_VALUE(   728.50),
        SIMDE_FLOAT16_VALUE(  -947.50), SIMDE_FLOAT16_VALUE(  -852.50), SIMDE_FLOAT16_VALUE(  -635.50), SIMDE_FLOAT16_VALUE(   796.00),
        SIMDE_FLOAT16_VALUE(    24.80), SIMDE_FLOAT16_VALUE(   897.00), SIMDE_FLOAT16_VALUE(  -993.00), SIMDE_FLOAT16_VALUE(   685.00),
        SIMDE_FLOAT16_VALUE(  -913.00), SIMDE_FLOAT16_VALUE(   547.50), SIMDE_FLOAT16_VALUE(  -630.00), SIMDE_FLOAT16_VALUE(   433.00),
        SIMDE_FLOAT16_VALUE(   177.25), SIMDE_FLOAT16_VALUE(   580.50), SIMDE_FLOAT16_VALUE(  -988.50), SIMDE_FLOAT16_VALUE(  -540.50) } },
    { { SIMDE_FLOAT16_VALUE(   -32.94), SIMDE_FLOAT16_VALUE(   -38.66), SIMDE_FLOAT16_VALUE(  -803.00), SIMDE_FLOAT16_VALUE(   777.00),
        SIMDE_FLOAT16_VALUE(  -934.50), SIMDE_FLOAT16_VALUE(   851.50), SIMDE_FLOAT16_VALUE(   177.88), SIMDE_FLOAT16_VALUE(  -387.00),
        SIMDE_FLOAT16_VALUE(  -754.50), SIMDE_FLOAT16_VALUE(  -358.25), SIMDE_FLOAT16_VALUE(  -492.75), SIMDE_FLOAT16_VALUE(   519.00),
        SIMDE_FLOAT16_VALUE(   138.25), SIMDE_FLOAT16_VALUE(  -136.25), SIMDE_FLOAT16_VALUE(   247.25), SIMDE_FLOAT16_VALUE(   190.88),
        SIMDE_FLOAT16_VALUE(    11.31), SIMDE_FLOAT16_VALUE(   612.00), SIMDE_FLOAT16_VALUE(   -13.18), SIMDE_FLOAT16_VALUE(  -964.00),
        SIMDE_FLOAT16_VALUE(   508.75), SIMDE_FLOAT16_VALUE(    -6.03), SIMDE_FLOAT16_VALUE(   721.00), SIMDE_FLOAT16_VALUE(   595.50),
        SIMDE_FLOAT16_VALUE(  -458.50), SIMDE_FLOAT16_VALUE(  -909.00), SIMDE_FLOAT16_VALUE(    28.56), SIMDE_FLOAT16_VALUE(   719.00),
        SIMDE_FLOAT16_VALUE(   671.50), SIMDE_FLOAT16_VALUE(    40.03), SIMDE_FLOAT16_VALUE(  -822.00), SIMDE_FLOAT16_VALUE(  -361.50) },
      { SIMDE_FLOAT16_VALUE(   -32.94), SIMDE_FLOAT16_VALUE(   -38.66), SIMDE_FLOAT16_VALUE(  -803.00), SIMDE_FLOAT16_VALUE(   777.00),
        SIMDE_FLOAT16_VALUE(  -934.50), SIMDE_FLOAT16_VALUE(   851.50), SIMDE_FLOAT16_VALUE(   177.88), SIMDE_FLOAT16_VALUE(  -387.00),
        SIMDE_FLOAT16_VALUE(  -754.50), SIMDE_FLOAT16_VALUE(  -358.25), SIMDE_FLOAT16_VALUE(  -492.75), SIMDE_FLOAT16_VALUE(   519.00),
        SIMDE_FLOAT16_VALUE(   138.25), SIMDE_FLOAT16_VALUE(  -136.25), SIMDE_FLOAT16_VALUE(   247.25), SIMDE_FLOAT16_VALUE(   190.88),
        SIMDE_FLOAT16_VALUE(    11.31), SIMDE_FLOAT16_VALUE(   612.00), SIMDE_FLOAT16_VALUE(   -13.18), SIMDE_FLOAT16_VALUE(  -964.00),
        SIMDE_FLOAT16_VALUE(   508.75), SIMDE_FLOAT16_VALUE(    -6.03), SIMDE_FLOAT16_VALUE(   721.00), SIMDE_FLOAT16_VALUE(   595.50),
        SIMDE_FLOAT16_VALUE(  -458.50), SIMDE_FLOAT16_VALUE(  -909.00), SIMDE_FLOAT16_VALUE(    28.56), SIMDE_FLOAT16_VALUE(   719.00),
        SIMDE_FLOAT16_VALUE(   671.50), SIMDE_FLOAT16_VALUE(    40.03), SIMDE_FLOAT16_VALUE(  -822.00), SIMDE_FLOAT16_VALUE(  -361.50) } },
    { { SIMDE_FLOAT16_VALUE(  -998.50), SIMDE_FLOAT16_VALUE(  -625.00), SIMDE_FLOAT16_VALUE(  -584.50), SIMDE_FLOAT16_VALUE(  -933.00),
        SIMDE_FLOAT16_VALUE(  -773.00), SIMDE_FLOAT16_VALUE(   593.50), SIMDE_FLOAT16_VALUE(  -320.25), SIMDE_FLOAT16_VALUE(  -528.00),
        SIMDE_FLOAT16_VALUE(  -765.00), SIMDE_FLOAT16_VALUE(   187.12), SIMDE_FLOAT16_VALUE(   991.00), SIMDE_FLOAT16_VALUE(   373.25),
        SIMDE_FLOAT16_VALUE(  -949.00), SIMDE_FLOAT16_VALUE(   238.25), SIMDE_FLOAT16_VALUE(  -435.75), SIMDE_FLOAT16_VALUE(    62.16),
        SIMDE_FLOAT16_VALUE(  -149.75), SIMDE_FLOAT16_VALUE(   551.00), SIMDE_FLOAT16_VALUE(    98.25), SIMDE_FLOAT16_VALUE(  -641.00),
        SIMDE_FLOAT16_VALUE(  -455.00), SIMDE_FLOAT16_VALUE(  -180.62), SIMDE_FLOAT16_VALUE(   954.50), SIMDE_FLOAT16_VALUE(    86.62),
        SIMDE_FLOAT16_VALUE(   -89.69), SIMDE_FLOAT16_VALUE(   -16.88), SIMDE_FLOAT16_VALUE(  -194.62), SIMDE_FLOAT16_VALUE(  -418.25),
        SIMDE_FLOAT16_VALUE(  -977.00), SIMDE_FLOAT16_VALUE(   -16.39), SIMDE_FLOAT16_VALUE(   220.38), SIMDE_FLOAT16_VALUE(  -975.50) },
      { SIMDE_FLOAT16_VALUE(  -998.50), SIMDE_FLOAT16_VALUE(  -625.00), SIMDE_FLOAT16_VALUE(  -584.50), SIMDE_FLOAT16_VALUE(  -933.00),
        SIMDE_FLOAT16_VALUE(  -773.00), SIMDE_FLOAT16_VALUE(   593.50), SIMDE_FLOAT16_VALUE(  -320.25), SIMDE_FLOAT16_VALUE(  -528.00),
        SIMDE_FLOAT16_VALUE(  -765.00), SIMDE_FLOAT16_VALUE(   187.12), SIMDE_FLOAT16_VALUE(   991.00), SIMDE_FLOAT16_VALUE(   373.25),
        SIMDE_FLOAT16_VALUE(  -949.00), SIMDE_FLOAT16_VALUE(   238.25), SIMDE_FLOAT16_VALUE(  -435.75), SIMDE_FLOAT16_VALUE(    62.16),
        SIMDE_FLOAT16_VALUE(  -149.75), SIMDE_FLOAT16_VALUE(   551.00), SIMDE_FLOAT16_VALUE(    98.25), SIMDE_FLOAT16_VALUE(  -641.00),
        SIMDE_FLOAT16_VALUE(  -455.00), SIMDE_FLOAT16_VALUE(  -180.62), SIMDE_FLOAT16_VALUE(   954.50), SIMDE_FLOAT16_VALUE(    86.62),
        SIMDE_FLOAT16_VALUE(   -89.69), SIMDE_FLOAT16_VALUE(   -16.88), SIMDE_FLOAT16_VALUE(  -194.62), SIMDE_FLOAT16_VALUE(  -418.25),
        SIMDE_FLOAT16_VALUE(  -977.00), SIMDE_FLOAT16_VALUE(   -16.39), SIMDE_FLOAT16_VALUE(   220.38), SIMDE_FLOAT16_VALUE(  -975.50) } },
    { { SIMDE_FLOAT16_VALUE(   358.75), SIMDE_FLOAT16_VALUE(   636.00), SIMDE_FLOAT16_VALUE(  -908.50), SIMDE_FLOAT16_VALUE(   585.50),
        SIMDE_FLOAT16_VALUE(   229.38), SIMDE_FLOAT16_VALUE(  -228.75), SIMDE_FLOAT16_VALUE(  -942.50), SIMDE_FLOAT16_VALUE(   464.50),
        SIMDE_FLOAT16_VALUE(   958.50), SIMDE_FLOAT16_VALUE(  -951.00), SIMDE_FLOAT16_VALUE(  -162.12), SIMDE_FLOAT16_VALUE(  -991.00),
        SIMDE_FLOAT16_VALUE(   287.00), SIMDE_FLOAT16_VALUE(   402.25), SIMDE_FLOAT16_VALUE(    71.38), SIMDE_FLOAT16_VALUE(  -862.50),
        SIMDE_FLOAT16_VALUE(   -46.75), SIMDE_FLOAT16_VALUE(  -830.50), SIMDE_FLOAT16_VALUE(  -503.75), SIMDE_FLOAT16_VALUE(   498.25),
        SIMDE_FLOAT16_VALUE(   -10.93), SIMDE_FLOAT16_VALUE(  -549.00), SIMDE_FLOAT16_VALUE(  -415.00), SIMDE_FLOAT16_VALUE(   899.50),
        SIMDE_FLOAT16_VALUE(   433.75), SIMDE_FLOAT16_VALUE(   390.25), SIMDE_FLOAT16_VALUE(  -519.00), SIMDE_FLOAT16_VALUE(   457.00),
        SIMDE_FLOAT16_VALUE(  -626.00), SIMDE_FLOAT16_VALUE(   701.50), SIMDE_FLOAT16_VALUE(   481.50), SIMDE_FLOAT16_VALUE(   732.50) },
      { SIMDE_FLOAT16_VALUE(   358.75), SIMDE_FLOAT16_VALUE(   636.00), SIMDE_FLOAT16_VALUE(  -908.50), SIMDE_FLOAT16_VALUE(   585.50),
        SIMDE_FLOAT16_VALUE(   229.38), SIMDE_FLOAT16_VALUE(  -228.75), SIMDE_FLOAT16_VALUE(  -942.50), SIMDE_FLOAT16_VALUE(   464.50),
        SIMDE_FLOAT16_VALUE(   958.50), SIMDE_FLOAT16_VALUE(  -951.00), SIMDE_FLOAT16_VALUE(  -162.12), SIMDE_FLOAT16_VALUE(  -991.00),
        SIMDE_FLOAT16_VALUE(   287.00), SIMDE_FLOAT16_VALUE(   402.25), SIMDE_FLOAT16_VALUE(    71.38), SIMDE_FLOAT16_VALUE(  -862.50),
        SIMDE_FLOAT16_VALUE(   -46.75), SIMDE_FLOAT16_VALUE(  -830.50), SIMDE_FLOAT16_VALUE(  -503.75), SIMDE_FLOAT16_VALUE(   498.25),
        SIMDE_FLOAT16_VALUE(   -10.93), SIMDE_FLOAT16_VALUE(  -549.00), SIMDE_FLOAT16_VALUE(  -415.00), SIMDE_FLOAT16_VALUE(   899.50),
        SIMDE_FLOAT16_VALUE(   433.75), SIMDE_FLOAT16_VALUE(   390.25), SIMDE_FLOAT16_VALUE(  -519.00), SIMDE_FLOAT16_VALUE(   457.00),
        SIMDE_FLOAT16_VALUE(  -626.00), SIMDE_FLOAT16_VALUE(   701.50), SIMDE_FLOAT16_VALUE(   481.50), SIMDE_FLOAT16_VALUE(   732.50) } },
    { { SIMDE_FLOAT16_VALUE(   337.50), SIMDE_FLOAT16_VALUE(   573.00), SIMDE_FLOAT16_VALUE(   318.25), SIMDE_FLOAT16_VALUE(  -433.00),
        SIMDE_FLOAT16_VALUE(  -656.00), SIMDE_FLOAT16_VALUE(   376.00), SIMDE_FLOAT16_VALUE(  -968.50), SIMDE_FLOAT16_VALUE(  -697.50),
        SIMDE_FLOAT16_VALUE(   424.75), SIMDE_FLOAT16_VALUE(  -130.62), SIMDE_FLOAT16_VALUE(  -688.00), SIMDE_FLOAT16_VALUE(  -288.25),
        SIMDE_FLOAT16_VALUE(  -728.50), SIMDE_FLOAT16_VALUE(   383.25), SIMDE_FLOAT16_VALUE(  -151.00), SIMDE_FLOAT16_VALUE(   224.75),
        SIMDE_FLOAT16_VALUE(   553.00), SIMDE_FLOAT16_VALUE(   345.25), SIMDE_FLOAT16_VALUE(  -277.00), SIMDE_FLOAT16_VALUE(  -458.25),
        SIMDE_FLOAT16_VALUE(   796.00), SIMDE_FLOAT16_VALUE(   308.00), SIMDE_FLOAT16_VALUE(  -558.50), SIMDE_FLOAT16_VALUE(   229.88),
        SIMDE_FLOAT16_VALUE(  -301.75), SIMDE_FLOAT16_VALUE(   -77.50), SIMDE_FLOAT16_VALUE(  -313.00), SIMDE_FLOAT16_VALUE(    72.25),
        SIMDE_FLOAT16_VALUE(  -376.00), SIMDE_FLOAT16_VALUE(  -831.50), SIMDE_FLOAT16_VALUE(  -195.12), SIMDE_FLOAT16_VALUE(   961.50) },
      { SIMDE_FLOAT16_VALUE(   337.50), SIMDE_FLOAT16_VALUE(   573.00), SIMDE_FLOAT16_VALUE(   318.25), SIMDE_FLOAT16_VALUE(  -433.00),
        SIMDE_FLOAT16_VALUE(  -656.00), SIMDE_FLOAT16_VALUE(   376.00), SIMDE_FLOAT16_VALUE(  -968.50), SIMDE_FLOAT16_VALUE(  -697.50),
        SIMDE_FLOAT16_VALUE(   424.75), SIMDE_FLOAT16_VALUE(  -130.62), SIMDE_FLOAT16_VALUE(  -688.00), SIMDE_FLOAT16_VALUE(  -288.25),
        SIMDE_FLOAT16_VALUE(  -728.50), SIMDE_FLOAT16_VALUE(   383.25), SIMDE_FLOAT16_VALUE(  -151.00), SIMDE_FLOAT16_VALUE(   224.75),
        SIMDE_FLOAT16_VALUE(   553.00), SIMDE_FLOAT16_VALUE(   345.25), SIMDE_FLOAT16_VALUE(  -277.00), SIMDE_FLOAT16_VALUE(  -458.25),
        SIMDE_FLOAT16_VALUE(   796.00), SIMDE_FLOAT16_VALUE(   308.00), SIMDE_FLOAT16_VALUE(  -558.50), SIMDE_FLOAT16_VALUE(   229.88),
        SIMDE_FLOAT16_VALUE(  -301.75), SIMDE_FLOAT16_VALUE(   -77.50), SIMDE_FLOAT16_VALUE(  -313.00), SIMDE_FLOAT16_VALUE(    72.25),
        SIMDE_FLOAT16_VALUE(  -376.00), SIMDE_FLOAT16_VALUE(  -831.50), SIMDE_FLOAT16_VALUE(  -195.12), SIMDE_FLOAT16_VALUE(   961.50) } },
    { { SIMDE_FLOAT16_VALUE(   741.50), SIMDE_FLOAT16_VALUE(  -877.00), SIMDE_FLOAT16_VALUE(  -471.50), SIMDE_FLOAT16_VALUE(  -914.50),
        SIMDE_FLOAT16_VALUE(   499.00), SIMDE_FLOAT16_VALUE(  -440.00), SIMDE_FLOAT16_VALUE(  -612.00), SIMDE_FLOAT16_VALUE(   -76.31),
        SIMDE_FLOAT16_VALUE(   429.25), SIMDE_FLOAT16_VALUE(  -300.25), SIMDE_FLOAT16_VALUE(   635.50), SIMDE_FLOAT16_VALUE(   701.00),
        SIMDE_FLOAT16_VALUE(  -917.00), SIMDE_FLOAT16_VALUE(  -515.50), SIMDE_FLOAT16_VALUE(   -74.44), SIMDE_FLOAT16_VALUE(   636.00),
        SIMDE_FLOAT16_VALUE(   830.00), SIMDE_FLOAT16_VALUE(   648.50), SIMDE_FLOAT16_VALUE(  -822.50), SIMDE_FLOAT16_VALUE(   626.00),
        SIMDE_FLOAT16_VALUE(   -43.28), SIMDE_FLOAT16_VALUE(  -381.00), SIMDE_FLOAT16_VALUE(  -144.25), SIMDE_FLOAT16_VALUE(   655.00),
        SIMDE_FLOAT16_VALUE(   541.50), SIMDE_FLOAT16_VALUE(   542.50), SIMDE_FLOAT16_VALUE(  -272.75), SIMDE_FLOAT16_VALUE(  -834.50),
        SIMDE_FLOAT16_VALUE(   711.00), SIMDE_FLOAT16_VALUE(   532.00), SIMDE_FLOAT16_VALUE(  -873.00), SIMDE_FLOAT16_VALUE(   452.50) },
      { SIMDE_FLOAT16_VALUE(   741.50), SIMDE_FLOAT16_VALUE(  -877.00), SIMDE_FLOAT16_VALUE(  -471.50), SIMDE_FLOAT16_VALUE(  -914.50),
        SIMDE_FLOAT16_VALUE(   499.00), SIMDE_FLOAT16_VALUE(  -440.00), SIMDE_FLOAT16_VALUE(  -612.00), SIMDE_FLOAT16_VALUE(   -76.31),
        SIMDE_FLOAT16_VALUE(   429.25), SIMDE_FLOAT16_VALUE(  -300.25), SIMDE_FLOAT16_VALUE(   635.50), SIMDE_FLOAT16_VALUE(   701.00),
        SIMDE_FLOAT16_VALUE(  -917.00), SIMDE_FLOAT16_VALUE(  -515.50), SIMDE_FLOAT16_VALUE(   -74.44), SIMDE_FLOAT16_VALUE(   636.00),
        SIMDE_FLOAT16_VALUE(   830.00), SIMDE_FLOAT16_VALUE(   648.50), SIMDE_FLOAT16_VALUE(  -822.50), SIMDE_FLOAT16_VALUE(   626.00),
        SIMDE_FLOAT16_VALUE(   -43.28), SIMDE_FLOAT16_VALUE(  -381.00), SIMDE_FLOAT16_VALUE(  -144.25), SIMDE_FLOAT16_VALUE(   655.00),
        SIMDE_FLOAT16_VALUE(   541.50), SIMDE_FLOAT16_VALUE(   542.50), SIMDE_FLOAT16_VALUE(  -272.75), SIMDE_FLOAT16_VALUE(  -834.50),
        SIMDE_FLOAT16_VALUE(   711.00), SIMDE_FLOAT16_VALUE(   532.00), SIMDE_FLOAT16_VALUE(  -873.00), SIMDE_FLOAT16_VALUE(   452.50) } },
    { { SIMDE_FLOAT16_VALUE(   655.00), SIMDE_FLOAT16_VALUE(  -344.50), SIMDE_FLOAT16_VALUE(   538.00), SIMDE_FLOAT16_VALUE(   154.25),
        SIMDE_FLOAT16_VALUE(   215.38), SIMDE_FLOAT16_VALUE(   926.00), SIMDE_FLOAT16_VALUE(  -922.00), SIMDE_FLOAT16_VALUE(  -355.50),
        SIMDE_FLOAT16_VALUE(  -374.00), SIMDE_FLOAT16_VALUE(   713.50), SIMDE_FLOAT16_VALUE(  -654.50), SIMDE_FLOAT16_VALUE(  -291.00),
        SIMDE_FLOAT16_VALUE(  -802.00), SIMDE_FLOAT16_VALUE(   271.00), SIMDE_FLOAT16_VALUE(  -655.50), SIMDE_FLOAT16_VALUE(  -972.00),
        SIMDE_FLOAT16_VALUE(   -80.31), SIMDE_FLOAT16_VALUE(  -477.75), SIMDE_FLOAT16_VALUE(   653.50), SIMDE_FLOAT16_VALUE(   876.50),
        SIMDE_FLOAT16_VALUE(   141.25), SIMDE_FLOAT16_VALUE(  -490.75), SIMDE_FLOAT16_VALUE(   531.50), SIMDE_FLOAT16_VALUE(  -317.25),
        SIMDE_FLOAT16_VALUE(  -948.00), SIMDE_FLOAT16_VALUE(  -741.50), SIMDE_FLOAT16_VALUE(  -151.75), SIMDE_FLOAT16_VALUE(   763.00),
        SIMDE_FLOAT16_VALUE(   791.00), SIMDE_FLOAT16_VALUE(   -24.83), SIMDE_FLOAT16_VALUE(   215.38), SIMDE_FLOAT16_VALUE(   446.00) },
      { SIMDE_FLOAT16_VALUE(   655.00), SIMDE_FLOAT16_VALUE(  -344.50), SIMDE_FLOAT16_VALUE(   538.00), SIMDE_FLOAT16_VALUE(   154.25),
        SIMDE_FLOAT16_VALUE(   215.38), SIMDE_FLOAT16_VALUE(   926.00), SIMDE_FLOAT16_VALUE(  -922.00), SIMDE_FLOAT16_VALUE(  -355.50),
        SIMDE_FLOAT16_VALUE(  -374.00), SIMDE_FLOAT16_VALUE(   713.50), SIMDE_FLOAT16_VALUE(  -654.50), SIMDE_FLOAT16_VALUE(  -291.00),
        SIMDE_FLOAT16_VALUE(  -802.00), SIMDE_FLOAT16_VALUE(   271.00), SIMDE_FLOAT16_VALUE(  -655.50), SIMDE_FLOAT16_VALUE(  -972.00),
        SIMDE_FLOAT16_VALUE(   -80.31), SIMDE_FLOAT16_VALUE(  -477.75), SIMDE_FLOAT16_VALUE(   653.50), SIMDE_FLOAT16_VALUE(   876.50),
        SIMDE_FLOAT16_VALUE(   141.25), SIMDE_FLOAT16_VALUE(  -490.75), SIMDE_FLOAT16_VALUE(   531.50), SIMDE_FLOAT16_VALUE(  -317.25),
        SIMDE_FLOAT16_VALUE(  -948.00), SIMDE_FLOAT16_VALUE(  -741.50), SIMDE_FLOAT16_VALUE(  -151.75), SIMDE_FLOAT16_VALUE(   763.00),
        SIMDE_FLOAT16_VALUE(   791.00), SIMDE_FLOAT16_VALUE(   -24.83), SIMDE_FLOAT16_VALUE(   215.38), SIMDE_FLOAT16_VALUE(   446.00) } },
    { { SIMDE_FLOAT16_VALUE(   630.50), SIMDE_FLOAT16_VALUE(  -246.75), SIMDE_FLOAT16_VALUE(  -399.75), SIMDE_FLOAT16_VALUE(  -154.00),
        SIMDE_FLOAT16_VALUE(  -320.75), SIMDE_FLOAT16_VALUE(  -321.75), SIMDE_FLOAT16_VALUE(   490.50), SIMDE_FLOAT16_VALUE(   305.25),
        SIMDE_FLOAT16_VALUE(  -608.50), SIMDE_FLOAT16_VALUE(   836.00), SIMDE_FLOAT16_VALUE(  -986.00), SIMDE_FLOAT16_VALUE(  -410.50),
        SIMDE_FLOAT16_VALUE(   107.00), SIMDE_FLOAT16_VALUE(  -641.00), SIMDE_FLOAT16_VALUE(  -382.75), SIMDE_FLOAT16_VALUE(  -973.50),
        SIMDE_FLOAT16_VALUE(  -118.75), SIMDE_FLOAT16_VALUE(  -729.00), SIMDE_FLOAT16_VALUE(   903.00), SIMDE_FLOAT16_VALUE(  -977.50),
        SIMDE_FLOAT16_VALUE(  -219.75), SIMDE_FLOAT16_VALUE(   434.50), SIMDE_FLOAT16_VALUE(  -294.75), SIMDE_FLOAT16_VALUE(  -167.88),
        SIMDE_FLOAT16_VALUE(   693.50), SIMDE_FLOAT16_VALUE(   553.50), SIMDE_FLOAT16_VALUE(  -405.00), SIMDE_FLOAT16_VALUE(   484.25),
        SIMDE_FLOAT16_VALUE(  -471.25), SIMDE_FLOAT16_VALUE(   810.50), SIMDE_FLOAT16_VALUE(   -69.81), SIMDE_FLOAT16_VALUE(  -840.50) },
      { SIMDE_FLOAT16_VALUE(   630.50), SIMDE_FLOAT16_VALUE(  -246.75), SIMDE_FLOAT16_VALUE(  -399.75), SIMDE_FLOAT16_VALUE(  -154.00),
        SIMDE_FLOAT16_VALUE(  -320.75), SIMDE_FLOAT16_VALUE(  -321.75), SIMDE_FLOAT16_VALUE(   490.50), SIMDE_FLOAT16_VALUE(   305.25),
        SIMDE_FLOAT16_VALUE(  -608.50), SIMDE_FLOAT16_VALUE(   836.00), SIMDE_FLOAT16_VALUE(  -986.00), SIMDE_FLOAT16_VALUE(  -410.50),
        SIMDE_FLOAT16_VALUE(   107.00), SIMDE_FLOAT16_VALUE(  -641.00), SIMDE_FLOAT16_VALUE(  -382.75), SIMDE_FLOAT16_VALUE(  -973.50),
        SIMDE_FLOAT16_VALUE(  -118.75), SIMDE_FLOAT16_VALUE(  -729.00), SIMDE_FLOAT16_VALUE(   903.00), SIMDE_FLOAT16_VALUE(  -977.50),
        SIMDE_FLOAT16_VALUE(  -219.75), SIMDE_FLOAT16_VALUE(   434.50), SIMDE_FLOAT16_VALUE(  -294.75), SIMDE_FLOAT16_VALUE(  -167.88),
        SIMDE_FLOAT16_VALUE(   693.50), SIMDE_FLOAT16_VALUE(   553.50), SIMDE_FLOAT16_VALUE(  -405.00), SIMDE_FLOAT16_VALUE(   484.25),
        SIMDE_FLOAT16_VALUE(  -471.25), SIMDE_FLOAT16_VALUE(   810.50), SIMDE_FLOAT16_VALUE(   -69.81), SIMDE_FLOAT16_VALUE(  -840.50) } }
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512h r = simde_mm512_set_ph(
        test_vec[i].a[31], test_vec[i].a[30], test_vec[i].a[29], test_vec[i].a[28],
        test_vec[i].a[27], test_vec[i].a[26], test_vec[i].a[25], test_vec[i].a[24],
        test_vec[i].a[23], test_vec[i].a[22], test_vec[i].a[21], test_vec[i].a[20],
        test_vec[i].a[19], test_vec[i].a[18], test_vec[i].a[17], test_vec[i].a[16],
        test_vec[i].a[15], test_vec[i].a[14], test_vec[i].a[13], test_vec[i].a[12],
        test_vec[i].a[11], test_vec[i].a[10], test_vec[i].a[ 9], test_vec[i].a[ 8],
        test_vec[i].a[ 7], test_vec[i].a[ 6], test_vec[i].a[ 5], test_vec[i].a[ 4],
        test_vec[i].a[ 3], test_vec[i].a[ 2], test_vec[i].a[ 1], test_vec[i].a[ 0]);
    simde_test_x86_assert_equal_f16x32(r, simde_mm512_loadu_ph(test_vec[i].r), 1);
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m512h a = simde_test_x86_random_f16x32(SIMDE_FLOAT16_VALUE(-1000.0), SIMDE_FLOAT16_VALUE(1000.0));
    simde__m512h r = a;

    simde_test_x86_write_f16x32(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_f16x32(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}
#endif

static int
test_simde_x_mm512_set_epu8 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const uint8_t a[64];
    const uint8_t r[64];
  } test_vec[] = {
    { { UINT8_C( 95), UINT8_C(  0), UINT8_C( 21), UINT8_C( 49), UINT8_C(138), UINT8_C(176), UINT8_C( 81), UINT8_C(112),
        UINT8_C(154), UINT8_C( 14), UINT8_C( 32), UINT8_C(204), UINT8_C( 42), UINT8_C( 19), UINT8_C( 48), UINT8_C(192),
        UINT8_C(242), UINT8_C(170), UINT8_C( 39), UINT8_C( 54), UINT8_C(129), UINT8_C(142), UINT8_C( 42), UINT8_C( 41),
        UINT8_C(228), UINT8_C( 22), UINT8_C(187), UINT8_C(131), UINT8_C( 86), UINT8_C( 78), UINT8_C( 36), UINT8_C(182),
        UINT8_C( 78), UINT8_C( 57), UINT8_C(231), UINT8_C(216), UINT8_C(233), UINT8_C( 56), UINT8_C( 72), UINT8_C(131),
        UINT8_C( 71), UINT8_C(104), UINT8_C( 79), UINT8_C(113), UINT8_C(124), UINT8_C(127), UINT8_C( 49), UINT8_C(110),
        UINT8_C( 42), UINT8_C( 88), UINT8_C(165), UINT8_C(171), UINT8_C(230), UINT8_C(207), UINT8_C(212), UINT8_C(202),
        UINT8_C(229), UINT8_C(143), UINT8_C( 77), UINT8_C( 59), UINT8_C(221), UINT8_C(113), UINT8_C(241), UINT8_C( 43) },
      { UINT8_C( 95), UINT8_C(  0), UINT8_C( 21), UINT8_C( 49), UINT8_C(138), UINT8_C(176), UINT8_C( 81), UINT8_C(112),
        UINT8_C(154), UINT8_C( 14), UINT8_C( 32), UINT8_C(204), UINT8_C( 42), UINT8_C( 19), UINT8_C( 48), UINT8_C(192),
        UINT8_C(242), UINT8_C(170), UINT8_C( 39), UINT8_C( 54), UINT8_C(129), UINT8_C(142), UINT8_C( 42), UINT8_C( 41),
        UINT8_C(228), UINT8_C( 22), UINT8_C(187), UINT8_C(131), UINT8_C( 86), UINT8_C( 78), UINT8_C( 36), UINT8_C(182),
        UINT8_C( 78), UINT8_C( 57), UINT8_C(231), UINT8_C(216), UINT8_C(233), UINT8_C( 56), UINT8_C( 72), UINT8_C(131),
        UINT8_C( 71), UINT8_C(104), UINT8_C( 79), UINT8_C(113), UINT8_C(124), UINT8_C(127), UINT8_C( 49), UINT8_C(110),
        UINT8_C( 42), UINT8_C( 88), UINT8_C(165), UINT8_C(171), UINT8_C(230), UINT8_C(207), UINT8_C(212), UINT8_C(202),
        UINT8_C(229), UINT8_C(143), UINT8_C( 77), UINT8_C( 59), UINT8_C(221), UINT8_C(113), UINT8_C(241), UINT8_C( 43) } },
    { { UINT8_C(170), UINT8_C(216), UINT8_C(  3), UINT8_C(148), UINT8_C( 17), UINT8_C( 75), UINT8_C( 23), UINT8_C( 88),
        UINT8_C(179), UINT8_C(103), UINT8_C(201), UINT8_C( 47), UINT8_C(230), UINT8_C(250), UINT8_C(158), UINT8_C( 16),
        UINT8_C( 82), UINT8_C( 67), UINT8_C(187), UINT8_C( 56), UINT8_C( 18), UINT8_C(143), UINT8_C(  2), UINT8_C(247),
        UINT8_C( 30), UINT8_C( 79), UINT8_C( 50), UINT8_C(251), UINT8_C(193), UINT8_C( 36), UINT8_C( 38), UINT8_C(107),
        UINT8_C(252), UINT8_C( 41),    UINT8_MAX, UINT8_C( 13), UINT8_C(116), UINT8_C( 23), UINT8_C(101), UINT8_C( 40),
        UINT8_C(126), UINT8_C( 46), UINT8_C( 87), UINT8_C(100), UINT8_C( 40), UINT8_C(245), UINT8_C(117), UINT8_C(122),
        UINT8_C( 56), UINT8_C( 48), UINT8_C(178), UINT8_C( 74), UINT8_C(192), UINT8_C(180), UINT8_C( 65), UINT8_C(222),
        UINT8_C(  4), UINT8_C(116), UINT8_C(218), UINT8_C(197), UINT8_C(152), UINT8_C(  0), UINT8_C( 48), UINT8_C(148) },
      { UINT8_C(170), UINT8_C(216), UINT8_C(  3), UINT8_C(148), UINT8_C( 17), UINT8_C( 75), UINT8_C( 23), UINT8_C( 88),
        UINT8_C(179), UINT8_C(103), UINT8_C(201), UINT8_C( 47), UINT8_C(230), UINT8_C(250), UINT8_C(158), UINT8_C( 16),
        UINT8_C( 82), UINT8_C( 67), UINT8_C(187), UINT8_C( 56), UINT8_C( 18), UINT8_C(143), UINT8_C(  2), UINT8_C(247),
        UINT8_C( 30), UINT8_C( 79), UINT8_C( 50), UINT8_C(251), UINT8_C(193), UINT8_C( 36), UINT8_C( 38), UINT8_C(107),
        UINT8_C(252), UINT8_C( 41),    UINT8_MAX, UINT8_C( 13), UINT8_C(116), UINT8_C( 23), UINT8_C(101), UINT8_C( 40),
        UINT8_C(126), UINT8_C( 46), UINT8_C( 87), UINT8_C(100), UINT8_C( 40), UINT8_C(245), UINT8_C(117), UINT8_C(122),
        UINT8_C( 56), UINT8_C( 48), UINT8_C(178), UINT8_C( 74), UINT8_C(192), UINT8_C(180), UINT8_C( 65), UINT8_C(222),
        UINT8_C(  4), UINT8_C(116), UINT8_C(218), UINT8_C(197), UINT8_C(152), UINT8_C(  0), UINT8_C( 48), UINT8_C(148) } },
    { { UINT8_C( 42), UINT8_C( 48), UINT8_C(162), UINT8_C(158), UINT8_C( 71), UINT8_C(  7), UINT8_C(198), UINT8_C(197),
        UINT8_C( 54), UINT8_C( 30), UINT8_C( 41), UINT8_C( 94), UINT8_C( 19), UINT8_C(158), UINT8_C(217), UINT8_C( 76),
        UINT8_C(207), UINT8_C(139), UINT8_C(150), UINT8_C(143), UINT8_C( 64), UINT8_C(216), UINT8_C(109), UINT8_C( 68),
        UINT8_C( 76), UINT8_C( 71), UINT8_C(  9), UINT8_C(228), UINT8_C( 72), UINT8_C( 57), UINT8_C(120), UINT8_C(114),
        UINT8_C(105), UINT8_C( 26), UINT8_C( 16), UINT8_C(176), UINT8_C( 34), UINT8_C(215), UINT8_C(117), UINT8_C( 88),
        UINT8_C(245), UINT8_C(159), UINT8_C(182), UINT8_C(  8), UINT8_C( 61), UINT8_C(143), UINT8_C( 84), UINT8_C( 12),
        UINT8_C( 27), UINT8_C(235), UINT8_C(155), UINT8_C( 91), UINT8_C(195), UINT8_C(  9), UINT8_C(159), UINT8_C( 15),
        UINT8_C( 80), UINT8_C(168), UINT8_C(243), UINT8_C(152), UINT8_C(225), UINT8_C(107), UINT8_C( 10), UINT8_C( 75) },
      { UINT8_C( 42), UINT8_C( 48), UINT8_C(162), UINT8_C(158), UINT8_C( 71), UINT8_C(  7), UINT8_C(198), UINT8_C(197),
        UINT8_C( 54), UINT8_C( 30), UINT8_C( 41), UINT8_C( 94), UINT8_C( 19), UINT8_C(158), UINT8_C(217), UINT8_C( 76),
        UINT8_C(207), UINT8_C(139), UINT8_C(150), UINT8_C(143), UINT8_C( 64), UINT8_C(216), UINT8_C(109), UINT8_C( 68),
        UINT8_C( 76), UINT8_C( 71), UINT8_C(  9), UINT8_C(228), UINT8_C( 72), UINT8_C( 57), UINT8_C(120), UINT8_C(114),
        UINT8_C(105), UINT8_C( 26), UINT8_C( 16), UINT8_C(176), UINT8_C( 34), UINT8_C(215), UINT8_C(117), UINT8_C( 88),
        UINT8_C(245), UINT8_C(159), UINT8_C(182), UINT8_C(  8), UINT8_C( 61), UINT8_C(143), UINT8_C( 84), UINT8_C( 12),
        UINT8_C( 27), UINT8_C(235), UINT8_C(155), UINT8_C( 91), UINT8_C(195), UINT8_C(  9), UINT8_C(159), UINT8_C( 15),
        UINT8_C( 80), UINT8_C(168), UINT8_C(243), UINT8_C(152), UINT8_C(225), UINT8_C(107), UINT8_C( 10), UINT8_C( 75) } },
    { { UINT8_C(134), UINT8_C( 27), UINT8_C(251), UINT8_C(168), UINT8_C(242), UINT8_C(113), UINT8_C(  0), UINT8_C(231),
        UINT8_C( 16), UINT8_C(182), UINT8_C(239), UINT8_C( 77), UINT8_C( 70), UINT8_C( 68), UINT8_C( 90), UINT8_C( 97),
        UINT8_C( 47), UINT8_C(245), UINT8_C(188), UINT8_C(242), UINT8_C(254), UINT8_C( 91), UINT8_C(  1), UINT8_C( 79),
        UINT8_C(  3), UINT8_C(244), UINT8_C(231), UINT8_C(228), UINT8_C( 95), UINT8_C(242), UINT8_C( 47), UINT8_C(229),
        UINT8_C( 13), UINT8_C( 43), UINT8_C(141),    UINT8_MAX, UINT8_C(156), UINT8_C(141), UINT8_C(230), UINT8_C(172),
        UINT8_C( 68), UINT8_C(213), UINT8_C(249), UINT8_C(138), UINT8_C( 25), UINT8_C( 83), UINT8_C(235), UINT8_C( 72),
        UINT8_C( 73), UINT8_C(167), UINT8_C( 58), UINT8_C( 71), UINT8_C(  2), UINT8_C( 59), UINT8_C(150), UINT8_C(  5),
        UINT8_C( 47), UINT8_C(126), UINT8_C(233), UINT8_C(143), UINT8_C(112), UINT8_C( 25), UINT8_C(116), UINT8_C(125) },
      { UINT8_C(134), UINT8_C( 27), UINT8_C(251), UINT8_C(168), UINT8_C(242), UINT8_C(113), UINT8_C(  0), UINT8_C(231),
        UINT8_C( 16), UINT8_C(182), UINT8_C(239), UINT8_C( 77), UINT8_C( 70), UINT8_C( 68), UINT8_C( 90), UINT8_C( 97),
        UINT8_C( 47), UINT8_C(245), UINT8_C(188), UINT8_C(242), UINT8_C(254), UINT8_C( 91), UINT8_C(  1), UINT8_C( 79),
        UINT8_C(  3), UINT8_C(244), UINT8_C(231), UINT8_C(228), UINT8_C( 95), UINT8_C(242), UINT8_C( 47), UINT8_C(229),
        UINT8_C( 13), UINT8_C( 43), UINT8_C(141),    UINT8_MAX, UINT8_C(156), UINT8_C(141), UINT8_C(230), UINT8_C(172),
        UINT8_C( 68), UINT8_C(213), UINT8_C(249), UINT8_C(138), UINT8_C( 25), UINT8_C( 83), UINT8_C(235), UINT8_C( 72),
        UINT8_C( 73), UINT8_C(167), UINT8_C( 58), UINT8_C( 71), UINT8_C(  2), UINT8_C( 59), UINT8_C(150), UINT8_C(  5),
        UINT8_C( 47), UINT8_C(126), UINT8_C(233), UINT8_C(143), UINT8_C(112), UINT8_C( 25), UINT8_C(116), UINT8_C(125) } },
    { { UINT8_C( 68), UINT8_C(  2), UINT8_C(124), UINT8_C(224), UINT8_C(143), UINT8_C( 98), UINT8_C(140), UINT8_C(211),
        UINT8_C( 55), UINT8_C(133), UINT8_C( 93), UINT8_C( 81), UINT8_C(217), UINT8_C( 72), UINT8_C(153), UINT8_C( 34),
        UINT8_C(239), UINT8_C(212), UINT8_C(105), UINT8_C(241), UINT8_C( 15), UINT8_C(  0), UINT8_C(246), UINT8_C( 63),
        UINT8_C(126), UINT8_C(224), UINT8_C(206), UINT8_C(238), UINT8_C(249), UINT8_C( 66), UINT8_C(107), UINT8_C( 61),
        UINT8_C( 68), UINT8_C(231), UINT8_C( 29), UINT8_C(212), UINT8_C( 73), UINT8_C(169), UINT8_C(167), UINT8_C(128),
        UINT8_C( 46), UINT8_C(  5), UINT8_C(209), UINT8_C(  7), UINT8_C( 77), UINT8_C(107), UINT8_C( 41), UINT8_C( 61),
        UINT8_C( 63), UINT8_C(147), UINT8_C( 46), UINT8_C( 78), UINT8_C(147), UINT8_C( 37), UINT8_C(141), UINT8_C( 17),
        UINT8_C(  5), UINT8_C( 91),    UINT8_MAX, UINT8_C(254), UINT8_C(158), UINT8_C(106), UINT8_C( 59), UINT8_C(226) },
      { UINT8_C( 68), UINT8_C(  2), UINT8_C(124), UINT8_C(224), UINT8_C(143), UINT8_C( 98), UINT8_C(140), UINT8_C(211),
        UINT8_C( 55), UINT8_C(133), UINT8_C( 93), UINT8_C( 81), UINT8_C(217), UINT8_C( 72), UINT8_C(153), UINT8_C( 34),
        UINT8_C(239), UINT8_C(212), UINT8_C(105), UINT8_C(241), UINT8_C( 15), UINT8_C(  0), UINT8_C(246), UINT8_C( 63),
        UINT8_C(126), UINT8_C(224), UINT8_C(206), UINT8_C(238), UINT8_C(249), UINT8_C( 66), UINT8_C(107), UINT8_C( 61),
        UINT8_C( 68), UINT8_C(231), UINT8_C( 29), UINT8_C(212), UINT8_C( 73), UINT8_C(169), UINT8_C(167), UINT8_C(128),
        UINT8_C( 46), UINT8_C(  5), UINT8_C(209), UINT8_C(  7), UINT8_C( 77), UINT8_C(107), UINT8_C( 41), UINT8_C( 61),
        UINT8_C( 63), UINT8_C(147), UINT8_C( 46), UINT8_C( 78), UINT8_C(147), UINT8_C( 37), UINT8_C(141), UINT8_C( 17),
        UINT8_C(  5), UINT8_C( 91),    UINT8_MAX, UINT8_C(254), UINT8_C(158), UINT8_C(106), UINT8_C( 59), UINT8_C(226) } },
    { { UINT8_C( 81), UINT8_C( 88), UINT8_C(182), UINT8_C(154), UINT8_C(  1), UINT8_C( 94), UINT8_C( 26), UINT8_C( 47),
        UINT8_C( 99), UINT8_C(236), UINT8_C( 55), UINT8_C(176), UINT8_C( 87), UINT8_C( 96), UINT8_C(237), UINT8_C(150),
        UINT8_C(243), UINT8_C( 28), UINT8_C(228), UINT8_C(134), UINT8_C( 65), UINT8_C(114), UINT8_C(151), UINT8_C( 70),
        UINT8_C(205), UINT8_C(150), UINT8_C( 68), UINT8_C(107), UINT8_C(  0), UINT8_C(127), UINT8_C( 78), UINT8_C( 81),
        UINT8_C(215), UINT8_C(  4), UINT8_C(235), UINT8_C(216), UINT8_C( 98), UINT8_C(  6), UINT8_C(  7), UINT8_C(197),
        UINT8_C(242), UINT8_C( 62), UINT8_C(118), UINT8_C( 73), UINT8_C(159), UINT8_C( 99), UINT8_C(223), UINT8_C(146),
        UINT8_C(127), UINT8_C(195), UINT8_C( 25), UINT8_C(192), UINT8_C( 53), UINT8_C(176), UINT8_C(  6), UINT8_C(  3),
        UINT8_C( 71), UINT8_C( 74), UINT8_C(110), UINT8_C( 71), UINT8_C(201), UINT8_C(188), UINT8_C(153), UINT8_C(160) },
      { UINT8_C( 81), UINT8_C( 88), UINT8_C(182), UINT8_C(154), UINT8_C(  1), UINT8_C( 94), UINT8_C( 26), UINT8_C( 47),
        UINT8_C( 99), UINT8_C(236), UINT8_C( 55), UINT8_C(176), UINT8_C( 87), UINT8_C( 96), UINT8_C(237), UINT8_C(150),
        UINT8_C(243), UINT8_C( 28), UINT8_C(228), UINT8_C(134), UINT8_C( 65), UINT8_C(114), UINT8_C(151), UINT8_C( 70),
        UINT8_C(205), UINT8_C(150), UINT8_C( 68), UINT8_C(107), UINT8_C(  0), UINT8_C(127), UINT8_C( 78), UINT8_C( 81),
        UINT8_C(215), UINT8_C(  4), UINT8_C(235), UINT8_C(216), UINT8_C( 98), UINT8_C(  6), UINT8_C(  7), UINT8_C(197),
        UINT8_C(242), UINT8_C( 62), UINT8_C(118), UINT8_C( 73), UINT8_C(159), UINT8_C( 99), UINT8_C(223), UINT8_C(146),
        UINT8_C(127), UINT8_C(195), UINT8_C( 25), UINT8_C(192), UINT8_C( 53), UINT8_C(176), UINT8_C(  6), UINT8_C(  3),
        UINT8_C( 71), UINT8_C( 74), UINT8_C(110), UINT8_C( 71), UINT8_C(201), UINT8_C(188), UINT8_C(153), UINT8_C(160) } },
    { { UINT8_C(193), UINT8_C(132), UINT8_C(120), UINT8_C( 35), UINT8_C(138), UINT8_C(128), UINT8_C(233), UINT8_C(124),
        UINT8_C(190), UINT8_C( 95), UINT8_C(197), UINT8_C( 93), UINT8_C(194), UINT8_C(164), UINT8_C(240), UINT8_C( 66),
        UINT8_C(104), UINT8_C(  9), UINT8_C(  2), UINT8_C(157), UINT8_C(185), UINT8_C(  9), UINT8_C(160), UINT8_C(  0),
        UINT8_C( 83), UINT8_C( 15), UINT8_C( 72), UINT8_C( 29), UINT8_C(203), UINT8_C(225), UINT8_C(189), UINT8_C(140),
        UINT8_C(101), UINT8_C( 54), UINT8_C(176), UINT8_C(240), UINT8_C(182), UINT8_C(153), UINT8_C(108), UINT8_C(116),
        UINT8_C(248), UINT8_C( 50), UINT8_C(210), UINT8_C(186), UINT8_C(214), UINT8_C(194), UINT8_C(252), UINT8_C( 62),
        UINT8_C(203),    UINT8_MAX, UINT8_C(220), UINT8_C(132), UINT8_C(  8), UINT8_C(124), UINT8_C(133), UINT8_C( 91),
        UINT8_C(139), UINT8_C(205), UINT8_C(120), UINT8_C( 87), UINT8_C(174), UINT8_C( 54), UINT8_C(227), UINT8_C( 19) },
      { UINT8_C(193), UINT8_C(132), UINT8_C(120), UINT8_C( 35), UINT8_C(138), UINT8_C(128), UINT8_C(233), UINT8_C(124),
        UINT8_C(190), UINT8_C( 95), UINT8_C(197), UINT8_C( 93), UINT8_C(194), UINT8_C(164), UINT8_C(240), UINT8_C( 66),
        UINT8_C(104), UINT8_C(  9), UINT8_C(  2), UINT8_C(157), UINT8_C(185), UINT8_C(  9), UINT8_C(160), UINT8_C(  0),
        UINT8_C( 83), UINT8_C( 15), UINT8_C( 72), UINT8_C( 29), UINT8_C(203), UINT8_C(225), UINT8_C(189), UINT8_C(140),
        UINT8_C(101), UINT8_C( 54), UINT8_C(176), UINT8_C(240), UINT8_C(182), UINT8_C(153), UINT8_C(108), UINT8_C(116),
        UINT8_C(248), UINT8_C( 50), UINT8_C(210), UINT8_C(186), UINT8_C(214), UINT8_C(194), UINT8_C(252), UINT8_C( 62),
        UINT8_C(203),    UINT8_MAX, UINT8_C(220), UINT8_C(132), UINT8_C(  8), UINT8_C(124), UINT8_C(133), UINT8_C( 91),
        UINT8_C(139), UINT8_C(205), UINT8_C(120), UINT8_C( 87), UINT8_C(174), UINT8_C( 54), UINT8_C(227), UINT8_C( 19) } },
    { { UINT8_C(108), UINT8_C(147), UINT8_C(  3), UINT8_C( 34), UINT8_C( 44), UINT8_C(112), UINT8_C(150), UINT8_C( 36),
        UINT8_C(162), UINT8_C(104), UINT8_C(223), UINT8_C(120), UINT8_C( 42), UINT8_C(219), UINT8_C(183), UINT8_C(245),
        UINT8_C(218), UINT8_C(147), UINT8_C(122), UINT8_C(226), UINT8_C( 15),    UINT8_MAX, UINT8_C( 62), UINT8_C(155),
        UINT8_C(204), UINT8_C(182), UINT8_C(242), UINT8_C(122), UINT8_C(236), UINT8_C(213), UINT8_C(141), UINT8_C( 88),
        UINT8_C(105), UINT8_C(145), UINT8_C(122), UINT8_C(149), UINT8_C(  1), UINT8_C( 17), UINT8_C(186), UINT8_C(163),
        UINT8_C(121), UINT8_C(153), UINT8_C( 27), UINT8_C(164), UINT8_C(116), UINT8_C(210), UINT8_C(153), UINT8_C( 79),
        UINT8_C(101), UINT8_C( 19), UINT8_C( 49), UINT8_C(117), UINT8_C( 18), UINT8_C(111), UINT8_C( 16), UINT8_C(222),
        UINT8_C( 38), UINT8_C(  2), UINT8_C( 88), UINT8_C( 18), UINT8_C(215), UINT8_C(230), UINT8_C(107), UINT8_C( 64) },
      { UINT8_C(108), UINT8_C(147), UINT8_C(  3), UINT8_C( 34), UINT8_C( 44), UINT8_C(112), UINT8_C(150), UINT8_C( 36),
        UINT8_C(162), UINT8_C(104), UINT8_C(223), UINT8_C(120), UINT8_C( 42), UINT8_C(219), UINT8_C(183), UINT8_C(245),
        UINT8_C(218), UINT8_C(147), UINT8_C(122), UINT8_C(226), UINT8_C( 15),    UINT8_MAX, UINT8_C( 62), UINT8_C(155),
        UINT8_C(204), UINT8_C(182), UINT8_C(242), UINT8_C(122), UINT8_C(236), UINT8_C(213), UINT8_C(141), UINT8_C( 88),
        UINT8_C(105), UINT8_C(145), UINT8_C(122), UINT8_C(149), UINT8_C(  1), UINT8_C( 17), UINT8_C(186), UINT8_C(163),
        UINT8_C(121), UINT8_C(153), UINT8_C( 27), UINT8_C(164), UINT8_C(116), UINT8_C(210), UINT8_C(153), UINT8_C( 79),
        UINT8_C(101), UINT8_C( 19), UINT8_C( 49), UINT8_C(117), UINT8_C( 18), UINT8_C(111), UINT8_C( 16), UINT8_C(222),
        UINT8_C( 38), UINT8_C(  2), UINT8_C( 88), UINT8_C( 18), UINT8_C(215), UINT8_C(230), UINT8_C(107), UINT8_C( 64) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i r = simde_x_mm512_set_epu8(
        test_vec[i].a[63], test_vec[i].a[62], test_vec[i].a[61], test_vec[i].a[60],
        test_vec[i].a[59], test_vec[i].a[58], test_vec[i].a[57], test_vec[i].a[56],
        test_vec[i].a[55], test_vec[i].a[54], test_vec[i].a[53], test_vec[i].a[52],
        test_vec[i].a[51], test_vec[i].a[50], test_vec[i].a[49], test_vec[i].a[48],
        test_vec[i].a[47], test_vec[i].a[46], test_vec[i].a[45], test_vec[i].a[44],
        test_vec[i].a[43], test_vec[i].a[42], test_vec[i].a[41], test_vec[i].a[40],
        test_vec[i].a[39], test_vec[i].a[38], test_vec[i].a[37], test_vec[i].a[36],
        test_vec[i].a[35], test_vec[i].a[34], test_vec[i].a[33], test_vec[i].a[32],
        test_vec[i].a[31], test_vec[i].a[30], test_vec[i].a[29], test_vec[i].a[28],
        test_vec[i].a[27], test_vec[i].a[26], test_vec[i].a[25], test_vec[i].a[24],
        test_vec[i].a[23], test_vec[i].a[22], test_vec[i].a[21], test_vec[i].a[20],
        test_vec[i].a[19], test_vec[i].a[18], test_vec[i].a[17], test_vec[i].a[16],
        test_vec[i].a[15], test_vec[i].a[14], test_vec[i].a[13], test_vec[i].a[12],
        test_vec[i].a[11], test_vec[i].a[10], test_vec[i].a[ 9], test_vec[i].a[ 8],
        test_vec[i].a[ 7], test_vec[i].a[ 6], test_vec[i].a[ 5], test_vec[i].a[ 4],
        test_vec[i].a[ 3], test_vec[i].a[ 2], test_vec[i].a[ 1], test_vec[i].a[ 0]);
    simde_test_x86_assert_equal_u8x64(r, simde_mm512_loadu_si512(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m512i a = simde_test_x86_random_u8x64();
    simde__m512i r = a;

    simde_test_x86_write_u8x64(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_u8x64(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_x_mm512_set_epu16 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const uint16_t a[32];
    const uint16_t r[32];
  } test_vec[] = {
    { { UINT16_C( 4444), UINT16_C( 2014), UINT16_C(59869), UINT16_C(26792), UINT16_C(16109), UINT16_C(65375), UINT16_C(55446), UINT16_C(23385),
        UINT16_C(13676), UINT16_C(40345), UINT16_C(34579), UINT16_C(59195), UINT16_C(62220), UINT16_C(34651), UINT16_C(15434), UINT16_C(42737),
        UINT16_C(53070), UINT16_C(11181), UINT16_C(22200), UINT16_C(42387), UINT16_C(62100), UINT16_C(11172), UINT16_C(65226), UINT16_C(13958),
        UINT16_C( 7987), UINT16_C(18132), UINT16_C( 4007), UINT16_C(45870), UINT16_C(35074), UINT16_C(19770), UINT16_C(11205), UINT16_C( 5107) },
      { UINT16_C( 4444), UINT16_C( 2014), UINT16_C(59869), UINT16_C(26792), UINT16_C(16109), UINT16_C(65375), UINT16_C(55446), UINT16_C(23385),
        UINT16_C(13676), UINT16_C(40345), UINT16_C(34579), UINT16_C(59195), UINT16_C(62220), UINT16_C(34651), UINT16_C(15434), UINT16_C(42737),
        UINT16_C(53070), UINT16_C(11181), UINT16_C(22200), UINT16_C(42387), UINT16_C(62100), UINT16_C(11172), UINT16_C(65226), UINT16_C(13958),
        UINT16_C( 7987), UINT16_C(18132), UINT16_C( 4007), UINT16_C(45870), UINT16_C(35074), UINT16_C(19770), UINT16_C(11205), UINT16_C( 5107) } },
    { { UINT16_C(41467), UINT16_C(45887), UINT16_C(54007), UINT16_C(35673), UINT16_C(64965), UINT16_C(36790), UINT16_C(15611), UINT16_C(11974),
        UINT16_C(39516), UINT16_C(  885), UINT16_C(41897), UINT16_C(44214), UINT16_C(61484), UINT16_C(61945), UINT16_C(60444), UINT16_C( 5893),
        UINT16_C(17549), UINT16_C(33994), UINT16_C( 8982), UINT16_C(56080), UINT16_C(50721), UINT16_C( 7275), UINT16_C(12547), UINT16_C(24395),
        UINT16_C(49355), UINT16_C(29794), UINT16_C( 6243), UINT16_C(36640), UINT16_C( 6408), UINT16_C( 9344), UINT16_C(34054), UINT16_C(37691) },
      { UINT16_C(41467), UINT16_C(45887), UINT16_C(54007), UINT16_C(35673), UINT16_C(64965), UINT16_C(36790), UINT16_C(15611), UINT16_C(11974),
        UINT16_C(39516), UINT16_C(  885), UINT16_C(41897), UINT16_C(44214), UINT16_C(61484), UINT16_C(61945), UINT16_C(60444), UINT16_C( 5893),
        UINT16_C(17549), UINT16_C(33994), UINT16_C( 8982), UINT16_C(56080), UINT16_C(50721), UINT16_C( 7275), UINT16_C(12547), UINT16_C(24395),
        UINT16_C(49355), UINT16_C(29794), UINT16_C( 6243), UINT16_C(36640), UINT16_C( 6408), UINT16_C( 9344), UINT16_C(34054), UINT16_C(37691) } },
    { { UINT16_C( 1737), UINT16_C(57368), UINT16_C(10281), UINT16_C(19131), UINT16_C( 9966), UINT16_C(61799), UINT16_C(45655), UINT16_C( 8784),
        UINT16_C(45682), UINT16_C(54679), UINT16_C(47050), UINT16_C(54116), UINT16_C(58577), UINT16_C(55287), UINT16_C(13162), UINT16_C(13162),
        UINT16_C(33337), UINT16_C(25107), UINT16_C(53162), UINT16_C(39341), UINT16_C( 5365), UINT16_C(19850), UINT16_C(56262), UINT16_C(14447),
        UINT16_C( 1677), UINT16_C(22541), UINT16_C(29118), UINT16_C(36651), UINT16_C( 8789), UINT16_C(48998), UINT16_C(53333), UINT16_C(36595) },
      { UINT16_C( 1737), UINT16_C(57368), UINT16_C(10281), UINT16_C(19131), UINT16_C( 9966), UINT16_C(61799), UINT16_C(45655), UINT16_C( 8784),
        UINT16_C(45682), UINT16_C(54679), UINT16_C(47050), UINT16_C(54116), UINT16_C(58577), UINT16_C(55287), UINT16_C(13162), UINT16_C(13162),
        UINT16_C(33337), UINT16_C(25107), UINT16_C(53162), UINT16_C(39341), UINT16_C( 5365), UINT16_C(19850), UINT16_C(56262), UINT16_C(14447),
        UINT16_C( 1677), UINT16_C(22541), UINT16_C(29118), UINT16_C(36651), UINT16_C( 8789), UINT16_C(48998), UINT16_C(53333), UINT16_C(36595) } },
    { { UINT16_C( 1619), UINT16_C(65009), UINT16_C(40661), UINT16_C(52118), UINT16_C( 8626), UINT16_C(30744), UINT16_C(34812), UINT16_C(35248),
        UINT16_C(48526), UINT16_C(19681), UINT16_C( 3118), UINT16_C(33755), UINT16_C(16687), UINT16_C(33859), UINT16_C(13841), UINT16_C(25619),
        UINT16_C( 1084), UINT16_C( 4706), UINT16_C(63650), UINT16_C(21725), UINT16_C(62745), UINT16_C( 5580), UINT16_C(31868), UINT16_C( 2719),
        UINT16_C(32825), UINT16_C(26454), UINT16_C(12685), UINT16_C(48362), UINT16_C(11634), UINT16_C(33856), UINT16_C(21347), UINT16_C(41192) },
      { UINT16_C( 1619), UINT16_C(65009), UINT16_C(40661), UINT16_C(52118), UINT16_C( 8626), UINT16_C(30744), UINT16_C(34812), UINT16_C(35248),
        UINT16_C(48526), UINT16_C(19681), UINT16_C( 3118), UINT16_C(33755), UINT16_C(16687), UINT16_C(33859), UINT16_C(13841), UINT16_C(25619),
        UINT16_C( 1084), UINT16_C( 4706), UINT16_C(63650), UINT16_C(21725), UINT16_C(62745), UINT16_C( 5580), UINT16_C(31868), UINT16_C( 2719),
        UINT16_C(32825), UINT16_C(26454), UINT16_C(12685), UINT16_C(48362), UINT16_C(11634), UINT16_C(33856), UINT16_C(21347), UINT16_C(41192) } },
    { { UINT16_C(19031), UINT16_C(63922), UINT16_C(36675), UINT16_C(23629), UINT16_C( 6532), UINT16_C(  114), UINT16_C( 4501), UINT16_C(52747),
        UINT16_C(24977), UINT16_C( 7733), UINT16_C( 8339), UINT16_C( 1498), UINT16_C( 6989), UINT16_C(45449), UINT16_C(29294), UINT16_C(50769),
        UINT16_C(  956), UINT16_C(65471), UINT16_C( 3474), UINT16_C( 5724), UINT16_C(52774), UINT16_C(48150), UINT16_C( 8671), UINT16_C(28810),
        UINT16_C(49283), UINT16_C( 5775), UINT16_C(27104), UINT16_C(11547), UINT16_C(42372), UINT16_C(62430), UINT16_C(12055), UINT16_C(54201) },
      { UINT16_C(19031), UINT16_C(63922), UINT16_C(36675), UINT16_C(23629), UINT16_C( 6532), UINT16_C(  114), UINT16_C( 4501), UINT16_C(52747),
        UINT16_C(24977), UINT16_C( 7733), UINT16_C( 8339), UINT16_C( 1498), UINT16_C( 6989), UINT16_C(45449), UINT16_C(29294), UINT16_C(50769),
        UINT16_C(  956), UINT16_C(65471), UINT16_C( 3474), UINT16_C( 5724), UINT16_C(52774), UINT16_C(48150), UINT16_C( 8671), UINT16_C(28810),
        UINT16_C(49283), UINT16_C( 5775), UINT16_C(27104), UINT16_C(11547), UINT16_C(42372), UINT16_C(62430), UINT16_C(12055), UINT16_C(54201) } },
    { { UINT16_C(30770), UINT16_C(50387), UINT16_C(12165), UINT16_C(44250), UINT16_C(61949), UINT16_C(56424), UINT16_C(61970), UINT16_C(38220),
        UINT16_C(56242), UINT16_C(37547), UINT16_C(51013), UINT16_C(51648), UINT16_C(40556), UINT16_C(33724), UINT16_C(30158), UINT16_C(   86),
        UINT16_C(10734), UINT16_C(29637), UINT16_C(40792), UINT16_C(21791), UINT16_C(34704), UINT16_C(41777), UINT16_C(32378), UINT16_C(11320),
        UINT16_C(58457), UINT16_C(40639), UINT16_C(32683), UINT16_C( 5992), UINT16_C( 9245), UINT16_C(60314), UINT16_C(61594), UINT16_C(35052) },
      { UINT16_C(30770), UINT16_C(50387), UINT16_C(12165), UINT16_C(44250), UINT16_C(61949), UINT16_C(56424), UINT16_C(61970), UINT16_C(38220),
        UINT16_C(56242), UINT16_C(37547), UINT16_C(51013), UINT16_C(51648), UINT16_C(40556), UINT16_C(33724), UINT16_C(30158), UINT16_C(   86),
        UINT16_C(10734), UINT16_C(29637), UINT16_C(40792), UINT16_C(21791), UINT16_C(34704), UINT16_C(41777), UINT16_C(32378), UINT16_C(11320),
        UINT16_C(58457), UINT16_C(40639), UINT16_C(32683), UINT16_C( 5992), UINT16_C( 9245), UINT16_C(60314), UINT16_C(61594), UINT16_C(35052) } },
    { { UINT16_C(45338), UINT16_C(29435), UINT16_C( 6992), UINT16_C(57800), UINT16_C(63906), UINT16_C( 7300), UINT16_C(48247), UINT16_C(53577),
        UINT16_C( 2208), UINT16_C(19311), UINT16_C(55175), UINT16_C(42082), UINT16_C(64764), UINT16_C(38544), UINT16_C(31981), UINT16_C( 1822),
        UINT16_C( 6445), UINT16_C(32121), UINT16_C(16692), UINT16_C(55134), UINT16_C(57915), UINT16_C(45811), UINT16_C(15519), UINT16_C(16259),
        UINT16_C(62276), UINT16_C(52107), UINT16_C(60874), UINT16_C(50800), UINT16_C(  234), UINT16_C(55132), UINT16_C(31356), UINT16_C(43486) },
      { UINT16_C(45338), UINT16_C(29435), UINT16_C( 6992), UINT16_C(57800), UINT16_C(63906), UINT16_C( 7300), UINT16_C(48247), UINT16_C(53577),
        UINT16_C( 2208), UINT16_C(19311), UINT16_C(55175), UINT16_C(42082), UINT16_C(64764), UINT16_C(38544), UINT16_C(31981), UINT16_C( 1822),
        UINT16_C( 6445), UINT16_C(32121), UINT16_C(16692), UINT16_C(55134), UINT16_C(57915), UINT16_C(45811), UINT16_C(15519), UINT16_C(16259),
        UINT16_C(62276), UINT16_C(52107), UINT16_C(60874), UINT16_C(50800), UINT16_C(  234), UINT16_C(55132), UINT16_C(31356), UINT16_C(43486) } },
    { { UINT16_C(22420), UINT16_C(51238), UINT16_C(34201), UINT16_C(54431), UINT16_C(37735), UINT16_C( 1670), UINT16_C( 2767), UINT16_C( 5190),
        UINT16_C(53757), UINT16_C(51167), UINT16_C(20414), UINT16_C(43150), UINT16_C(59983), UINT16_C(52095), UINT16_C(23909), UINT16_C(63860),
        UINT16_C(39861), UINT16_C(20161), UINT16_C(24864), UINT16_C(34594), UINT16_C(43252), UINT16_C(50062), UINT16_C(54450), UINT16_C(45015),
        UINT16_C(47013), UINT16_C(25463), UINT16_C( 1286), UINT16_C(22028), UINT16_C(35823), UINT16_C(21537), UINT16_C(38633), UINT16_C(40525) },
      { UINT16_C(22420), UINT16_C(51238), UINT16_C(34201), UINT16_C(54431), UINT16_C(37735), UINT16_C( 1670), UINT16_C( 2767), UINT16_C( 5190),
        UINT16_C(53757), UINT16_C(51167), UINT16_C(20414), UINT16_C(43150), UINT16_C(59983), UINT16_C(52095), UINT16_C(23909), UINT16_C(63860),
        UINT16_C(39861), UINT16_C(20161), UINT16_C(24864), UINT16_C(34594), UINT16_C(43252), UINT16_C(50062), UINT16_C(54450), UINT16_C(45015),
        UINT16_C(47013), UINT16_C(25463), UINT16_C( 1286), UINT16_C(22028), UINT16_C(35823), UINT16_C(21537), UINT16_C(38633), UINT16_C(40525) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i r = simde_x_mm512_set_epu16(
        test_vec[i].a[31], test_vec[i].a[30], test_vec[i].a[29], test_vec[i].a[28],
        test_vec[i].a[27], test_vec[i].a[26], test_vec[i].a[25], test_vec[i].a[24],
        test_vec[i].a[23], test_vec[i].a[22], test_vec[i].a[21], test_vec[i].a[20],
        test_vec[i].a[19], test_vec[i].a[18], test_vec[i].a[17], test_vec[i].a[16],
        test_vec[i].a[15], test_vec[i].a[14], test_vec[i].a[13], test_vec[i].a[12],
        test_vec[i].a[11], test_vec[i].a[10], test_vec[i].a[ 9], test_vec[i].a[ 8],
        test_vec[i].a[ 7], test_vec[i].a[ 6], test_vec[i].a[ 5], test_vec[i].a[ 4],
        test_vec[i].a[ 3], test_vec[i].a[ 2], test_vec[i].a[ 1], test_vec[i].a[ 0]);
    simde_test_x86_assert_equal_u16x32(r, simde_mm512_loadu_si512(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m512i a = simde_test_x86_random_u16x32();
    simde__m512i r = a;

    simde_test_x86_write_u16x32(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_u16x32(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_x_mm512_set_epu32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const uint32_t a[16];
    const uint32_t r[16];
  } test_vec[] = {
    { { UINT32_C(1205155406), UINT32_C(3238136312), UINT32_C(2341122395), UINT32_C(3153248567), UINT32_C(  74890403), UINT32_C(2746889127), UINT32_C( 159224512), UINT32_C(2569338698),
        UINT32_C( 769718581), UINT32_C(1592713731), UINT32_C(3421141395), UINT32_C(3716602938), UINT32_C(1071775128), UINT32_C(4041382704), UINT32_C(2029608749), UINT32_C(2484149854) },
      { UINT32_C(1205155406), UINT32_C(3238136312), UINT32_C(2341122395), UINT32_C(3153248567), UINT32_C(  74890403), UINT32_C(2746889127), UINT32_C( 159224512), UINT32_C(2569338698),
        UINT32_C( 769718581), UINT32_C(1592713731), UINT32_C(3421141395), UINT32_C(3716602938), UINT32_C(1071775128), UINT32_C(4041382704), UINT32_C(2029608749), UINT32_C(2484149854) } },
    { { UINT32_C( 448917783), UINT32_C(1719251155), UINT32_C(1664181033), UINT32_C(3611342911), UINT32_C(3843432885), UINT32_C(3923179964), UINT32_C(3076640600), UINT32_C(  88830701),
        UINT32_C( 908004451), UINT32_C(3852310716), UINT32_C( 977850107), UINT32_C( 991004806), UINT32_C(1696671913), UINT32_C(2035283745), UINT32_C(3023089862), UINT32_C(2260302627) },
      { UINT32_C( 448917783), UINT32_C(1719251155), UINT32_C(1664181033), UINT32_C(3611342911), UINT32_C(3843432885), UINT32_C(3923179964), UINT32_C(3076640600), UINT32_C(  88830701),
        UINT32_C( 908004451), UINT32_C(3852310716), UINT32_C( 977850107), UINT32_C( 991004806), UINT32_C(1696671913), UINT32_C(2035283745), UINT32_C(3023089862), UINT32_C(2260302627) } },
    { { UINT32_C(1153292424), UINT32_C(1814714993), UINT32_C(2946986536), UINT32_C(2766846203), UINT32_C(  17435616), UINT32_C(3380304130), UINT32_C( 746433289), UINT32_C(2947757607),
        UINT32_C(2146660366), UINT32_C(4075560394), UINT32_C(2342622096), UINT32_C( 741313611), UINT32_C(2586655127), UINT32_C(2623776914), UINT32_C(2076762196), UINT32_C( 606763798) },
      { UINT32_C(1153292424), UINT32_C(1814714993), UINT32_C(2946986536), UINT32_C(2766846203), UINT32_C(  17435616), UINT32_C(3380304130), UINT32_C( 746433289), UINT32_C(2947757607),
        UINT32_C(2146660366), UINT32_C(4075560394), UINT32_C(2342622096), UINT32_C( 741313611), UINT32_C(2586655127), UINT32_C(2623776914), UINT32_C(2076762196), UINT32_C( 606763798) } },
    { { UINT32_C(3047431659), UINT32_C(3416821819), UINT32_C(1851148579), UINT32_C(1838843349), UINT32_C(1359464639), UINT32_C(3303893616), UINT32_C(1614788170), UINT32_C( 495216945),
        UINT32_C(3268552839), UINT32_C(3683482296), UINT32_C(2571822020), UINT32_C( 654763112), UINT32_C( 494472620), UINT32_C(3252774519), UINT32_C(1310794012), UINT32_C( 292267658) },
      { UINT32_C(3047431659), UINT32_C(3416821819), UINT32_C(1851148579), UINT32_C(1838843349), UINT32_C(1359464639), UINT32_C(3303893616), UINT32_C(1614788170), UINT32_C( 495216945),
        UINT32_C(3268552839), UINT32_C(3683482296), UINT32_C(2571822020), UINT32_C( 654763112), UINT32_C( 494472620), UINT32_C(3252774519), UINT32_C(1310794012), UINT32_C( 292267658) } },
    { { UINT32_C(2278768078), UINT32_C(2086822072), UINT32_C(2887101507), UINT32_C(1037245585), UINT32_C(2707049513), UINT32_C(3479321779), UINT32_C(3877471325), UINT32_C(4177102890),
        UINT32_C(2122304710), UINT32_C(1895490093), UINT32_C( 521932686), UINT32_C(1432219691), UINT32_C(4025923388), UINT32_C(1354717427), UINT32_C( 104389852), UINT32_C( 738144613) },
      { UINT32_C(2278768078), UINT32_C(2086822072), UINT32_C(2887101507), UINT32_C(1037245585), UINT32_C(2707049513), UINT32_C(3479321779), UINT32_C(3877471325), UINT32_C(4177102890),
        UINT32_C(2122304710), UINT32_C(1895490093), UINT32_C( 521932686), UINT32_C(1432219691), UINT32_C(4025923388), UINT32_C(1354717427), UINT32_C( 104389852), UINT32_C( 738144613) } },
    { { UINT32_C( 715751165), UINT32_C(4019954528), UINT32_C(3725506482), UINT32_C(3828575143), UINT32_C( 382937379), UINT32_C(1583846017), UINT32_C(3563364207), UINT32_C(3456066512),
        UINT32_C(1123592418), UINT32_C(4247884619), UINT32_C(4074455114), UINT32_C(3470134955), UINT32_C(3118836023), UINT32_C(2870430780), UINT32_C(3145694187), UINT32_C(3246948063) },
      { UINT32_C( 715751165), UINT32_C(4019954528), UINT32_C(3725506482), UINT32_C(3828575143), UINT32_C( 382937379), UINT32_C(1583846017), UINT32_C(3563364207), UINT32_C(3456066512),
        UINT32_C(1123592418), UINT32_C(4247884619), UINT32_C(4074455114), UINT32_C(3470134955), UINT32_C(3118836023), UINT32_C(2870430780), UINT32_C(3145694187), UINT32_C(3246948063) } },
    { { UINT32_C(1896054822), UINT32_C(1584280851), UINT32_C( 542132853), UINT32_C(2431592024), UINT32_C( 189387983), UINT32_C( 196501536), UINT32_C(3133552091), UINT32_C(3648736947),
        UINT32_C(3796533199), UINT32_C( 692107700), UINT32_C(1531547651), UINT32_C(2263562422), UINT32_C( 747713548), UINT32_C(1882671252), UINT32_C( 824900989), UINT32_C( 453682764) },
      { UINT32_C(1896054822), UINT32_C(1584280851), UINT32_C( 542132853), UINT32_C(2431592024), UINT32_C( 189387983), UINT32_C( 196501536), UINT32_C(3133552091), UINT32_C(3648736947),
        UINT32_C(3796533199), UINT32_C( 692107700), UINT32_C(1531547651), UINT32_C(2263562422), UINT32_C( 747713548), UINT32_C(1882671252), UINT32_C( 824900989), UINT32_C( 453682764) } },
    { { UINT32_C(3657258277), UINT32_C( 285359630), UINT32_C(2238467022), UINT32_C(2416662660), UINT32_C( 566074508), UINT32_C(1653732580), UINT32_C(1049869298), UINT32_C(2254019937),
        UINT32_C(   6248178), UINT32_C(1662083476), UINT32_C( 837320365), UINT32_C(1656878038), UINT32_C(1954774671), UINT32_C(1708528755), UINT32_C( 832793040), UINT32_C(4189649926) },
      { UINT32_C(3657258277), UINT32_C( 285359630), UINT32_C(2238467022), UINT32_C(2416662660), UINT32_C( 566074508), UINT32_C(1653732580), UINT32_C(1049869298), UINT32_C(2254019937),
        UINT32_C(   6248178), UINT32_C(1662083476), UINT32_C( 837320365), UINT32_C(1656878038), UINT32_C(1954774671), UINT32_C(1708528755), UINT32_C( 832793040), UINT32_C(4189649926) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i r = simde_x_mm512_set_epu32(
        test_vec[i].a[15], test_vec[i].a[14], test_vec[i].a[13], test_vec[i].a[12],
        test_vec[i].a[11], test_vec[i].a[10], test_vec[i].a[ 9], test_vec[i].a[ 8],
        test_vec[i].a[ 7], test_vec[i].a[ 6], test_vec[i].a[ 5], test_vec[i].a[ 4],
        test_vec[i].a[ 3], test_vec[i].a[ 2], test_vec[i].a[ 1], test_vec[i].a[ 0]);
    simde_test_x86_assert_equal_u32x16(r, simde_mm512_loadu_si512(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m512i a = simde_test_x86_random_u32x16();
    simde__m512i r = a;

    simde_test_x86_write_u32x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_u32x16(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_x_mm512_set_epu64 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const uint64_t a[8];
    const uint64_t r[8];
  } test_vec[] = {
    { { UINT64_C( 9568876967930616576), UINT64_C( 1977685269037764613), UINT64_C(12099231501399065555), UINT64_C(11415431664820641660),
        UINT64_C(15423112186462623646), UINT64_C( 9806705514186837686), UINT64_C(14593810477667070957), UINT64_C( 5277464135911991297) },
      { UINT64_C( 9568876967930616576), UINT64_C( 1977685269037764613), UINT64_C(12099231501399065555), UINT64_C(11415431664820641660),
        UINT64_C(15423112186462623646), UINT64_C( 9806705514186837686), UINT64_C(14593810477667070957), UINT64_C( 5277464135911991297) } },
    { { UINT64_C(17604808701939439528), UINT64_C(11574824657151412326), UINT64_C(18254505445852994108), UINT64_C( 3739352784258743024),
        UINT64_C(17321685887824540208), UINT64_C(10996010580011864901), UINT64_C( 1225392656820148488), UINT64_C(11993526120196382130) },
      { UINT64_C(17604808701939439528), UINT64_C(11574824657151412326), UINT64_C(18254505445852994108), UINT64_C( 3739352784258743024),
        UINT64_C(17321685887824540208), UINT64_C(10996010580011864901), UINT64_C( 1225392656820148488), UINT64_C(11993526120196382130) } },
    { { UINT64_C( 7042915254054166082), UINT64_C( 9133003683600648393), UINT64_C(  810229402012147980), UINT64_C(13563922312914922016),
        UINT64_C(10472636907640148441), UINT64_C(12538994028906458895), UINT64_C( 2934685632269354325), UINT64_C(10969075163009516291) },
      { UINT64_C( 7042915254054166082), UINT64_C( 9133003683600648393), UINT64_C(  810229402012147980), UINT64_C(13563922312914922016),
        UINT64_C(10472636907640148441), UINT64_C(12538994028906458895), UINT64_C( 2934685632269354325), UINT64_C(10969075163009516291) } },
    { { UINT64_C( 1847851379545981772), UINT64_C( 2729923334964730770), UINT64_C(15661705130239311144), UINT64_C( 6838592967500240785),
        UINT64_C(16894715616612742227), UINT64_C(16169613402998445425), UINT64_C( 6372146828696107454), UINT64_C(12173950340448109953) },
      { UINT64_C( 1847851379545981772), UINT64_C( 2729923334964730770), UINT64_C(15661705130239311144), UINT64_C( 6838592967500240785),
        UINT64_C(16894715616612742227), UINT64_C(16169613402998445425), UINT64_C( 6372146828696107454), UINT64_C(12173950340448109953) } },
    { { UINT64_C(17025149731787334659), UINT64_C( 2533718324306338705), UINT64_C( 2660262488892258764), UINT64_C( 2731619138579960811),
        UINT64_C(18047266663832808717), UINT64_C(   49658568865194281), UINT64_C( 8821566023486695589), UINT64_C(15806125943958479890) },
      { UINT64_C(17025149731787334659), UINT64_C( 2533718324306338705), UINT64_C( 2660262488892258764), UINT64_C( 2731619138579960811),
        UINT64_C(18047266663832808717), UINT64_C(   49658568865194281), UINT64_C( 8821566023486695589), UINT64_C(15806125943958479890) } },
    { { UINT64_C(14552493382336502417), UINT64_C( 5236568866277439352), UINT64_C(15166432225493336175), UINT64_C( 7550955305296147489),
        UINT64_C( 8981398135744113979), UINT64_C( 8176799704330861453), UINT64_C( 3001623896520657429), UINT64_C( 5430745283826331165) },
      { UINT64_C(14552493382336502417), UINT64_C( 5236568866277439352), UINT64_C(15166432225493336175), UINT64_C( 7550955305296147489),
        UINT64_C( 8981398135744113979), UINT64_C( 8176799704330861453), UINT64_C( 3001623896520657429), UINT64_C( 5430745283826331165) } },
    { { UINT64_C(11785862045522902799), UINT64_C(11545344382506153926), UINT64_C(12648110592980527447), UINT64_C(10386991247824035787),
        UINT64_C(15959123307507436736), UINT64_C(17444094590476177129), UINT64_C( 8343719476181633928), UINT64_C( 3497454609902759543) },
      { UINT64_C(11785862045522902799), UINT64_C(11545344382506153926), UINT64_C(12648110592980527447), UINT64_C(10386991247824035787),
        UINT64_C(15959123307507436736), UINT64_C(17444094590476177129), UINT64_C( 8343719476181633928), UINT64_C( 3497454609902759543) } },
    { { UINT64_C( 5311573959664610753), UINT64_C(14077077308112264142), UINT64_C(18120981335683017822), UINT64_C(18353996134117328919),
        UINT64_C(  888207745324858795), UINT64_C( 4892547352263725544), UINT64_C( 9510692481256833917), UINT64_C( 1929722551698321804) },
      { UINT64_C( 5311573959664610753), UINT64_C(14077077308112264142), UINT64_C(18120981335683017822), UINT64_C(18353996134117328919),
        UINT64_C(  888207745324858795), UINT64_C( 4892547352263725544), UINT64_C( 9510692481256833917), UINT64_C( 1929722551698321804) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m512i r = simde_x_mm512_set_epu64(
        test_vec[i].a[ 7], test_vec[i].a[ 6], test_vec[i].a[ 5], test_vec[i].a[ 4],
        test_vec[i].a[ 3], test_vec[i].a[ 2], test_vec[i].a[ 1], test_vec[i].a[ 0]);
    simde_test_x86_assert_equal_u32x16(r, simde_mm512_loadu_si512(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m512i a = simde_test_x86_random_u64x8();
    simde__m512i r = a;

    simde_test_x86_write_u64x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_u64x8(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_x_mm512_set_m128i (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const int64_t a[2];
    const int64_t b[2];
    const int64_t c[2];
    const int64_t d[2];
    const int64_t r[8];
  } test_vec[] = {
    { { -INT64_C( 4945782109098626019), -INT64_C( 8008920059667144479) },
      {  INT64_C(  124491825340358826), -INT64_C( 2233212823795404972) },
      { -INT64_C( 6712500070265408579),  INT64_C( 2791111895643054729) },
      {  INT64_C( 3661060217106896421),  INT64_C( 7441641663673639585) },
      {  INT64_C( 3661060217106896421),  INT64_C( 7441641663673639585), -INT64_C( 6712500070265408579),  INT64_C( 2791111895643054729),
         INT64_C(  124491825340358826), -INT64_C( 2233212823795404972), -INT64_C( 4945782109098626019), -INT64_C( 8008920059667144479) } },
    { {  INT64_C( 4835561680396374457),  INT64_C( 8277945198645823295) },
      {  INT64_C( 3301716370139371969), -INT64_C( 7727655949450422865) },
      { -INT64_C( 2150704513163639254), -INT64_C( 9066169629291997584) },
      {  INT64_C( 3031191362149182807), -INT64_C( 6469343367862639927) },
      {  INT64_C( 3031191362149182807), -INT64_C( 6469343367862639927), -INT64_C( 2150704513163639254), -INT64_C( 9066169629291997584),
         INT64_C( 3301716370139371969), -INT64_C( 7727655949450422865),  INT64_C( 4835561680396374457),  INT64_C( 8277945198645823295) } },
    { { -INT64_C( 2372919338038835572), -INT64_C( 8823455275125330104) },
      {  INT64_C( 7844558766122511927),  INT64_C( 3691906778662986010) },
      { -INT64_C( 4477294391523621233),  INT64_C( 8851076585001547811) },
      { -INT64_C( 3453124338471125754), -INT64_C(  196290940105251477) },
      { -INT64_C( 3453124338471125754), -INT64_C(  196290940105251477), -INT64_C( 4477294391523621233),  INT64_C( 8851076585001547811),
         INT64_C( 7844558766122511927),  INT64_C( 3691906778662986010), -INT64_C( 2372919338038835572), -INT64_C( 8823455275125330104) } },
    { {  INT64_C( 4585464989178636392), -INT64_C( 3887339008387158704) },
      { -INT64_C( 5897314988725159517), -INT64_C( 7415451457765208404) },
      {  INT64_C( 4254526067743265455), -INT64_C( 6694360051734373495) },
      { -INT64_C( 4682296576377582828),  INT64_C( 8898252826075580083) },
      { -INT64_C( 4682296576377582828),  INT64_C( 8898252826075580083),  INT64_C( 4254526067743265455), -INT64_C( 6694360051734373495),
        -INT64_C( 5897314988725159517), -INT64_C( 7415451457765208404),  INT64_C( 4585464989178636392), -INT64_C( 3887339008387158704) } },
    { { -INT64_C( 7266186282525002237), -INT64_C( 1832681567916787731) },
      {  INT64_C( 7232011006770056588),  INT64_C( 3121491696417257225) },
      { -INT64_C( 2924732906769639237), -INT64_C( 2309688744207887815) },
      {  INT64_C( 9077527813400899811), -INT64_C( 4583076703419285230) },
      {  INT64_C( 9077527813400899811), -INT64_C( 4583076703419285230), -INT64_C( 2924732906769639237), -INT64_C( 2309688744207887815),
         INT64_C( 7232011006770056588),  INT64_C( 3121491696417257225), -INT64_C( 7266186282525002237), -INT64_C( 1832681567916787731) } },
    { { -INT64_C(  288239442164023491), -INT64_C(  181278566807845815) },
      { -INT64_C( 1938365523136743384),  INT64_C( 5589394919817964747) },
      {  INT64_C( 6899642270282489604), -INT64_C( 1707015169647065288) },
      {  INT64_C( 3902542161119600751), -INT64_C( 3429603489347057911) },
      {  INT64_C( 3902542161119600751), -INT64_C( 3429603489347057911),  INT64_C( 6899642270282489604), -INT64_C( 1707015169647065288),
        -INT64_C( 1938365523136743384),  INT64_C( 5589394919817964747), -INT64_C(  288239442164023491), -INT64_C(  181278566807845815) } },
    { { -INT64_C( 8633868530542519112),  INT64_C( 1136360251874486813) },
      { -INT64_C( 1176711747414636279),  INT64_C(  314811394258678465) },
      {  INT64_C( 7503842828377912395),  INT64_C( 3520418695472348459) },
      {  INT64_C( 7577393952696053075), -INT64_C( 1418258260653821694) },
      {  INT64_C( 7577393952696053075), -INT64_C( 1418258260653821694),  INT64_C( 7503842828377912395),  INT64_C( 3520418695472348459),
        -INT64_C( 1176711747414636279),  INT64_C(  314811394258678465), -INT64_C( 8633868530542519112),  INT64_C( 1136360251874486813) } },
    { {  INT64_C( 5908066468385727562), -INT64_C( 6773421201959337048) },
      { -INT64_C(  777148065015749850), -INT64_C( 3620730806483145164) },
      { -INT64_C( 7264199598424307528),  INT64_C( 7895207375159315875) },
      { -INT64_C( 6632269055162356723), -INT64_C( 8867243746191263840) },
      { -INT64_C( 6632269055162356723), -INT64_C( 8867243746191263840), -INT64_C( 7264199598424307528),  INT64_C( 7895207375159315875),
        -INT64_C(  777148065015749850), -INT64_C( 3620730806483145164),  INT64_C( 5908066468385727562), -INT64_C( 6773421201959337048) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m128i a = simde_mm_loadu_epi64(test_vec[i].a);
    simde__m128i b = simde_mm_loadu_epi64(test_vec[i].b);
    simde__m128i c = simde_mm_loadu_epi64(test_vec[i].c);
    simde__m128i d = simde_mm_loadu_epi64(test_vec[i].d);
    simde__m512i r = simde_x_mm512_set_m128i(a, b, c, d);
    simde_test_x86_assert_equal_i64x8(r, simde_mm512_loadu_si512(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m128i a = simde_test_x86_random_i64x2();
    simde__m128i b = simde_test_x86_random_i64x2();
    simde__m128i c = simde_test_x86_random_i64x2();
    simde__m128i d = simde_test_x86_random_i64x2();
    simde__m512i r = simde_x_mm512_set_m128i(a, b, c, d);

    simde_test_x86_write_i64x2(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_i64x2(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i64x2(2, c, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i64x2(2, d, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i64x8(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_x_mm512_set_m256 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const simde_float32 a[8];
    const simde_float32 b[8];
    const simde_float32 r[16];
  } test_vec[] = {
    { { SIMDE_FLOAT32_C(  -637.31), SIMDE_FLOAT32_C(   760.63), SIMDE_FLOAT32_C(  -460.69), SIMDE_FLOAT32_C(   -66.62),
        SIMDE_FLOAT32_C(  -340.31), SIMDE_FLOAT32_C(   918.64), SIMDE_FLOAT32_C(    34.24), SIMDE_FLOAT32_C(   333.18) },
      { SIMDE_FLOAT32_C(  -803.92), SIMDE_FLOAT32_C(  -213.48), SIMDE_FLOAT32_C(  -929.53), SIMDE_FLOAT32_C(   348.90),
        SIMDE_FLOAT32_C(   283.65), SIMDE_FLOAT32_C(  -184.83), SIMDE_FLOAT32_C(   487.65), SIMDE_FLOAT32_C(  -858.64) },
      { SIMDE_FLOAT32_C(  -803.92), SIMDE_FLOAT32_C(  -213.48), SIMDE_FLOAT32_C(  -929.53), SIMDE_FLOAT32_C(   348.90),
        SIMDE_FLOAT32_C(   283.65), SIMDE_FLOAT32_C(  -184.83), SIMDE_FLOAT32_C(   487.65), SIMDE_FLOAT32_C(  -858.64),
        SIMDE_FLOAT32_C(  -637.31), SIMDE_FLOAT32_C(   760.63), SIMDE_FLOAT32_C(  -460.69), SIMDE_FLOAT32_C(   -66.62),
        SIMDE_FLOAT32_C(  -340.31), SIMDE_FLOAT32_C(   918.64), SIMDE_FLOAT32_C(    34.24), SIMDE_FLOAT32_C(   333.18) } },
    { { SIMDE_FLOAT32_C(  -921.22), SIMDE_FLOAT32_C(  -836.03), SIMDE_FLOAT32_C(   170.20), SIMDE_FLOAT32_C(  -248.66),
        SIMDE_FLOAT32_C(  -471.75), SIMDE_FLOAT32_C(  -816.60), SIMDE_FLOAT32_C(  -262.88), SIMDE_FLOAT32_C(   275.76) },
      { SIMDE_FLOAT32_C(  -882.42), SIMDE_FLOAT32_C(   473.83), SIMDE_FLOAT32_C(  -459.78), SIMDE_FLOAT32_C(   549.62),
        SIMDE_FLOAT32_C(  -780.98), SIMDE_FLOAT32_C(  -139.94), SIMDE_FLOAT32_C(  -217.48), SIMDE_FLOAT32_C(  -418.29) },
      { SIMDE_FLOAT32_C(  -882.42), SIMDE_FLOAT32_C(   473.83), SIMDE_FLOAT32_C(  -459.78), SIMDE_FLOAT32_C(   549.62),
        SIMDE_FLOAT32_C(  -780.98), SIMDE_FLOAT32_C(  -139.94), SIMDE_FLOAT32_C(  -217.48), SIMDE_FLOAT32_C(  -418.29),
        SIMDE_FLOAT32_C(  -921.22), SIMDE_FLOAT32_C(  -836.03), SIMDE_FLOAT32_C(   170.20), SIMDE_FLOAT32_C(  -248.66),
        SIMDE_FLOAT32_C(  -471.75), SIMDE_FLOAT32_C(  -816.60), SIMDE_FLOAT32_C(  -262.88), SIMDE_FLOAT32_C(   275.76) } },
    { { SIMDE_FLOAT32_C(  -379.31), SIMDE_FLOAT32_C(   321.82), SIMDE_FLOAT32_C(   515.09), SIMDE_FLOAT32_C(   280.38),
        SIMDE_FLOAT32_C(   240.46), SIMDE_FLOAT32_C(  -450.67), SIMDE_FLOAT32_C(  -386.44), SIMDE_FLOAT32_C(   436.54) },
      { SIMDE_FLOAT32_C(   335.85), SIMDE_FLOAT32_C(  -315.97), SIMDE_FLOAT32_C(  -214.56), SIMDE_FLOAT32_C(  -380.50),
        SIMDE_FLOAT32_C(   499.20), SIMDE_FLOAT32_C(  -726.90), SIMDE_FLOAT32_C(  -239.14), SIMDE_FLOAT32_C(   577.98) },
      { SIMDE_FLOAT32_C(   335.85), SIMDE_FLOAT32_C(  -315.97), SIMDE_FLOAT32_C(  -214.56), SIMDE_FLOAT32_C(  -380.50),
        SIMDE_FLOAT32_C(   499.20), SIMDE_FLOAT32_C(  -726.90), SIMDE_FLOAT32_C(  -239.14), SIMDE_FLOAT32_C(   577.98),
        SIMDE_FLOAT32_C(  -379.31), SIMDE_FLOAT32_C(   321.82), SIMDE_FLOAT32_C(   515.09), SIMDE_FLOAT32_C(   280.38),
        SIMDE_FLOAT32_C(   240.46), SIMDE_FLOAT32_C(  -450.67), SIMDE_FLOAT32_C(  -386.44), SIMDE_FLOAT32_C(   436.54) } },
    { { SIMDE_FLOAT32_C(  -562.93), SIMDE_FLOAT32_C(   931.06), SIMDE_FLOAT32_C(  -670.68), SIMDE_FLOAT32_C(   -34.68),
        SIMDE_FLOAT32_C(  -885.55), SIMDE_FLOAT32_C(    66.44), SIMDE_FLOAT32_C(  -758.92), SIMDE_FLOAT32_C(  -767.96) },
      { SIMDE_FLOAT32_C(  -459.73), SIMDE_FLOAT32_C(  -218.69), SIMDE_FLOAT32_C(   781.65), SIMDE_FLOAT32_C(  -240.71),
        SIMDE_FLOAT32_C(   641.36), SIMDE_FLOAT32_C(  -435.83), SIMDE_FLOAT32_C(   341.00), SIMDE_FLOAT32_C(  -737.95) },
      { SIMDE_FLOAT32_C(  -459.73), SIMDE_FLOAT32_C(  -218.69), SIMDE_FLOAT32_C(   781.65), SIMDE_FLOAT32_C(  -240.71),
        SIMDE_FLOAT32_C(   641.36), SIMDE_FLOAT32_C(  -435.83), SIMDE_FLOAT32_C(   341.00), SIMDE_FLOAT32_C(  -737.95),
        SIMDE_FLOAT32_C(  -562.93), SIMDE_FLOAT32_C(   931.06), SIMDE_FLOAT32_C(  -670.68), SIMDE_FLOAT32_C(   -34.68),
        SIMDE_FLOAT32_C(  -885.55), SIMDE_FLOAT32_C(    66.44), SIMDE_FLOAT32_C(  -758.92), SIMDE_FLOAT32_C(  -767.96) } },
    { { SIMDE_FLOAT32_C(   886.00), SIMDE_FLOAT32_C(  -143.91), SIMDE_FLOAT32_C(   542.43), SIMDE_FLOAT32_C(   126.46),
        SIMDE_FLOAT32_C(   405.42), SIMDE_FLOAT32_C(  -844.01), SIMDE_FLOAT32_C(  -437.00), SIMDE_FLOAT32_C(  -258.74) },
      { SIMDE_FLOAT32_C(  -159.98), SIMDE_FLOAT32_C(   348.44), SIMDE_FLOAT32_C(   360.76), SIMDE_FLOAT32_C(  -660.78),
        SIMDE_FLOAT32_C(   621.54), SIMDE_FLOAT32_C(  -878.38), SIMDE_FLOAT32_C(   917.20), SIMDE_FLOAT32_C(  -941.40) },
      { SIMDE_FLOAT32_C(  -159.98), SIMDE_FLOAT32_C(   348.44), SIMDE_FLOAT32_C(   360.76), SIMDE_FLOAT32_C(  -660.78),
        SIMDE_FLOAT32_C(   621.54), SIMDE_FLOAT32_C(  -878.38), SIMDE_FLOAT32_C(   917.20), SIMDE_FLOAT32_C(  -941.40),
        SIMDE_FLOAT32_C(   886.00), SIMDE_FLOAT32_C(  -143.91), SIMDE_FLOAT32_C(   542.43), SIMDE_FLOAT32_C(   126.46),
        SIMDE_FLOAT32_C(   405.42), SIMDE_FLOAT32_C(  -844.01), SIMDE_FLOAT32_C(  -437.00), SIMDE_FLOAT32_C(  -258.74) } },
    { { SIMDE_FLOAT32_C(  -947.32), SIMDE_FLOAT32_C(  -753.48), SIMDE_FLOAT32_C(    23.92), SIMDE_FLOAT32_C(  -832.87),
        SIMDE_FLOAT32_C(   312.97), SIMDE_FLOAT32_C(   265.00), SIMDE_FLOAT32_C(  -600.84), SIMDE_FLOAT32_C(   853.24) },
      { SIMDE_FLOAT32_C(  -953.69), SIMDE_FLOAT32_C(  -819.18), SIMDE_FLOAT32_C(  -387.47), SIMDE_FLOAT32_C(   687.68),
        SIMDE_FLOAT32_C(  -255.01), SIMDE_FLOAT32_C(   953.53), SIMDE_FLOAT32_C(   949.73), SIMDE_FLOAT32_C(  -369.02) },
      { SIMDE_FLOAT32_C(  -953.69), SIMDE_FLOAT32_C(  -819.18), SIMDE_FLOAT32_C(  -387.47), SIMDE_FLOAT32_C(   687.68),
        SIMDE_FLOAT32_C(  -255.01), SIMDE_FLOAT32_C(   953.53), SIMDE_FLOAT32_C(   949.73), SIMDE_FLOAT32_C(  -369.02),
        SIMDE_FLOAT32_C(  -947.32), SIMDE_FLOAT32_C(  -753.48), SIMDE_FLOAT32_C(    23.92), SIMDE_FLOAT32_C(  -832.87),
        SIMDE_FLOAT32_C(   312.97), SIMDE_FLOAT32_C(   265.00), SIMDE_FLOAT32_C(  -600.84), SIMDE_FLOAT32_C(   853.24) } },
    { { SIMDE_FLOAT32_C(  -190.38), SIMDE_FLOAT32_C(   492.16), SIMDE_FLOAT32_C(   757.44), SIMDE_FLOAT32_C(  -784.97),
        SIMDE_FLOAT32_C(   648.15), SIMDE_FLOAT32_C(  -679.57), SIMDE_FLOAT32_C(   -43.70), SIMDE_FLOAT32_C(  -511.83) },
      { SIMDE_FLOAT32_C(   668.88), SIMDE_FLOAT32_C(  -682.94), SIMDE_FLOAT32_C(  -172.61), SIMDE_FLOAT32_C(   290.41),
        SIMDE_FLOAT32_C(  -561.32), SIMDE_FLOAT32_C(  -255.40), SIMDE_FLOAT32_C(   349.01), SIMDE_FLOAT32_C(  -508.64) },
      { SIMDE_FLOAT32_C(   668.88), SIMDE_FLOAT32_C(  -682.94), SIMDE_FLOAT32_C(  -172.61), SIMDE_FLOAT32_C(   290.41),
        SIMDE_FLOAT32_C(  -561.32), SIMDE_FLOAT32_C(  -255.40), SIMDE_FLOAT32_C(   349.01), SIMDE_FLOAT32_C(  -508.64),
        SIMDE_FLOAT32_C(  -190.38), SIMDE_FLOAT32_C(   492.16), SIMDE_FLOAT32_C(   757.44), SIMDE_FLOAT32_C(  -784.97),
        SIMDE_FLOAT32_C(   648.15), SIMDE_FLOAT32_C(  -679.57), SIMDE_FLOAT32_C(   -43.70), SIMDE_FLOAT32_C(  -511.83) } },
    { { SIMDE_FLOAT32_C(    -8.88), SIMDE_FLOAT32_C(  -627.06), SIMDE_FLOAT32_C(  -341.51), SIMDE_FLOAT32_C(  -695.91),
        SIMDE_FLOAT32_C(   637.94), SIMDE_FLOAT32_C(    57.65), SIMDE_FLOAT32_C(  -842.68), SIMDE_FLOAT32_C(   684.25) },
      { SIMDE_FLOAT32_C(   238.47), SIMDE_FLOAT32_C(  -230.15), SIMDE_FLOAT32_C(   371.93), SIMDE_FLOAT32_C(   983.45),
        SIMDE_FLOAT32_C(  -276.62), SIMDE_FLOAT32_C(   321.66), SIMDE_FLOAT32_C(  -385.57), SIMDE_FLOAT32_C(   533.00) },
      { SIMDE_FLOAT32_C(   238.47), SIMDE_FLOAT32_C(  -230.15), SIMDE_FLOAT32_C(   371.93), SIMDE_FLOAT32_C(   983.45),
        SIMDE_FLOAT32_C(  -276.62), SIMDE_FLOAT32_C(   321.66), SIMDE_FLOAT32_C(  -385.57), SIMDE_FLOAT32_C(   533.00),
        SIMDE_FLOAT32_C(    -8.88), SIMDE_FLOAT32_C(  -627.06), SIMDE_FLOAT32_C(  -341.51), SIMDE_FLOAT32_C(  -695.91),
        SIMDE_FLOAT32_C(   637.94), SIMDE_FLOAT32_C(    57.65), SIMDE_FLOAT32_C(  -842.68), SIMDE_FLOAT32_C(   684.25) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m256 a = simde_mm256_loadu_ps(test_vec[i].a);
    simde__m256 b = simde_mm256_loadu_ps(test_vec[i].b);
    simde__m512 r = simde_x_mm512_set_m256(a, b);
    simde_test_x86_assert_equal_f32x16(r, simde_mm512_loadu_ps(test_vec[i].r), 1);
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m256 a = simde_test_x86_random_f32x8(SIMDE_FLOAT32_C(-1000.0), SIMDE_FLOAT32_C(1000.0));
    simde__m256 b = simde_test_x86_random_f32x8(SIMDE_FLOAT32_C(-1000.0), SIMDE_FLOAT32_C(1000.0));
    simde__m512 r = simde_x_mm512_set_m256(a, b);

    simde_test_x86_write_f32x8(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_f32x8(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_f32x16(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_x_mm512_set_m256i (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const int64_t a[4];
    const int64_t b[4];
    const int64_t r[8];
  } test_vec[] = {
    { {  INT64_C( 9185948727503546778),  INT64_C( 3678627756266746177),  INT64_C( 3412567430290792151), -INT64_C( 6689949871361817491) },
      {  INT64_C( 4729318369997616495), -INT64_C( 4574934939719185189),  INT64_C( 6601267626571075438), -INT64_C( 2225916818331210642) },
      {  INT64_C( 4729318369997616495), -INT64_C( 4574934939719185189),  INT64_C( 6601267626571075438), -INT64_C( 2225916818331210642),
         INT64_C( 9185948727503546778),  INT64_C( 3678627756266746177),  INT64_C( 3412567430290792151), -INT64_C( 6689949871361817491) } },
    { {  INT64_C( 5776890669553584873), -INT64_C( 6045763373581226384), -INT64_C(   37516912470906831),  INT64_C( 2663195537103603362) },
      {  INT64_C(  855747269500008476), -INT64_C( 3183624226697084697),  INT64_C( 4915516962277354406),  INT64_C( 6634451241853890227) },
      {  INT64_C(  855747269500008476), -INT64_C( 3183624226697084697),  INT64_C( 4915516962277354406),  INT64_C( 6634451241853890227),
         INT64_C( 5776890669553584873), -INT64_C( 6045763373581226384), -INT64_C(   37516912470906831),  INT64_C( 2663195537103603362) } },
    { {  INT64_C( 4678621373850722374),  INT64_C( 8557463612466483789), -INT64_C( 3239807627526556638), -INT64_C(  635336641497439598) },
      {  INT64_C( 3859240631760657396),  INT64_C( 5575146464983970840), -INT64_C( 8967199087320232806),  INT64_C( 1739660642691141501) },
      {  INT64_C( 3859240631760657396),  INT64_C( 5575146464983970840), -INT64_C( 8967199087320232806),  INT64_C( 1739660642691141501),
         INT64_C( 4678621373850722374),  INT64_C( 8557463612466483789), -INT64_C( 3239807627526556638), -INT64_C(  635336641497439598) } },
    { { -INT64_C( 2540886964821361249),  INT64_C( 6944871434024247528),  INT64_C(  838699283998470959),  INT64_C( 1960013050450344184) },
      {  INT64_C( 8573550280122210650),  INT64_C( 1397501144658001982),  INT64_C( 2303545201378164574), -INT64_C( 1772607854487064626) },
      {  INT64_C( 8573550280122210650),  INT64_C( 1397501144658001982),  INT64_C( 2303545201378164574), -INT64_C( 1772607854487064626),
        -INT64_C( 2540886964821361249),  INT64_C( 6944871434024247528),  INT64_C(  838699283998470959),  INT64_C( 1960013050450344184) } },
    { { -INT64_C( 6481805318794442488), -INT64_C( 2326373633025730880), -INT64_C( 8154397417344865650), -INT64_C( 8762526587941220110) },
      {  INT64_C( 3194786528158837577), -INT64_C( 7052488512568819265), -INT64_C( 6863722578472342415),  INT64_C( 2467274241483970872) },
      {  INT64_C( 3194786528158837577), -INT64_C( 7052488512568819265), -INT64_C( 6863722578472342415),  INT64_C( 2467274241483970872),
        -INT64_C( 6481805318794442488), -INT64_C( 2326373633025730880), -INT64_C( 8154397417344865650), -INT64_C( 8762526587941220110) } },
    { {  INT64_C( 4793845972517149423),  INT64_C( 5753529798337189674), -INT64_C( 8295842357534774384),  INT64_C( 8274099338729488088) },
      { -INT64_C(  459273912366291237),  INT64_C( 6401879826230355115),  INT64_C( 8077053750437894198), -INT64_C( 5302718236152735117) },
      { -INT64_C(  459273912366291237),  INT64_C( 6401879826230355115),  INT64_C( 8077053750437894198), -INT64_C( 5302718236152735117),
         INT64_C( 4793845972517149423),  INT64_C( 5753529798337189674), -INT64_C( 8295842357534774384),  INT64_C( 8274099338729488088) } },
    { {  INT64_C( 3775060514461463963), -INT64_C( 2884109564918262055),  INT64_C( 8715724243471601645), -INT64_C( 6456519145089526061) },
      {  INT64_C(  632882395830319627),  INT64_C(  540891665677255945),  INT64_C( 3508163768285455153), -INT64_C(   51997053213008490) },
      {  INT64_C(  632882395830319627),  INT64_C(  540891665677255945),  INT64_C( 3508163768285455153), -INT64_C(   51997053213008490),
         INT64_C( 3775060514461463963), -INT64_C( 2884109564918262055),  INT64_C( 8715724243471601645), -INT64_C( 6456519145089526061) } },
    { { -INT64_C( 3173528335773575234),  INT64_C( 8215972274809708258), -INT64_C( 6381786419661598494),  INT64_C( 5866097473156042357) },
      {  INT64_C( 4288891779987471591), -INT64_C( 1980111581061119022), -INT64_C(  395311238656873013),  INT64_C( 4883251489614842848) },
      {  INT64_C( 4288891779987471591), -INT64_C( 1980111581061119022), -INT64_C(  395311238656873013),  INT64_C( 4883251489614842848),
        -INT64_C( 3173528335773575234),  INT64_C( 8215972274809708258), -INT64_C( 6381786419661598494),  INT64_C( 5866097473156042357) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m256i a = simde_mm256_loadu_epi64(test_vec[i].a);
    simde__m256i b = simde_mm256_loadu_epi64(test_vec[i].b);
    simde__m512i r = simde_x_mm512_set_m256i(a, b);
    simde_test_x86_assert_equal_i64x8(r, simde_mm512_loadu_si512(test_vec[i].r));
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m256i a = simde_test_x86_random_i64x4();
    simde__m256i b = simde_test_x86_random_i64x4();
    simde__m512i r = simde_x_mm512_set_m256i(a, b);

    simde_test_x86_write_i64x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_i64x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_i64x8(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

static int
test_simde_x_mm512_set_m256d (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const struct {
    const simde_float64 a[4];
    const simde_float64 b[4];
    const simde_float64 r[8];
  } test_vec[] = {
    { { SIMDE_FLOAT64_C(  -516.49), SIMDE_FLOAT64_C(  -372.13), SIMDE_FLOAT64_C(  -232.67), SIMDE_FLOAT64_C(   646.34) },
      { SIMDE_FLOAT64_C(   990.61), SIMDE_FLOAT64_C(  -207.39), SIMDE_FLOAT64_C(   792.40), SIMDE_FLOAT64_C(  -563.99) },
      { SIMDE_FLOAT64_C(   990.61), SIMDE_FLOAT64_C(  -207.39), SIMDE_FLOAT64_C(   792.40), SIMDE_FLOAT64_C(  -563.99),
        SIMDE_FLOAT64_C(  -516.49), SIMDE_FLOAT64_C(  -372.13), SIMDE_FLOAT64_C(  -232.67), SIMDE_FLOAT64_C(   646.34) } },
    { { SIMDE_FLOAT64_C(   225.52), SIMDE_FLOAT64_C(   712.33), SIMDE_FLOAT64_C(   556.42), SIMDE_FLOAT64_C(   960.52) },
      { SIMDE_FLOAT64_C(   332.11), SIMDE_FLOAT64_C(    54.37), SIMDE_FLOAT64_C(  -217.87), SIMDE_FLOAT64_C(  -680.84) },
      { SIMDE_FLOAT64_C(   332.11), SIMDE_FLOAT64_C(    54.37), SIMDE_FLOAT64_C(  -217.87), SIMDE_FLOAT64_C(  -680.84),
        SIMDE_FLOAT64_C(   225.52), SIMDE_FLOAT64_C(   712.33), SIMDE_FLOAT64_C(   556.42), SIMDE_FLOAT64_C(   960.52) } },
    { { SIMDE_FLOAT64_C(   996.26), SIMDE_FLOAT64_C(  -253.95), SIMDE_FLOAT64_C(   521.15), SIMDE_FLOAT64_C(   662.65) },
      { SIMDE_FLOAT64_C(  -436.82), SIMDE_FLOAT64_C(  -449.85), SIMDE_FLOAT64_C(   416.62), SIMDE_FLOAT64_C(   -75.47) },
      { SIMDE_FLOAT64_C(  -436.82), SIMDE_FLOAT64_C(  -449.85), SIMDE_FLOAT64_C(   416.62), SIMDE_FLOAT64_C(   -75.47),
        SIMDE_FLOAT64_C(   996.26), SIMDE_FLOAT64_C(  -253.95), SIMDE_FLOAT64_C(   521.15), SIMDE_FLOAT64_C(   662.65) } },
    { { SIMDE_FLOAT64_C(    47.94), SIMDE_FLOAT64_C(   -71.31), SIMDE_FLOAT64_C(   520.40), SIMDE_FLOAT64_C(   630.12) },
      { SIMDE_FLOAT64_C(  -407.55), SIMDE_FLOAT64_C(  -233.01), SIMDE_FLOAT64_C(   482.29), SIMDE_FLOAT64_C(    75.96) },
      { SIMDE_FLOAT64_C(  -407.55), SIMDE_FLOAT64_C(  -233.01), SIMDE_FLOAT64_C(   482.29), SIMDE_FLOAT64_C(    75.96),
        SIMDE_FLOAT64_C(    47.94), SIMDE_FLOAT64_C(   -71.31), SIMDE_FLOAT64_C(   520.40), SIMDE_FLOAT64_C(   630.12) } },
    { { SIMDE_FLOAT64_C(   394.86), SIMDE_FLOAT64_C(  -750.38), SIMDE_FLOAT64_C(  -277.69), SIMDE_FLOAT64_C(   385.47) },
      { SIMDE_FLOAT64_C(    42.23), SIMDE_FLOAT64_C(  -485.30), SIMDE_FLOAT64_C(   821.48), SIMDE_FLOAT64_C(  -732.26) },
      { SIMDE_FLOAT64_C(    42.23), SIMDE_FLOAT64_C(  -485.30), SIMDE_FLOAT64_C(   821.48), SIMDE_FLOAT64_C(  -732.26),
        SIMDE_FLOAT64_C(   394.86), SIMDE_FLOAT64_C(  -750.38), SIMDE_FLOAT64_C(  -277.69), SIMDE_FLOAT64_C(   385.47) } },
    { { SIMDE_FLOAT64_C(  -772.97), SIMDE_FLOAT64_C(   377.90), SIMDE_FLOAT64_C(  -771.74), SIMDE_FLOAT64_C(   559.14) },
      { SIMDE_FLOAT64_C(  -567.73), SIMDE_FLOAT64_C(    10.40), SIMDE_FLOAT64_C(   878.30), SIMDE_FLOAT64_C(  -571.47) },
      { SIMDE_FLOAT64_C(  -567.73), SIMDE_FLOAT64_C(    10.40), SIMDE_FLOAT64_C(   878.30), SIMDE_FLOAT64_C(  -571.47),
        SIMDE_FLOAT64_C(  -772.97), SIMDE_FLOAT64_C(   377.90), SIMDE_FLOAT64_C(  -771.74), SIMDE_FLOAT64_C(   559.14) } },
    { { SIMDE_FLOAT64_C(   756.44), SIMDE_FLOAT64_C(   399.44), SIMDE_FLOAT64_C(  -908.83), SIMDE_FLOAT64_C(  -680.38) },
      { SIMDE_FLOAT64_C(   949.59), SIMDE_FLOAT64_C(   507.80), SIMDE_FLOAT64_C(   244.15), SIMDE_FLOAT64_C(    -2.47) },
      { SIMDE_FLOAT64_C(   949.59), SIMDE_FLOAT64_C(   507.80), SIMDE_FLOAT64_C(   244.15), SIMDE_FLOAT64_C(    -2.47),
        SIMDE_FLOAT64_C(   756.44), SIMDE_FLOAT64_C(   399.44), SIMDE_FLOAT64_C(  -908.83), SIMDE_FLOAT64_C(  -680.38) } },
    { { SIMDE_FLOAT64_C(  -563.51), SIMDE_FLOAT64_C(  -235.45), SIMDE_FLOAT64_C(  -372.34), SIMDE_FLOAT64_C(    28.93) },
      { SIMDE_FLOAT64_C(   531.55), SIMDE_FLOAT64_C(  -890.05), SIMDE_FLOAT64_C(  -895.11), SIMDE_FLOAT64_C(   -73.60) },
      { SIMDE_FLOAT64_C(   531.55), SIMDE_FLOAT64_C(  -890.05), SIMDE_FLOAT64_C(  -895.11), SIMDE_FLOAT64_C(   -73.60),
        SIMDE_FLOAT64_C(  -563.51), SIMDE_FLOAT64_C(  -235.45), SIMDE_FLOAT64_C(  -372.34), SIMDE_FLOAT64_C(    28.93) } },
  };

  for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
    simde__m256d a = simde_mm256_loadu_pd(test_vec[i].a);
    simde__m256d b = simde_mm256_loadu_pd(test_vec[i].b);
    simde__m512d r = simde_x_mm512_set_m256d(a, b);
    simde_test_x86_assert_equal_f64x8(r, simde_mm512_loadu_pd(test_vec[i].r), 1);
  }

  return 0;
#else
  fputc('\n', stdout);
  for (int i = 0 ; i < 8 ; i++) {
    simde__m256d a = simde_test_x86_random_f64x4(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0));
    simde__m256d b = simde_test_x86_random_f64x4(SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0));
    simde__m512d r = simde_x_mm512_set_m256d(a, b);

    simde_test_x86_write_f64x4(2, a, SIMDE_TEST_VEC_POS_FIRST);
    simde_test_x86_write_f64x4(2, b, SIMDE_TEST_VEC_POS_MIDDLE);
    simde_test_x86_write_f64x8(2, r, SIMDE_TEST_VEC_POS_LAST);
  }
  return 1;
#endif
}

SIMDE_TEST_FUNC_LIST_BEGIN
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_set_epi8)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_set_epi16)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_set_epi32)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_set_epi64)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_set_ps)
  SIMDE_TEST_FUNC_LIST_ENTRY(mm512_set_pd)
  #if defined(SIMDE_FLOAT16_IS_SCALAR)
    SIMDE_TEST_FUNC_LIST_ENTRY(mm512_set_ph)
  #endif
  SIMDE_TEST_FUNC_LIST_ENTRY(x_mm512_set_epu8)
  SIMDE_TEST_FUNC_LIST_ENTRY(x_mm512_set_epu16)
  SIMDE_TEST_FUNC_LIST_ENTRY(x_mm512_set_epu32)
  SIMDE_TEST_FUNC_LIST_ENTRY(x_mm512_set_epu64)
  SIMDE_TEST_FUNC_LIST_ENTRY(x_mm512_set_m128i)
  SIMDE_TEST_FUNC_LIST_ENTRY(x_mm512_set_m256)
  SIMDE_TEST_FUNC_LIST_ENTRY(x_mm512_set_m256i)
  SIMDE_TEST_FUNC_LIST_ENTRY(x_mm512_set_m256d)
SIMDE_TEST_FUNC_LIST_END

#include <test/x86/avx512/test-avx512-footer.h>