minimap2 0.2.24.3 → 0.2.24.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/ext/minimap2/lib/simde/CONTRIBUTING.md +114 -0
  3. data/ext/minimap2/lib/simde/COPYING +20 -0
  4. data/ext/minimap2/lib/simde/README.md +333 -0
  5. data/ext/minimap2/lib/simde/amalgamate.py +58 -0
  6. data/ext/minimap2/lib/simde/meson.build +33 -0
  7. data/ext/minimap2/lib/simde/netlify.toml +20 -0
  8. data/ext/minimap2/lib/simde/simde/arm/neon/float32x2.h +140 -0
  9. data/ext/minimap2/lib/simde/simde/arm/neon/float32x4.h +137 -0
  10. data/ext/minimap2/lib/simde/simde/arm/neon/float64x1.h +142 -0
  11. data/ext/minimap2/lib/simde/simde/arm/neon/float64x2.h +145 -0
  12. data/ext/minimap2/lib/simde/simde/arm/neon/int16x4.h +140 -0
  13. data/ext/minimap2/lib/simde/simde/arm/neon/int16x8.h +145 -0
  14. data/ext/minimap2/lib/simde/simde/arm/neon/int32x2.h +140 -0
  15. data/ext/minimap2/lib/simde/simde/arm/neon/int32x4.h +143 -0
  16. data/ext/minimap2/lib/simde/simde/arm/neon/int64x1.h +137 -0
  17. data/ext/minimap2/lib/simde/simde/arm/neon/int64x2.h +141 -0
  18. data/ext/minimap2/lib/simde/simde/arm/neon/int8x16.h +147 -0
  19. data/ext/minimap2/lib/simde/simde/arm/neon/int8x8.h +141 -0
  20. data/ext/minimap2/lib/simde/simde/arm/neon/uint16x4.h +134 -0
  21. data/ext/minimap2/lib/simde/simde/arm/neon/uint16x8.h +138 -0
  22. data/ext/minimap2/lib/simde/simde/arm/neon/uint32x2.h +134 -0
  23. data/ext/minimap2/lib/simde/simde/arm/neon/uint32x4.h +137 -0
  24. data/ext/minimap2/lib/simde/simde/arm/neon/uint64x1.h +131 -0
  25. data/ext/minimap2/lib/simde/simde/arm/neon/uint64x2.h +135 -0
  26. data/ext/minimap2/lib/simde/simde/arm/neon/uint8x16.h +141 -0
  27. data/ext/minimap2/lib/simde/simde/arm/neon/uint8x8.h +135 -0
  28. data/ext/minimap2/lib/simde/simde/arm/neon.h +97 -0
  29. data/ext/minimap2/lib/simde/simde/check.h +267 -0
  30. data/ext/minimap2/lib/simde/simde/debug-trap.h +83 -0
  31. data/ext/minimap2/lib/simde/simde/hedley.h +1899 -0
  32. data/ext/minimap2/lib/simde/simde/simde-arch.h +445 -0
  33. data/ext/minimap2/lib/simde/simde/simde-common.h +697 -0
  34. data/ext/minimap2/lib/simde/simde/x86/avx.h +5385 -0
  35. data/ext/minimap2/lib/simde/simde/x86/avx2.h +2402 -0
  36. data/ext/minimap2/lib/simde/simde/x86/avx512bw.h +391 -0
  37. data/ext/minimap2/lib/simde/simde/x86/avx512f.h +3389 -0
  38. data/ext/minimap2/lib/simde/simde/x86/avx512vl.h +112 -0
  39. data/ext/minimap2/lib/simde/simde/x86/fma.h +659 -0
  40. data/ext/minimap2/lib/simde/simde/x86/mmx.h +2210 -0
  41. data/ext/minimap2/lib/simde/simde/x86/sse.h +3696 -0
  42. data/ext/minimap2/lib/simde/simde/x86/sse2.h +5991 -0
  43. data/ext/minimap2/lib/simde/simde/x86/sse3.h +343 -0
  44. data/ext/minimap2/lib/simde/simde/x86/sse4.1.h +1783 -0
  45. data/ext/minimap2/lib/simde/simde/x86/sse4.2.h +105 -0
  46. data/ext/minimap2/lib/simde/simde/x86/ssse3.h +1053 -0
  47. data/ext/minimap2/lib/simde/simde/x86/svml.h +543 -0
  48. data/ext/minimap2/lib/simde/test/CMakeLists.txt +166 -0
  49. data/ext/minimap2/lib/simde/test/arm/meson.build +4 -0
  50. data/ext/minimap2/lib/simde/test/arm/neon/meson.build +23 -0
  51. data/ext/minimap2/lib/simde/test/arm/neon/skel.c +871 -0
  52. data/ext/minimap2/lib/simde/test/arm/neon/test-neon-internal.h +134 -0
  53. data/ext/minimap2/lib/simde/test/arm/neon/test-neon.c +39 -0
  54. data/ext/minimap2/lib/simde/test/arm/neon/test-neon.h +10 -0
  55. data/ext/minimap2/lib/simde/test/arm/neon/vadd.c +1260 -0
  56. data/ext/minimap2/lib/simde/test/arm/neon/vdup_n.c +873 -0
  57. data/ext/minimap2/lib/simde/test/arm/neon/vmul.c +1084 -0
  58. data/ext/minimap2/lib/simde/test/arm/neon/vsub.c +1260 -0
  59. data/ext/minimap2/lib/simde/test/arm/test-arm-internal.h +18 -0
  60. data/ext/minimap2/lib/simde/test/arm/test-arm.c +20 -0
  61. data/ext/minimap2/lib/simde/test/arm/test-arm.h +8 -0
  62. data/ext/minimap2/lib/simde/test/cmake/AddCompilerFlags.cmake +171 -0
  63. data/ext/minimap2/lib/simde/test/cmake/ExtraWarningFlags.cmake +68 -0
  64. data/ext/minimap2/lib/simde/test/meson.build +64 -0
  65. data/ext/minimap2/lib/simde/test/munit/COPYING +21 -0
  66. data/ext/minimap2/lib/simde/test/munit/Makefile +55 -0
  67. data/ext/minimap2/lib/simde/test/munit/README.md +54 -0
  68. data/ext/minimap2/lib/simde/test/munit/example.c +351 -0
  69. data/ext/minimap2/lib/simde/test/munit/meson.build +37 -0
  70. data/ext/minimap2/lib/simde/test/munit/munit.c +2055 -0
  71. data/ext/minimap2/lib/simde/test/munit/munit.h +535 -0
  72. data/ext/minimap2/lib/simde/test/run-tests.c +20 -0
  73. data/ext/minimap2/lib/simde/test/run-tests.h +260 -0
  74. data/ext/minimap2/lib/simde/test/x86/avx.c +13752 -0
  75. data/ext/minimap2/lib/simde/test/x86/avx2.c +9977 -0
  76. data/ext/minimap2/lib/simde/test/x86/avx512bw.c +2664 -0
  77. data/ext/minimap2/lib/simde/test/x86/avx512f.c +10416 -0
  78. data/ext/minimap2/lib/simde/test/x86/avx512vl.c +210 -0
  79. data/ext/minimap2/lib/simde/test/x86/fma.c +2557 -0
  80. data/ext/minimap2/lib/simde/test/x86/meson.build +33 -0
  81. data/ext/minimap2/lib/simde/test/x86/mmx.c +2878 -0
  82. data/ext/minimap2/lib/simde/test/x86/skel.c +2984 -0
  83. data/ext/minimap2/lib/simde/test/x86/sse.c +5121 -0
  84. data/ext/minimap2/lib/simde/test/x86/sse2.c +9860 -0
  85. data/ext/minimap2/lib/simde/test/x86/sse3.c +486 -0
  86. data/ext/minimap2/lib/simde/test/x86/sse4.1.c +3446 -0
  87. data/ext/minimap2/lib/simde/test/x86/sse4.2.c +101 -0
  88. data/ext/minimap2/lib/simde/test/x86/ssse3.c +2084 -0
  89. data/ext/minimap2/lib/simde/test/x86/svml.c +1545 -0
  90. data/ext/minimap2/lib/simde/test/x86/test-avx.h +16 -0
  91. data/ext/minimap2/lib/simde/test/x86/test-avx512.h +25 -0
  92. data/ext/minimap2/lib/simde/test/x86/test-mmx.h +13 -0
  93. data/ext/minimap2/lib/simde/test/x86/test-sse.h +13 -0
  94. data/ext/minimap2/lib/simde/test/x86/test-sse2.h +13 -0
  95. data/ext/minimap2/lib/simde/test/x86/test-x86-internal.h +196 -0
  96. data/ext/minimap2/lib/simde/test/x86/test-x86.c +48 -0
  97. data/ext/minimap2/lib/simde/test/x86/test-x86.h +8 -0
  98. data/lib/minimap2/aligner.rb +2 -2
  99. data/lib/minimap2/ffi/constants.rb +3 -0
  100. data/lib/minimap2/version.rb +1 -1
  101. metadata +99 -3
@@ -0,0 +1,2664 @@
1
+ /* Copyright (c) 2018, 2019 Evan Nemerson <evan@nemerson.com>
2
+ *
3
+ * Permission is hereby granted, free of charge, to any person
4
+ * obtaining a copy of this software and associated documentation
5
+ * files (the "Software"), to deal in the Software without
6
+ * restriction, including without limitation the rights to use, copy,
7
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
8
+ * of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be
12
+ * included in all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
18
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
19
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ */
23
+
24
+ #define SIMDE_TESTS_CURRENT_ISAX avx512bw
25
+ #include <simde/x86/avx512bw.h>
26
+ #include <test/x86/test-avx512.h>
27
+
28
+ #if defined(SIMDE_AVX512BW_NATIVE) || defined(SIMDE_NO_NATIVE) || defined(SIMDE_ALWAYS_BUILD_NATIVE_TESTS)
29
+
30
+ static MunitResult
31
+ test_simde_mm512_add_epi32(const MunitParameter params[], void* data) {
32
+ (void) params;
33
+ (void) data;
34
+
35
+ const struct {
36
+ simde__m512i a;
37
+ simde__m512i b;
38
+ simde__m512i r;
39
+ } test_vec[8] = {
40
+ { simde_mm512_set_epi32(INT32_C( -620437579), INT32_C( -723756998), INT32_C( 2089862132), INT32_C( 928615324),
41
+ INT32_C( 1352582940), INT32_C( 1412449807), INT32_C( -180438223), INT32_C( 1987031180),
42
+ INT32_C( -515955035), INT32_C( 1724776466), INT32_C( 534751449), INT32_C( -23608579),
43
+ INT32_C(-1857730421), INT32_C(-2108373984), INT32_C(-2047745621), INT32_C(-1616522706)),
44
+ simde_mm512_set_epi32(INT32_C(-1828719907), INT32_C(-1665857743), INT32_C( 633675792), INT32_C( -87619707),
45
+ INT32_C( 206282352), INT32_C(-1301173823), INT32_C(-1377624366), INT32_C(-1722858856),
46
+ INT32_C(-1747195587), INT32_C(-1421499089), INT32_C(-1466275595), INT32_C( 1005942821),
47
+ INT32_C( 653597122), INT32_C( 1511265780), INT32_C(-1057049813), INT32_C( 988582315)),
48
+ simde_mm512_set_epi32(INT32_C( 1845809810), INT32_C( 1905352555), INT32_C(-1571429372), INT32_C( 840995617),
49
+ INT32_C( 1558865292), INT32_C( 111275984), INT32_C(-1558062589), INT32_C( 264172324),
50
+ INT32_C( 2031816674), INT32_C( 303277377), INT32_C( -931524146), INT32_C( 982334242),
51
+ INT32_C(-1204133299), INT32_C( -597108204), INT32_C( 1190171862), INT32_C( -627940391)) },
52
+ { simde_mm512_set_epi32(INT32_C(-1937590036), INT32_C( -332801366), INT32_C( -471964647), INT32_C(-1821490876),
53
+ INT32_C( -730720612), INT32_C( -212155491), INT32_C( 557730573), INT32_C( 1419303203),
54
+ INT32_C( -649726768), INT32_C(-1343949182), INT32_C( 543388357), INT32_C( 2016683828),
55
+ INT32_C(-1787609785), INT32_C( 1170714264), INT32_C( 1838698095), INT32_C( -610530733)),
56
+ simde_mm512_set_epi32(INT32_C( -78760490), INT32_C(-1762700896), INT32_C( 743846170), INT32_C( 2011763261),
57
+ INT32_C( -319606822), INT32_C( -887822109), INT32_C( 843030788), INT32_C( 1100063012),
58
+ INT32_C( 1306201477), INT32_C( -328092402), INT32_C( 760791953), INT32_C( 1607075963),
59
+ INT32_C(-2029269339), INT32_C(-1246855319), INT32_C( 373846974), INT32_C(-2039859469)),
60
+ simde_mm512_set_epi32(INT32_C(-2016350526), INT32_C(-2095502262), INT32_C( 271881523), INT32_C( 190272385),
61
+ INT32_C(-1050327434), INT32_C(-1099977600), INT32_C( 1400761361), INT32_C(-1775601081),
62
+ INT32_C( 656474709), INT32_C(-1672041584), INT32_C( 1304180310), INT32_C( -671207505),
63
+ INT32_C( 478088172), INT32_C( -76141055), INT32_C(-2082422227), INT32_C( 1644577094)) },
64
+ { simde_mm512_set_epi32(INT32_C( 57776624), INT32_C( 1788183002), INT32_C(-1974433832), INT32_C(-1794133389),
65
+ INT32_C(-1069162986), INT32_C(-1427272558), INT32_C(-1253805688), INT32_C( -660872028),
66
+ INT32_C(-1129884149), INT32_C( 173413635), INT32_C( 2028757327), INT32_C( 1565906228),
67
+ INT32_C(-2137992833), INT32_C(-1203890748), INT32_C( 706474135), INT32_C(-1778193688)),
68
+ simde_mm512_set_epi32(INT32_C( -515592024), INT32_C( -146353312), INT32_C( 242268084), INT32_C( -988968038),
69
+ INT32_C(-2038559805), INT32_C( 54811004), INT32_C( 1173402348), INT32_C( 422621509),
70
+ INT32_C( 566804477), INT32_C( 1847170418), INT32_C( -922088165), INT32_C( -324583669),
71
+ INT32_C( 2069465832), INT32_C(-1437889074), INT32_C( 238343196), INT32_C( 1745183762)),
72
+ simde_mm512_set_epi32(INT32_C( -457815400), INT32_C( 1641829690), INT32_C(-1732165748), INT32_C( 1511865869),
73
+ INT32_C( 1187244505), INT32_C(-1372461554), INT32_C( -80403340), INT32_C( -238250519),
74
+ INT32_C( -563079672), INT32_C( 2020584053), INT32_C( 1106669162), INT32_C( 1241322559),
75
+ INT32_C( -68527001), INT32_C( 1653187474), INT32_C( 944817331), INT32_C( -33009926)) },
76
+ { simde_mm512_set_epi32(INT32_C( 1004166983), INT32_C(-2037237484), INT32_C( 975969300), INT32_C( 221374965),
77
+ INT32_C( -878025387), INT32_C( 1166912453), INT32_C( 1981901973), INT32_C( 976355918),
78
+ INT32_C( 1384872269), INT32_C( -15473064), INT32_C( -289026084), INT32_C( 1652811113),
79
+ INT32_C( 2056881111), INT32_C( 1621101202), INT32_C( 1517253606), INT32_C( 1625264348)),
80
+ simde_mm512_set_epi32(INT32_C(-1184683174), INT32_C( 619504240), INT32_C(-1150416788), INT32_C(-1085597388),
81
+ INT32_C( 1766693029), INT32_C( 1152891465), INT32_C(-2035468310), INT32_C( 1319983622),
82
+ INT32_C(-1615386348), INT32_C( 261012444), INT32_C( 223560144), INT32_C( 331591481),
83
+ INT32_C( -33325842), INT32_C( -398184636), INT32_C( 1301281245), INT32_C(-1280622867)),
84
+ simde_mm512_set_epi32(INT32_C( -180516191), INT32_C(-1417733244), INT32_C( -174447488), INT32_C( -864222423),
85
+ INT32_C( 888667642), INT32_C(-1975163378), INT32_C( -53566337), INT32_C(-1998627756),
86
+ INT32_C( -230514079), INT32_C( 245539380), INT32_C( -65465940), INT32_C( 1984402594),
87
+ INT32_C( 2023555269), INT32_C( 1222916566), INT32_C(-1476432445), INT32_C( 344641481)) },
88
+ { simde_mm512_set_epi32(INT32_C( -99917228), INT32_C( 209251690), INT32_C( 108789393), INT32_C(-1056574639),
89
+ INT32_C( 178125384), INT32_C( 1688380363), INT32_C( -910324723), INT32_C( 1731780669),
90
+ INT32_C( 1989188149), INT32_C( 999202624), INT32_C( 198474190), INT32_C( 1270934715),
91
+ INT32_C( -715363116), INT32_C( 1839116730), INT32_C( -53141198), INT32_C( -590771199)),
92
+ simde_mm512_set_epi32(INT32_C( -77041932), INT32_C( 927171423), INT32_C( -178390373), INT32_C(-1958045464),
93
+ INT32_C( 1172980373), INT32_C(-1805733723), INT32_C( -859792119), INT32_C( 1334306095),
94
+ INT32_C(-1717931855), INT32_C( -244574814), INT32_C( 1638507066), INT32_C( -551865858),
95
+ INT32_C( -152534880), INT32_C(-1198583052), INT32_C( -869344314), INT32_C(-1920653371)),
96
+ simde_mm512_set_epi32(INT32_C( -176959160), INT32_C( 1136423113), INT32_C( -69600980), INT32_C( 1280347193),
97
+ INT32_C( 1351105757), INT32_C( -117353360), INT32_C(-1770116842), INT32_C(-1228880532),
98
+ INT32_C( 271256294), INT32_C( 754627810), INT32_C( 1836981256), INT32_C( 719068857),
99
+ INT32_C( -867897996), INT32_C( 640533678), INT32_C( -922485512), INT32_C( 1783542726)) },
100
+ { simde_mm512_set_epi32(INT32_C(-1801907952), INT32_C( 126986794), INT32_C( 2099256067), INT32_C( 915807861),
101
+ INT32_C( -313053214), INT32_C( 1205934161), INT32_C( 25151882), INT32_C( -823105542),
102
+ INT32_C(-1390117486), INT32_C( 385956806), INT32_C( 1986964939), INT32_C( 56415632),
103
+ INT32_C(-1186749471), INT32_C( 1048153466), INT32_C( 1387660497), INT32_C( 2108528480)),
104
+ simde_mm512_set_epi32(INT32_C(-1572695910), INT32_C( 592114445), INT32_C( -85836842), INT32_C(-1721616170),
105
+ INT32_C( 222979620), INT32_C( -376092888), INT32_C( 405576062), INT32_C( 902804532),
106
+ INT32_C( 2135373993), INT32_C( 1677980182), INT32_C(-1127993042), INT32_C( -771911734),
107
+ INT32_C( -41719457), INT32_C(-1772059837), INT32_C(-1722167164), INT32_C( 812561930)),
108
+ simde_mm512_set_epi32(INT32_C( 920363434), INT32_C( 719101239), INT32_C( 2013419225), INT32_C( -805808309),
109
+ INT32_C( -90073594), INT32_C( 829841273), INT32_C( 430727944), INT32_C( 79698990),
110
+ INT32_C( 745256507), INT32_C( 2063936988), INT32_C( 858971897), INT32_C( -715496102),
111
+ INT32_C(-1228468928), INT32_C( -723906371), INT32_C( -334506667), INT32_C(-1373876886)) },
112
+ { simde_mm512_set_epi32(INT32_C( -87552733), INT32_C( -497247153), INT32_C( 1468487386), INT32_C( 1003068863),
113
+ INT32_C( 1747861143), INT32_C( -646367560), INT32_C( -755743025), INT32_C( 683078293),
114
+ INT32_C( 1090643160), INT32_C( 1972147188), INT32_C(-2077095609), INT32_C( 731411049),
115
+ INT32_C( -484220816), INT32_C( -672982839), INT32_C( -64061145), INT32_C(-1731914804)),
116
+ simde_mm512_set_epi32(INT32_C( 1287212577), INT32_C( 799931806), INT32_C( 620076827), INT32_C( 806976960),
117
+ INT32_C(-1787684636), INT32_C( -68422538), INT32_C( 591651588), INT32_C( 2136172897),
118
+ INT32_C( 538232126), INT32_C( 1910632119), INT32_C( 280273419), INT32_C( 1179224181),
119
+ INT32_C( -178809858), INT32_C(-1741617588), INT32_C(-2045147428), INT32_C( 1639562384)),
120
+ simde_mm512_set_epi32(INT32_C( 1199659844), INT32_C( 302684653), INT32_C( 2088564213), INT32_C( 1810045823),
121
+ INT32_C( -39823493), INT32_C( -714790098), INT32_C( -164091437), INT32_C(-1475716106),
122
+ INT32_C( 1628875286), INT32_C( -412187989), INT32_C(-1796822190), INT32_C( 1910635230),
123
+ INT32_C( -663030674), INT32_C( 1880366869), INT32_C(-2109208573), INT32_C( -92352420)) },
124
+ { simde_mm512_set_epi32(INT32_C( 446376492), INT32_C( 1910481415), INT32_C( 625332216), INT32_C( 541212187),
125
+ INT32_C( 298536203), INT32_C(-1502376568), INT32_C( -699613431), INT32_C( -125340207),
126
+ INT32_C( -849753035), INT32_C( -538074567), INT32_C( 1356067945), INT32_C( 1088886620),
127
+ INT32_C(-1643178888), INT32_C( 855336737), INT32_C( 1638140255), INT32_C(-2120465324)),
128
+ simde_mm512_set_epi32(INT32_C( 1091209248), INT32_C(-1950373665), INT32_C(-2108427702), INT32_C( 969460626),
129
+ INT32_C( 438255242), INT32_C( -807569468), INT32_C( -746566484), INT32_C( 1685713375),
130
+ INT32_C( 93210471), INT32_C( 1249365881), INT32_C( 945726578), INT32_C( 1471824111),
131
+ INT32_C( 1944720672), INT32_C(-1780061567), INT32_C( 1132193802), INT32_C( 151873348)),
132
+ simde_mm512_set_epi32(INT32_C( 1537585740), INT32_C( -39892250), INT32_C(-1483095486), INT32_C( 1510672813),
133
+ INT32_C( 736791445), INT32_C( 1985021260), INT32_C(-1446179915), INT32_C( 1560373168),
134
+ INT32_C( -756542564), INT32_C( 711291314), INT32_C(-1993172773), INT32_C(-1734256565),
135
+ INT32_C( 301541784), INT32_C( -924724830), INT32_C(-1524633239), INT32_C(-1968591976)) }
136
+ };
137
+
138
+ for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
139
+ simde__m512i r = simde_mm512_add_epi32(test_vec[i].a, test_vec[i].b);
140
+ simde_assert_m512i_i32(r, ==, test_vec[i].r);
141
+ }
142
+
143
+ return MUNIT_OK;
144
+ }
145
+
146
+ static MunitResult
147
+ test_simde_mm512_add_epi64(const MunitParameter params[], void* data) {
148
+ (void) params;
149
+ (void) data;
150
+
151
+ const struct {
152
+ simde__m512i a;
153
+ simde__m512i b;
154
+ simde__m512i r;
155
+ } test_vec[8] = {
156
+ { simde_mm512_set_epi64(INT64_C(-1142113623186190173), INT64_C( 2669401519388559587),
157
+ INT64_C(-4041526363448340541), INT64_C( 8890984525115992605),
158
+ INT64_C( 3710059072002351182), INT64_C( -8844419669430530),
159
+ INT64_C( -583435793687448962), INT64_C(-3776976191330287246)),
160
+ simde_mm512_set_epi64(INT64_C(-2572258444501888207), INT64_C( 8010943607820280661),
161
+ INT64_C(-7896534424393030159), INT64_C( 8282192647960665352),
162
+ INT64_C( 811312670062340262), INT64_C(-8174776120225966748),
163
+ INT64_C( 4815827375621462801), INT64_C(-4343109153599957409)),
164
+ simde_mm512_set_epi64(INT64_C(-3714372067688078380), INT64_C(-7766398946500711368),
165
+ INT64_C( 6508683285868180916), INT64_C(-1273566900632893659),
166
+ INT64_C( 4521371742064691444), INT64_C(-8183620539895397278),
167
+ INT64_C( 4232391581934013839), INT64_C(-8120085344930244655)) },
168
+ { simde_mm512_set_epi64(INT64_C(-8907763853043432709), INT64_C(-7664489506315516041),
169
+ INT64_C( 7881121837601630619), INT64_C(-1123258072002783793),
170
+ INT64_C( 6852591379280896525), INT64_C(-3366432558441729450),
171
+ INT64_C(-5990500579016281828), INT64_C( 7624785959951223888)),
172
+ simde_mm512_set_epi64(INT64_C( 530774369540308193), INT64_C( 4966843317235809520),
173
+ INT64_C(-4575853019860390176), INT64_C(-5468596229394507748),
174
+ INT64_C( 5016860099104730248), INT64_C(-4030848910458752721),
175
+ INT64_C(-5726415349997053878), INT64_C(-2689606844288066445)),
176
+ simde_mm512_set_epi64(INT64_C(-8376989483503124516), INT64_C(-2697646189079706521),
177
+ INT64_C( 3305268817741240443), INT64_C(-6591854301397291541),
178
+ INT64_C(-6577292595323924843), INT64_C(-7397281468900482171),
179
+ INT64_C( 6729828144696215910), INT64_C( 4935179115663157443)) },
180
+ { simde_mm512_set_epi64(INT64_C(-1147603065405303411), INT64_C(-7360179338648948250),
181
+ INT64_C( 8522846282553983063), INT64_C(-6411739365277986684),
182
+ INT64_C( 2565410720902708591), INT64_C(-6999797153964411090),
183
+ INT64_C(-4638909294820957529), INT64_C(-6689250119856274996)),
184
+ simde_mm512_set_epi64(INT64_C( 5073596640780038992), INT64_C( 9103358253828460511),
185
+ INT64_C( -705008066916281166), INT64_C(-6536611133780086738),
186
+ INT64_C( 8265445360104219638), INT64_C( 3801153343625786085),
187
+ INT64_C( 2669262289718667251), INT64_C( 5656097673759919545)),
188
+ simde_mm512_set_epi64(INT64_C( 3925993575374735581), INT64_C( 1743178915179512261),
189
+ INT64_C( 7817838215637701897), INT64_C( 5498393574651478194),
190
+ INT64_C(-7615887992702623387), INT64_C(-3198643810338625005),
191
+ INT64_C(-1969647005102290278), INT64_C(-1033152446096355451)) },
192
+ { simde_mm512_set_epi64(INT64_C( 4726294533983517199), INT64_C(-3194102718522779616),
193
+ INT64_C( 7968557550946485055), INT64_C( 3231249301417879275),
194
+ INT64_C( 2730855362291069772), INT64_C(-7006805907158396614),
195
+ INT64_C( 7013656719434070104), INT64_C(-5111614041831206337)),
196
+ simde_mm512_set_epi64(INT64_C( 8077331611956864824), INT64_C( 9219505211765165401),
197
+ INT64_C( -526170803618465025), INT64_C(-6117963664293386621),
198
+ INT64_C( 8138058063794249913), INT64_C(-6512904449490940829),
199
+ INT64_C( 474025353181411678), INT64_C(-7774133174508991700)),
200
+ simde_mm512_set_epi64(INT64_C(-5643117927769169593), INT64_C( 6025402493242385785),
201
+ INT64_C( 7442386747328020030), INT64_C(-2886714362875507346),
202
+ INT64_C(-7577830647624231931), INT64_C( 4927033717060214173),
203
+ INT64_C( 7487682072615481782), INT64_C( 5560996857369353579)) },
204
+ { simde_mm512_set_epi64(INT64_C( 193050968130854053), INT64_C( 8259941741302086974),
205
+ INT64_C( -453186687001595332), INT64_C( 7712011730228920808),
206
+ INT64_C(-6104336988767299426), INT64_C( 5308601606176372502),
207
+ INT64_C(-2287583704165123047), INT64_C( 5680091922249770976)),
208
+ simde_mm512_set_epi64(INT64_C(-4961468284661849310), INT64_C( 9060485449513062801),
209
+ INT64_C( 6632655590889112567), INT64_C( 7501604346789135910),
210
+ INT64_C(-7298384925887684809), INT64_C( 2881824411969821346),
211
+ INT64_C(-8132400455203655002), INT64_C( 4133962836264448240)),
212
+ simde_mm512_set_epi64(INT64_C(-4768417316530995257), INT64_C(-1126316882894401841),
213
+ INT64_C( 6179468903887517235), INT64_C(-3233127996691494898),
214
+ INT64_C( 5044022159054567381), INT64_C( 8190426018146193848),
215
+ INT64_C( 8026759914340773567), INT64_C(-8632689315195332400)) },
216
+ { simde_mm512_set_epi64(INT64_C( 8956245117105388401), INT64_C(-1279259458875765791),
217
+ INT64_C(-4844132309560126483), INT64_C( 8020518294074851688),
218
+ INT64_C(-5641381585453289469), INT64_C(-7336114943591686134),
219
+ INT64_C( 7396026256462185783), INT64_C(-7159923149096431079)),
220
+ simde_mm512_set_epi64(INT64_C( 7681308578881334632), INT64_C( 6762384852768739876),
221
+ INT64_C(-6630226433339556438), INT64_C( 895229301334345958),
222
+ INT64_C( 8748757877138934431), INT64_C(-3406024454166778034),
223
+ INT64_C(-1971110785327035786), INT64_C( 5257409320594533793)),
224
+ simde_mm512_set_epi64(INT64_C(-1809190377722828583), INT64_C( 5483125393892974085),
225
+ INT64_C( 6972385330809868695), INT64_C( 8915747595409197646),
226
+ INT64_C( 3107376291685644962), INT64_C( 7704604675951087448),
227
+ INT64_C( 5424915471135149997), INT64_C(-1902513828501897286)) },
228
+ { simde_mm512_set_epi64(INT64_C(-6379556098233125245), INT64_C(-7036815414983308437),
229
+ INT64_C( 6449458293699998062), INT64_C(-8662596582560742605),
230
+ INT64_C( 8559396047271930933), INT64_C( 8319158628050257118),
231
+ INT64_C( 2671429253434382084), INT64_C(-3771778240982532322)),
232
+ simde_mm512_set_epi64(INT64_C( 4847839000068024729), INT64_C( 7410858097550413452),
233
+ INT64_C( -481636656067004168), INT64_C( 273087245529831397),
234
+ INT64_C( 2014413537357415871), INT64_C(-3897516487309028112),
235
+ INT64_C( 4133432427690444225), INT64_C(-7762159775807857014)),
236
+ simde_mm512_set_epi64(INT64_C(-1531717098165100516), INT64_C( 374042682567105015),
237
+ INT64_C( 5967821637632993894), INT64_C(-8389509337030911208),
238
+ INT64_C(-7872934489080204812), INT64_C( 4421642140741229006),
239
+ INT64_C( 6804861681124826309), INT64_C( 6912806056919162280)) },
240
+ { simde_mm512_set_epi64(INT64_C( 7044617451253925485), INT64_C( 8554512071902279421),
241
+ INT64_C(-5774887429267945902), INT64_C( 8744694126758591835),
242
+ INT64_C( 6726346195930174353), INT64_C(-3624175965481610004),
243
+ INT64_C(-2980185457068069894), INT64_C(-1599338563378690807)),
244
+ simde_mm512_set_epi64(INT64_C( 7457111512897216818), INT64_C(-2685664891179263207),
245
+ INT64_C( 3286698240604454682), INT64_C( 1197616399803304076),
246
+ INT64_C(-5755426011606503746), INT64_C(-7010024580994263662),
247
+ INT64_C(-1798652028950367168), INT64_C( 1422740686196608462)),
248
+ simde_mm512_set_epi64(INT64_C(-3945015109558409313), INT64_C( 5868847180723016214),
249
+ INT64_C(-2488189188663491220), INT64_C(-8504433547147655705),
250
+ INT64_C( 970920184323670607), INT64_C( 7812543527233677950),
251
+ INT64_C(-4778837486018437062), INT64_C( -176597877182082345)) }
252
+ };
253
+
254
+ for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
255
+ simde__m512i r = simde_mm512_add_epi64(test_vec[i].a, test_vec[i].b);
256
+ simde_assert_m512i_i64(r, ==, test_vec[i].r);
257
+ }
258
+
259
+ return MUNIT_OK;
260
+ }
261
+
262
+ static MunitResult
263
+ test_simde_mm512_adds_epi8(const MunitParameter params[], void* data) {
264
+ (void) params;
265
+ (void) data;
266
+
267
+ const struct {
268
+ simde__m512i a;
269
+ simde__m512i b;
270
+ simde__m512i r;
271
+ } test_vec[8] = {
272
+ { simde_mm512_set_epi8(INT8_C( -30), INT8_C( -16), INT8_C( -64), INT8_C( 113),
273
+ INT8_C( 51), INT8_C(-115), INT8_C( 19), INT8_C( -80),
274
+ INT8_C(-110), INT8_C( -62), INT8_C( -91), INT8_C( 8),
275
+ INT8_C( 11), INT8_C( -49), INT8_C( -43), INT8_C(-101),
276
+ INT8_C( 16), INT8_C( 61), INT8_C( -2), INT8_C(-100),
277
+ INT8_C( 1), INT8_C( -80), INT8_C( 127), INT8_C(-105),
278
+ INT8_C( -74), INT8_C(-126), INT8_C( 122), INT8_C( 30),
279
+ INT8_C( -73), INT8_C( 48), INT8_C( -33), INT8_C( 2),
280
+ INT8_C( -82), INT8_C( -10), INT8_C( 33), INT8_C( 20),
281
+ INT8_C(-120), INT8_C(-120), INT8_C( -46), INT8_C( -54),
282
+ INT8_C( -43), INT8_C( 63), INT8_C( 81), INT8_C( 103),
283
+ INT8_C( 118), INT8_C( -84), INT8_C( 76), INT8_C( 47),
284
+ INT8_C( 101), INT8_C( -83), INT8_C( 15), INT8_C( 23),
285
+ INT8_C( 36), INT8_C(-116), INT8_C( -88), INT8_C( -45),
286
+ INT8_C( -6), INT8_C( 86), INT8_C( 20), INT8_C( 39),
287
+ INT8_C( 117), INT8_C( 80), INT8_C( 97), INT8_C( 41)),
288
+ simde_mm512_set_epi8(INT8_C( 122), INT8_C( 43), INT8_C( 38), INT8_C( 97),
289
+ INT8_C( 38), INT8_C( 68), INT8_C( 88), INT8_C( 56),
290
+ INT8_C( -39), INT8_C( 61), INT8_C( -57), INT8_C( -66),
291
+ INT8_C(-121), INT8_C( 29), INT8_C( 110), INT8_C( 127),
292
+ INT8_C(-115), INT8_C( 16), INT8_C( -46), INT8_C( 65),
293
+ INT8_C( -36), INT8_C( 26), INT8_C( 12), INT8_C( -79),
294
+ INT8_C( -66), INT8_C( -28), INT8_C( -67), INT8_C( -79),
295
+ INT8_C( -60), INT8_C( -13), INT8_C( 74), INT8_C( 25),
296
+ INT8_C( 46), INT8_C( 8), INT8_C( 70), INT8_C( 106),
297
+ INT8_C(-119), INT8_C( 0), INT8_C( -96), INT8_C( -51),
298
+ INT8_C( -50), INT8_C( 93), INT8_C( 92), INT8_C( 65),
299
+ INT8_C( -96), INT8_C(-126), INT8_C( 4), INT8_C( 9),
300
+ INT8_C( 26), INT8_C(-119), INT8_C( 93), INT8_C( 15),
301
+ INT8_C(-115), INT8_C( 77), INT8_C( 125), INT8_C( -62),
302
+ INT8_C( 77), INT8_C( -22), INT8_C( 101), INT8_C( 83),
303
+ INT8_C( 45), INT8_C( -68), INT8_C( 97), INT8_C( -19)),
304
+ simde_mm512_set_epi8(INT8_C( 92), INT8_C( 27), INT8_C( -26), INT8_C( 127),
305
+ INT8_C( 89), INT8_C( -47), INT8_C( 107), INT8_C( -24),
306
+ INT8_C(-128), INT8_C( -1), INT8_C(-128), INT8_C( -58),
307
+ INT8_C(-110), INT8_C( -20), INT8_C( 67), INT8_C( 26),
308
+ INT8_C( -99), INT8_C( 77), INT8_C( -48), INT8_C( -35),
309
+ INT8_C( -35), INT8_C( -54), INT8_C( 127), INT8_C(-128),
310
+ INT8_C(-128), INT8_C(-128), INT8_C( 55), INT8_C( -49),
311
+ INT8_C(-128), INT8_C( 35), INT8_C( 41), INT8_C( 27),
312
+ INT8_C( -36), INT8_C( -2), INT8_C( 103), INT8_C( 126),
313
+ INT8_C(-128), INT8_C(-120), INT8_C(-128), INT8_C(-105),
314
+ INT8_C( -93), INT8_C( 127), INT8_C( 127), INT8_C( 127),
315
+ INT8_C( 22), INT8_C(-128), INT8_C( 80), INT8_C( 56),
316
+ INT8_C( 127), INT8_C(-128), INT8_C( 108), INT8_C( 38),
317
+ INT8_C( -79), INT8_C( -39), INT8_C( 37), INT8_C(-107),
318
+ INT8_C( 71), INT8_C( 64), INT8_C( 121), INT8_C( 122),
319
+ INT8_C( 127), INT8_C( 12), INT8_C( 127), INT8_C( 22)) },
320
+ { simde_mm512_set_epi8(INT8_C( 60), INT8_C( 96), INT8_C(-106), INT8_C(-115),
321
+ INT8_C( 31), INT8_C(-108), INT8_C( 15), INT8_C( 63),
322
+ INT8_C( -77), INT8_C( 125), INT8_C( 41), INT8_C( -80),
323
+ INT8_C( 36), INT8_C(-118), INT8_C(-116), INT8_C( -63),
324
+ INT8_C( -44), INT8_C( 70), INT8_C( 99), INT8_C( 48),
325
+ INT8_C( 67), INT8_C( 43), INT8_C( 83), INT8_C( 53),
326
+ INT8_C( 60), INT8_C( 57), INT8_C(-118), INT8_C( 55),
327
+ INT8_C( -62), INT8_C( -42), INT8_C( 19), INT8_C( 52),
328
+ INT8_C( -37), INT8_C( -32), INT8_C( 33), INT8_C(-114),
329
+ INT8_C( -96), INT8_C( 53), INT8_C( 18), INT8_C( -37),
330
+ INT8_C( 6), INT8_C( -87), INT8_C( -11), INT8_C( -10),
331
+ INT8_C( -4), INT8_C( 84), INT8_C( 104), INT8_C( 55),
332
+ INT8_C( 92), INT8_C( 117), INT8_C( 16), INT8_C( 115),
333
+ INT8_C( 83), INT8_C( 80), INT8_C(-125), INT8_C( 64),
334
+ INT8_C( 74), INT8_C( -9), INT8_C( -62), INT8_C( 67),
335
+ INT8_C( 102), INT8_C( 66), INT8_C( -86), INT8_C(-112)),
336
+ simde_mm512_set_epi8(INT8_C( -97), INT8_C( 52), INT8_C( -91), INT8_C( 7),
337
+ INT8_C( -1), INT8_C( -19), INT8_C( 38), INT8_C( 15),
338
+ INT8_C( 76), INT8_C( 63), INT8_C( 10), INT8_C( 18),
339
+ INT8_C( 54), INT8_C( 73), INT8_C( 15), INT8_C( -54),
340
+ INT8_C(-114), INT8_C( 63), INT8_C( 44), INT8_C( 4),
341
+ INT8_C( 41), INT8_C( 90), INT8_C( -78), INT8_C( -67),
342
+ INT8_C( 95), INT8_C( -14), INT8_C( -10), INT8_C( -44),
343
+ INT8_C( 53), INT8_C( 102), INT8_C( 127), INT8_C( 120),
344
+ INT8_C( -89), INT8_C( 10), INT8_C( -36), INT8_C( -50),
345
+ INT8_C( 118), INT8_C(-106), INT8_C( -52), INT8_C( 76),
346
+ INT8_C( 66), INT8_C( -36), INT8_C( -79), INT8_C( 91),
347
+ INT8_C( 14), INT8_C( 103), INT8_C( -73), INT8_C(-123),
348
+ INT8_C( 68), INT8_C( -54), INT8_C(-103), INT8_C( 38),
349
+ INT8_C( 58), INT8_C( 0), INT8_C( -62), INT8_C( -76),
350
+ INT8_C( 93), INT8_C( 119), INT8_C( 14), INT8_C( 84),
351
+ INT8_C( -83), INT8_C( 76), INT8_C( -47), INT8_C( -53)),
352
+ simde_mm512_set_epi8(INT8_C( -37), INT8_C( 127), INT8_C(-128), INT8_C(-108),
353
+ INT8_C( 30), INT8_C(-127), INT8_C( 53), INT8_C( 78),
354
+ INT8_C( -1), INT8_C( 127), INT8_C( 51), INT8_C( -62),
355
+ INT8_C( 90), INT8_C( -45), INT8_C(-101), INT8_C(-117),
356
+ INT8_C(-128), INT8_C( 127), INT8_C( 127), INT8_C( 52),
357
+ INT8_C( 108), INT8_C( 127), INT8_C( 5), INT8_C( -14),
358
+ INT8_C( 127), INT8_C( 43), INT8_C(-128), INT8_C( 11),
359
+ INT8_C( -9), INT8_C( 60), INT8_C( 127), INT8_C( 127),
360
+ INT8_C(-126), INT8_C( -22), INT8_C( -3), INT8_C(-128),
361
+ INT8_C( 22), INT8_C( -53), INT8_C( -34), INT8_C( 39),
362
+ INT8_C( 72), INT8_C(-123), INT8_C( -90), INT8_C( 81),
363
+ INT8_C( 10), INT8_C( 127), INT8_C( 31), INT8_C( -68),
364
+ INT8_C( 127), INT8_C( 63), INT8_C( -87), INT8_C( 127),
365
+ INT8_C( 127), INT8_C( 80), INT8_C(-128), INT8_C( -12),
366
+ INT8_C( 127), INT8_C( 110), INT8_C( -48), INT8_C( 127),
367
+ INT8_C( 19), INT8_C( 127), INT8_C(-128), INT8_C(-128)) },
368
+ { simde_mm512_set_epi8(INT8_C( -80), INT8_C( 122), INT8_C(-100), INT8_C( 123),
369
+ INT8_C( 82), INT8_C(-107), INT8_C( 95), INT8_C( -80),
370
+ INT8_C(-115), INT8_C(-109), INT8_C( 60), INT8_C( 72),
371
+ INT8_C( 57), INT8_C( 99), INT8_C( -30), INT8_C(-115),
372
+ INT8_C( 69), INT8_C( 18), INT8_C( -5), INT8_C( -6),
373
+ INT8_C( -90), INT8_C( -20), INT8_C( 17), INT8_C( 121),
374
+ INT8_C(-100), INT8_C( -55), INT8_C( 90), INT8_C( -42),
375
+ INT8_C(-113), INT8_C( 119), INT8_C( 44), INT8_C(-123),
376
+ INT8_C( -39), INT8_C( 114), INT8_C( 37), INT8_C( -84),
377
+ INT8_C( -88), INT8_C( 15), INT8_C( 23), INT8_C( 114),
378
+ INT8_C( 63), INT8_C( -61), INT8_C( 22), INT8_C( 8),
379
+ INT8_C( 54), INT8_C( 19), INT8_C( -34), INT8_C( 18),
380
+ INT8_C( -36), INT8_C( 104), INT8_C( 1), INT8_C( 5),
381
+ INT8_C(-116), INT8_C( 79), INT8_C( -20), INT8_C( -4),
382
+ INT8_C( 95), INT8_C( 103), INT8_C( 3), INT8_C( 64),
383
+ INT8_C( 34), INT8_C( -49), INT8_C( -27), INT8_C( 41)),
384
+ simde_mm512_set_epi8(INT8_C( 97), INT8_C(-116), INT8_C( -44), INT8_C( -44),
385
+ INT8_C( 67), INT8_C( -66), INT8_C( 77), INT8_C( 60),
386
+ INT8_C( 74), INT8_C( -19), INT8_C(-123), INT8_C( -81),
387
+ INT8_C( -74), INT8_C( -21), INT8_C( -32), INT8_C(-122),
388
+ INT8_C(-110), INT8_C( 116), INT8_C( 115), INT8_C( 99),
389
+ INT8_C( 29), INT8_C( 50), INT8_C(-119), INT8_C(-126),
390
+ INT8_C( -53), INT8_C( 68), INT8_C( -37), INT8_C( 84),
391
+ INT8_C( 23), INT8_C( -10), INT8_C( 15), INT8_C( 37),
392
+ INT8_C( -93), INT8_C( 57), INT8_C( 28), INT8_C(-116),
393
+ INT8_C( 56), INT8_C(-124), INT8_C( -93), INT8_C( -67),
394
+ INT8_C( 27), INT8_C( -1), INT8_C( -70), INT8_C( -30),
395
+ INT8_C( -39), INT8_C( 59), INT8_C( 76), INT8_C( 108),
396
+ INT8_C( 13), INT8_C( -29), INT8_C( 60), INT8_C( 106),
397
+ INT8_C( 106), INT8_C( -77), INT8_C(-102), INT8_C( 3),
398
+ INT8_C( -18), INT8_C( 23), INT8_C( 113), INT8_C( -97),
399
+ INT8_C( 109), INT8_C( 81), INT8_C( 42), INT8_C( 93)),
400
+ simde_mm512_set_epi8(INT8_C( 17), INT8_C( 6), INT8_C(-128), INT8_C( 79),
401
+ INT8_C( 127), INT8_C(-128), INT8_C( 127), INT8_C( -20),
402
+ INT8_C( -41), INT8_C(-128), INT8_C( -63), INT8_C( -9),
403
+ INT8_C( -17), INT8_C( 78), INT8_C( -62), INT8_C(-128),
404
+ INT8_C( -41), INT8_C( 127), INT8_C( 110), INT8_C( 93),
405
+ INT8_C( -61), INT8_C( 30), INT8_C(-102), INT8_C( -5),
406
+ INT8_C(-128), INT8_C( 13), INT8_C( 53), INT8_C( 42),
407
+ INT8_C( -90), INT8_C( 109), INT8_C( 59), INT8_C( -86),
408
+ INT8_C(-128), INT8_C( 127), INT8_C( 65), INT8_C(-128),
409
+ INT8_C( -32), INT8_C(-109), INT8_C( -70), INT8_C( 47),
410
+ INT8_C( 90), INT8_C( -62), INT8_C( -48), INT8_C( -22),
411
+ INT8_C( 15), INT8_C( 78), INT8_C( 42), INT8_C( 126),
412
+ INT8_C( -23), INT8_C( 75), INT8_C( 61), INT8_C( 111),
413
+ INT8_C( -10), INT8_C( 2), INT8_C(-122), INT8_C( -1),
414
+ INT8_C( 77), INT8_C( 126), INT8_C( 116), INT8_C( -33),
415
+ INT8_C( 127), INT8_C( 32), INT8_C( 15), INT8_C( 127)) },
416
+ { simde_mm512_set_epi8(INT8_C( -94), INT8_C( 96), INT8_C( -77), INT8_C( -55),
417
+ INT8_C( 18), INT8_C( 12), INT8_C( 78), INT8_C( -17),
418
+ INT8_C( -94), INT8_C( 83), INT8_C( -20), INT8_C(-101),
419
+ INT8_C( -62), INT8_C( -62), INT8_C( -77), INT8_C( 21),
420
+ INT8_C( 21), INT8_C( -49), INT8_C(-127), INT8_C( -47),
421
+ INT8_C( -26), INT8_C( 62), INT8_C( -51), INT8_C( -34),
422
+ INT8_C( 9), INT8_C( -56), INT8_C( 63), INT8_C( 4),
423
+ INT8_C( 64), INT8_C( 46), INT8_C( 68), INT8_C( -18),
424
+ INT8_C(-110), INT8_C( 103), INT8_C(-101), INT8_C( 45),
425
+ INT8_C( -81), INT8_C( 125), INT8_C( 8), INT8_C( 72),
426
+ INT8_C( -48), INT8_C( -28), INT8_C( 102), INT8_C( -90),
427
+ INT8_C(-101), INT8_C( -40), INT8_C( -94), INT8_C(-127),
428
+ INT8_C( -36), INT8_C( -32), INT8_C( 34), INT8_C( -39),
429
+ INT8_C( -64), INT8_C( 111), INT8_C( 36), INT8_C( 91),
430
+ INT8_C( 90), INT8_C( -10), INT8_C( 88), INT8_C(-117),
431
+ INT8_C( 117), INT8_C(-111), INT8_C(-128), INT8_C( -35)),
432
+ simde_mm512_set_epi8(INT8_C( 65), INT8_C( -2), INT8_C( 4), INT8_C( -77),
433
+ INT8_C( 33), INT8_C(-119), INT8_C( -36), INT8_C( 95),
434
+ INT8_C( -54), INT8_C( 57), INT8_C( -15), INT8_C( 20),
435
+ INT8_C( 119), INT8_C( -56), INT8_C( -57), INT8_C( 22),
436
+ INT8_C( -23), INT8_C( -56), INT8_C( -77), INT8_C( 114),
437
+ INT8_C( -25), INT8_C( 85), INT8_C( 65), INT8_C( 124),
438
+ INT8_C( 80), INT8_C( 94), INT8_C( -6), INT8_C(-128),
439
+ INT8_C( 25), INT8_C( -80), INT8_C( 31), INT8_C( -23),
440
+ INT8_C( 123), INT8_C(-123), INT8_C( -56), INT8_C( 34),
441
+ INT8_C( 72), INT8_C( -39), INT8_C( -17), INT8_C( 39),
442
+ INT8_C( 29), INT8_C( -88), INT8_C( 65), INT8_C( 81),
443
+ INT8_C(-120), INT8_C( 80), INT8_C( -76), INT8_C( -59),
444
+ INT8_C( 48), INT8_C( -90), INT8_C( -85), INT8_C( 82),
445
+ INT8_C( 115), INT8_C(-114), INT8_C( 84), INT8_C( -40),
446
+ INT8_C( -69), INT8_C( -11), INT8_C(-118), INT8_C( 39),
447
+ INT8_C( -17), INT8_C( -23), INT8_C( 4), INT8_C( -37)),
448
+ simde_mm512_set_epi8(INT8_C( -29), INT8_C( 94), INT8_C( -73), INT8_C(-128),
449
+ INT8_C( 51), INT8_C(-107), INT8_C( 42), INT8_C( 78),
450
+ INT8_C(-128), INT8_C( 127), INT8_C( -35), INT8_C( -81),
451
+ INT8_C( 57), INT8_C(-118), INT8_C(-128), INT8_C( 43),
452
+ INT8_C( -2), INT8_C(-105), INT8_C(-128), INT8_C( 67),
453
+ INT8_C( -51), INT8_C( 127), INT8_C( 14), INT8_C( 90),
454
+ INT8_C( 89), INT8_C( 38), INT8_C( 57), INT8_C(-124),
455
+ INT8_C( 89), INT8_C( -34), INT8_C( 99), INT8_C( -41),
456
+ INT8_C( 13), INT8_C( -20), INT8_C(-128), INT8_C( 79),
457
+ INT8_C( -9), INT8_C( 86), INT8_C( -9), INT8_C( 111),
458
+ INT8_C( -19), INT8_C(-116), INT8_C( 127), INT8_C( -9),
459
+ INT8_C(-128), INT8_C( 40), INT8_C(-128), INT8_C(-128),
460
+ INT8_C( 12), INT8_C(-122), INT8_C( -51), INT8_C( 43),
461
+ INT8_C( 51), INT8_C( -3), INT8_C( 120), INT8_C( 51),
462
+ INT8_C( 21), INT8_C( -21), INT8_C( -30), INT8_C( -78),
463
+ INT8_C( 100), INT8_C(-128), INT8_C(-124), INT8_C( -72)) },
464
+ { simde_mm512_set_epi8(INT8_C( 31), INT8_C( -81), INT8_C( 115), INT8_C( 18),
465
+ INT8_C( 20), INT8_C( -33), INT8_C(-125), INT8_C( -45),
466
+ INT8_C( 54), INT8_C( 82), INT8_C( 61), INT8_C( 81),
467
+ INT8_C( 123), INT8_C( 18), INT8_C( 89), INT8_C( 34),
468
+ INT8_C( 10), INT8_C( -54), INT8_C( -24), INT8_C( 54),
469
+ INT8_C( 49), INT8_C( -70), INT8_C( 7), INT8_C( -12),
470
+ INT8_C( 110), INT8_C( -16), INT8_C( -10), INT8_C( 4),
471
+ INT8_C( 3), INT8_C( -17), INT8_C( -46), INT8_C( -29),
472
+ INT8_C( 26), INT8_C( -38), INT8_C(-107), INT8_C( -25),
473
+ INT8_C( 61), INT8_C( -4), INT8_C( -21), INT8_C( -11),
474
+ INT8_C( -29), INT8_C( 62), INT8_C( 120), INT8_C( 84),
475
+ INT8_C( -48), INT8_C( -42), INT8_C( -15), INT8_C( -64),
476
+ INT8_C( -90), INT8_C( 111), INT8_C(-123), INT8_C( 61),
477
+ INT8_C( 22), INT8_C( -48), INT8_C(-107), INT8_C( 122),
478
+ INT8_C( 27), INT8_C( 119), INT8_C( -63), INT8_C( -61),
479
+ INT8_C( -69), INT8_C( 46), INT8_C( 34), INT8_C(-101)),
480
+ simde_mm512_set_epi8(INT8_C( 44), INT8_C( 101), INT8_C( -48), INT8_C( -49),
481
+ INT8_C( 63), INT8_C( 93), INT8_C( -48), INT8_C(-122),
482
+ INT8_C( -67), INT8_C( 27), INT8_C( 1), INT8_C( -55),
483
+ INT8_C( -79), INT8_C( -44), INT8_C(-115), INT8_C(-126),
484
+ INT8_C( -42), INT8_C( 29), INT8_C( 66), INT8_C( -83),
485
+ INT8_C( 108), INT8_C( -1), INT8_C( -47), INT8_C(-104),
486
+ INT8_C( 62), INT8_C( 29), INT8_C( 4), INT8_C( -47),
487
+ INT8_C( 98), INT8_C(-109), INT8_C( -23), INT8_C( 69),
488
+ INT8_C(-110), INT8_C( -47), INT8_C( 48), INT8_C(-101),
489
+ INT8_C( -80), INT8_C(-110), INT8_C( -55), INT8_C( 25),
490
+ INT8_C( 39), INT8_C( 58), INT8_C( 4), INT8_C(-108),
491
+ INT8_C( -23), INT8_C( -79), INT8_C( 124), INT8_C( 36),
492
+ INT8_C( 113), INT8_C( 110), INT8_C( 105), INT8_C( 113),
493
+ INT8_C( -54), INT8_C( -63), INT8_C( 50), INT8_C( -99),
494
+ INT8_C( -8), INT8_C( -76), INT8_C( 102), INT8_C( 51),
495
+ INT8_C( 58), INT8_C( 16), INT8_C( -94), INT8_C( -93)),
496
+ simde_mm512_set_epi8(INT8_C( 75), INT8_C( 20), INT8_C( 67), INT8_C( -31),
497
+ INT8_C( 83), INT8_C( 60), INT8_C(-128), INT8_C(-128),
498
+ INT8_C( -13), INT8_C( 109), INT8_C( 62), INT8_C( 26),
499
+ INT8_C( 44), INT8_C( -26), INT8_C( -26), INT8_C( -92),
500
+ INT8_C( -32), INT8_C( -25), INT8_C( 42), INT8_C( -29),
501
+ INT8_C( 127), INT8_C( -71), INT8_C( -40), INT8_C(-116),
502
+ INT8_C( 127), INT8_C( 13), INT8_C( -6), INT8_C( -43),
503
+ INT8_C( 101), INT8_C(-126), INT8_C( -69), INT8_C( 40),
504
+ INT8_C( -84), INT8_C( -85), INT8_C( -59), INT8_C(-126),
505
+ INT8_C( -19), INT8_C(-114), INT8_C( -76), INT8_C( 14),
506
+ INT8_C( 10), INT8_C( 120), INT8_C( 124), INT8_C( -24),
507
+ INT8_C( -71), INT8_C(-121), INT8_C( 109), INT8_C( -28),
508
+ INT8_C( 23), INT8_C( 127), INT8_C( -18), INT8_C( 127),
509
+ INT8_C( -32), INT8_C(-111), INT8_C( -57), INT8_C( 23),
510
+ INT8_C( 19), INT8_C( 43), INT8_C( 39), INT8_C( -10),
511
+ INT8_C( -11), INT8_C( 62), INT8_C( -60), INT8_C(-128)) },
512
+ { simde_mm512_set_epi8(INT8_C( 64), INT8_C( 55), INT8_C( 97), INT8_C( -61),
513
+ INT8_C( 89), INT8_C( 120), INT8_C( 49), INT8_C( 124),
514
+ INT8_C( 16), INT8_C( 113), INT8_C( 48), INT8_C( 70),
515
+ INT8_C( 60), INT8_C( -11), INT8_C( 98), INT8_C( 70),
516
+ INT8_C( 111), INT8_C( 55), INT8_C( -50), INT8_C( -21),
517
+ INT8_C(-102), INT8_C( 3), INT8_C( 75), INT8_C( -9),
518
+ INT8_C( 34), INT8_C( 96), INT8_C(-104), INT8_C( 37),
519
+ INT8_C( 74), INT8_C( 22), INT8_C( 13), INT8_C( 82),
520
+ INT8_C(-108), INT8_C(-112), INT8_C( 49), INT8_C( -58),
521
+ INT8_C( 116), INT8_C( 58), INT8_C( -29), INT8_C( 60),
522
+ INT8_C( 125), INT8_C( 105), INT8_C( -20), INT8_C( -4),
523
+ INT8_C(-106), INT8_C(-111), INT8_C( -29), INT8_C( -32),
524
+ INT8_C( -43), INT8_C(-103), INT8_C( 84), INT8_C( 40),
525
+ INT8_C( 63), INT8_C( 88), INT8_C( -74), INT8_C( -49),
526
+ INT8_C( 10), INT8_C( 50), INT8_C( 38), INT8_C( 108),
527
+ INT8_C( 42), INT8_C( -40), INT8_C( -81), INT8_C( 31)),
528
+ simde_mm512_set_epi8(INT8_C(-107), INT8_C( 105), INT8_C( -15), INT8_C( -49),
529
+ INT8_C( 74), INT8_C( -31), INT8_C( -49), INT8_C( 112),
530
+ INT8_C(-103), INT8_C( 69), INT8_C( -55), INT8_C(-115),
531
+ INT8_C( -48), INT8_C( 96), INT8_C( -8), INT8_C( -35),
532
+ INT8_C( -24), INT8_C( 101), INT8_C( 70), INT8_C( -69),
533
+ INT8_C(-105), INT8_C( -28), INT8_C( -38), INT8_C( -85),
534
+ INT8_C( -94), INT8_C(-122), INT8_C( -80), INT8_C( 95),
535
+ INT8_C( -1), INT8_C( 87), INT8_C( 21), INT8_C( 6),
536
+ INT8_C(-103), INT8_C( 38), INT8_C( 15), INT8_C( -98),
537
+ INT8_C( -27), INT8_C( 57), INT8_C( -76), INT8_C(-112),
538
+ INT8_C( 77), INT8_C( -3), INT8_C( 57), INT8_C( 3),
539
+ INT8_C( 123), INT8_C( -18), INT8_C( -90), INT8_C(-119),
540
+ INT8_C( 112), INT8_C( 61), INT8_C( -48), INT8_C( -16),
541
+ INT8_C( -36), INT8_C(-125), INT8_C( -10), INT8_C( 77),
542
+ INT8_C( 106), INT8_C( 72), INT8_C( 62), INT8_C( -24),
543
+ INT8_C( -65), INT8_C( 102), INT8_C(-122), INT8_C( 19)),
544
+ simde_mm512_set_epi8(INT8_C( -43), INT8_C( 127), INT8_C( 82), INT8_C(-110),
545
+ INT8_C( 127), INT8_C( 89), INT8_C( 0), INT8_C( 127),
546
+ INT8_C( -87), INT8_C( 127), INT8_C( -7), INT8_C( -45),
547
+ INT8_C( 12), INT8_C( 85), INT8_C( 90), INT8_C( 35),
548
+ INT8_C( 87), INT8_C( 127), INT8_C( 20), INT8_C( -90),
549
+ INT8_C(-128), INT8_C( -25), INT8_C( 37), INT8_C( -94),
550
+ INT8_C( -60), INT8_C( -26), INT8_C(-128), INT8_C( 127),
551
+ INT8_C( 73), INT8_C( 109), INT8_C( 34), INT8_C( 88),
552
+ INT8_C(-128), INT8_C( -74), INT8_C( 64), INT8_C(-128),
553
+ INT8_C( 89), INT8_C( 115), INT8_C(-105), INT8_C( -52),
554
+ INT8_C( 127), INT8_C( 102), INT8_C( 37), INT8_C( -1),
555
+ INT8_C( 17), INT8_C(-128), INT8_C(-119), INT8_C(-128),
556
+ INT8_C( 69), INT8_C( -42), INT8_C( 36), INT8_C( 24),
557
+ INT8_C( 27), INT8_C( -37), INT8_C( -84), INT8_C( 28),
558
+ INT8_C( 116), INT8_C( 122), INT8_C( 100), INT8_C( 84),
559
+ INT8_C( -23), INT8_C( 62), INT8_C(-128), INT8_C( 50)) },
560
+ { simde_mm512_set_epi8(INT8_C( 90), INT8_C(-125), INT8_C( -5), INT8_C( -69),
561
+ INT8_C( 103), INT8_C( -40), INT8_C( 35), INT8_C( -38),
562
+ INT8_C( 107), INT8_C(-117), INT8_C( -80), INT8_C( 123),
563
+ INT8_C( 57), INT8_C( -70), INT8_C( -34), INT8_C( 38),
564
+ INT8_C( 114), INT8_C(-126), INT8_C( 20), INT8_C( -93),
565
+ INT8_C( 17), INT8_C(-128), INT8_C( 2), INT8_C( 15),
566
+ INT8_C(-122), INT8_C( -10), INT8_C( -2), INT8_C( 84),
567
+ INT8_C( 93), INT8_C( 89), INT8_C( 57), INT8_C( -50),
568
+ INT8_C( 4), INT8_C( -63), INT8_C( 118), INT8_C( 19),
569
+ INT8_C( -68), INT8_C( -29), INT8_C( -16), INT8_C( -30),
570
+ INT8_C( -76), INT8_C(-110), INT8_C( 121), INT8_C( 87),
571
+ INT8_C(-117), INT8_C(-113), INT8_C( -94), INT8_C( 61),
572
+ INT8_C( -29), INT8_C( 43), INT8_C( -69), INT8_C( 123),
573
+ INT8_C( 79), INT8_C(-101), INT8_C( 40), INT8_C( 64),
574
+ INT8_C( 34), INT8_C(-102), INT8_C( 77), INT8_C( 114),
575
+ INT8_C( -49), INT8_C( -31), INT8_C( 103), INT8_C( 81)),
576
+ simde_mm512_set_epi8(INT8_C( 34), INT8_C(-125), INT8_C( -96), INT8_C(-111),
577
+ INT8_C( 23), INT8_C( 58), INT8_C( -5), INT8_C( -22),
578
+ INT8_C( -80), INT8_C( -90), INT8_C( -33), INT8_C( -65),
579
+ INT8_C( -34), INT8_C( 100), INT8_C( -10), INT8_C( -57),
580
+ INT8_C( 37), INT8_C( -9), INT8_C( -29), INT8_C(-114),
581
+ INT8_C(-102), INT8_C( 53), INT8_C( 107), INT8_C( 124),
582
+ INT8_C( -12), INT8_C( -57), INT8_C( -57), INT8_C( -37),
583
+ INT8_C( 50), INT8_C( 22), INT8_C( -71), INT8_C( -2),
584
+ INT8_C( -31), INT8_C( 60), INT8_C( 62), INT8_C( 19),
585
+ INT8_C( 117), INT8_C( 1), INT8_C( -26), INT8_C(-100),
586
+ INT8_C( 29), INT8_C( -6), INT8_C( 7), INT8_C(-100),
587
+ INT8_C(-120), INT8_C( -33), INT8_C( 17), INT8_C(-103),
588
+ INT8_C( 10), INT8_C( -45), INT8_C( -76), INT8_C( 10),
589
+ INT8_C( -10), INT8_C( 15), INT8_C( 36), INT8_C( 2),
590
+ INT8_C( 74), INT8_C( 44), INT8_C( -16), INT8_C( 122),
591
+ INT8_C( -4), INT8_C( 15), INT8_C( -27), INT8_C( -15)),
592
+ simde_mm512_set_epi8(INT8_C( 124), INT8_C(-128), INT8_C(-101), INT8_C(-128),
593
+ INT8_C( 126), INT8_C( 18), INT8_C( 30), INT8_C( -60),
594
+ INT8_C( 27), INT8_C(-128), INT8_C(-113), INT8_C( 58),
595
+ INT8_C( 23), INT8_C( 30), INT8_C( -44), INT8_C( -19),
596
+ INT8_C( 127), INT8_C(-128), INT8_C( -9), INT8_C(-128),
597
+ INT8_C( -85), INT8_C( -75), INT8_C( 109), INT8_C( 127),
598
+ INT8_C(-128), INT8_C( -67), INT8_C( -59), INT8_C( 47),
599
+ INT8_C( 127), INT8_C( 111), INT8_C( -14), INT8_C( -52),
600
+ INT8_C( -27), INT8_C( -3), INT8_C( 127), INT8_C( 38),
601
+ INT8_C( 49), INT8_C( -28), INT8_C( -42), INT8_C(-128),
602
+ INT8_C( -47), INT8_C(-116), INT8_C( 127), INT8_C( -13),
603
+ INT8_C(-128), INT8_C(-128), INT8_C( -77), INT8_C( -42),
604
+ INT8_C( -19), INT8_C( -2), INT8_C(-128), INT8_C( 127),
605
+ INT8_C( 69), INT8_C( -86), INT8_C( 76), INT8_C( 66),
606
+ INT8_C( 108), INT8_C( -58), INT8_C( 61), INT8_C( 127),
607
+ INT8_C( -53), INT8_C( -16), INT8_C( 76), INT8_C( 66)) },
608
+ { simde_mm512_set_epi8(INT8_C( -52), INT8_C(-111), INT8_C( 67), INT8_C( -14),
609
+ INT8_C( 11), INT8_C( -63), INT8_C( -35), INT8_C( -86),
610
+ INT8_C(-114), INT8_C( -97), INT8_C( 124), INT8_C( -30),
611
+ INT8_C( -1), INT8_C( 55), INT8_C( 84), INT8_C( 12),
612
+ INT8_C( 86), INT8_C( -43), INT8_C( 81), INT8_C( -30),
613
+ INT8_C( -25), INT8_C( 74), INT8_C(-105), INT8_C( 11),
614
+ INT8_C( -97), INT8_C( 0), INT8_C( 98), INT8_C( 106),
615
+ INT8_C( -83), INT8_C( -89), INT8_C( 16), INT8_C( -42),
616
+ INT8_C( 81), INT8_C( 35), INT8_C(-127), INT8_C(-127),
617
+ INT8_C( -38), INT8_C( 51), INT8_C( -75), INT8_C( 24),
618
+ INT8_C( 86), INT8_C( -37), INT8_C( 97), INT8_C( -82),
619
+ INT8_C( 109), INT8_C( 21), INT8_C( 127), INT8_C( 16),
620
+ INT8_C( 101), INT8_C( -69), INT8_C( 95), INT8_C(-121),
621
+ INT8_C( -66), INT8_C( 39), INT8_C( 104), INT8_C(-109),
622
+ INT8_C( -1), INT8_C( 35), INT8_C( 68), INT8_C( 93),
623
+ INT8_C( -25), INT8_C( 120), INT8_C( -19), INT8_C( 84)),
624
+ simde_mm512_set_epi8(INT8_C(-111), INT8_C(-108), INT8_C( 102), INT8_C( -40),
625
+ INT8_C(-124), INT8_C( -61), INT8_C( 80), INT8_C( 102),
626
+ INT8_C( -35), INT8_C( 3), INT8_C( -76), INT8_C( 98),
627
+ INT8_C( 9), INT8_C( -39), INT8_C( -24), INT8_C( -92),
628
+ INT8_C( -73), INT8_C( -19), INT8_C(-103), INT8_C( -41),
629
+ INT8_C( -32), INT8_C( -8), INT8_C( 126), INT8_C( 75),
630
+ INT8_C( -64), INT8_C( -26), INT8_C( -15), INT8_C( -35),
631
+ INT8_C( -20), INT8_C( -6), INT8_C( 86), INT8_C( -56),
632
+ INT8_C( -56), INT8_C( 67), INT8_C( 59), INT8_C( -73),
633
+ INT8_C( 35), INT8_C( -67), INT8_C( 92), INT8_C( 34),
634
+ INT8_C( 16), INT8_C( -12), INT8_C( 44), INT8_C( -59),
635
+ INT8_C( -82), INT8_C(-102), INT8_C( 93), INT8_C( -43),
636
+ INT8_C( 79), INT8_C( -19), INT8_C( -45), INT8_C( -87),
637
+ INT8_C( -50), INT8_C( -23), INT8_C( -17), INT8_C( 110),
638
+ INT8_C( 102), INT8_C( -59), INT8_C(-117), INT8_C( 84),
639
+ INT8_C( -75), INT8_C( 87), INT8_C( 69), INT8_C( -6)),
640
+ simde_mm512_set_epi8(INT8_C(-128), INT8_C(-128), INT8_C( 127), INT8_C( -54),
641
+ INT8_C(-113), INT8_C(-124), INT8_C( 45), INT8_C( 16),
642
+ INT8_C(-128), INT8_C( -94), INT8_C( 48), INT8_C( 68),
643
+ INT8_C( 8), INT8_C( 16), INT8_C( 60), INT8_C( -80),
644
+ INT8_C( 13), INT8_C( -62), INT8_C( -22), INT8_C( -71),
645
+ INT8_C( -57), INT8_C( 66), INT8_C( 21), INT8_C( 86),
646
+ INT8_C(-128), INT8_C( -26), INT8_C( 83), INT8_C( 71),
647
+ INT8_C(-103), INT8_C( -95), INT8_C( 102), INT8_C( -98),
648
+ INT8_C( 25), INT8_C( 102), INT8_C( -68), INT8_C(-128),
649
+ INT8_C( -3), INT8_C( -16), INT8_C( 17), INT8_C( 58),
650
+ INT8_C( 102), INT8_C( -49), INT8_C( 127), INT8_C(-128),
651
+ INT8_C( 27), INT8_C( -81), INT8_C( 127), INT8_C( -27),
652
+ INT8_C( 127), INT8_C( -88), INT8_C( 50), INT8_C(-128),
653
+ INT8_C(-116), INT8_C( 16), INT8_C( 87), INT8_C( 1),
654
+ INT8_C( 101), INT8_C( -24), INT8_C( -49), INT8_C( 127),
655
+ INT8_C(-100), INT8_C( 127), INT8_C( 50), INT8_C( 78)) }
656
+ };
657
+
658
+ for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
659
+ simde__m512i r = simde_mm512_adds_epi8(test_vec[i].a, test_vec[i].b);
660
+ simde_assert_m512i_i8(r, ==, test_vec[i].r);
661
+ }
662
+
663
+ return MUNIT_OK;
664
+ }
665
+
666
+ static MunitResult
667
+ test_simde_mm512_adds_epi16(const MunitParameter params[], void* data) {
668
+ (void) params;
669
+ (void) data;
670
+
671
+ const struct {
672
+ simde__m512i a;
673
+ simde__m512i b;
674
+ simde__m512i r;
675
+ } test_vec[8] = {
676
+ { simde_mm512_set_epi16(INT16_C( 5952), INT16_C(-21138), INT16_C( 23605), INT16_C( -3799),
677
+ INT16_C( 1987), INT16_C( 29254), INT16_C( -4184), INT16_C( 13346),
678
+ INT16_C( 26203), INT16_C(-24373), INT16_C( 15487), INT16_C( 15569),
679
+ INT16_C( 13821), INT16_C( -3315), INT16_C( 30667), INT16_C( 9811),
680
+ INT16_C( 22769), INT16_C( 21964), INT16_C( -315), INT16_C(-15723),
681
+ INT16_C( -9658), INT16_C(-27088), INT16_C( 18289), INT16_C( 13213),
682
+ INT16_C(-12712), INT16_C( 23293), INT16_C( 12497), INT16_C( 16576),
683
+ INT16_C(-19358), INT16_C(-11263), INT16_C( -3745), INT16_C( 7925)),
684
+ simde_mm512_set_epi16(INT16_C(-22600), INT16_C( 9825), INT16_C( 27347), INT16_C( -4649),
685
+ INT16_C( 4812), INT16_C( 27489), INT16_C( 14729), INT16_C(-20872),
686
+ INT16_C(-24487), INT16_C( 23053), INT16_C( 28966), INT16_C(-23890),
687
+ INT16_C( -9737), INT16_C(-24021), INT16_C( 12009), INT16_C(-16892),
688
+ INT16_C(-11018), INT16_C( -7664), INT16_C( 22598), INT16_C( 9112),
689
+ INT16_C( -468), INT16_C(-16246), INT16_C( 11633), INT16_C( 3402),
690
+ INT16_C( 12940), INT16_C(-18453), INT16_C(-10463), INT16_C(-24372),
691
+ INT16_C( 9722), INT16_C( 4912), INT16_C( 14086), INT16_C( -2976)),
692
+ simde_mm512_set_epi16(INT16_C(-16648), INT16_C(-11313), INT16_C( 32767), INT16_C( -8448),
693
+ INT16_C( 6799), INT16_C( 32767), INT16_C( 10545), INT16_C( -7526),
694
+ INT16_C( 1716), INT16_C( -1320), INT16_C( 32767), INT16_C( -8321),
695
+ INT16_C( 4084), INT16_C(-27336), INT16_C( 32767), INT16_C( -7081),
696
+ INT16_C( 11751), INT16_C( 14300), INT16_C( 22283), INT16_C( -6611),
697
+ INT16_C(-10126), INT16_C(-32768), INT16_C( 29922), INT16_C( 16615),
698
+ INT16_C( 228), INT16_C( 4840), INT16_C( 2034), INT16_C( -7796),
699
+ INT16_C( -9636), INT16_C( -6351), INT16_C( 10341), INT16_C( 4949)) },
700
+ { simde_mm512_set_epi16(INT16_C(-21870), INT16_C( -1966), INT16_C(-26101), INT16_C( 8905),
701
+ INT16_C(-13069), INT16_C( 13555), INT16_C(-23554), INT16_C(-12947),
702
+ INT16_C( 31779), INT16_C( 21013), INT16_C( 32688), INT16_C( 12512),
703
+ INT16_C(-26721), INT16_C( 7598), INT16_C( 21566), INT16_C(-11203),
704
+ INT16_C( 27021), INT16_C( -8539), INT16_C( -532), INT16_C(-17200),
705
+ INT16_C(-18609), INT16_C(-30604), INT16_C( 6829), INT16_C(-13538),
706
+ INT16_C( 21529), INT16_C( 29340), INT16_C( 23176), INT16_C( 10860),
707
+ INT16_C( 31408), INT16_C( 3656), INT16_C(-30572), INT16_C( -4393)),
708
+ simde_mm512_set_epi16(INT16_C( 29137), INT16_C( 29112), INT16_C(-21893), INT16_C( 14830),
709
+ INT16_C( 28350), INT16_C( 21222), INT16_C( 26922), INT16_C( 26197),
710
+ INT16_C(-25881), INT16_C( 28163), INT16_C(-19268), INT16_C( 10158),
711
+ INT16_C(-29245), INT16_C( 16103), INT16_C(-23323), INT16_C( 12478),
712
+ INT16_C( -6515), INT16_C( 24007), INT16_C(-28366), INT16_C(-32677),
713
+ INT16_C(-27350), INT16_C(-26916), INT16_C(-11979), INT16_C( 13820),
714
+ INT16_C(-22393), INT16_C(-20903), INT16_C( -9892), INT16_C(-22447),
715
+ INT16_C(-14286), INT16_C( 3532), INT16_C( 19664), INT16_C(-26842)),
716
+ simde_mm512_set_epi16(INT16_C( 7267), INT16_C( 27146), INT16_C(-32768), INT16_C( 23735),
717
+ INT16_C( 15281), INT16_C( 32767), INT16_C( 3368), INT16_C( 13250),
718
+ INT16_C( 5898), INT16_C( 32767), INT16_C( 13420), INT16_C( 22670),
719
+ INT16_C(-32768), INT16_C( 23701), INT16_C( -1757), INT16_C( 1275),
720
+ INT16_C( 20506), INT16_C( 15468), INT16_C(-28898), INT16_C(-32768),
721
+ INT16_C(-32768), INT16_C(-32768), INT16_C( -5150), INT16_C( 282),
722
+ INT16_C( -864), INT16_C( 8437), INT16_C( 13284), INT16_C(-11587),
723
+ INT16_C( 17122), INT16_C( 7188), INT16_C(-10908), INT16_C(-31235)) },
724
+ { simde_mm512_set_epi16(INT16_C(-22689), INT16_C( 25207), INT16_C( -9300), INT16_C( 28977),
725
+ INT16_C( 2270), INT16_C(-32394), INT16_C( 26182), INT16_C( 23367),
726
+ INT16_C( 31661), INT16_C( 9636), INT16_C(-18580), INT16_C(-28875),
727
+ INT16_C(-25943), INT16_C( 14067), INT16_C( 10599), INT16_C( 30831),
728
+ INT16_C(-23557), INT16_C( 11377), INT16_C( -4608), INT16_C( 14955),
729
+ INT16_C( 11781), INT16_C(-12602), INT16_C( -3223), INT16_C( 11440),
730
+ INT16_C( -2896), INT16_C(-24304), INT16_C( 29156), INT16_C( -4347),
731
+ INT16_C( -2421), INT16_C( 31033), INT16_C( -3132), INT16_C(-19324)),
732
+ simde_mm512_set_epi16(INT16_C( -2724), INT16_C( 4704), INT16_C( 23772), INT16_C(-20368),
733
+ INT16_C(-30374), INT16_C( 15838), INT16_C( 19402), INT16_C( 16976),
734
+ INT16_C(-28476), INT16_C( -2715), INT16_C(-27679), INT16_C( -8608),
735
+ INT16_C(-20120), INT16_C( 29206), INT16_C( -1643), INT16_C(-29856),
736
+ INT16_C( 18656), INT16_C( -9660), INT16_C( -4660), INT16_C(-30272),
737
+ INT16_C( 610), INT16_C( -3787), INT16_C( 22038), INT16_C(-29446),
738
+ INT16_C(-26504), INT16_C(-28984), INT16_C(-21830), INT16_C(-27507),
739
+ INT16_C( 24148), INT16_C(-12945), INT16_C( 24529), INT16_C( 7913)),
740
+ simde_mm512_set_epi16(INT16_C(-25413), INT16_C( 29911), INT16_C( 14472), INT16_C( 8609),
741
+ INT16_C(-28104), INT16_C(-16556), INT16_C( 32767), INT16_C( 32767),
742
+ INT16_C( 3185), INT16_C( 6921), INT16_C(-32768), INT16_C(-32768),
743
+ INT16_C(-32768), INT16_C( 32767), INT16_C( 8956), INT16_C( 975),
744
+ INT16_C( -4901), INT16_C( 1717), INT16_C( -9268), INT16_C(-15317),
745
+ INT16_C( 12391), INT16_C(-16389), INT16_C( 18815), INT16_C(-18006),
746
+ INT16_C(-29400), INT16_C(-32768), INT16_C( 7326), INT16_C(-31854),
747
+ INT16_C( 21727), INT16_C( 18088), INT16_C( 21397), INT16_C(-11411)) },
748
+ { simde_mm512_set_epi16(INT16_C(-18069), INT16_C( 21685), INT16_C( -5808), INT16_C( 24672),
749
+ INT16_C( -8190), INT16_C( -2830), INT16_C(-23214), INT16_C( 1083),
750
+ INT16_C( 6699), INT16_C( 871), INT16_C(-14072), INT16_C( -2337),
751
+ INT16_C( 13356), INT16_C( 7260), INT16_C(-23788), INT16_C(-19723),
752
+ INT16_C( 13480), INT16_C(-15429), INT16_C(-20153), INT16_C( 18680),
753
+ INT16_C(-26180), INT16_C( 27923), INT16_C(-14099), INT16_C( 25829),
754
+ INT16_C(-27481), INT16_C( 21639), INT16_C( 16654), INT16_C( 19972),
755
+ INT16_C( 15776), INT16_C( 23126), INT16_C( 30799), INT16_C(-14043)),
756
+ simde_mm512_set_epi16(INT16_C( 16111), INT16_C(-26103), INT16_C( -8800), INT16_C(-24747),
757
+ INT16_C( 27941), INT16_C( 603), INT16_C( -8112), INT16_C(-28325),
758
+ INT16_C( -6110), INT16_C(-15530), INT16_C( -938), INT16_C(-26515),
759
+ INT16_C( -2492), INT16_C( 16124), INT16_C(-27181), INT16_C( -3573),
760
+ INT16_C( 11652), INT16_C( 11646), INT16_C( 6964), INT16_C( 27675),
761
+ INT16_C( 13103), INT16_C( -2742), INT16_C( 27906), INT16_C( -1077),
762
+ INT16_C(-30636), INT16_C(-23050), INT16_C( 8363), INT16_C( 31350),
763
+ INT16_C( -4750), INT16_C( -220), INT16_C( -8954), INT16_C( 15617)),
764
+ simde_mm512_set_epi16(INT16_C( -1958), INT16_C( -4418), INT16_C(-14608), INT16_C( -75),
765
+ INT16_C( 19751), INT16_C( -2227), INT16_C(-31326), INT16_C(-27242),
766
+ INT16_C( 589), INT16_C(-14659), INT16_C(-15010), INT16_C(-28852),
767
+ INT16_C( 10864), INT16_C( 23384), INT16_C(-32768), INT16_C(-23296),
768
+ INT16_C( 25132), INT16_C( -3783), INT16_C(-13189), INT16_C( 32767),
769
+ INT16_C(-13077), INT16_C( 25181), INT16_C( 13807), INT16_C( 24752),
770
+ INT16_C(-32768), INT16_C( -1411), INT16_C( 25017), INT16_C( 32767),
771
+ INT16_C( 11026), INT16_C( 22906), INT16_C( 21845), INT16_C( 1574)) },
772
+ { simde_mm512_set_epi16(INT16_C( 25180), INT16_C(-32332), INT16_C(-18604), INT16_C(-25763),
773
+ INT16_C( 28237), INT16_C(-22027), INT16_C( 18301), INT16_C( 27599),
774
+ INT16_C( 11815), INT16_C(-14839), INT16_C(-13552), INT16_C( -6300),
775
+ INT16_C(-30211), INT16_C(-25552), INT16_C( 7375), INT16_C( 5267),
776
+ INT16_C(-14761), INT16_C(-28375), INT16_C(-32756), INT16_C( 13128),
777
+ INT16_C( 17683), INT16_C( -4430), INT16_C( -1805), INT16_C(-17763),
778
+ INT16_C( 206), INT16_C( 15851), INT16_C( 1078), INT16_C( 27402),
779
+ INT16_C(-15177), INT16_C( 5068), INT16_C(-15079), INT16_C(-13584)),
780
+ simde_mm512_set_epi16(INT16_C( -3533), INT16_C( -3885), INT16_C( 789), INT16_C( -3755),
781
+ INT16_C( 3668), INT16_C( 19955), INT16_C(-22356), INT16_C( 8403),
782
+ INT16_C(-16920), INT16_C( 15195), INT16_C( -1853), INT16_C(-12121),
783
+ INT16_C( 5095), INT16_C( -9909), INT16_C( 574), INT16_C( 31911),
784
+ INT16_C( -1319), INT16_C( -2880), INT16_C(-31000), INT16_C(-30829),
785
+ INT16_C(-12917), INT16_C( 21541), INT16_C( 27413), INT16_C(-28040),
786
+ INT16_C(-19236), INT16_C(-24178), INT16_C(-29369), INT16_C( -3607),
787
+ INT16_C( -2666), INT16_C(-13470), INT16_C( 4416), INT16_C( 23850)),
788
+ simde_mm512_set_epi16(INT16_C( 21647), INT16_C(-32768), INT16_C(-17815), INT16_C(-29518),
789
+ INT16_C( 31905), INT16_C( -2072), INT16_C( -4055), INT16_C( 32767),
790
+ INT16_C( -5105), INT16_C( 356), INT16_C(-15405), INT16_C(-18421),
791
+ INT16_C(-25116), INT16_C(-32768), INT16_C( 7949), INT16_C( 32767),
792
+ INT16_C(-16080), INT16_C(-31255), INT16_C(-32768), INT16_C(-17701),
793
+ INT16_C( 4766), INT16_C( 17111), INT16_C( 25608), INT16_C(-32768),
794
+ INT16_C(-19030), INT16_C( -8327), INT16_C(-28291), INT16_C( 23795),
795
+ INT16_C(-17843), INT16_C( -8402), INT16_C(-10663), INT16_C( 10266)) },
796
+ { simde_mm512_set_epi16(INT16_C( 11424), INT16_C( 29699), INT16_C( 29618), INT16_C(-29898),
797
+ INT16_C(-23079), INT16_C( -6822), INT16_C( -7340), INT16_C(-12296),
798
+ INT16_C( 17833), INT16_C( -2043), INT16_C(-29766), INT16_C( 30776),
799
+ INT16_C(-18161), INT16_C(-32768), INT16_C(-31882), INT16_C( 3163),
800
+ INT16_C( 20808), INT16_C(-24577), INT16_C( 7685), INT16_C( 6279),
801
+ INT16_C(-27880), INT16_C( 27718), INT16_C(-18275), INT16_C( 24470),
802
+ INT16_C( 8834), INT16_C( 20594), INT16_C( 23052), INT16_C(-18860),
803
+ INT16_C( 7784), INT16_C(-16668), INT16_C(-30440), INT16_C( 6387)),
804
+ simde_mm512_set_epi16(INT16_C( 15054), INT16_C(-23448), INT16_C( 866), INT16_C(-23509),
805
+ INT16_C( -2), INT16_C( 6267), INT16_C(-15891), INT16_C(-24685),
806
+ INT16_C( 17511), INT16_C( 7218), INT16_C(-13659), INT16_C(-27162),
807
+ INT16_C( 10378), INT16_C(-16488), INT16_C(-11578), INT16_C(-27832),
808
+ INT16_C(-17566), INT16_C(-29377), INT16_C( -2221), INT16_C( 18656),
809
+ INT16_C( 7516), INT16_C(-30776), INT16_C(-19010), INT16_C( 26269),
810
+ INT16_C(-18451), INT16_C( 31467), INT16_C(-22066), INT16_C( 30155),
811
+ INT16_C( -3394), INT16_C( -6131), INT16_C( 13533), INT16_C( 21770)),
812
+ simde_mm512_set_epi16(INT16_C( 26478), INT16_C( 6251), INT16_C( 30484), INT16_C(-32768),
813
+ INT16_C(-23081), INT16_C( -555), INT16_C(-23231), INT16_C(-32768),
814
+ INT16_C( 32767), INT16_C( 5175), INT16_C(-32768), INT16_C( 3614),
815
+ INT16_C( -7783), INT16_C(-32768), INT16_C(-32768), INT16_C(-24669),
816
+ INT16_C( 3242), INT16_C(-32768), INT16_C( 5464), INT16_C( 24935),
817
+ INT16_C(-20364), INT16_C( -3058), INT16_C(-32768), INT16_C( 32767),
818
+ INT16_C( -9617), INT16_C( 32767), INT16_C( 986), INT16_C( 11295),
819
+ INT16_C( 4390), INT16_C(-22799), INT16_C(-16907), INT16_C( 28157)) },
820
+ { simde_mm512_set_epi16(INT16_C( 11108), INT16_C( 5360), INT16_C( 8246), INT16_C( 2034),
821
+ INT16_C( 1485), INT16_C( 28421), INT16_C( 17428), INT16_C(-13900),
822
+ INT16_C( 4889), INT16_C( 17148), INT16_C( 13806), INT16_C(-26968),
823
+ INT16_C( -7783), INT16_C( 11345), INT16_C( 17472), INT16_C( 26483),
824
+ INT16_C(-10340), INT16_C( -7816), INT16_C( 22407), INT16_C( 32028),
825
+ INT16_C( 18301), INT16_C(-30148), INT16_C( -4736), INT16_C(-10574),
826
+ INT16_C( 10686), INT16_C( -5463), INT16_C( 19858), INT16_C( -4320),
827
+ INT16_C(-28154), INT16_C( 8984), INT16_C( 32741), INT16_C( 29052)),
828
+ simde_mm512_set_epi16(INT16_C(-22772), INT16_C(-14596), INT16_C( -9458), INT16_C( 2054),
829
+ INT16_C(-24090), INT16_C( 1808), INT16_C( 9897), INT16_C( 20003),
830
+ INT16_C( 21444), INT16_C( 8548), INT16_C( -1773), INT16_C( 8905),
831
+ INT16_C( 14811), INT16_C( 5752), INT16_C(-17876), INT16_C( -7032),
832
+ INT16_C(-19669), INT16_C(-30631), INT16_C(-19220), INT16_C( 18906),
833
+ INT16_C( 15935), INT16_C( 2767), INT16_C(-30937), INT16_C( 13780),
834
+ INT16_C( 28270), INT16_C( 29263), INT16_C( 11106), INT16_C( 19546),
835
+ INT16_C( 16947), INT16_C(-29470), INT16_C( -1882), INT16_C(-19990)),
836
+ simde_mm512_set_epi16(INT16_C(-11664), INT16_C( -9236), INT16_C( -1212), INT16_C( 4088),
837
+ INT16_C(-22605), INT16_C( 30229), INT16_C( 27325), INT16_C( 6103),
838
+ INT16_C( 26333), INT16_C( 25696), INT16_C( 12033), INT16_C(-18063),
839
+ INT16_C( 7028), INT16_C( 17097), INT16_C( -404), INT16_C( 19451),
840
+ INT16_C(-30009), INT16_C(-32768), INT16_C( 3187), INT16_C( 32767),
841
+ INT16_C( 32767), INT16_C(-27381), INT16_C(-32768), INT16_C( 3206),
842
+ INT16_C( 32767), INT16_C( 23800), INT16_C( 30964), INT16_C( 15226),
843
+ INT16_C(-11207), INT16_C(-20486), INT16_C( 30859), INT16_C( 9062)) },
844
+ { simde_mm512_set_epi16(INT16_C(-30561), INT16_C( -5745), INT16_C( 32288), INT16_C( 11324),
845
+ INT16_C(-18220), INT16_C(-24874), INT16_C(-10154), INT16_C( 15837),
846
+ INT16_C( 22748), INT16_C( 6197), INT16_C( 23429), INT16_C(-23495),
847
+ INT16_C( -9809), INT16_C(-19367), INT16_C(-10631), INT16_C( -3845),
848
+ INT16_C( -5637), INT16_C(-22436), INT16_C( 6126), INT16_C( 16975),
849
+ INT16_C( 5830), INT16_C( 26963), INT16_C(-12238), INT16_C( 18631),
850
+ INT16_C(-23641), INT16_C(-17151), INT16_C(-13103), INT16_C( 5981),
851
+ INT16_C( 25710), INT16_C( 32081), INT16_C(-26911), INT16_C(-20494)),
852
+ simde_mm512_set_epi16(INT16_C( 30869), INT16_C(-18069), INT16_C( 6380), INT16_C(-23760),
853
+ INT16_C( -6614), INT16_C( 32014), INT16_C( -2152), INT16_C( 25253),
854
+ INT16_C( -8172), INT16_C(-22416), INT16_C( 2949), INT16_C( 5712),
855
+ INT16_C( 30074), INT16_C( 20521), INT16_C( 28471), INT16_C( -3867),
856
+ INT16_C( -3892), INT16_C( 21304), INT16_C( 2611), INT16_C( 5827),
857
+ INT16_C(-30009), INT16_C( 31479), INT16_C(-19390), INT16_C( 1047),
858
+ INT16_C(-19967), INT16_C( 11404), INT16_C( 25909), INT16_C( 6741),
859
+ INT16_C( 1933), INT16_C(-26599), INT16_C(-25469), INT16_C(-30351)),
860
+ simde_mm512_set_epi16(INT16_C( 308), INT16_C(-23814), INT16_C( 32767), INT16_C(-12436),
861
+ INT16_C(-24834), INT16_C( 7140), INT16_C(-12306), INT16_C( 32767),
862
+ INT16_C( 14576), INT16_C(-16219), INT16_C( 26378), INT16_C(-17783),
863
+ INT16_C( 20265), INT16_C( 1154), INT16_C( 17840), INT16_C( -7712),
864
+ INT16_C( -9529), INT16_C( -1132), INT16_C( 8737), INT16_C( 22802),
865
+ INT16_C(-24179), INT16_C( 32767), INT16_C(-31628), INT16_C( 19678),
866
+ INT16_C(-32768), INT16_C( -5747), INT16_C( 12806), INT16_C( 12722),
867
+ INT16_C( 27643), INT16_C( 5482), INT16_C(-32768), INT16_C(-32768)) }
868
+ };
869
+
870
+ for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
871
+ simde__m512i r = simde_mm512_adds_epi16(test_vec[i].a, test_vec[i].b);
872
+ simde_assert_m512i_i16(r, ==, test_vec[i].r);
873
+ }
874
+
875
+ return MUNIT_OK;
876
+ }
877
+
878
+ static MunitResult
879
+ test_simde_mm512_adds_epu8(const MunitParameter params[], void* data) {
880
+ (void) params;
881
+ (void) data;
882
+
883
+ const struct {
884
+ simde__m512i a;
885
+ simde__m512i b;
886
+ simde__m512i r;
887
+ } test_vec[8] = {
888
+ { simde_x_mm512_set_epu8(UINT8_C( 52), UINT8_C( 29), UINT8_C( 31), UINT8_C(206),
889
+ UINT8_C( 40), UINT8_C(160), UINT8_C(244), UINT8_C( 85),
890
+ UINT8_C( 47), UINT8_C(153), UINT8_C(218), UINT8_C(226),
891
+ UINT8_C( 99), UINT8_C(129), UINT8_C( 68), UINT8_C(218),
892
+ UINT8_C(122), UINT8_C( 56), UINT8_C(240), UINT8_C( 10),
893
+ UINT8_C(228), UINT8_C( 40), UINT8_C( 70), UINT8_C( 14),
894
+ UINT8_C( 67), UINT8_C( 37), UINT8_C( 87), UINT8_C(131),
895
+ UINT8_C( 29), UINT8_C(175), UINT8_C(167), UINT8_C(223),
896
+ UINT8_C(170), UINT8_C( 76), UINT8_C( 39), UINT8_C(254),
897
+ UINT8_C(222), UINT8_C(105), UINT8_C(193), UINT8_C(144),
898
+ UINT8_C(182), UINT8_C(106), UINT8_C(199), UINT8_C(161),
899
+ UINT8_C(173), UINT8_C( 65), UINT8_C( 54), UINT8_C(148),
900
+ UINT8_C(222), UINT8_C( 9), UINT8_C(237), UINT8_C( 76),
901
+ UINT8_C(149), UINT8_C(196), UINT8_C(194), UINT8_C(114),
902
+ UINT8_C(167), UINT8_C( 47), UINT8_C(174), UINT8_C(135),
903
+ UINT8_C(170), UINT8_C( 1), UINT8_C( 40), UINT8_C( 68)),
904
+ simde_x_mm512_set_epu8(UINT8_C(183), UINT8_C(129), UINT8_C(214), UINT8_C( 34),
905
+ UINT8_C(187), UINT8_C(142), UINT8_C(238), UINT8_C(248),
906
+ UINT8_C(175), UINT8_C(127), UINT8_C(231), UINT8_C(164),
907
+ UINT8_C( 16), UINT8_C(128), UINT8_C( 32), UINT8_C( 28),
908
+ UINT8_C(111), UINT8_C( 40), UINT8_C( 8), UINT8_C(160),
909
+ UINT8_C( 37), UINT8_C(193), UINT8_C(195), UINT8_C(135),
910
+ UINT8_C(102), UINT8_C( 87), UINT8_C(146), UINT8_C(206),
911
+ UINT8_C( 94), UINT8_C(109), UINT8_C(112), UINT8_C( 83),
912
+ UINT8_C( 63), UINT8_C(215), UINT8_C( 46), UINT8_C( 55),
913
+ UINT8_C( 78), UINT8_C(211), UINT8_C(175), UINT8_C(210),
914
+ UINT8_C( 60), UINT8_C(205), UINT8_C(118), UINT8_C(142),
915
+ UINT8_C(109), UINT8_C( 48), UINT8_C( 54), UINT8_C( 54),
916
+ UINT8_C( 99), UINT8_C(248), UINT8_C(120), UINT8_C(165),
917
+ UINT8_C(189), UINT8_C(132), UINT8_C(130), UINT8_C( 16),
918
+ UINT8_C( 6), UINT8_C(104), UINT8_C(176), UINT8_C(111),
919
+ UINT8_C(254), UINT8_C(193), UINT8_C(106), UINT8_C( 5)),
920
+ simde_x_mm512_set_epu8(UINT8_C(235), UINT8_C(158), UINT8_C(245), UINT8_C(240),
921
+ UINT8_C(227), UINT8_C(255), UINT8_C(255), UINT8_C(255),
922
+ UINT8_C(222), UINT8_C(255), UINT8_C(255), UINT8_C(255),
923
+ UINT8_C(115), UINT8_C(255), UINT8_C(100), UINT8_C(246),
924
+ UINT8_C(233), UINT8_C( 96), UINT8_C(248), UINT8_C(170),
925
+ UINT8_C(255), UINT8_C(233), UINT8_C(255), UINT8_C(149),
926
+ UINT8_C(169), UINT8_C(124), UINT8_C(233), UINT8_C(255),
927
+ UINT8_C(123), UINT8_C(255), UINT8_C(255), UINT8_C(255),
928
+ UINT8_C(233), UINT8_C(255), UINT8_C( 85), UINT8_C(255),
929
+ UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255),
930
+ UINT8_C(242), UINT8_C(255), UINT8_C(255), UINT8_C(255),
931
+ UINT8_C(255), UINT8_C(113), UINT8_C(108), UINT8_C(202),
932
+ UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(241),
933
+ UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(130),
934
+ UINT8_C(173), UINT8_C(151), UINT8_C(255), UINT8_C(246),
935
+ UINT8_C(255), UINT8_C(194), UINT8_C(146), UINT8_C( 73)) },
936
+ { simde_x_mm512_set_epu8(UINT8_C( 38), UINT8_C(254), UINT8_C(204), UINT8_C( 72),
937
+ UINT8_C(177), UINT8_C( 63), UINT8_C( 67), UINT8_C( 50),
938
+ UINT8_C( 71), UINT8_C(226), UINT8_C(146), UINT8_C( 4),
939
+ UINT8_C(134), UINT8_C( 91), UINT8_C(195), UINT8_C(148),
940
+ UINT8_C( 28), UINT8_C(158), UINT8_C(223), UINT8_C(181),
941
+ UINT8_C(218), UINT8_C(114), UINT8_C(200), UINT8_C(243),
942
+ UINT8_C(255), UINT8_C( 48), UINT8_C(233), UINT8_C( 82),
943
+ UINT8_C( 22), UINT8_C( 26), UINT8_C(128), UINT8_C(166),
944
+ UINT8_C( 79), UINT8_C(206), UINT8_C(109), UINT8_C(113),
945
+ UINT8_C( 86), UINT8_C(112), UINT8_C(215), UINT8_C(187),
946
+ UINT8_C(174), UINT8_C(250), UINT8_C(225), UINT8_C(206),
947
+ UINT8_C(242), UINT8_C(141), UINT8_C(197), UINT8_C(179),
948
+ UINT8_C( 88), UINT8_C(237), UINT8_C(191), UINT8_C(149),
949
+ UINT8_C(130), UINT8_C( 63), UINT8_C( 54), UINT8_C(129),
950
+ UINT8_C(126), UINT8_C( 18), UINT8_C( 43), UINT8_C(251),
951
+ UINT8_C(214), UINT8_C(155), UINT8_C( 61), UINT8_C(138)),
952
+ simde_x_mm512_set_epu8(UINT8_C(142), UINT8_C( 33), UINT8_C( 51), UINT8_C(244),
953
+ UINT8_C( 33), UINT8_C(106), UINT8_C( 75), UINT8_C(210),
954
+ UINT8_C(121), UINT8_C( 52), UINT8_C(233), UINT8_C(109),
955
+ UINT8_C(205), UINT8_C(175), UINT8_C(230), UINT8_C( 70),
956
+ UINT8_C( 28), UINT8_C(216), UINT8_C( 76), UINT8_C(137),
957
+ UINT8_C(129), UINT8_C( 5), UINT8_C(149), UINT8_C(132),
958
+ UINT8_C(159), UINT8_C( 55), UINT8_C( 47), UINT8_C(212),
959
+ UINT8_C(202), UINT8_C( 26), UINT8_C(247), UINT8_C( 19),
960
+ UINT8_C(109), UINT8_C( 59), UINT8_C( 49), UINT8_C(175),
961
+ UINT8_C( 15), UINT8_C(240), UINT8_C(155), UINT8_C( 20),
962
+ UINT8_C( 85), UINT8_C( 57), UINT8_C( 91), UINT8_C(177),
963
+ UINT8_C(179), UINT8_C(200), UINT8_C( 26), UINT8_C( 99),
964
+ UINT8_C( 9), UINT8_C(177), UINT8_C(151), UINT8_C(246),
965
+ UINT8_C(116), UINT8_C(162), UINT8_C(144), UINT8_C( 44),
966
+ UINT8_C(240), UINT8_C(226), UINT8_C(215), UINT8_C(206),
967
+ UINT8_C(114), UINT8_C(250), UINT8_C(170), UINT8_C(220)),
968
+ simde_x_mm512_set_epu8(UINT8_C(180), UINT8_C(255), UINT8_C(255), UINT8_C(255),
969
+ UINT8_C(210), UINT8_C(169), UINT8_C(142), UINT8_C(255),
970
+ UINT8_C(192), UINT8_C(255), UINT8_C(255), UINT8_C(113),
971
+ UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(218),
972
+ UINT8_C( 56), UINT8_C(255), UINT8_C(255), UINT8_C(255),
973
+ UINT8_C(255), UINT8_C(119), UINT8_C(255), UINT8_C(255),
974
+ UINT8_C(255), UINT8_C(103), UINT8_C(255), UINT8_C(255),
975
+ UINT8_C(224), UINT8_C( 52), UINT8_C(255), UINT8_C(185),
976
+ UINT8_C(188), UINT8_C(255), UINT8_C(158), UINT8_C(255),
977
+ UINT8_C(101), UINT8_C(255), UINT8_C(255), UINT8_C(207),
978
+ UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255),
979
+ UINT8_C(255), UINT8_C(255), UINT8_C(223), UINT8_C(255),
980
+ UINT8_C( 97), UINT8_C(255), UINT8_C(255), UINT8_C(255),
981
+ UINT8_C(246), UINT8_C(225), UINT8_C(198), UINT8_C(173),
982
+ UINT8_C(255), UINT8_C(244), UINT8_C(255), UINT8_C(255),
983
+ UINT8_C(255), UINT8_C(255), UINT8_C(231), UINT8_C(255)) },
984
+ { simde_x_mm512_set_epu8(UINT8_C(103), UINT8_C(253), UINT8_C( 31), UINT8_C(185),
985
+ UINT8_C(101), UINT8_C(201), UINT8_C( 20), UINT8_C( 77),
986
+ UINT8_C(110), UINT8_C(116), UINT8_C(226), UINT8_C( 37),
987
+ UINT8_C(155), UINT8_C( 44), UINT8_C(198), UINT8_C(182),
988
+ UINT8_C(132), UINT8_C( 61), UINT8_C(104), UINT8_C(181),
989
+ UINT8_C( 77), UINT8_C(161), UINT8_C(154), UINT8_C(195),
990
+ UINT8_C(148), UINT8_C(239), UINT8_C(178), UINT8_C(165),
991
+ UINT8_C( 6), UINT8_C(251), UINT8_C( 97), UINT8_C(247),
992
+ UINT8_C( 8), UINT8_C( 52), UINT8_C( 96), UINT8_C( 34),
993
+ UINT8_C(233), UINT8_C( 1), UINT8_C( 7), UINT8_C(254),
994
+ UINT8_C( 3), UINT8_C( 8), UINT8_C(168), UINT8_C(221),
995
+ UINT8_C(238), UINT8_C(144), UINT8_C( 18), UINT8_C(245),
996
+ UINT8_C(216), UINT8_C(239), UINT8_C(128), UINT8_C(174),
997
+ UINT8_C(108), UINT8_C(236), UINT8_C(204), UINT8_C(151),
998
+ UINT8_C( 83), UINT8_C(224), UINT8_C(253), UINT8_C( 94),
999
+ UINT8_C( 40), UINT8_C( 10), UINT8_C(195), UINT8_C( 72)),
1000
+ simde_x_mm512_set_epu8(UINT8_C(196), UINT8_C(220), UINT8_C(209), UINT8_C(146),
1001
+ UINT8_C( 66), UINT8_C(240), UINT8_C(160), UINT8_C( 58),
1002
+ UINT8_C(206), UINT8_C(157), UINT8_C(225), UINT8_C(238),
1003
+ UINT8_C(235), UINT8_C( 53), UINT8_C( 91), UINT8_C( 97),
1004
+ UINT8_C(175), UINT8_C( 22), UINT8_C( 33), UINT8_C(101),
1005
+ UINT8_C(189), UINT8_C(131), UINT8_C(219), UINT8_C( 30),
1006
+ UINT8_C( 36), UINT8_C( 11), UINT8_C(180), UINT8_C( 46),
1007
+ UINT8_C(126), UINT8_C(239), UINT8_C(135), UINT8_C( 44),
1008
+ UINT8_C(198), UINT8_C(149), UINT8_C(235), UINT8_C( 72),
1009
+ UINT8_C( 18), UINT8_C(214), UINT8_C( 92), UINT8_C(199),
1010
+ UINT8_C( 79), UINT8_C( 28), UINT8_C(156), UINT8_C( 37),
1011
+ UINT8_C(212), UINT8_C(167), UINT8_C( 62), UINT8_C(201),
1012
+ UINT8_C(139), UINT8_C(215), UINT8_C( 68), UINT8_C(117),
1013
+ UINT8_C( 83), UINT8_C(105), UINT8_C(232), UINT8_C(251),
1014
+ UINT8_C( 6), UINT8_C(165), UINT8_C(199), UINT8_C(183),
1015
+ UINT8_C(254), UINT8_C( 55), UINT8_C(167), UINT8_C(238)),
1016
+ simde_x_mm512_set_epu8(UINT8_C(255), UINT8_C(255), UINT8_C(240), UINT8_C(255),
1017
+ UINT8_C(167), UINT8_C(255), UINT8_C(180), UINT8_C(135),
1018
+ UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255),
1019
+ UINT8_C(255), UINT8_C( 97), UINT8_C(255), UINT8_C(255),
1020
+ UINT8_C(255), UINT8_C( 83), UINT8_C(137), UINT8_C(255),
1021
+ UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(225),
1022
+ UINT8_C(184), UINT8_C(250), UINT8_C(255), UINT8_C(211),
1023
+ UINT8_C(132), UINT8_C(255), UINT8_C(232), UINT8_C(255),
1024
+ UINT8_C(206), UINT8_C(201), UINT8_C(255), UINT8_C(106),
1025
+ UINT8_C(251), UINT8_C(215), UINT8_C( 99), UINT8_C(255),
1026
+ UINT8_C( 82), UINT8_C( 36), UINT8_C(255), UINT8_C(255),
1027
+ UINT8_C(255), UINT8_C(255), UINT8_C( 80), UINT8_C(255),
1028
+ UINT8_C(255), UINT8_C(255), UINT8_C(196), UINT8_C(255),
1029
+ UINT8_C(191), UINT8_C(255), UINT8_C(255), UINT8_C(255),
1030
+ UINT8_C( 89), UINT8_C(255), UINT8_C(255), UINT8_C(255),
1031
+ UINT8_C(255), UINT8_C( 65), UINT8_C(255), UINT8_C(255)) },
1032
+ { simde_x_mm512_set_epu8(UINT8_C( 7), UINT8_C( 99), UINT8_C(210), UINT8_C(110),
1033
+ UINT8_C(202), UINT8_C( 10), UINT8_C(247), UINT8_C( 68),
1034
+ UINT8_C(177), UINT8_C(186), UINT8_C(247), UINT8_C( 36),
1035
+ UINT8_C(212), UINT8_C(146), UINT8_C(251), UINT8_C( 66),
1036
+ UINT8_C( 0), UINT8_C( 8), UINT8_C(116), UINT8_C(102),
1037
+ UINT8_C(175), UINT8_C(223), UINT8_C( 15), UINT8_C(232),
1038
+ UINT8_C(127), UINT8_C( 63), UINT8_C( 84), UINT8_C(165),
1039
+ UINT8_C( 18), UINT8_C(250), UINT8_C( 71), UINT8_C( 18),
1040
+ UINT8_C(132), UINT8_C(155), UINT8_C(102), UINT8_C( 18),
1041
+ UINT8_C(177), UINT8_C(146), UINT8_C(169), UINT8_C(139),
1042
+ UINT8_C( 21), UINT8_C( 79), UINT8_C( 4), UINT8_C(129),
1043
+ UINT8_C(168), UINT8_C( 42), UINT8_C( 9), UINT8_C(184),
1044
+ UINT8_C( 46), UINT8_C( 53), UINT8_C(243), UINT8_C(140),
1045
+ UINT8_C(158), UINT8_C(112), UINT8_C( 35), UINT8_C( 49),
1046
+ UINT8_C(253), UINT8_C(233), UINT8_C( 33), UINT8_C(178),
1047
+ UINT8_C(117), UINT8_C(161), UINT8_C(168), UINT8_C( 39)),
1048
+ simde_x_mm512_set_epu8(UINT8_C( 75), UINT8_C(218), UINT8_C(162), UINT8_C( 30),
1049
+ UINT8_C(119), UINT8_C(231), UINT8_C(193), UINT8_C(230),
1050
+ UINT8_C(151), UINT8_C( 49), UINT8_C(234), UINT8_C( 78),
1051
+ UINT8_C( 76), UINT8_C( 37), UINT8_C(174), UINT8_C(105),
1052
+ UINT8_C(224), UINT8_C(210), UINT8_C(188), UINT8_C(142),
1053
+ UINT8_C(116), UINT8_C(129), UINT8_C( 93), UINT8_C(124),
1054
+ UINT8_C(248), UINT8_C(145), UINT8_C(230), UINT8_C( 41),
1055
+ UINT8_C( 66), UINT8_C(115), UINT8_C(180), UINT8_C( 47),
1056
+ UINT8_C( 55), UINT8_C(104), UINT8_C(123), UINT8_C(150),
1057
+ UINT8_C(165), UINT8_C( 22), UINT8_C( 0), UINT8_C(101),
1058
+ UINT8_C( 55), UINT8_C( 23), UINT8_C( 90), UINT8_C( 64),
1059
+ UINT8_C( 52), UINT8_C(254), UINT8_C(116), UINT8_C(243),
1060
+ UINT8_C( 4), UINT8_C( 84), UINT8_C( 82), UINT8_C(103),
1061
+ UINT8_C( 43), UINT8_C(237), UINT8_C( 7), UINT8_C( 76),
1062
+ UINT8_C( 88), UINT8_C(212), UINT8_C( 63), UINT8_C(146),
1063
+ UINT8_C(224), UINT8_C(223), UINT8_C(207), UINT8_C(220)),
1064
+ simde_x_mm512_set_epu8(UINT8_C( 82), UINT8_C(255), UINT8_C(255), UINT8_C(140),
1065
+ UINT8_C(255), UINT8_C(241), UINT8_C(255), UINT8_C(255),
1066
+ UINT8_C(255), UINT8_C(235), UINT8_C(255), UINT8_C(114),
1067
+ UINT8_C(255), UINT8_C(183), UINT8_C(255), UINT8_C(171),
1068
+ UINT8_C(224), UINT8_C(218), UINT8_C(255), UINT8_C(244),
1069
+ UINT8_C(255), UINT8_C(255), UINT8_C(108), UINT8_C(255),
1070
+ UINT8_C(255), UINT8_C(208), UINT8_C(255), UINT8_C(206),
1071
+ UINT8_C( 84), UINT8_C(255), UINT8_C(251), UINT8_C( 65),
1072
+ UINT8_C(187), UINT8_C(255), UINT8_C(225), UINT8_C(168),
1073
+ UINT8_C(255), UINT8_C(168), UINT8_C(169), UINT8_C(240),
1074
+ UINT8_C( 76), UINT8_C(102), UINT8_C( 94), UINT8_C(193),
1075
+ UINT8_C(220), UINT8_C(255), UINT8_C(125), UINT8_C(255),
1076
+ UINT8_C( 50), UINT8_C(137), UINT8_C(255), UINT8_C(243),
1077
+ UINT8_C(201), UINT8_C(255), UINT8_C( 42), UINT8_C(125),
1078
+ UINT8_C(255), UINT8_C(255), UINT8_C( 96), UINT8_C(255),
1079
+ UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255)) },
1080
+ { simde_x_mm512_set_epu8(UINT8_C(233), UINT8_C(112), UINT8_C( 62), UINT8_C( 65),
1081
+ UINT8_C( 37), UINT8_C(247), UINT8_C(105), UINT8_C( 54),
1082
+ UINT8_C(214), UINT8_C(255), UINT8_C(145), UINT8_C( 18),
1083
+ UINT8_C(160), UINT8_C( 92), UINT8_C( 29), UINT8_C(253),
1084
+ UINT8_C(230), UINT8_C( 83), UINT8_C(176), UINT8_C( 43),
1085
+ UINT8_C( 78), UINT8_C( 31), UINT8_C(113), UINT8_C(239),
1086
+ UINT8_C( 38), UINT8_C(192), UINT8_C(127), UINT8_C( 44),
1087
+ UINT8_C(218), UINT8_C(134), UINT8_C(224), UINT8_C( 35),
1088
+ UINT8_C(155), UINT8_C(171), UINT8_C( 44), UINT8_C( 53),
1089
+ UINT8_C(101), UINT8_C(234), UINT8_C(121), UINT8_C( 95),
1090
+ UINT8_C(232), UINT8_C(104), UINT8_C( 20), UINT8_C( 52),
1091
+ UINT8_C( 59), UINT8_C( 62), UINT8_C( 55), UINT8_C( 43),
1092
+ UINT8_C(246), UINT8_C( 36), UINT8_C( 25), UINT8_C( 98),
1093
+ UINT8_C(155), UINT8_C(231), UINT8_C( 43), UINT8_C(203),
1094
+ UINT8_C( 77), UINT8_C( 43), UINT8_C( 80), UINT8_C( 85),
1095
+ UINT8_C(227), UINT8_C( 34), UINT8_C( 77), UINT8_C(179)),
1096
+ simde_x_mm512_set_epu8(UINT8_C( 68), UINT8_C(183), UINT8_C(190), UINT8_C(248),
1097
+ UINT8_C( 54), UINT8_C(194), UINT8_C( 0), UINT8_C(190),
1098
+ UINT8_C(102), UINT8_C(185), UINT8_C( 5), UINT8_C(238),
1099
+ UINT8_C(188), UINT8_C(104), UINT8_C(139), UINT8_C(163),
1100
+ UINT8_C(242), UINT8_C( 94), UINT8_C(181), UINT8_C(214),
1101
+ UINT8_C(170), UINT8_C(182), UINT8_C(139), UINT8_C( 96),
1102
+ UINT8_C( 80), UINT8_C( 38), UINT8_C(151), UINT8_C(132),
1103
+ UINT8_C(243), UINT8_C( 37), UINT8_C(120), UINT8_C( 30),
1104
+ UINT8_C(115), UINT8_C( 34), UINT8_C(222), UINT8_C(121),
1105
+ UINT8_C(112), UINT8_C(205), UINT8_C(161), UINT8_C( 52),
1106
+ UINT8_C(142), UINT8_C(118), UINT8_C(195), UINT8_C(200),
1107
+ UINT8_C( 59), UINT8_C( 6), UINT8_C(115), UINT8_C(109),
1108
+ UINT8_C( 93), UINT8_C(174), UINT8_C(200), UINT8_C(190),
1109
+ UINT8_C(151), UINT8_C(126), UINT8_C(210), UINT8_C(200),
1110
+ UINT8_C( 79), UINT8_C( 43), UINT8_C( 20), UINT8_C(239),
1111
+ UINT8_C(149), UINT8_C(119), UINT8_C( 96), UINT8_C(120)),
1112
+ simde_x_mm512_set_epu8(UINT8_C(255), UINT8_C(255), UINT8_C(252), UINT8_C(255),
1113
+ UINT8_C( 91), UINT8_C(255), UINT8_C(105), UINT8_C(244),
1114
+ UINT8_C(255), UINT8_C(255), UINT8_C(150), UINT8_C(255),
1115
+ UINT8_C(255), UINT8_C(196), UINT8_C(168), UINT8_C(255),
1116
+ UINT8_C(255), UINT8_C(177), UINT8_C(255), UINT8_C(255),
1117
+ UINT8_C(248), UINT8_C(213), UINT8_C(252), UINT8_C(255),
1118
+ UINT8_C(118), UINT8_C(230), UINT8_C(255), UINT8_C(176),
1119
+ UINT8_C(255), UINT8_C(171), UINT8_C(255), UINT8_C( 65),
1120
+ UINT8_C(255), UINT8_C(205), UINT8_C(255), UINT8_C(174),
1121
+ UINT8_C(213), UINT8_C(255), UINT8_C(255), UINT8_C(147),
1122
+ UINT8_C(255), UINT8_C(222), UINT8_C(215), UINT8_C(252),
1123
+ UINT8_C(118), UINT8_C( 68), UINT8_C(170), UINT8_C(152),
1124
+ UINT8_C(255), UINT8_C(210), UINT8_C(225), UINT8_C(255),
1125
+ UINT8_C(255), UINT8_C(255), UINT8_C(253), UINT8_C(255),
1126
+ UINT8_C(156), UINT8_C( 86), UINT8_C(100), UINT8_C(255),
1127
+ UINT8_C(255), UINT8_C(153), UINT8_C(173), UINT8_C(255)) },
1128
+ { simde_x_mm512_set_epu8(UINT8_C(150), UINT8_C(150), UINT8_C(146), UINT8_C(157),
1129
+ UINT8_C(103), UINT8_C( 31), UINT8_C(236), UINT8_C(192),
1130
+ UINT8_C(155), UINT8_C( 46), UINT8_C(170), UINT8_C(176),
1131
+ UINT8_C(189), UINT8_C( 74), UINT8_C(246), UINT8_C( 0),
1132
+ UINT8_C( 85), UINT8_C( 30), UINT8_C(190), UINT8_C( 12),
1133
+ UINT8_C(117), UINT8_C( 74), UINT8_C(194), UINT8_C( 97),
1134
+ UINT8_C(132), UINT8_C( 63), UINT8_C(227), UINT8_C( 21),
1135
+ UINT8_C(244), UINT8_C(229), UINT8_C(176), UINT8_C(122),
1136
+ UINT8_C(159), UINT8_C( 35), UINT8_C(115), UINT8_C(240),
1137
+ UINT8_C( 88), UINT8_C(151), UINT8_C(101), UINT8_C(194),
1138
+ UINT8_C( 49), UINT8_C(128), UINT8_C( 87), UINT8_C(152),
1139
+ UINT8_C(173), UINT8_C(242), UINT8_C(150), UINT8_C( 26),
1140
+ UINT8_C(183), UINT8_C( 56), UINT8_C(181), UINT8_C(193),
1141
+ UINT8_C(231), UINT8_C(135), UINT8_C(190), UINT8_C( 42),
1142
+ UINT8_C( 33), UINT8_C(174), UINT8_C( 57), UINT8_C(232),
1143
+ UINT8_C(176), UINT8_C(125), UINT8_C( 87), UINT8_C( 79)),
1144
+ simde_x_mm512_set_epu8(UINT8_C( 68), UINT8_C( 1), UINT8_C(208), UINT8_C( 74),
1145
+ UINT8_C(102), UINT8_C(168), UINT8_C( 41), UINT8_C( 41),
1146
+ UINT8_C( 83), UINT8_C( 95), UINT8_C(152), UINT8_C(131),
1147
+ UINT8_C(230), UINT8_C( 27), UINT8_C(126), UINT8_C(230),
1148
+ UINT8_C(128), UINT8_C(133), UINT8_C(107), UINT8_C(197),
1149
+ UINT8_C( 23), UINT8_C( 2), UINT8_C(108), UINT8_C(207),
1150
+ UINT8_C( 82), UINT8_C(175), UINT8_C(247), UINT8_C(180),
1151
+ UINT8_C( 57), UINT8_C( 31), UINT8_C(124), UINT8_C(203),
1152
+ UINT8_C(246), UINT8_C(195), UINT8_C(173), UINT8_C(161),
1153
+ UINT8_C(132), UINT8_C(162), UINT8_C( 13), UINT8_C(205),
1154
+ UINT8_C(225), UINT8_C( 25), UINT8_C( 39), UINT8_C(181),
1155
+ UINT8_C(149), UINT8_C(149), UINT8_C(138), UINT8_C(158),
1156
+ UINT8_C(215), UINT8_C(147), UINT8_C( 0), UINT8_C( 87),
1157
+ UINT8_C(244), UINT8_C( 10), UINT8_C( 1), UINT8_C( 19),
1158
+ UINT8_C(173), UINT8_C(221), UINT8_C(118), UINT8_C( 51),
1159
+ UINT8_C( 98), UINT8_C(183), UINT8_C(125), UINT8_C( 92)),
1160
+ simde_x_mm512_set_epu8(UINT8_C(218), UINT8_C(151), UINT8_C(255), UINT8_C(231),
1161
+ UINT8_C(205), UINT8_C(199), UINT8_C(255), UINT8_C(233),
1162
+ UINT8_C(238), UINT8_C(141), UINT8_C(255), UINT8_C(255),
1163
+ UINT8_C(255), UINT8_C(101), UINT8_C(255), UINT8_C(230),
1164
+ UINT8_C(213), UINT8_C(163), UINT8_C(255), UINT8_C(209),
1165
+ UINT8_C(140), UINT8_C( 76), UINT8_C(255), UINT8_C(255),
1166
+ UINT8_C(214), UINT8_C(238), UINT8_C(255), UINT8_C(201),
1167
+ UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(255),
1168
+ UINT8_C(255), UINT8_C(230), UINT8_C(255), UINT8_C(255),
1169
+ UINT8_C(220), UINT8_C(255), UINT8_C(114), UINT8_C(255),
1170
+ UINT8_C(255), UINT8_C(153), UINT8_C(126), UINT8_C(255),
1171
+ UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(184),
1172
+ UINT8_C(255), UINT8_C(203), UINT8_C(181), UINT8_C(255),
1173
+ UINT8_C(255), UINT8_C(145), UINT8_C(191), UINT8_C( 61),
1174
+ UINT8_C(206), UINT8_C(255), UINT8_C(175), UINT8_C(255),
1175
+ UINT8_C(255), UINT8_C(255), UINT8_C(212), UINT8_C(171)) },
1176
+ { simde_x_mm512_set_epu8(UINT8_C(166), UINT8_C(112), UINT8_C( 16), UINT8_C( 20),
1177
+ UINT8_C(189), UINT8_C( 23), UINT8_C( 28), UINT8_C(226),
1178
+ UINT8_C( 92), UINT8_C(105), UINT8_C(249), UINT8_C( 71),
1179
+ UINT8_C( 22), UINT8_C(153), UINT8_C( 38), UINT8_C( 58),
1180
+ UINT8_C( 86), UINT8_C(191), UINT8_C( 97), UINT8_C(186),
1181
+ UINT8_C(117), UINT8_C( 93), UINT8_C( 63), UINT8_C(142),
1182
+ UINT8_C( 82), UINT8_C(123), UINT8_C(210), UINT8_C(159),
1183
+ UINT8_C(175), UINT8_C(187), UINT8_C( 33), UINT8_C(134),
1184
+ UINT8_C(156), UINT8_C(243), UINT8_C(191), UINT8_C(139),
1185
+ UINT8_C(173), UINT8_C( 70), UINT8_C(113), UINT8_C( 30),
1186
+ UINT8_C(184), UINT8_C( 82), UINT8_C(234), UINT8_C(177),
1187
+ UINT8_C(234), UINT8_C(131), UINT8_C(180), UINT8_C( 12),
1188
+ UINT8_C( 47), UINT8_C(213), UINT8_C( 54), UINT8_C(222),
1189
+ UINT8_C(114), UINT8_C(251), UINT8_C(236), UINT8_C( 57),
1190
+ UINT8_C(205), UINT8_C(187), UINT8_C( 48), UINT8_C(112),
1191
+ UINT8_C( 34), UINT8_C( 49), UINT8_C( 95), UINT8_C(198)),
1192
+ simde_x_mm512_set_epu8(UINT8_C(116), UINT8_C(101), UINT8_C(212), UINT8_C(199),
1193
+ UINT8_C( 88), UINT8_C(165), UINT8_C(253), UINT8_C( 88),
1194
+ UINT8_C(138), UINT8_C( 27), UINT8_C(153), UINT8_C(155),
1195
+ UINT8_C(248), UINT8_C(175), UINT8_C(152), UINT8_C(246),
1196
+ UINT8_C( 17), UINT8_C(224), UINT8_C( 49), UINT8_C(127),
1197
+ UINT8_C(200), UINT8_C( 46), UINT8_C( 58), UINT8_C(159),
1198
+ UINT8_C(177), UINT8_C( 24), UINT8_C(139), UINT8_C(240),
1199
+ UINT8_C( 45), UINT8_C(115), UINT8_C(179), UINT8_C(230),
1200
+ UINT8_C(249), UINT8_C(217), UINT8_C(202), UINT8_C( 21),
1201
+ UINT8_C(134), UINT8_C(111), UINT8_C( 79), UINT8_C(153),
1202
+ UINT8_C(130), UINT8_C( 83), UINT8_C(196), UINT8_C(101),
1203
+ UINT8_C(151), UINT8_C(117), UINT8_C(152), UINT8_C(155),
1204
+ UINT8_C(116), UINT8_C(201), UINT8_C(241), UINT8_C( 71),
1205
+ UINT8_C( 24), UINT8_C(105), UINT8_C(212), UINT8_C(191),
1206
+ UINT8_C( 1), UINT8_C(252), UINT8_C( 15), UINT8_C( 49),
1207
+ UINT8_C(105), UINT8_C(159), UINT8_C(109), UINT8_C( 31)),
1208
+ simde_x_mm512_set_epu8(UINT8_C(255), UINT8_C(213), UINT8_C(228), UINT8_C(219),
1209
+ UINT8_C(255), UINT8_C(188), UINT8_C(255), UINT8_C(255),
1210
+ UINT8_C(230), UINT8_C(132), UINT8_C(255), UINT8_C(226),
1211
+ UINT8_C(255), UINT8_C(255), UINT8_C(190), UINT8_C(255),
1212
+ UINT8_C(103), UINT8_C(255), UINT8_C(146), UINT8_C(255),
1213
+ UINT8_C(255), UINT8_C(139), UINT8_C(121), UINT8_C(255),
1214
+ UINT8_C(255), UINT8_C(147), UINT8_C(255), UINT8_C(255),
1215
+ UINT8_C(220), UINT8_C(255), UINT8_C(212), UINT8_C(255),
1216
+ UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(160),
1217
+ UINT8_C(255), UINT8_C(181), UINT8_C(192), UINT8_C(183),
1218
+ UINT8_C(255), UINT8_C(165), UINT8_C(255), UINT8_C(255),
1219
+ UINT8_C(255), UINT8_C(248), UINT8_C(255), UINT8_C(167),
1220
+ UINT8_C(163), UINT8_C(255), UINT8_C(255), UINT8_C(255),
1221
+ UINT8_C(138), UINT8_C(255), UINT8_C(255), UINT8_C(248),
1222
+ UINT8_C(206), UINT8_C(255), UINT8_C( 63), UINT8_C(161),
1223
+ UINT8_C(139), UINT8_C(208), UINT8_C(204), UINT8_C(229)) },
1224
+ { simde_x_mm512_set_epu8(UINT8_C(239), UINT8_C(174), UINT8_C( 81), UINT8_C( 89),
1225
+ UINT8_C( 63), UINT8_C(160), UINT8_C(219), UINT8_C(204),
1226
+ UINT8_C(161), UINT8_C( 4), UINT8_C(134), UINT8_C(137),
1227
+ UINT8_C( 48), UINT8_C( 33), UINT8_C(178), UINT8_C(122),
1228
+ UINT8_C( 99), UINT8_C(167), UINT8_C( 95), UINT8_C(109),
1229
+ UINT8_C( 38), UINT8_C(191), UINT8_C( 3), UINT8_C( 48),
1230
+ UINT8_C(143), UINT8_C( 51), UINT8_C( 81), UINT8_C( 76),
1231
+ UINT8_C(251), UINT8_C(204), UINT8_C(198), UINT8_C( 1),
1232
+ UINT8_C(175), UINT8_C(123), UINT8_C( 24), UINT8_C(237),
1233
+ UINT8_C(190), UINT8_C( 62), UINT8_C( 87), UINT8_C(255),
1234
+ UINT8_C(119), UINT8_C(202), UINT8_C( 4), UINT8_C( 40),
1235
+ UINT8_C(152), UINT8_C(128), UINT8_C(116), UINT8_C( 72),
1236
+ UINT8_C(245), UINT8_C(148), UINT8_C( 39), UINT8_C(106),
1237
+ UINT8_C(195), UINT8_C(186), UINT8_C(241), UINT8_C(178),
1238
+ UINT8_C( 68), UINT8_C(210), UINT8_C( 61), UINT8_C(218),
1239
+ UINT8_C(116), UINT8_C( 98), UINT8_C( 41), UINT8_C( 22)),
1240
+ simde_x_mm512_set_epu8(UINT8_C( 3), UINT8_C(245), UINT8_C( 8), UINT8_C(179),
1241
+ UINT8_C(242), UINT8_C( 19), UINT8_C(107), UINT8_C(170),
1242
+ UINT8_C(178), UINT8_C(175), UINT8_C(174), UINT8_C(170),
1243
+ UINT8_C( 72), UINT8_C(195), UINT8_C(199), UINT8_C( 66),
1244
+ UINT8_C(182), UINT8_C(183), UINT8_C( 58), UINT8_C(245),
1245
+ UINT8_C( 62), UINT8_C( 31), UINT8_C( 93), UINT8_C( 74),
1246
+ UINT8_C(114), UINT8_C( 92), UINT8_C(199), UINT8_C( 53),
1247
+ UINT8_C( 94), UINT8_C(185), UINT8_C(107), UINT8_C(124),
1248
+ UINT8_C(160), UINT8_C(193), UINT8_C( 17), UINT8_C( 65),
1249
+ UINT8_C(242), UINT8_C( 55), UINT8_C(163), UINT8_C(102),
1250
+ UINT8_C( 59), UINT8_C(173), UINT8_C(244), UINT8_C(232),
1251
+ UINT8_C(182), UINT8_C(139), UINT8_C(254), UINT8_C( 81),
1252
+ UINT8_C(228), UINT8_C(175), UINT8_C(104), UINT8_C(167),
1253
+ UINT8_C( 38), UINT8_C(114), UINT8_C(184), UINT8_C(118),
1254
+ UINT8_C(167), UINT8_C( 58), UINT8_C(153), UINT8_C(103),
1255
+ UINT8_C(204), UINT8_C(126), UINT8_C(111), UINT8_C( 63)),
1256
+ simde_x_mm512_set_epu8(UINT8_C(242), UINT8_C(255), UINT8_C( 89), UINT8_C(255),
1257
+ UINT8_C(255), UINT8_C(179), UINT8_C(255), UINT8_C(255),
1258
+ UINT8_C(255), UINT8_C(179), UINT8_C(255), UINT8_C(255),
1259
+ UINT8_C(120), UINT8_C(228), UINT8_C(255), UINT8_C(188),
1260
+ UINT8_C(255), UINT8_C(255), UINT8_C(153), UINT8_C(255),
1261
+ UINT8_C(100), UINT8_C(222), UINT8_C( 96), UINT8_C(122),
1262
+ UINT8_C(255), UINT8_C(143), UINT8_C(255), UINT8_C(129),
1263
+ UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(125),
1264
+ UINT8_C(255), UINT8_C(255), UINT8_C( 41), UINT8_C(255),
1265
+ UINT8_C(255), UINT8_C(117), UINT8_C(250), UINT8_C(255),
1266
+ UINT8_C(178), UINT8_C(255), UINT8_C(248), UINT8_C(255),
1267
+ UINT8_C(255), UINT8_C(255), UINT8_C(255), UINT8_C(153),
1268
+ UINT8_C(255), UINT8_C(255), UINT8_C(143), UINT8_C(255),
1269
+ UINT8_C(233), UINT8_C(255), UINT8_C(255), UINT8_C(255),
1270
+ UINT8_C(235), UINT8_C(255), UINT8_C(214), UINT8_C(255),
1271
+ UINT8_C(255), UINT8_C(224), UINT8_C(152), UINT8_C( 85)) }
1272
+ };
1273
+
1274
+ for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
1275
+ simde__m512i r = simde_mm512_adds_epu8(test_vec[i].a, test_vec[i].b);
1276
+ simde_assert_m512i_u8(r, ==, test_vec[i].r);
1277
+ }
1278
+
1279
+ return MUNIT_OK;
1280
+ }
1281
+
1282
+ static MunitResult
1283
+ test_simde_mm512_adds_epu16(const MunitParameter params[], void* data) {
1284
+ (void) params;
1285
+ (void) data;
1286
+
1287
+ const struct {
1288
+ simde__m512i a;
1289
+ simde__m512i b;
1290
+ simde__m512i r;
1291
+ } test_vec[8] = {
1292
+ { simde_x_mm512_set_epu16(UINT16_C( 57245), UINT16_C( 31803), UINT16_C( 9053), UINT16_C( 21282),
1293
+ UINT16_C( 45515), UINT16_C( 57894), UINT16_C( 50445), UINT16_C( 50583),
1294
+ UINT16_C( 54723), UINT16_C( 52144), UINT16_C( 13347), UINT16_C( 57624),
1295
+ UINT16_C( 20975), UINT16_C( 65317), UINT16_C( 16493), UINT16_C( 47193),
1296
+ UINT16_C( 8805), UINT16_C( 17012), UINT16_C( 15383), UINT16_C( 5484),
1297
+ UINT16_C( 64480), UINT16_C( 10898), UINT16_C( 37488), UINT16_C( 8763),
1298
+ UINT16_C( 45480), UINT16_C( 3307), UINT16_C( 9193), UINT16_C( 26229),
1299
+ UINT16_C( 20008), UINT16_C( 59713), UINT16_C( 53564), UINT16_C( 62675)),
1300
+ simde_x_mm512_set_epu16(UINT16_C( 56619), UINT16_C( 61703), UINT16_C( 3086), UINT16_C( 41224),
1301
+ UINT16_C( 8421), UINT16_C( 52766), UINT16_C( 7424), UINT16_C( 48822),
1302
+ UINT16_C( 41975), UINT16_C( 22918), UINT16_C( 59915), UINT16_C( 26727),
1303
+ UINT16_C( 53323), UINT16_C( 34707), UINT16_C( 14572), UINT16_C( 716),
1304
+ UINT16_C( 56087), UINT16_C( 9094), UINT16_C( 20814), UINT16_C( 56962),
1305
+ UINT16_C( 14110), UINT16_C( 52082), UINT16_C( 8468), UINT16_C( 11854),
1306
+ UINT16_C( 1576), UINT16_C( 12690), UINT16_C( 32737), UINT16_C( 51663),
1307
+ UINT16_C( 37115), UINT16_C( 18115), UINT16_C( 50682), UINT16_C( 1653)),
1308
+ simde_x_mm512_set_epu16(UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 12139), UINT16_C( 62506),
1309
+ UINT16_C( 53936), UINT16_C( 65535), UINT16_C( 57869), UINT16_C( 65535),
1310
+ UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535),
1311
+ UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 31065), UINT16_C( 47909),
1312
+ UINT16_C( 64892), UINT16_C( 26106), UINT16_C( 36197), UINT16_C( 62446),
1313
+ UINT16_C( 65535), UINT16_C( 62980), UINT16_C( 45956), UINT16_C( 20617),
1314
+ UINT16_C( 47056), UINT16_C( 15997), UINT16_C( 41930), UINT16_C( 65535),
1315
+ UINT16_C( 57123), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 64328)) },
1316
+ { simde_x_mm512_set_epu16(UINT16_C( 1128), UINT16_C( 14143), UINT16_C( 19763), UINT16_C( 47819),
1317
+ UINT16_C( 62972), UINT16_C( 13428), UINT16_C( 18537), UINT16_C( 38297),
1318
+ UINT16_C( 21721), UINT16_C( 58861), UINT16_C( 42577), UINT16_C( 39379),
1319
+ UINT16_C( 55643), UINT16_C( 20439), UINT16_C( 34514), UINT16_C( 49721),
1320
+ UINT16_C( 18526), UINT16_C( 46886), UINT16_C( 20377), UINT16_C( 31658),
1321
+ UINT16_C( 32537), UINT16_C( 50044), UINT16_C( 28503), UINT16_C( 5895),
1322
+ UINT16_C( 1666), UINT16_C( 50137), UINT16_C( 30976), UINT16_C( 4047),
1323
+ UINT16_C( 24589), UINT16_C( 29183), UINT16_C( 13128), UINT16_C( 3541)),
1324
+ simde_x_mm512_set_epu16(UINT16_C( 38521), UINT16_C( 64382), UINT16_C( 35873), UINT16_C( 42497),
1325
+ UINT16_C( 46178), UINT16_C( 38904), UINT16_C( 15657), UINT16_C( 6453),
1326
+ UINT16_C( 15377), UINT16_C( 45418), UINT16_C( 38208), UINT16_C( 44948),
1327
+ UINT16_C( 17985), UINT16_C( 28923), UINT16_C( 11094), UINT16_C( 61254),
1328
+ UINT16_C( 41028), UINT16_C( 4939), UINT16_C( 61438), UINT16_C( 34821),
1329
+ UINT16_C( 9578), UINT16_C( 46329), UINT16_C( 53213), UINT16_C( 42297),
1330
+ UINT16_C( 42846), UINT16_C( 12973), UINT16_C( 32628), UINT16_C( 10992),
1331
+ UINT16_C( 56871), UINT16_C( 37695), UINT16_C( 16317), UINT16_C( 4356)),
1332
+ simde_x_mm512_set_epu16(UINT16_C( 39649), UINT16_C( 65535), UINT16_C( 55636), UINT16_C( 65535),
1333
+ UINT16_C( 65535), UINT16_C( 52332), UINT16_C( 34194), UINT16_C( 44750),
1334
+ UINT16_C( 37098), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535),
1335
+ UINT16_C( 65535), UINT16_C( 49362), UINT16_C( 45608), UINT16_C( 65535),
1336
+ UINT16_C( 59554), UINT16_C( 51825), UINT16_C( 65535), UINT16_C( 65535),
1337
+ UINT16_C( 42115), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 48192),
1338
+ UINT16_C( 44512), UINT16_C( 63110), UINT16_C( 63604), UINT16_C( 15039),
1339
+ UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 29445), UINT16_C( 7897)) },
1340
+ { simde_x_mm512_set_epu16(UINT16_C( 14747), UINT16_C( 30570), UINT16_C( 56275), UINT16_C( 58793),
1341
+ UINT16_C( 48636), UINT16_C( 11396), UINT16_C( 12142), UINT16_C( 25883),
1342
+ UINT16_C( 48137), UINT16_C( 31445), UINT16_C( 15524), UINT16_C( 49322),
1343
+ UINT16_C( 6761), UINT16_C( 42681), UINT16_C( 8586), UINT16_C( 53309),
1344
+ UINT16_C( 48898), UINT16_C( 23142), UINT16_C( 17912), UINT16_C( 20578),
1345
+ UINT16_C( 42157), UINT16_C( 25705), UINT16_C( 39154), UINT16_C( 32521),
1346
+ UINT16_C( 7302), UINT16_C( 65263), UINT16_C( 7623), UINT16_C( 47267),
1347
+ UINT16_C( 41612), UINT16_C( 7723), UINT16_C( 51815), UINT16_C( 23273)),
1348
+ simde_x_mm512_set_epu16(UINT16_C( 29783), UINT16_C( 35133), UINT16_C( 18722), UINT16_C( 24788),
1349
+ UINT16_C( 4507), UINT16_C( 64908), UINT16_C( 18120), UINT16_C( 53792),
1350
+ UINT16_C( 40447), UINT16_C( 2013), UINT16_C( 19329), UINT16_C( 18474),
1351
+ UINT16_C( 45067), UINT16_C( 37105), UINT16_C( 40003), UINT16_C( 11523),
1352
+ UINT16_C( 28865), UINT16_C( 9988), UINT16_C( 16394), UINT16_C( 60605),
1353
+ UINT16_C( 29530), UINT16_C( 612), UINT16_C( 21547), UINT16_C( 12463),
1354
+ UINT16_C( 46586), UINT16_C( 6619), UINT16_C( 39845), UINT16_C( 4328),
1355
+ UINT16_C( 31818), UINT16_C( 16334), UINT16_C( 57400), UINT16_C( 58095)),
1356
+ simde_x_mm512_set_epu16(UINT16_C( 44530), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535),
1357
+ UINT16_C( 53143), UINT16_C( 65535), UINT16_C( 30262), UINT16_C( 65535),
1358
+ UINT16_C( 65535), UINT16_C( 33458), UINT16_C( 34853), UINT16_C( 65535),
1359
+ UINT16_C( 51828), UINT16_C( 65535), UINT16_C( 48589), UINT16_C( 64832),
1360
+ UINT16_C( 65535), UINT16_C( 33130), UINT16_C( 34306), UINT16_C( 65535),
1361
+ UINT16_C( 65535), UINT16_C( 26317), UINT16_C( 60701), UINT16_C( 44984),
1362
+ UINT16_C( 53888), UINT16_C( 65535), UINT16_C( 47468), UINT16_C( 51595),
1363
+ UINT16_C( 65535), UINT16_C( 24057), UINT16_C( 65535), UINT16_C( 65535)) },
1364
+ { simde_x_mm512_set_epu16(UINT16_C( 30682), UINT16_C( 30851), UINT16_C( 8660), UINT16_C( 19219),
1365
+ UINT16_C( 10963), UINT16_C( 474), UINT16_C( 23728), UINT16_C( 46528),
1366
+ UINT16_C( 63120), UINT16_C( 45881), UINT16_C( 63086), UINT16_C( 25197),
1367
+ UINT16_C( 2704), UINT16_C( 4513), UINT16_C( 59294), UINT16_C( 60752),
1368
+ UINT16_C( 50954), UINT16_C( 23266), UINT16_C( 27902), UINT16_C( 8814),
1369
+ UINT16_C( 4863), UINT16_C( 1260), UINT16_C( 11681), UINT16_C( 46962),
1370
+ UINT16_C( 62057), UINT16_C( 1167), UINT16_C( 44133), UINT16_C( 29723),
1371
+ UINT16_C( 20503), UINT16_C( 47951), UINT16_C( 6645), UINT16_C( 27511)),
1372
+ simde_x_mm512_set_epu16(UINT16_C( 15286), UINT16_C( 5686), UINT16_C( 62529), UINT16_C( 52414),
1373
+ UINT16_C( 64942), UINT16_C( 55157), UINT16_C( 1921), UINT16_C( 414),
1374
+ UINT16_C( 57075), UINT16_C( 38949), UINT16_C( 49837), UINT16_C( 16574),
1375
+ UINT16_C( 63519), UINT16_C( 21815), UINT16_C( 16534), UINT16_C( 5264),
1376
+ UINT16_C( 40611), UINT16_C( 7582), UINT16_C( 27508), UINT16_C( 40060),
1377
+ UINT16_C( 17332), UINT16_C( 48486), UINT16_C( 46457), UINT16_C( 3074),
1378
+ UINT16_C( 49520), UINT16_C( 35694), UINT16_C( 14820), UINT16_C( 26739),
1379
+ UINT16_C( 52931), UINT16_C( 30426), UINT16_C( 34639), UINT16_C( 60126)),
1380
+ simde_x_mm512_set_epu16(UINT16_C( 45968), UINT16_C( 36537), UINT16_C( 65535), UINT16_C( 65535),
1381
+ UINT16_C( 65535), UINT16_C( 55631), UINT16_C( 25649), UINT16_C( 46942),
1382
+ UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 41771),
1383
+ UINT16_C( 65535), UINT16_C( 26328), UINT16_C( 65535), UINT16_C( 65535),
1384
+ UINT16_C( 65535), UINT16_C( 30848), UINT16_C( 55410), UINT16_C( 48874),
1385
+ UINT16_C( 22195), UINT16_C( 49746), UINT16_C( 58138), UINT16_C( 50036),
1386
+ UINT16_C( 65535), UINT16_C( 36861), UINT16_C( 58953), UINT16_C( 56462),
1387
+ UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 41284), UINT16_C( 65535)) },
1388
+ { simde_x_mm512_set_epu16(UINT16_C( 20277), UINT16_C( 2901), UINT16_C( 9119), UINT16_C( 39166),
1389
+ UINT16_C( 42714), UINT16_C( 26596), UINT16_C( 65466), UINT16_C( 41724),
1390
+ UINT16_C( 43509), UINT16_C( 36161), UINT16_C( 14559), UINT16_C( 39814),
1391
+ UINT16_C( 39598), UINT16_C( 35810), UINT16_C( 32670), UINT16_C( 2206),
1392
+ UINT16_C( 28889), UINT16_C( 41636), UINT16_C( 48990), UINT16_C( 37294),
1393
+ UINT16_C( 39242), UINT16_C( 39778), UINT16_C( 6979), UINT16_C( 54232),
1394
+ UINT16_C( 47738), UINT16_C( 57923), UINT16_C( 37900), UINT16_C( 45798),
1395
+ UINT16_C( 44781), UINT16_C( 27960), UINT16_C( 1998), UINT16_C( 61149)),
1396
+ simde_x_mm512_set_epu16(UINT16_C( 20730), UINT16_C( 18080), UINT16_C( 51364), UINT16_C( 27968),
1397
+ UINT16_C( 47873), UINT16_C( 51993), UINT16_C( 18829), UINT16_C( 15054),
1398
+ UINT16_C( 50771), UINT16_C( 37023), UINT16_C( 39205), UINT16_C( 18252),
1399
+ UINT16_C( 53613), UINT16_C( 36736), UINT16_C( 53958), UINT16_C( 13137),
1400
+ UINT16_C( 43763), UINT16_C( 19789), UINT16_C( 2934), UINT16_C( 22986),
1401
+ UINT16_C( 46964), UINT16_C( 64986), UINT16_C( 13395), UINT16_C( 61287),
1402
+ UINT16_C( 61677), UINT16_C( 22301), UINT16_C( 41322), UINT16_C( 35063),
1403
+ UINT16_C( 22663), UINT16_C( 28062), UINT16_C( 45351), UINT16_C( 21097)),
1404
+ simde_x_mm512_set_epu16(UINT16_C( 41007), UINT16_C( 20981), UINT16_C( 60483), UINT16_C( 65535),
1405
+ UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 56778),
1406
+ UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 53764), UINT16_C( 58066),
1407
+ UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 15343),
1408
+ UINT16_C( 65535), UINT16_C( 61425), UINT16_C( 51924), UINT16_C( 60280),
1409
+ UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 20374), UINT16_C( 65535),
1410
+ UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535),
1411
+ UINT16_C( 65535), UINT16_C( 56022), UINT16_C( 47349), UINT16_C( 65535)) },
1412
+ { simde_x_mm512_set_epu16(UINT16_C( 29192), UINT16_C( 8654), UINT16_C( 22850), UINT16_C( 62764),
1413
+ UINT16_C( 24193), UINT16_C( 41054), UINT16_C( 47201), UINT16_C( 29473),
1414
+ UINT16_C( 7514), UINT16_C( 21604), UINT16_C( 55170), UINT16_C( 17089),
1415
+ UINT16_C( 58910), UINT16_C( 18576), UINT16_C( 50942), UINT16_C( 19375),
1416
+ UINT16_C( 32394), UINT16_C( 6670), UINT16_C( 34291), UINT16_C( 10597),
1417
+ UINT16_C( 63848), UINT16_C( 24622), UINT16_C( 55141), UINT16_C( 33399),
1418
+ UINT16_C( 17676), UINT16_C( 53111), UINT16_C( 57678), UINT16_C( 53869),
1419
+ UINT16_C( 1069), UINT16_C( 35377), UINT16_C( 20392), UINT16_C( 6033)),
1420
+ simde_x_mm512_set_epu16(UINT16_C( 30110), UINT16_C( 5765), UINT16_C( 21533), UINT16_C( 32154),
1421
+ UINT16_C( 47788), UINT16_C( 4708), UINT16_C( 49450), UINT16_C( 15569),
1422
+ UINT16_C( 11433), UINT16_C( 48528), UINT16_C( 18868), UINT16_C( 49914),
1423
+ UINT16_C( 29591), UINT16_C( 10234), UINT16_C( 18676), UINT16_C( 18833),
1424
+ UINT16_C( 53298), UINT16_C( 44056), UINT16_C( 163), UINT16_C( 14043),
1425
+ UINT16_C( 52308), UINT16_C( 55462), UINT16_C( 1379), UINT16_C( 56593),
1426
+ UINT16_C( 40649), UINT16_C( 10209), UINT16_C( 62181), UINT16_C( 6865),
1427
+ UINT16_C( 33659), UINT16_C( 12643), UINT16_C( 58853), UINT16_C( 27590)),
1428
+ simde_x_mm512_set_epu16(UINT16_C( 59302), UINT16_C( 14419), UINT16_C( 44383), UINT16_C( 65535),
1429
+ UINT16_C( 65535), UINT16_C( 45762), UINT16_C( 65535), UINT16_C( 45042),
1430
+ UINT16_C( 18947), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535),
1431
+ UINT16_C( 65535), UINT16_C( 28810), UINT16_C( 65535), UINT16_C( 38208),
1432
+ UINT16_C( 65535), UINT16_C( 50726), UINT16_C( 34454), UINT16_C( 24640),
1433
+ UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 56520), UINT16_C( 65535),
1434
+ UINT16_C( 58325), UINT16_C( 63320), UINT16_C( 65535), UINT16_C( 60734),
1435
+ UINT16_C( 34728), UINT16_C( 48020), UINT16_C( 65535), UINT16_C( 33623)) },
1436
+ { simde_x_mm512_set_epu16(UINT16_C( 54408), UINT16_C( 44486), UINT16_C( 24517), UINT16_C( 51207),
1437
+ UINT16_C( 2791), UINT16_C( 45592), UINT16_C( 48586), UINT16_C( 36784),
1438
+ UINT16_C( 53369), UINT16_C( 43811), UINT16_C( 65046), UINT16_C( 44235),
1439
+ UINT16_C( 48681), UINT16_C( 21401), UINT16_C( 55417), UINT16_C( 5581),
1440
+ UINT16_C( 56410), UINT16_C( 42092), UINT16_C( 49678), UINT16_C( 22777),
1441
+ UINT16_C( 15839), UINT16_C( 59069), UINT16_C( 3836), UINT16_C( 55877),
1442
+ UINT16_C( 35316), UINT16_C( 40611), UINT16_C( 30925), UINT16_C( 38925),
1443
+ UINT16_C( 44290), UINT16_C( 48844), UINT16_C( 41388), UINT16_C( 24135)),
1444
+ simde_x_mm512_set_epu16(UINT16_C( 7663), UINT16_C( 4305), UINT16_C( 48670), UINT16_C( 39779),
1445
+ UINT16_C( 2052), UINT16_C( 40026), UINT16_C( 47264), UINT16_C( 7297),
1446
+ UINT16_C( 11022), UINT16_C( 64822), UINT16_C( 63292), UINT16_C( 56921),
1447
+ UINT16_C( 8160), UINT16_C( 61766), UINT16_C( 22014), UINT16_C( 41597),
1448
+ UINT16_C( 60919), UINT16_C( 45399), UINT16_C( 45462), UINT16_C( 35135),
1449
+ UINT16_C( 13486), UINT16_C( 42127), UINT16_C( 6466), UINT16_C( 5931),
1450
+ UINT16_C( 30448), UINT16_C( 27493), UINT16_C( 24921), UINT16_C( 23842),
1451
+ UINT16_C( 21170), UINT16_C( 62954), UINT16_C( 7914), UINT16_C( 35527)),
1452
+ simde_x_mm512_set_epu16(UINT16_C( 62071), UINT16_C( 48791), UINT16_C( 65535), UINT16_C( 65535),
1453
+ UINT16_C( 4843), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 44081),
1454
+ UINT16_C( 64391), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535),
1455
+ UINT16_C( 56841), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 47178),
1456
+ UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 57912),
1457
+ UINT16_C( 29325), UINT16_C( 65535), UINT16_C( 10302), UINT16_C( 61808),
1458
+ UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 55846), UINT16_C( 62767),
1459
+ UINT16_C( 65460), UINT16_C( 65535), UINT16_C( 49302), UINT16_C( 59662)) },
1460
+ { simde_x_mm512_set_epu16(UINT16_C( 61865), UINT16_C( 23426), UINT16_C( 1768), UINT16_C( 58636),
1461
+ UINT16_C( 57533), UINT16_C( 19108), UINT16_C( 59802), UINT16_C( 30792),
1462
+ UINT16_C( 61240), UINT16_C( 6209), UINT16_C( 32476), UINT16_C( 14300),
1463
+ UINT16_C( 7420), UINT16_C( 1985), UINT16_C( 25770), UINT16_C( 58800),
1464
+ UINT16_C( 51482), UINT16_C( 20894), UINT16_C( 680), UINT16_C( 29487),
1465
+ UINT16_C( 45202), UINT16_C( 20181), UINT16_C( 14712), UINT16_C( 17612),
1466
+ UINT16_C( 16683), UINT16_C( 1453), UINT16_C( 15990), UINT16_C( 36509),
1467
+ UINT16_C( 51737), UINT16_C( 56324), UINT16_C( 34493), UINT16_C( 17761)),
1468
+ simde_x_mm512_set_epu16(UINT16_C( 37550), UINT16_C( 51250), UINT16_C( 42874), UINT16_C( 8384),
1469
+ UINT16_C( 13698), UINT16_C( 33689), UINT16_C( 64372), UINT16_C( 20393),
1470
+ UINT16_C( 17692), UINT16_C( 65383), UINT16_C( 545), UINT16_C( 27220),
1471
+ UINT16_C( 18321), UINT16_C( 26532), UINT16_C( 40835), UINT16_C( 14036),
1472
+ UINT16_C( 3666), UINT16_C( 2040), UINT16_C( 61839), UINT16_C( 38748),
1473
+ UINT16_C( 62699), UINT16_C( 55831), UINT16_C( 23293), UINT16_C( 13208),
1474
+ UINT16_C( 60975), UINT16_C( 12632), UINT16_C( 13392), UINT16_C( 63703),
1475
+ UINT16_C( 41286), UINT16_C( 6117), UINT16_C( 32645), UINT16_C( 56152)),
1476
+ simde_x_mm512_set_epu16(UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 44642), UINT16_C( 65535),
1477
+ UINT16_C( 65535), UINT16_C( 52797), UINT16_C( 65535), UINT16_C( 51185),
1478
+ UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 33021), UINT16_C( 41520),
1479
+ UINT16_C( 25741), UINT16_C( 28517), UINT16_C( 65535), UINT16_C( 65535),
1480
+ UINT16_C( 55148), UINT16_C( 22934), UINT16_C( 62519), UINT16_C( 65535),
1481
+ UINT16_C( 65535), UINT16_C( 65535), UINT16_C( 38005), UINT16_C( 30820),
1482
+ UINT16_C( 65535), UINT16_C( 14085), UINT16_C( 29382), UINT16_C( 65535),
1483
+ UINT16_C( 65535), UINT16_C( 62441), UINT16_C( 65535), UINT16_C( 65535)) }
1484
+ };
1485
+
1486
+ for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
1487
+ simde__m512i r = simde_mm512_adds_epu16(test_vec[i].a, test_vec[i].b);
1488
+ simde_assert_m512i_u16(r, ==, test_vec[i].r);
1489
+ }
1490
+
1491
+ return MUNIT_OK;
1492
+ }
1493
+
1494
+ static MunitResult
1495
+ test_simde_mm512_shuffle_epi8(const MunitParameter params[], void* data) {
1496
+ (void) params;
1497
+ (void) data;
1498
+
1499
+ const struct {
1500
+ simde__m512i a;
1501
+ simde__m512i b;
1502
+ simde__m512i r;
1503
+ } test_vec[8] = {
1504
+ { simde_mm512_set_epi8(INT8_C( 56), INT8_C( -94), INT8_C( -41), INT8_C( -59),
1505
+ INT8_C( 40), INT8_C( 78), INT8_C( 93), INT8_C( 107),
1506
+ INT8_C( -47), INT8_C( 66), INT8_C( -8), INT8_C( -52),
1507
+ INT8_C( 50), INT8_C( 78), INT8_C( 13), INT8_C( 26),
1508
+ INT8_C( -33), INT8_C( 120), INT8_C( 67), INT8_C( -12),
1509
+ INT8_C( 80), INT8_C( 88), INT8_C( -65), INT8_C( 49),
1510
+ INT8_C( 28), INT8_C( 96), INT8_C( -99), INT8_C(-119),
1511
+ INT8_C( 126), INT8_C( 24), INT8_C( 35), INT8_C( 11),
1512
+ INT8_C( -43), INT8_C( -24), INT8_C( 1), INT8_C( -61),
1513
+ INT8_C( 101), INT8_C( 5), INT8_C( 67), INT8_C( -42),
1514
+ INT8_C( -46), INT8_C(-115), INT8_C(-105), INT8_C( -92),
1515
+ INT8_C( -3), INT8_C( -44), INT8_C( 13), INT8_C( -36),
1516
+ INT8_C( 110), INT8_C( -38), INT8_C( -48), INT8_C( 36),
1517
+ INT8_C( 117), INT8_C( -59), INT8_C( 109), INT8_C( -27),
1518
+ INT8_C( -62), INT8_C( 98), INT8_C(-121), INT8_C(-108),
1519
+ INT8_C( -7), INT8_C(-112), INT8_C( -52), INT8_C( -84)),
1520
+ simde_mm512_set_epi8(INT8_C( 34), INT8_C( 34), INT8_C( -71), INT8_C( -63),
1521
+ INT8_C( -34), INT8_C(-128), INT8_C( 113), INT8_C( -72),
1522
+ INT8_C( 86), INT8_C( -73), INT8_C( -43), INT8_C( 95),
1523
+ INT8_C( 3), INT8_C( 13), INT8_C( 19), INT8_C( -1),
1524
+ INT8_C( -54), INT8_C( 114), INT8_C( 27), INT8_C( -30),
1525
+ INT8_C( 52), INT8_C( -54), INT8_C( 78), INT8_C( 23),
1526
+ INT8_C( 71), INT8_C( 87), INT8_C( 107), INT8_C( -27),
1527
+ INT8_C( -35), INT8_C(-122), INT8_C( 40), INT8_C( 55),
1528
+ INT8_C( -2), INT8_C( 40), INT8_C( -63), INT8_C( 85),
1529
+ INT8_C( -25), INT8_C( -93), INT8_C( 25), INT8_C( 70),
1530
+ INT8_C( 117), INT8_C( 66), INT8_C( -79), INT8_C( 57),
1531
+ INT8_C(-115), INT8_C( -27), INT8_C( 59), INT8_C( 25),
1532
+ INT8_C( -6), INT8_C( 42), INT8_C( -27), INT8_C( -34),
1533
+ INT8_C( -16), INT8_C( 5), INT8_C( -55), INT8_C( 74),
1534
+ INT8_C( -29), INT8_C( 77), INT8_C( -17), INT8_C( 16),
1535
+ INT8_C( -98), INT8_C( -38), INT8_C( 116), INT8_C( -56)),
1536
+ simde_mm512_set_epi8(INT8_C( 78), INT8_C( 78), INT8_C( 0), INT8_C( 0),
1537
+ INT8_C( 0), INT8_C( 0), INT8_C( 13), INT8_C( 0),
1538
+ INT8_C( 66), INT8_C( 0), INT8_C( 0), INT8_C( 56),
1539
+ INT8_C( 50), INT8_C( -41), INT8_C( 50), INT8_C( 0),
1540
+ INT8_C( 0), INT8_C( 24), INT8_C( 80), INT8_C( 0),
1541
+ INT8_C(-119), INT8_C( 0), INT8_C( 120), INT8_C( 28),
1542
+ INT8_C( 28), INT8_C( 28), INT8_C( 80), INT8_C( 0),
1543
+ INT8_C( 0), INT8_C( 0), INT8_C( 49), INT8_C( 28),
1544
+ INT8_C( 0), INT8_C( -42), INT8_C( 0), INT8_C(-105),
1545
+ INT8_C( 0), INT8_C( 0), INT8_C( 67), INT8_C(-115),
1546
+ INT8_C(-105), INT8_C( -44), INT8_C( 0), INT8_C( 67),
1547
+ INT8_C( 0), INT8_C( 0), INT8_C( 101), INT8_C( 67),
1548
+ INT8_C( 0), INT8_C( -59), INT8_C( 0), INT8_C( 0),
1549
+ INT8_C( 0), INT8_C(-121), INT8_C( 0), INT8_C( -59),
1550
+ INT8_C( 0), INT8_C( -48), INT8_C( 0), INT8_C( -84),
1551
+ INT8_C( 0), INT8_C( 0), INT8_C(-108), INT8_C( 0)) },
1552
+ { simde_mm512_set_epi8(INT8_C( -75), INT8_C(-123), INT8_C( -44), INT8_C( -97),
1553
+ INT8_C( 61), INT8_C(-112), INT8_C( 109), INT8_C( 27),
1554
+ INT8_C( -9), INT8_C( -31), INT8_C(-111), INT8_C( -59),
1555
+ INT8_C( 94), INT8_C( 110), INT8_C( 31), INT8_C( 50),
1556
+ INT8_C( -86), INT8_C( 24), INT8_C( 91), INT8_C(-105),
1557
+ INT8_C( 39), INT8_C( 25), INT8_C( -65), INT8_C( 69),
1558
+ INT8_C( -59), INT8_C( -57), INT8_C( -98), INT8_C( 26),
1559
+ INT8_C( -35), INT8_C( -2), INT8_C( 114), INT8_C( -51),
1560
+ INT8_C( -16), INT8_C( 101), INT8_C( -92), INT8_C( 65),
1561
+ INT8_C( -88), INT8_C( 19), INT8_C(-102), INT8_C( -51),
1562
+ INT8_C( -94), INT8_C( -30), INT8_C( 60), INT8_C( -9),
1563
+ INT8_C( 4), INT8_C( -93), INT8_C( 110), INT8_C(-102),
1564
+ INT8_C( 109), INT8_C( 1), INT8_C( 113), INT8_C( 114),
1565
+ INT8_C( 100), INT8_C( 80), INT8_C( 18), INT8_C( -7),
1566
+ INT8_C( -87), INT8_C( 0), INT8_C( -55), INT8_C( 37),
1567
+ INT8_C( 13), INT8_C( 86), INT8_C(-114), INT8_C(-125)),
1568
+ simde_mm512_set_epi8(INT8_C( 18), INT8_C( 11), INT8_C( 73), INT8_C( 57),
1569
+ INT8_C( -54), INT8_C( 9), INT8_C( 69), INT8_C( -45),
1570
+ INT8_C( 71), INT8_C( -6), INT8_C( -68), INT8_C( -8),
1571
+ INT8_C( 14), INT8_C( -27), INT8_C( 84), INT8_C( -90),
1572
+ INT8_C( -10), INT8_C( -81), INT8_C( 77), INT8_C(-113),
1573
+ INT8_C( 32), INT8_C( 17), INT8_C( 62), INT8_C( -18),
1574
+ INT8_C( 124), INT8_C( -42), INT8_C( -52), INT8_C(-109),
1575
+ INT8_C( -19), INT8_C( 30), INT8_C( -51), INT8_C(-111),
1576
+ INT8_C( 100), INT8_C( 63), INT8_C( -80), INT8_C(-126),
1577
+ INT8_C( 3), INT8_C( 119), INT8_C( 38), INT8_C( -44),
1578
+ INT8_C( -48), INT8_C( -43), INT8_C( 6), INT8_C(-113),
1579
+ INT8_C( -5), INT8_C( -18), INT8_C( 58), INT8_C( 77),
1580
+ INT8_C( -49), INT8_C(-107), INT8_C( -77), INT8_C( 119),
1581
+ INT8_C( -6), INT8_C( 92), INT8_C(-122), INT8_C( 43),
1582
+ INT8_C( 85), INT8_C(-111), INT8_C( -15), INT8_C( 90),
1583
+ INT8_C(-104), INT8_C( 31), INT8_C( -4), INT8_C( 57)),
1584
+ simde_mm512_set_epi8(INT8_C( 110), INT8_C( 61), INT8_C( 109), INT8_C( 109),
1585
+ INT8_C( 0), INT8_C( 109), INT8_C(-111), INT8_C( 0),
1586
+ INT8_C( -9), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1587
+ INT8_C(-123), INT8_C( 0), INT8_C( -59), INT8_C( 0),
1588
+ INT8_C( 0), INT8_C( 0), INT8_C( 91), INT8_C( 0),
1589
+ INT8_C( -51), INT8_C( 114), INT8_C( 24), INT8_C( 0),
1590
+ INT8_C(-105), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1591
+ INT8_C( 0), INT8_C( 24), INT8_C( 0), INT8_C( 0),
1592
+ INT8_C( -9), INT8_C( -16), INT8_C( 0), INT8_C( 0),
1593
+ INT8_C( 4), INT8_C( -94), INT8_C( -30), INT8_C( 0),
1594
+ INT8_C( 0), INT8_C( 0), INT8_C( -30), INT8_C( 0),
1595
+ INT8_C( 0), INT8_C( 0), INT8_C( 19), INT8_C( -92),
1596
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -87),
1597
+ INT8_C( 0), INT8_C( 114), INT8_C( 0), INT8_C( 100),
1598
+ INT8_C( -55), INT8_C( 0), INT8_C( 0), INT8_C( 80),
1599
+ INT8_C( 0), INT8_C( 109), INT8_C( 0), INT8_C( 18)) },
1600
+ { simde_mm512_set_epi8(INT8_C( -54), INT8_C( 53), INT8_C( 35), INT8_C( 51),
1601
+ INT8_C( 24), INT8_C( 100), INT8_C( 80), INT8_C( 7),
1602
+ INT8_C( 54), INT8_C( 114), INT8_C( -42), INT8_C( -2),
1603
+ INT8_C( 18), INT8_C( 100), INT8_C( 26), INT8_C( -68),
1604
+ INT8_C( 82), INT8_C( -30), INT8_C( -4), INT8_C( 110),
1605
+ INT8_C( 24), INT8_C( 88), INT8_C(-100), INT8_C(-120),
1606
+ INT8_C( -17), INT8_C(-109), INT8_C( 92), INT8_C(-105),
1607
+ INT8_C( -20), INT8_C( 34), INT8_C( 98), INT8_C( -17),
1608
+ INT8_C( 2), INT8_C( 6), INT8_C( 37), INT8_C( -85),
1609
+ INT8_C( 118), INT8_C( 28), INT8_C( 34), INT8_C( 117),
1610
+ INT8_C( 77), INT8_C( -32), INT8_C( 25), INT8_C( -74),
1611
+ INT8_C( 93), INT8_C(-108), INT8_C( 3), INT8_C( -90),
1612
+ INT8_C( 13), INT8_C( -29), INT8_C( -88), INT8_C( 116),
1613
+ INT8_C( 14), INT8_C( -29), INT8_C( 30), INT8_C( -26),
1614
+ INT8_C(-115), INT8_C( -36), INT8_C( 94), INT8_C(-125),
1615
+ INT8_C( 118), INT8_C( 125), INT8_C( -91), INT8_C( 31)),
1616
+ simde_mm512_set_epi8(INT8_C( -74), INT8_C( -13), INT8_C( -87), INT8_C( -10),
1617
+ INT8_C( 21), INT8_C( 49), INT8_C( -64), INT8_C( 52),
1618
+ INT8_C( -97), INT8_C(-103), INT8_C(-127), INT8_C( 53),
1619
+ INT8_C( 99), INT8_C( 80), INT8_C( 55), INT8_C( 111),
1620
+ INT8_C( 61), INT8_C( -93), INT8_C( -87), INT8_C( 81),
1621
+ INT8_C( 108), INT8_C( 89), INT8_C( 63), INT8_C(-109),
1622
+ INT8_C( -47), INT8_C( -32), INT8_C( 105), INT8_C( 91),
1623
+ INT8_C( 88), INT8_C( 85), INT8_C( -96), INT8_C( 88),
1624
+ INT8_C( -85), INT8_C( 3), INT8_C( 124), INT8_C( -33),
1625
+ INT8_C( -21), INT8_C( -7), INT8_C( -31), INT8_C(-126),
1626
+ INT8_C( 3), INT8_C( -17), INT8_C( 40), INT8_C( 5),
1627
+ INT8_C( 126), INT8_C( -60), INT8_C( -91), INT8_C(-112),
1628
+ INT8_C( 88), INT8_C( 11), INT8_C( 100), INT8_C( 114),
1629
+ INT8_C( 112), INT8_C( -53), INT8_C( 89), INT8_C( 78),
1630
+ INT8_C( 115), INT8_C( 117), INT8_C( -33), INT8_C( 14),
1631
+ INT8_C( -42), INT8_C( -15), INT8_C( 80), INT8_C( -46)),
1632
+ simde_mm512_set_epi8(INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1633
+ INT8_C( -42), INT8_C( 26), INT8_C( 0), INT8_C( -2),
1634
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -42),
1635
+ INT8_C( 18), INT8_C( -68), INT8_C( 54), INT8_C( -54),
1636
+ INT8_C( -4), INT8_C( 0), INT8_C( 0), INT8_C( 98),
1637
+ INT8_C( 110), INT8_C(-100), INT8_C( 82), INT8_C( 0),
1638
+ INT8_C( 0), INT8_C( 0), INT8_C(-100), INT8_C( 24),
1639
+ INT8_C(-120), INT8_C( 92), INT8_C( 0), INT8_C(-120),
1640
+ INT8_C( 0), INT8_C( 93), INT8_C( -85), INT8_C( 0),
1641
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1642
+ INT8_C( 93), INT8_C( 0), INT8_C( 117), INT8_C( 25),
1643
+ INT8_C( 6), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1644
+ INT8_C( -26), INT8_C( 14), INT8_C(-125), INT8_C( 125),
1645
+ INT8_C( 31), INT8_C( 0), INT8_C( 30), INT8_C( -29),
1646
+ INT8_C( 118), INT8_C( 94), INT8_C( 0), INT8_C( -29),
1647
+ INT8_C( 0), INT8_C( 0), INT8_C( 31), INT8_C( 0)) },
1648
+ { simde_mm512_set_epi8(INT8_C(-109), INT8_C( 14), INT8_C( -91), INT8_C( -44),
1649
+ INT8_C( 79), INT8_C( -4), INT8_C( 88), INT8_C( 49),
1650
+ INT8_C( -95), INT8_C( -92), INT8_C(-116), INT8_C( 8),
1651
+ INT8_C( 25), INT8_C( 30), INT8_C( -55), INT8_C(-120),
1652
+ INT8_C( -58), INT8_C( -84), INT8_C( 99), INT8_C( -92),
1653
+ INT8_C( -29), INT8_C( -47), INT8_C( 42), INT8_C( -56),
1654
+ INT8_C( 109), INT8_C( -71), INT8_C( -73), INT8_C( -30),
1655
+ INT8_C( -15), INT8_C(-106), INT8_C( -91), INT8_C( -57),
1656
+ INT8_C( 51), INT8_C( -8), INT8_C( 55), INT8_C( 36),
1657
+ INT8_C( -55), INT8_C(-103), INT8_C( 51), INT8_C( -28),
1658
+ INT8_C( 70), INT8_C( 114), INT8_C( -3), INT8_C( 49),
1659
+ INT8_C( 23), INT8_C( -28), INT8_C( -87), INT8_C( 57),
1660
+ INT8_C( 28), INT8_C( -12), INT8_C( -51), INT8_C( 37),
1661
+ INT8_C( 29), INT8_C( -58), INT8_C( -69), INT8_C( 30),
1662
+ INT8_C( 43), INT8_C( -65), INT8_C( -2), INT8_C( -83),
1663
+ INT8_C( -27), INT8_C(-122), INT8_C( 77), INT8_C( 47)),
1664
+ simde_mm512_set_epi8(INT8_C(-116), INT8_C(-127), INT8_C( -95), INT8_C( -97),
1665
+ INT8_C( -78), INT8_C( -53), INT8_C( -36), INT8_C( 62),
1666
+ INT8_C( 63), INT8_C( 28), INT8_C( -37), INT8_C( 40),
1667
+ INT8_C( -14), INT8_C( 2), INT8_C( -65), INT8_C( -67),
1668
+ INT8_C( 79), INT8_C( 51), INT8_C( -51), INT8_C( -64),
1669
+ INT8_C( -40), INT8_C(-102), INT8_C(-107), INT8_C( 82),
1670
+ INT8_C( 20), INT8_C( 54), INT8_C( 66), INT8_C( 7),
1671
+ INT8_C( 33), INT8_C( 108), INT8_C( -88), INT8_C( 69),
1672
+ INT8_C( 98), INT8_C( 43), INT8_C( 25), INT8_C( 58),
1673
+ INT8_C( 117), INT8_C( -34), INT8_C( -70), INT8_C( 3),
1674
+ INT8_C( 1), INT8_C( 100), INT8_C( 3), INT8_C( 14),
1675
+ INT8_C( 117), INT8_C( -91), INT8_C( -89), INT8_C( 66),
1676
+ INT8_C( 32), INT8_C( -35), INT8_C( 104), INT8_C( 65),
1677
+ INT8_C(-100), INT8_C( 27), INT8_C( 42), INT8_C( 91),
1678
+ INT8_C( -47), INT8_C( 39), INT8_C( -65), INT8_C(-124),
1679
+ INT8_C( -84), INT8_C( -95), INT8_C( -46), INT8_C(-113)),
1680
+ simde_mm512_set_epi8(INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1681
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 14),
1682
+ INT8_C(-109), INT8_C( -44), INT8_C( 0), INT8_C( 49),
1683
+ INT8_C( 0), INT8_C( 30), INT8_C( 0), INT8_C( 0),
1684
+ INT8_C( -58), INT8_C( -15), INT8_C( 0), INT8_C( 0),
1685
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C(-106),
1686
+ INT8_C( -30), INT8_C( -71), INT8_C(-106), INT8_C( 109),
1687
+ INT8_C( -91), INT8_C( -92), INT8_C( 0), INT8_C( -73),
1688
+ INT8_C( -28), INT8_C( -55), INT8_C( 51), INT8_C(-103),
1689
+ INT8_C( -3), INT8_C( 0), INT8_C( 0), INT8_C( 23),
1690
+ INT8_C( -87), INT8_C( 49), INT8_C( 23), INT8_C( -8),
1691
+ INT8_C( -3), INT8_C( 0), INT8_C( 0), INT8_C( -28),
1692
+ INT8_C( 47), INT8_C( 0), INT8_C( 30), INT8_C( 77),
1693
+ INT8_C( 0), INT8_C( 29), INT8_C( -58), INT8_C( 29),
1694
+ INT8_C( 0), INT8_C( 43), INT8_C( 0), INT8_C( 0),
1695
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0)) },
1696
+ { simde_mm512_set_epi8(INT8_C(-119), INT8_C( 55), INT8_C( -13), INT8_C(-118),
1697
+ INT8_C( 5), INT8_C( 14), INT8_C(-103), INT8_C( 58),
1698
+ INT8_C( 109), INT8_C(-113), INT8_C( -44), INT8_C( 126),
1699
+ INT8_C( 70), INT8_C(-126), INT8_C( 24), INT8_C(-117),
1700
+ INT8_C( 80), INT8_C( 25), INT8_C( 64), INT8_C( -89),
1701
+ INT8_C( 60), INT8_C( 5), INT8_C(-119), INT8_C( -29),
1702
+ INT8_C( -95), INT8_C( -26), INT8_C( 25), INT8_C( -65),
1703
+ INT8_C( -81), INT8_C( -84), INT8_C( 46), INT8_C( 62),
1704
+ INT8_C( -25), INT8_C(-116), INT8_C(-126), INT8_C(-103),
1705
+ INT8_C( 126), INT8_C( -39), INT8_C( 111), INT8_C( -10),
1706
+ INT8_C( -48), INT8_C( 122), INT8_C( -86), INT8_C( -25),
1707
+ INT8_C( 35), INT8_C( -4), INT8_C( -7), INT8_C( 76),
1708
+ INT8_C(-116), INT8_C( 1), INT8_C( 126), INT8_C( -30),
1709
+ INT8_C( -11), INT8_C( 82), INT8_C( 81), INT8_C( 27),
1710
+ INT8_C( -15), INT8_C( -14), INT8_C( 56), INT8_C( 60),
1711
+ INT8_C( -29), INT8_C( -65), INT8_C( -35), INT8_C( 21)),
1712
+ simde_mm512_set_epi8(INT8_C( 125), INT8_C( -43), INT8_C( -42), INT8_C( -51),
1713
+ INT8_C( -36), INT8_C( 38), INT8_C( 42), INT8_C( 18),
1714
+ INT8_C( 24), INT8_C( -25), INT8_C( 19), INT8_C( 15),
1715
+ INT8_C(-119), INT8_C(-124), INT8_C( 104), INT8_C( -93),
1716
+ INT8_C( 22), INT8_C( -16), INT8_C( 31), INT8_C( 116),
1717
+ INT8_C( -99), INT8_C( 45), INT8_C( -54), INT8_C( 50),
1718
+ INT8_C( -72), INT8_C(-107), INT8_C( 48), INT8_C( 118),
1719
+ INT8_C( -68), INT8_C( -15), INT8_C(-108), INT8_C( -29),
1720
+ INT8_C( 118), INT8_C( 96), INT8_C( -51), INT8_C( 107),
1721
+ INT8_C( -23), INT8_C( -97), INT8_C( -6), INT8_C( 91),
1722
+ INT8_C( -57), INT8_C( -67), INT8_C(-105), INT8_C( 68),
1723
+ INT8_C( -50), INT8_C( 16), INT8_C( -86), INT8_C( 6),
1724
+ INT8_C( 55), INT8_C(-118), INT8_C( 112), INT8_C( 125),
1725
+ INT8_C( 92), INT8_C( 91), INT8_C( -27), INT8_C( 53),
1726
+ INT8_C( 28), INT8_C( -66), INT8_C( -69), INT8_C(-117),
1727
+ INT8_C( -30), INT8_C(-106), INT8_C( 1), INT8_C( 95)),
1728
+ simde_mm512_set_epi8(INT8_C( -13), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1729
+ INT8_C( 0), INT8_C(-113), INT8_C( 14), INT8_C(-126),
1730
+ INT8_C( 58), INT8_C( 0), INT8_C( 70), INT8_C(-119),
1731
+ INT8_C( 0), INT8_C( 0), INT8_C( 58), INT8_C( 0),
1732
+ INT8_C( -26), INT8_C( 0), INT8_C( 80), INT8_C( -65),
1733
+ INT8_C( 0), INT8_C( 64), INT8_C( 0), INT8_C( -84),
1734
+ INT8_C( 0), INT8_C( 0), INT8_C( 62), INT8_C( -26),
1735
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1736
+ INT8_C( 122), INT8_C( 76), INT8_C( 0), INT8_C( 126),
1737
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 126),
1738
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -25),
1739
+ INT8_C( 0), INT8_C( 76), INT8_C( 0), INT8_C( 122),
1740
+ INT8_C( -15), INT8_C( 0), INT8_C( 21), INT8_C( 126),
1741
+ INT8_C( -30), INT8_C( -11), INT8_C( 0), INT8_C( 56),
1742
+ INT8_C( -30), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1743
+ INT8_C( 0), INT8_C( 0), INT8_C( -35), INT8_C(-116)) },
1744
+ { simde_mm512_set_epi8(INT8_C( 18), INT8_C(-124), INT8_C( -6), INT8_C( -41),
1745
+ INT8_C(-109), INT8_C( 19), INT8_C( 47), INT8_C( 73),
1746
+ INT8_C( -58), INT8_C( -50), INT8_C( 73), INT8_C( 110),
1747
+ INT8_C( 56), INT8_C( -30), INT8_C( -79), INT8_C( 123),
1748
+ INT8_C( 77), INT8_C( 62), INT8_C( -28), INT8_C( 45),
1749
+ INT8_C( -95), INT8_C( 12), INT8_C( 53), INT8_C( 75),
1750
+ INT8_C( 66), INT8_C( -89), INT8_C( 46), INT8_C( -47),
1751
+ INT8_C( 6), INT8_C( 4), INT8_C( 112), INT8_C( -34),
1752
+ INT8_C( 121), INT8_C( -3), INT8_C(-102), INT8_C(-115),
1753
+ INT8_C( -12), INT8_C( 80), INT8_C( 3), INT8_C( 56),
1754
+ INT8_C( 85), INT8_C( -43), INT8_C( -93), INT8_C( 34),
1755
+ INT8_C( -58), INT8_C(-101), INT8_C( 51), INT8_C( 1),
1756
+ INT8_C( -18), INT8_C( -90), INT8_C( -71), INT8_C( 74),
1757
+ INT8_C( -5), INT8_C(-113), INT8_C( 71), INT8_C( 61),
1758
+ INT8_C( 92), INT8_C( 73), INT8_C( 116), INT8_C( 110),
1759
+ INT8_C(-117), INT8_C( 96), INT8_C( -77), INT8_C( 45)),
1760
+ simde_mm512_set_epi8(INT8_C( 52), INT8_C( -84), INT8_C( 103), INT8_C(-105),
1761
+ INT8_C( -57), INT8_C( 17), INT8_C(-110), INT8_C(-113),
1762
+ INT8_C( 56), INT8_C( 125), INT8_C( 56), INT8_C( -88),
1763
+ INT8_C( -31), INT8_C( 119), INT8_C( -86), INT8_C( 114),
1764
+ INT8_C( -85), INT8_C( 14), INT8_C( 60), INT8_C( 84),
1765
+ INT8_C( -61), INT8_C(-111), INT8_C( 74), INT8_C( 113),
1766
+ INT8_C( 13), INT8_C( -89), INT8_C(-114), INT8_C( -79),
1767
+ INT8_C( -34), INT8_C( -73), INT8_C( -9), INT8_C(-108),
1768
+ INT8_C( 93), INT8_C( -78), INT8_C( -1), INT8_C(-102),
1769
+ INT8_C( 12), INT8_C( 117), INT8_C( 80), INT8_C( 44),
1770
+ INT8_C( 29), INT8_C( 18), INT8_C( 91), INT8_C( -23),
1771
+ INT8_C( 110), INT8_C(-126), INT8_C( -71), INT8_C( 65),
1772
+ INT8_C( -76), INT8_C( 85), INT8_C( 93), INT8_C( -86),
1773
+ INT8_C(-123), INT8_C(-115), INT8_C(-105), INT8_C( 75),
1774
+ INT8_C( 45), INT8_C( 22), INT8_C( 73), INT8_C( 74),
1775
+ INT8_C( 107), INT8_C( -60), INT8_C( -28), INT8_C( -57)),
1776
+ simde_mm512_set_epi8(INT8_C( 110), INT8_C( 0), INT8_C( -58), INT8_C( 0),
1777
+ INT8_C( 0), INT8_C( -79), INT8_C( 0), INT8_C( 0),
1778
+ INT8_C( 73), INT8_C( -6), INT8_C( 73), INT8_C( 0),
1779
+ INT8_C( 0), INT8_C( -58), INT8_C( 0), INT8_C( -30),
1780
+ INT8_C( 0), INT8_C( 62), INT8_C( 45), INT8_C( -47),
1781
+ INT8_C( 0), INT8_C( 0), INT8_C( 12), INT8_C( 112),
1782
+ INT8_C( -28), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1783
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1784
+ INT8_C(-102), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1785
+ INT8_C(-115), INT8_C( -93), INT8_C( 1), INT8_C(-115),
1786
+ INT8_C(-102), INT8_C(-101), INT8_C( -12), INT8_C( 0),
1787
+ INT8_C( -3), INT8_C( 0), INT8_C( 0), INT8_C( 51),
1788
+ INT8_C( 0), INT8_C( 116), INT8_C( -71), INT8_C( 0),
1789
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -5),
1790
+ INT8_C( -71), INT8_C( 73), INT8_C( 71), INT8_C(-113),
1791
+ INT8_C( -5), INT8_C( 0), INT8_C( 0), INT8_C( 0)) },
1792
+ { simde_mm512_set_epi8(INT8_C( 4), INT8_C( -30), INT8_C( -68), INT8_C( 57),
1793
+ INT8_C( 73), INT8_C( 25), INT8_C( -45), INT8_C( 112),
1794
+ INT8_C( 41), INT8_C( 41), INT8_C( -56), INT8_C( -93),
1795
+ INT8_C( 29), INT8_C( 99), INT8_C( 15), INT8_C( 122),
1796
+ INT8_C( 74), INT8_C( 0), INT8_C( 89), INT8_C( 61),
1797
+ INT8_C( 124), INT8_C( 36), INT8_C( -87), INT8_C( -25),
1798
+ INT8_C( 42), INT8_C(-125), INT8_C( -87), INT8_C( 69),
1799
+ INT8_C( 81), INT8_C( 4), INT8_C( 55), INT8_C( 107),
1800
+ INT8_C( 0), INT8_C( -7), INT8_C( 37), INT8_C( -15),
1801
+ INT8_C( 117), INT8_C( 9), INT8_C( -27), INT8_C( 11),
1802
+ INT8_C( 16), INT8_C( 87), INT8_C( 119), INT8_C(-107),
1803
+ INT8_C( -22), INT8_C( 27), INT8_C( -86), INT8_C( -63),
1804
+ INT8_C( 90), INT8_C( -44), INT8_C(-113), INT8_C(-126),
1805
+ INT8_C( -75), INT8_C( 67), INT8_C( 88), INT8_C( 105),
1806
+ INT8_C( 80), INT8_C( 7), INT8_C( 66), INT8_C( 126),
1807
+ INT8_C( 17), INT8_C( -20), INT8_C( -91), INT8_C( -99)),
1808
+ simde_mm512_set_epi8(INT8_C( 123), INT8_C( 117), INT8_C( 18), INT8_C( 2),
1809
+ INT8_C(-105), INT8_C( -51), INT8_C( -9), INT8_C( 72),
1810
+ INT8_C( 69), INT8_C(-116), INT8_C( 95), INT8_C(-110),
1811
+ INT8_C( -32), INT8_C( 110), INT8_C( -8), INT8_C( 85),
1812
+ INT8_C( -41), INT8_C( 80), INT8_C( -44), INT8_C( 110),
1813
+ INT8_C( -28), INT8_C( 116), INT8_C( 41), INT8_C( -31),
1814
+ INT8_C( 12), INT8_C( 40), INT8_C( 5), INT8_C( 1),
1815
+ INT8_C( -14), INT8_C( 66), INT8_C( -95), INT8_C( 106),
1816
+ INT8_C( 66), INT8_C( -91), INT8_C( -20), INT8_C(-109),
1817
+ INT8_C( -46), INT8_C( 41), INT8_C( 82), INT8_C( -61),
1818
+ INT8_C( 2), INT8_C( 3), INT8_C( 62), INT8_C( -90),
1819
+ INT8_C( 99), INT8_C( -54), INT8_C( -28), INT8_C( -21),
1820
+ INT8_C( 126), INT8_C( 115), INT8_C( -46), INT8_C( 76),
1821
+ INT8_C( -43), INT8_C( 46), INT8_C( 107), INT8_C( 75),
1822
+ INT8_C( -93), INT8_C( 67), INT8_C( -37), INT8_C( 4),
1823
+ INT8_C(-127), INT8_C( -50), INT8_C( -26), INT8_C( 99)),
1824
+ simde_mm512_set_epi8(INT8_C( 73), INT8_C( -56), INT8_C( 99), INT8_C( 99),
1825
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 112),
1826
+ INT8_C( -56), INT8_C( 0), INT8_C( 4), INT8_C( 0),
1827
+ INT8_C( 0), INT8_C( -30), INT8_C( 0), INT8_C( -56),
1828
+ INT8_C( 0), INT8_C( 107), INT8_C( 0), INT8_C( 0),
1829
+ INT8_C( 0), INT8_C( 69), INT8_C( -87), INT8_C( 0),
1830
+ INT8_C( 61), INT8_C( -25), INT8_C( -87), INT8_C( 55),
1831
+ INT8_C( 0), INT8_C( 4), INT8_C( 0), INT8_C( 36),
1832
+ INT8_C( 27), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1833
+ INT8_C( 0), INT8_C( -27), INT8_C( 27), INT8_C( 0),
1834
+ INT8_C( 27), INT8_C( -22), INT8_C( -7), INT8_C( 0),
1835
+ INT8_C( -22), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1836
+ INT8_C( -44), INT8_C( 17), INT8_C( 0), INT8_C(-126),
1837
+ INT8_C( 0), INT8_C( -44), INT8_C( -75), INT8_C( -75),
1838
+ INT8_C( 0), INT8_C( 17), INT8_C( 0), INT8_C( 126),
1839
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 17)) },
1840
+ { simde_mm512_set_epi8(INT8_C( 56), INT8_C( 24), INT8_C( -33), INT8_C( 82),
1841
+ INT8_C( 72), INT8_C( 63), INT8_C(-114), INT8_C( 14),
1842
+ INT8_C( 2), INT8_C( 71), INT8_C( -31), INT8_C( -46),
1843
+ INT8_C( 64), INT8_C( -11), INT8_C( 35), INT8_C( -7),
1844
+ INT8_C( -78), INT8_C( 125), INT8_C( -28), INT8_C( -59),
1845
+ INT8_C( 6), INT8_C(-127), INT8_C( 34), INT8_C( 64),
1846
+ INT8_C( 88), INT8_C( -88), INT8_C( 70), INT8_C( -90),
1847
+ INT8_C( 47), INT8_C( -21), INT8_C(-104), INT8_C( -27),
1848
+ INT8_C( -16), INT8_C( -29), INT8_C( 51), INT8_C(-116),
1849
+ INT8_C( -87), INT8_C( 91), INT8_C(-106), INT8_C( -3),
1850
+ INT8_C( -55), INT8_C( -15), INT8_C(-109), INT8_C(-108),
1851
+ INT8_C( -41), INT8_C( 79), INT8_C( 54), INT8_C( 68),
1852
+ INT8_C( -51), INT8_C(-108), INT8_C( -83), INT8_C( 104),
1853
+ INT8_C( 18), INT8_C(-128), INT8_C( -75), INT8_C( -12),
1854
+ INT8_C( 56), INT8_C(-104), INT8_C( 56), INT8_C( 47),
1855
+ INT8_C( -30), INT8_C( -15), INT8_C(-115), INT8_C( 88)),
1856
+ simde_mm512_set_epi8(INT8_C( 107), INT8_C( 125), INT8_C(-111), INT8_C( -89),
1857
+ INT8_C( -9), INT8_C( 122), INT8_C( -2), INT8_C( -26),
1858
+ INT8_C(-100), INT8_C( 80), INT8_C( 89), INT8_C( 38),
1859
+ INT8_C( 95), INT8_C( -82), INT8_C( -66), INT8_C( 108),
1860
+ INT8_C( 104), INT8_C( -20), INT8_C( 72), INT8_C( -82),
1861
+ INT8_C( 23), INT8_C( -45), INT8_C( -20), INT8_C( 8),
1862
+ INT8_C( -2), INT8_C( -77), INT8_C(-112), INT8_C( 102),
1863
+ INT8_C( 83), INT8_C( 80), INT8_C( 56), INT8_C( -53),
1864
+ INT8_C( -83), INT8_C( -86), INT8_C( 15), INT8_C( 30),
1865
+ INT8_C( -92), INT8_C( -2), INT8_C( 42), INT8_C( -79),
1866
+ INT8_C( 108), INT8_C( 44), INT8_C( 17), INT8_C( 83),
1867
+ INT8_C( -49), INT8_C( -44), INT8_C( -42), INT8_C( -54),
1868
+ INT8_C(-127), INT8_C( 12), INT8_C( 88), INT8_C(-118),
1869
+ INT8_C( -23), INT8_C( -69), INT8_C( -23), INT8_C( -36),
1870
+ INT8_C( -23), INT8_C( -80), INT8_C( 33), INT8_C( 82),
1871
+ INT8_C( -43), INT8_C( -91), INT8_C( -36), INT8_C( -56)),
1872
+ simde_mm512_set_epi8(INT8_C( 72), INT8_C( -33), INT8_C( 0), INT8_C( 0),
1873
+ INT8_C( 0), INT8_C( 63), INT8_C( 0), INT8_C( 0),
1874
+ INT8_C( 0), INT8_C( -7), INT8_C(-114), INT8_C( 71),
1875
+ INT8_C( 56), INT8_C( 0), INT8_C( 0), INT8_C( 82),
1876
+ INT8_C( 64), INT8_C( 0), INT8_C( 64), INT8_C( 0),
1877
+ INT8_C( 88), INT8_C( 0), INT8_C( 0), INT8_C( 64),
1878
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( -88),
1879
+ INT8_C( 47), INT8_C( -27), INT8_C( 64), INT8_C( 0),
1880
+ INT8_C( 0), INT8_C( 0), INT8_C( -16), INT8_C( -29),
1881
+ INT8_C( 0), INT8_C( 0), INT8_C( 91), INT8_C( 0),
1882
+ INT8_C(-116), INT8_C(-116), INT8_C( 54), INT8_C( -41),
1883
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1884
+ INT8_C( 0), INT8_C( 104), INT8_C( -12), INT8_C( 0),
1885
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0),
1886
+ INT8_C( 0), INT8_C( 0), INT8_C(-115), INT8_C( -15),
1887
+ INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0)) },
1888
+ };
1889
+
1890
+ for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
1891
+ simde__m512i r = simde_mm512_shuffle_epi8(test_vec[i].a, test_vec[i].b);
1892
+ simde_assert_m512i_i8(r, ==, test_vec[i].r);
1893
+ }
1894
+
1895
+ return MUNIT_OK;
1896
+ }
1897
+
1898
+ static MunitResult
1899
+ test_simde_mm512_cmpeq_epi8_mask(const MunitParameter params[], void* data) {
1900
+ (void) params;
1901
+ (void) data;
1902
+
1903
+ const struct {
1904
+ simde__m512i a;
1905
+ simde__m512i b;
1906
+ simde__mmask64 r;
1907
+ } test_vec[8] = {
1908
+ { simde_mm512_set_epi8(INT8_C( 73), INT8_C( 68), INT8_C( -71), INT8_C( -32),
1909
+ INT8_C( 100), INT8_C( 125), INT8_C( 89), INT8_C( 95),
1910
+ INT8_C( -23), INT8_C( 76), INT8_C( 84), INT8_C( -43),
1911
+ INT8_C( 86), INT8_C( 29), INT8_C( 64), INT8_C( 30),
1912
+ INT8_C( -17), INT8_C( -61), INT8_C( 115), INT8_C( -53),
1913
+ INT8_C(-100), INT8_C( 104), INT8_C( 111), INT8_C( -59),
1914
+ INT8_C( -31), INT8_C( 20), INT8_C( 31), INT8_C(-121),
1915
+ INT8_C( 90), INT8_C( 18), INT8_C( 6), INT8_C( 39),
1916
+ INT8_C( 15), INT8_C( 62), INT8_C( 39), INT8_C( -25),
1917
+ INT8_C( 60), INT8_C( 110), INT8_C( 45), INT8_C( 113),
1918
+ INT8_C( 81), INT8_C( 78), INT8_C( -53), INT8_C( 11),
1919
+ INT8_C( -27), INT8_C(-113), INT8_C( -3), INT8_C( 14),
1920
+ INT8_C( 109), INT8_C( 43), INT8_C( -54), INT8_C( 111),
1921
+ INT8_C( -91), INT8_C( -21), INT8_C( 102), INT8_C( 8),
1922
+ INT8_C( -41), INT8_C( -47), INT8_C( -90), INT8_C( 3),
1923
+ INT8_C( 18), INT8_C( 32), INT8_C( 89), INT8_C( -62)),
1924
+ simde_mm512_set_epi8(INT8_C( 73), INT8_C( 68), INT8_C( -71), INT8_C( -46),
1925
+ INT8_C( 72), INT8_C( 42), INT8_C( 65), INT8_C( -27),
1926
+ INT8_C( -37), INT8_C( 76), INT8_C( 84), INT8_C( -95),
1927
+ INT8_C( -29), INT8_C( 29), INT8_C( 64), INT8_C( 75),
1928
+ INT8_C( -17), INT8_C( -61), INT8_C( 76), INT8_C( 88),
1929
+ INT8_C(-100), INT8_C( -91), INT8_C( 111), INT8_C( -59),
1930
+ INT8_C( -31), INT8_C( -17), INT8_C( 31), INT8_C( 68),
1931
+ INT8_C( 90), INT8_C( 18), INT8_C(-110), INT8_C( 39),
1932
+ INT8_C( 15), INT8_C( 62), INT8_C( 24), INT8_C( -25),
1933
+ INT8_C( 80), INT8_C( 122), INT8_C( 103), INT8_C(-115),
1934
+ INT8_C( 81), INT8_C( 24), INT8_C( 32), INT8_C( 82),
1935
+ INT8_C( -27), INT8_C( 105), INT8_C( -3), INT8_C( 14),
1936
+ INT8_C( 109), INT8_C( 43), INT8_C( -54), INT8_C(-121),
1937
+ INT8_C( -91), INT8_C(-124), INT8_C( 102), INT8_C( 46),
1938
+ INT8_C( -41), INT8_C( 101), INT8_C( 51), INT8_C( 3),
1939
+ INT8_C( 18), INT8_C( 32), INT8_C( -12), INT8_C( -62)),
1940
+ UINT64_C(0xe066cbadd08bea9d) },
1941
+ { simde_mm512_set_epi8(INT8_C( -84), INT8_C(-108), INT8_C( 13), INT8_C( -97),
1942
+ INT8_C( -34), INT8_C( 27), INT8_C( 124), INT8_C(-120),
1943
+ INT8_C( 3), INT8_C( 26), INT8_C( 43), INT8_C( -96),
1944
+ INT8_C( -63), INT8_C( 49), INT8_C( 127), INT8_C( 0),
1945
+ INT8_C( -20), INT8_C( -31), INT8_C( 125), INT8_C( 14),
1946
+ INT8_C( -53), INT8_C( -87), INT8_C( 115), INT8_C( -20),
1947
+ INT8_C( -93), INT8_C( 70), INT8_C( 29), INT8_C( -90),
1948
+ INT8_C( 105), INT8_C( -54), INT8_C( 96), INT8_C(-106),
1949
+ INT8_C( 94), INT8_C( -52), INT8_C( -50), INT8_C( -79),
1950
+ INT8_C( -54), INT8_C( 78), INT8_C( 17), INT8_C( 81),
1951
+ INT8_C( 35), INT8_C( 120), INT8_C( 47), INT8_C( -25),
1952
+ INT8_C( 110), INT8_C( 55), INT8_C( 40), INT8_C( -31),
1953
+ INT8_C( 93), INT8_C( -23), INT8_C( 4), INT8_C( 45),
1954
+ INT8_C( 59), INT8_C( -33), INT8_C( 124), INT8_C( -52),
1955
+ INT8_C( 42), INT8_C( -14), INT8_C(-119), INT8_C( 88),
1956
+ INT8_C( -38), INT8_C( -31), INT8_C(-113), INT8_C( 33)),
1957
+ simde_mm512_set_epi8(INT8_C( 25), INT8_C(-108), INT8_C( 13), INT8_C( -97),
1958
+ INT8_C( -34), INT8_C( 119), INT8_C( 122), INT8_C( 82),
1959
+ INT8_C( 3), INT8_C(-111), INT8_C( 60), INT8_C( -96),
1960
+ INT8_C( 26), INT8_C( 3), INT8_C( -7), INT8_C( -8),
1961
+ INT8_C( 94), INT8_C( -31), INT8_C( -71), INT8_C( 14),
1962
+ INT8_C(-105), INT8_C( -87), INT8_C( 115), INT8_C( -68),
1963
+ INT8_C( -93), INT8_C( 70), INT8_C( -47), INT8_C(-106),
1964
+ INT8_C( 105), INT8_C( -54), INT8_C( 96), INT8_C( 105),
1965
+ INT8_C( 94), INT8_C( 84), INT8_C( -50), INT8_C( -79),
1966
+ INT8_C( -54), INT8_C( 78), INT8_C( 17), INT8_C( 39),
1967
+ INT8_C( 35), INT8_C( -87), INT8_C( -83), INT8_C( -25),
1968
+ INT8_C( 110), INT8_C( 2), INT8_C( -90), INT8_C( -31),
1969
+ INT8_C( 19), INT8_C( -23), INT8_C( 4), INT8_C( 16),
1970
+ INT8_C( 59), INT8_C( -33), INT8_C( 124), INT8_C( 127),
1971
+ INT8_C( -60), INT8_C( -14), INT8_C(-119), INT8_C( 88),
1972
+ INT8_C( -38), INT8_C( 109), INT8_C(-113), INT8_C( 25)),
1973
+ UINT64_C(0x789056cebe996e7a) },
1974
+ { simde_mm512_set_epi8(INT8_C( 93), INT8_C( 110), INT8_C( 120), INT8_C( 25),
1975
+ INT8_C( -37), INT8_C( -25), INT8_C( -34), INT8_C(-108),
1976
+ INT8_C( -77), INT8_C(-114), INT8_C( 79), INT8_C( -50),
1977
+ INT8_C( -94), INT8_C( 22), INT8_C( -28), INT8_C(-105),
1978
+ INT8_C( 110), INT8_C( 29), INT8_C( -9), INT8_C( -13),
1979
+ INT8_C( -71), INT8_C( 107), INT8_C(-115), INT8_C( 86),
1980
+ INT8_C(-127), INT8_C(-100), INT8_C( 1), INT8_C( 21),
1981
+ INT8_C( -55), INT8_C( -85), INT8_C( -55), INT8_C( -81),
1982
+ INT8_C( -41), INT8_C( 39), INT8_C( 18), INT8_C( -92),
1983
+ INT8_C( 11), INT8_C( -32), INT8_C( -53), INT8_C( 38),
1984
+ INT8_C( -49), INT8_C(-118), INT8_C( 20), INT8_C( 66),
1985
+ INT8_C(-106), INT8_C(-109), INT8_C( 45), INT8_C( -24),
1986
+ INT8_C( -47), INT8_C( 95), INT8_C( 50), INT8_C( 105),
1987
+ INT8_C( 58), INT8_C( 25), INT8_C( -53), INT8_C( -61),
1988
+ INT8_C( -90), INT8_C( 92), INT8_C( 83), INT8_C( 120),
1989
+ INT8_C( 107), INT8_C( -72), INT8_C( 3), INT8_C( -1)),
1990
+ simde_mm512_set_epi8(INT8_C( 93), INT8_C( 110), INT8_C( 120), INT8_C( -75),
1991
+ INT8_C( -37), INT8_C( -25), INT8_C( 14), INT8_C(-108),
1992
+ INT8_C( 5), INT8_C(-114), INT8_C( 79), INT8_C( 57),
1993
+ INT8_C( -94), INT8_C( 22), INT8_C( 4), INT8_C( 3),
1994
+ INT8_C( 66), INT8_C( 29), INT8_C( -9), INT8_C( 20),
1995
+ INT8_C( 93), INT8_C( 107), INT8_C( 6), INT8_C( 86),
1996
+ INT8_C( 84), INT8_C(-100), INT8_C( 81), INT8_C( 21),
1997
+ INT8_C( 117), INT8_C( 22), INT8_C( -55), INT8_C( -81),
1998
+ INT8_C( -41), INT8_C( -17), INT8_C( 19), INT8_C( 106),
1999
+ INT8_C( 114), INT8_C( -32), INT8_C( 98), INT8_C( -16),
2000
+ INT8_C( -49), INT8_C(-118), INT8_C( 20), INT8_C( 66),
2001
+ INT8_C(-106), INT8_C(-109), INT8_C( 97), INT8_C( 29),
2002
+ INT8_C( -47), INT8_C( -47), INT8_C( 50), INT8_C(-111),
2003
+ INT8_C( 58), INT8_C( 115), INT8_C( -53), INT8_C( 93),
2004
+ INT8_C( -90), INT8_C( -27), INT8_C( 41), INT8_C( 120),
2005
+ INT8_C( 119), INT8_C( 86), INT8_C( -36), INT8_C( -1)),
2006
+ UINT64_C(0xed6c655384fcaa91) },
2007
+ { simde_mm512_set_epi8(INT8_C( 10), INT8_C( 75), INT8_C( 91), INT8_C( -99),
2008
+ INT8_C( -88), INT8_C( 99), INT8_C( -86), INT8_C( 96),
2009
+ INT8_C( 14), INT8_C( -1), INT8_C( 14), INT8_C( 100),
2010
+ INT8_C(-114), INT8_C( 63), INT8_C( 68), INT8_C(-113),
2011
+ INT8_C( -59), INT8_C( -42), INT8_C( -14), INT8_C(-111),
2012
+ INT8_C( 6), INT8_C( 68), INT8_C( 11), INT8_C(-108),
2013
+ INT8_C( -62), INT8_C( 87), INT8_C( -72), INT8_C( -23),
2014
+ INT8_C( 78), INT8_C( -18), INT8_C( -36), INT8_C( -6),
2015
+ INT8_C( -68), INT8_C(-115), INT8_C( -24), INT8_C( 127),
2016
+ INT8_C( -36), INT8_C( 21), INT8_C( 38), INT8_C(-106),
2017
+ INT8_C( 33), INT8_C( -66), INT8_C(-121), INT8_C( 36),
2018
+ INT8_C( 24), INT8_C( 61), INT8_C( 66), INT8_C( 20),
2019
+ INT8_C( 63), INT8_C( -18), INT8_C( 11), INT8_C(-103),
2020
+ INT8_C( -19), INT8_C( -42), INT8_C( -69), INT8_C( 53),
2021
+ INT8_C( -40), INT8_C( 112), INT8_C( 8), INT8_C( -69),
2022
+ INT8_C(-102), INT8_C( 62), INT8_C( 85), INT8_C( 62)),
2023
+ simde_mm512_set_epi8(INT8_C( 10), INT8_C( 75), INT8_C( -74), INT8_C( -47),
2024
+ INT8_C( -88), INT8_C( 99), INT8_C( -86), INT8_C(-128),
2025
+ INT8_C( 94), INT8_C( -1), INT8_C( 99), INT8_C( 100),
2026
+ INT8_C( -25), INT8_C( 7), INT8_C( 59), INT8_C(-113),
2027
+ INT8_C( 119), INT8_C( -42), INT8_C( -14), INT8_C( 79),
2028
+ INT8_C( 4), INT8_C(-111), INT8_C( 11), INT8_C( 80),
2029
+ INT8_C( -78), INT8_C( 87), INT8_C( -72), INT8_C(-111),
2030
+ INT8_C( -95), INT8_C( -18), INT8_C( -36), INT8_C( -40),
2031
+ INT8_C( -68), INT8_C(-115), INT8_C( -24), INT8_C( -50),
2032
+ INT8_C( -36), INT8_C( 10), INT8_C( 47), INT8_C( 62),
2033
+ INT8_C( -15), INT8_C( -66), INT8_C(-122), INT8_C( 36),
2034
+ INT8_C( -22), INT8_C( 61), INT8_C( -11), INT8_C( 20),
2035
+ INT8_C( 63), INT8_C( 82), INT8_C(-113), INT8_C(-103),
2036
+ INT8_C( -19), INT8_C( -42), INT8_C( -69), INT8_C( 53),
2037
+ INT8_C( -40), INT8_C( 112), INT8_C( 8), INT8_C( -69),
2038
+ INT8_C(-102), INT8_C( 23), INT8_C( 85), INT8_C( 62)),
2039
+ UINT64_C(0xce516266e8559ffb) },
2040
+ { simde_mm512_set_epi8(INT8_C( -7), INT8_C( 2), INT8_C(-111), INT8_C( 64),
2041
+ INT8_C(-100), INT8_C( 87), INT8_C( 100), INT8_C( -30),
2042
+ INT8_C( -39), INT8_C( -38), INT8_C( 121), INT8_C( 55),
2043
+ INT8_C( -64), INT8_C( 81), INT8_C( -3), INT8_C( 79),
2044
+ INT8_C( -41), INT8_C( 118), INT8_C( -37), INT8_C( -34),
2045
+ INT8_C( -13), INT8_C( 63), INT8_C( 26), INT8_C( -81),
2046
+ INT8_C( 90), INT8_C( 43), INT8_C( -31), INT8_C( -17),
2047
+ INT8_C(-100), INT8_C( -71), INT8_C(-104), INT8_C( -66),
2048
+ INT8_C( -94), INT8_C( -89), INT8_C( 100), INT8_C( 36),
2049
+ INT8_C( 17), INT8_C( 116), INT8_C( -30), INT8_C( 16),
2050
+ INT8_C( 110), INT8_C( 98), INT8_C( 11), INT8_C( -42),
2051
+ INT8_C( -78), INT8_C( -68), INT8_C( -26), INT8_C( -35),
2052
+ INT8_C( 12), INT8_C( -40), INT8_C( -27), INT8_C( -40),
2053
+ INT8_C(-102), INT8_C(-109), INT8_C( 39), INT8_C( 29),
2054
+ INT8_C( 21), INT8_C( 9), INT8_C( 49), INT8_C( -13),
2055
+ INT8_C( -49), INT8_C( 7), INT8_C( 91), INT8_C( 15)),
2056
+ simde_mm512_set_epi8(INT8_C( 78), INT8_C( 2), INT8_C( -91), INT8_C( 64),
2057
+ INT8_C(-100), INT8_C( 41), INT8_C( -34), INT8_C( -46),
2058
+ INT8_C( -39), INT8_C( 31), INT8_C( 13), INT8_C( 55),
2059
+ INT8_C( -42), INT8_C( 33), INT8_C( -3), INT8_C( 79),
2060
+ INT8_C( -41), INT8_C( 118), INT8_C( -37), INT8_C( 90),
2061
+ INT8_C( -13), INT8_C( 63), INT8_C( 51), INT8_C( -81),
2062
+ INT8_C( 90), INT8_C( 43), INT8_C( -31), INT8_C(-112),
2063
+ INT8_C(-100), INT8_C( 41), INT8_C(-104), INT8_C( -66),
2064
+ INT8_C( -94), INT8_C( -89), INT8_C( -85), INT8_C(-109),
2065
+ INT8_C( 113), INT8_C( 116), INT8_C( 100), INT8_C( 16),
2066
+ INT8_C( 5), INT8_C( -50), INT8_C( -51), INT8_C( -42),
2067
+ INT8_C( -95), INT8_C( -68), INT8_C( -26), INT8_C( -35),
2068
+ INT8_C( -73), INT8_C( 71), INT8_C( 65), INT8_C( -40),
2069
+ INT8_C(-102), INT8_C( 7), INT8_C( 94), INT8_C( 29),
2070
+ INT8_C( 65), INT8_C( 9), INT8_C( 49), INT8_C( -13),
2071
+ INT8_C( -33), INT8_C( 7), INT8_C(-101), INT8_C( 15)),
2072
+ UINT64_C(0x5893edebc5171975) },
2073
+ { simde_mm512_set_epi8(INT8_C( -34), INT8_C( -12), INT8_C( 105), INT8_C(-124),
2074
+ INT8_C( -33), INT8_C( -79), INT8_C( -6), INT8_C( 54),
2075
+ INT8_C( 81), INT8_C( -11), INT8_C( 67), INT8_C( 63),
2076
+ INT8_C( 103), INT8_C( 119), INT8_C( -89), INT8_C( 40),
2077
+ INT8_C( 8), INT8_C( -38), INT8_C( 71), INT8_C( 66),
2078
+ INT8_C(-106), INT8_C( -45), INT8_C( 18), INT8_C( 100),
2079
+ INT8_C( 122), INT8_C( 93), INT8_C( -42), INT8_C( 5),
2080
+ INT8_C( -39), INT8_C( 37), INT8_C( -70), INT8_C( 13),
2081
+ INT8_C( 99), INT8_C( -57), INT8_C( -88), INT8_C( -36),
2082
+ INT8_C(-103), INT8_C( 25), INT8_C( 94), INT8_C(-107),
2083
+ INT8_C( -32), INT8_C( -12), INT8_C( -14), INT8_C( 32),
2084
+ INT8_C( -38), INT8_C( 10), INT8_C( 89), INT8_C( -69),
2085
+ INT8_C( -8), INT8_C( 69), INT8_C( -20), INT8_C(-122),
2086
+ INT8_C( -75), INT8_C( -71), INT8_C( 3), INT8_C( 102),
2087
+ INT8_C( 119), INT8_C( -58), INT8_C( -49), INT8_C( 80),
2088
+ INT8_C( -15), INT8_C( -97), INT8_C( 45), INT8_C( 96)),
2089
+ simde_mm512_set_epi8(INT8_C( -34), INT8_C( -12), INT8_C( 81), INT8_C(-115),
2090
+ INT8_C( -33), INT8_C( -79), INT8_C(-117), INT8_C( -34),
2091
+ INT8_C( 81), INT8_C( -11), INT8_C( -63), INT8_C( -61),
2092
+ INT8_C( 53), INT8_C( 119), INT8_C( 26), INT8_C( 40),
2093
+ INT8_C( 8), INT8_C( -38), INT8_C( 25), INT8_C( -23),
2094
+ INT8_C( -16), INT8_C( -45), INT8_C( -64), INT8_C( 100),
2095
+ INT8_C( 91), INT8_C( 93), INT8_C( -42), INT8_C( 5),
2096
+ INT8_C( 81), INT8_C( -76), INT8_C( -70), INT8_C( 13),
2097
+ INT8_C( 26), INT8_C( -57), INT8_C( -88), INT8_C( -64),
2098
+ INT8_C( -68), INT8_C( -91), INT8_C(-123), INT8_C( 38),
2099
+ INT8_C( -32), INT8_C( 29), INT8_C( 82), INT8_C( 54),
2100
+ INT8_C(-107), INT8_C( 10), INT8_C( 89), INT8_C( 28),
2101
+ INT8_C( -27), INT8_C( 41), INT8_C( -20), INT8_C(-122),
2102
+ INT8_C( -75), INT8_C( -71), INT8_C( 3), INT8_C( -30),
2103
+ INT8_C( 97), INT8_C( 18), INT8_C( -90), INT8_C( 107),
2104
+ INT8_C( 99), INT8_C( 10), INT8_C( 45), INT8_C( 96)),
2105
+ UINT64_C(0xccc5c57360863e03) },
2106
+ { simde_mm512_set_epi8(INT8_C( 48), INT8_C( 94), INT8_C( 112), INT8_C(-107),
2107
+ INT8_C( -34), INT8_C( -86), INT8_C( 65), INT8_C( 92),
2108
+ INT8_C( 97), INT8_C( -99), INT8_C( 28), INT8_C( 47),
2109
+ INT8_C(-117), INT8_C( -22), INT8_C(-111), INT8_C( -67),
2110
+ INT8_C( 113), INT8_C(-107), INT8_C( -23), INT8_C( 77),
2111
+ INT8_C( 60), INT8_C( 104), INT8_C(-116), INT8_C( -86),
2112
+ INT8_C(-113), INT8_C( -79), INT8_C( -64), INT8_C( -15),
2113
+ INT8_C(-123), INT8_C( 99), INT8_C( 25), INT8_C( 27),
2114
+ INT8_C( -40), INT8_C( 126), INT8_C( -66), INT8_C( -45),
2115
+ INT8_C( 57), INT8_C( -30), INT8_C( -12), INT8_C( 16),
2116
+ INT8_C( 122), INT8_C( 124), INT8_C( -75), INT8_C( 50),
2117
+ INT8_C( -6), INT8_C( 41), INT8_C( -47), INT8_C( -3),
2118
+ INT8_C( 29), INT8_C( -20), INT8_C( -45), INT8_C( -46),
2119
+ INT8_C( -45), INT8_C( -14), INT8_C( 99), INT8_C( 84),
2120
+ INT8_C( -62), INT8_C( -99), INT8_C(-104), INT8_C( -78),
2121
+ INT8_C( 106), INT8_C(-117), INT8_C( -94), INT8_C( 3)),
2122
+ simde_mm512_set_epi8(INT8_C( -88), INT8_C( -74), INT8_C( 2), INT8_C( -83),
2123
+ INT8_C(-112), INT8_C( -91), INT8_C( 65), INT8_C( 92),
2124
+ INT8_C( 97), INT8_C( 52), INT8_C( 28), INT8_C( -65),
2125
+ INT8_C(-117), INT8_C( -90), INT8_C(-111), INT8_C( -67),
2126
+ INT8_C( 113), INT8_C( 16), INT8_C(-124), INT8_C( 77),
2127
+ INT8_C( 60), INT8_C( -64), INT8_C(-116), INT8_C( -89),
2128
+ INT8_C( -7), INT8_C( -79), INT8_C( 46), INT8_C( 114),
2129
+ INT8_C(-107), INT8_C( 99), INT8_C( -79), INT8_C( 80),
2130
+ INT8_C( -40), INT8_C( -81), INT8_C( -66), INT8_C( -45),
2131
+ INT8_C( 57), INT8_C( -30), INT8_C( 66), INT8_C( 71),
2132
+ INT8_C( 122), INT8_C( 95), INT8_C( -43), INT8_C( 50),
2133
+ INT8_C( -6), INT8_C( 41), INT8_C( -47), INT8_C( 95),
2134
+ INT8_C( 5), INT8_C( -20), INT8_C( -45), INT8_C(-118),
2135
+ INT8_C( 70), INT8_C( 81), INT8_C( 0), INT8_C( 84),
2136
+ INT8_C( -62), INT8_C(-101), INT8_C( 13), INT8_C( 33),
2137
+ INT8_C(-104), INT8_C(-117), INT8_C( -11), INT8_C( 20)),
2138
+ UINT64_C(0x3ab9a44bc9e6184) },
2139
+ { simde_mm512_set_epi8(INT8_C( 67), INT8_C( 34), INT8_C( -33), INT8_C( 31),
2140
+ INT8_C(-128), INT8_C( 55), INT8_C( 93), INT8_C( 58),
2141
+ INT8_C( 57), INT8_C( 104), INT8_C(-110), INT8_C( 59),
2142
+ INT8_C( 55), INT8_C( 33), INT8_C(-122), INT8_C( 69),
2143
+ INT8_C( 57), INT8_C( 30), INT8_C( -13), INT8_C( -65),
2144
+ INT8_C( -22), INT8_C(-100), INT8_C( 18), INT8_C( -65),
2145
+ INT8_C( -60), INT8_C(-105), INT8_C( 27), INT8_C( -71),
2146
+ INT8_C( 52), INT8_C( 12), INT8_C( -4), INT8_C( 64),
2147
+ INT8_C( 20), INT8_C( 51), INT8_C( 87), INT8_C( 43),
2148
+ INT8_C( 26), INT8_C( 6), INT8_C( -66), INT8_C( -40),
2149
+ INT8_C( 87), INT8_C( 1), INT8_C( -26), INT8_C( 92),
2150
+ INT8_C( -33), INT8_C( 8), INT8_C( 42), INT8_C( -93),
2151
+ INT8_C( 44), INT8_C( -55), INT8_C(-113), INT8_C( -43),
2152
+ INT8_C( 32), INT8_C( 105), INT8_C( -27), INT8_C( 96),
2153
+ INT8_C( 72), INT8_C( 48), INT8_C( -46), INT8_C( 24),
2154
+ INT8_C( -10), INT8_C( -98), INT8_C( -56), INT8_C( -41)),
2155
+ simde_mm512_set_epi8(INT8_C( 67), INT8_C( -63), INT8_C( -33), INT8_C( 31),
2156
+ INT8_C(-128), INT8_C( 55), INT8_C( 93), INT8_C( -8),
2157
+ INT8_C( 82), INT8_C( 104), INT8_C(-110), INT8_C( 59),
2158
+ INT8_C( 55), INT8_C( 0), INT8_C( -25), INT8_C( 69),
2159
+ INT8_C( 27), INT8_C( 30), INT8_C( -13), INT8_C( -65),
2160
+ INT8_C( -7), INT8_C( -28), INT8_C( 18), INT8_C( -65),
2161
+ INT8_C( 67), INT8_C( -3), INT8_C( 57), INT8_C( -68),
2162
+ INT8_C( 52), INT8_C( 12), INT8_C( -4), INT8_C(-128),
2163
+ INT8_C( 20), INT8_C( 37), INT8_C( 9), INT8_C( 80),
2164
+ INT8_C( 26), INT8_C( 6), INT8_C( -66), INT8_C( 9),
2165
+ INT8_C( -98), INT8_C( 1), INT8_C( -26), INT8_C( 92),
2166
+ INT8_C( -33), INT8_C( 8), INT8_C( -81), INT8_C( -93),
2167
+ INT8_C( 116), INT8_C( -55), INT8_C(-113), INT8_C( -43),
2168
+ INT8_C( 32), INT8_C( 105), INT8_C( -27), INT8_C( 37),
2169
+ INT8_C( 72), INT8_C( -73), INT8_C( -19), INT8_C( 96),
2170
+ INT8_C( 52), INT8_C( -98), INT8_C( -45), INT8_C( -41)),
2171
+ UINT64_C(0xbe79730e8e7d7e85) },
2172
+ };
2173
+
2174
+ for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
2175
+ simde__mmask64 r = simde_mm512_cmpeq_epi8_mask(test_vec[i].a, test_vec[i].b);
2176
+ simde_assert_uint64(r, ==, test_vec[i].r);
2177
+ }
2178
+
2179
+ return MUNIT_OK;
2180
+ }
2181
+
2182
+ static MunitResult
2183
+ test_simde_mm512_cvtepi16_epi8(const MunitParameter params[], void* data) {
2184
+ (void) params;
2185
+ (void) data;
2186
+
2187
+ const struct {
2188
+ simde__m512i a;
2189
+ simde__m256i r;
2190
+ } test_vec[8] = {
2191
+ { simde_mm512_set_epi16(INT16_C( 14423), INT16_C( 3775), INT16_C( 16156), INT16_C( 17811),
2192
+ INT16_C(-14881), INT16_C(-30283), INT16_C( 27295), INT16_C(-12290),
2193
+ INT16_C( 12394), INT16_C( 32764), INT16_C( 8681), INT16_C( 21255),
2194
+ INT16_C(-21785), INT16_C(-24065), INT16_C(-28005), INT16_C( 15206),
2195
+ INT16_C( 6131), INT16_C(-29323), INT16_C( -9530), INT16_C( -6655),
2196
+ INT16_C( 14785), INT16_C( -9158), INT16_C( 7009), INT16_C( 4834),
2197
+ INT16_C(-15579), INT16_C( 5296), INT16_C( 20054), INT16_C( 12832),
2198
+ INT16_C( 15724), INT16_C( 5918), INT16_C( 25398), INT16_C( 14084)),
2199
+ simde_mm256_set_epi8(INT8_C( 87), INT8_C( -65), INT8_C( 28), INT8_C(-109),
2200
+ INT8_C( -33), INT8_C( -75), INT8_C( -97), INT8_C( -2),
2201
+ INT8_C( 106), INT8_C( -4), INT8_C( -23), INT8_C( 7),
2202
+ INT8_C( -25), INT8_C( -1), INT8_C(-101), INT8_C( 102),
2203
+ INT8_C( -13), INT8_C( 117), INT8_C( -58), INT8_C( 1),
2204
+ INT8_C( -63), INT8_C( 58), INT8_C( 97), INT8_C( -30),
2205
+ INT8_C( 37), INT8_C( -80), INT8_C( 86), INT8_C( 32),
2206
+ INT8_C( 108), INT8_C( 30), INT8_C( 54), INT8_C( 4)) },
2207
+ { simde_mm512_set_epi16(INT16_C( 8455), INT16_C( 1140), INT16_C(-23383), INT16_C( 22825),
2208
+ INT16_C(-21438), INT16_C( 8713), INT16_C(-25940), INT16_C(-31180),
2209
+ INT16_C(-13214), INT16_C( 10200), INT16_C(-21253), INT16_C( 2612),
2210
+ INT16_C(-27891), INT16_C( 14031), INT16_C( -9014), INT16_C( 10287),
2211
+ INT16_C(-11660), INT16_C( 26858), INT16_C(-19518), INT16_C( 2472),
2212
+ INT16_C( 27637), INT16_C( 14857), INT16_C( 30034), INT16_C(-24153),
2213
+ INT16_C( 31935), INT16_C( -6397), INT16_C( -2502), INT16_C( 31062),
2214
+ INT16_C( 30236), INT16_C( 5156), INT16_C( 18439), INT16_C(-13074)),
2215
+ simde_mm256_set_epi8(INT8_C( 7), INT8_C( 116), INT8_C( -87), INT8_C( 41),
2216
+ INT8_C( 66), INT8_C( 9), INT8_C( -84), INT8_C( 52),
2217
+ INT8_C( 98), INT8_C( -40), INT8_C( -5), INT8_C( 52),
2218
+ INT8_C( 13), INT8_C( -49), INT8_C( -54), INT8_C( 47),
2219
+ INT8_C( 116), INT8_C( -22), INT8_C( -62), INT8_C( -88),
2220
+ INT8_C( -11), INT8_C( 9), INT8_C( 82), INT8_C( -89),
2221
+ INT8_C( -65), INT8_C( 3), INT8_C( 58), INT8_C( 86),
2222
+ INT8_C( 28), INT8_C( 36), INT8_C( 7), INT8_C( -18)) },
2223
+ { simde_mm512_set_epi16(INT16_C( 18175), INT16_C( -3760), INT16_C( 10318), INT16_C(-31849),
2224
+ INT16_C(-32429), INT16_C(-26500), INT16_C( 24084), INT16_C(-23946),
2225
+ INT16_C( 2525), INT16_C( 2478), INT16_C(-15141), INT16_C(-27410),
2226
+ INT16_C( 30961), INT16_C(-31554), INT16_C( -9533), INT16_C(-20012),
2227
+ INT16_C(-21820), INT16_C( 11767), INT16_C(-17849), INT16_C( 24518),
2228
+ INT16_C(-22206), INT16_C(-24996), INT16_C(-19566), INT16_C( 17826),
2229
+ INT16_C( 25765), INT16_C( 29123), INT16_C( 28065), INT16_C( 1432),
2230
+ INT16_C(-24949), INT16_C( 30580), INT16_C( 20499), INT16_C(-29164)),
2231
+ simde_mm256_set_epi8(INT8_C( -1), INT8_C( 80), INT8_C( 78), INT8_C(-105),
2232
+ INT8_C( 83), INT8_C( 124), INT8_C( 20), INT8_C( 118),
2233
+ INT8_C( -35), INT8_C( -82), INT8_C( -37), INT8_C( -18),
2234
+ INT8_C( -15), INT8_C( -66), INT8_C( -61), INT8_C( -44),
2235
+ INT8_C( -60), INT8_C( -9), INT8_C( 71), INT8_C( -58),
2236
+ INT8_C( 66), INT8_C( 92), INT8_C(-110), INT8_C( -94),
2237
+ INT8_C( -91), INT8_C( -61), INT8_C( -95), INT8_C(-104),
2238
+ INT8_C(-117), INT8_C( 116), INT8_C( 19), INT8_C( 20)) },
2239
+ { simde_mm512_set_epi16(INT16_C( 10816), INT16_C( 16713), INT16_C( 29707), INT16_C( 15186),
2240
+ INT16_C( 31860), INT16_C(-28520), INT16_C( 18947), INT16_C(-27460),
2241
+ INT16_C( 10883), INT16_C( 310), INT16_C( 8277), INT16_C(-28768),
2242
+ INT16_C( -4553), INT16_C( 23273), INT16_C(-27696), INT16_C(-20678),
2243
+ INT16_C( 13089), INT16_C( -6620), INT16_C( 31575), INT16_C(-20169),
2244
+ INT16_C( 14440), INT16_C( -9264), INT16_C(-26919), INT16_C(-25720),
2245
+ INT16_C(-18371), INT16_C( 25765), INT16_C(-13162), INT16_C(-16808),
2246
+ INT16_C( 5695), INT16_C(-25080), INT16_C( 19142), INT16_C( 3825)),
2247
+ simde_mm256_set_epi8(INT8_C( 64), INT8_C( 73), INT8_C( 11), INT8_C( 82),
2248
+ INT8_C( 116), INT8_C(-104), INT8_C( 3), INT8_C( -68),
2249
+ INT8_C(-125), INT8_C( 54), INT8_C( 85), INT8_C( -96),
2250
+ INT8_C( 55), INT8_C( -23), INT8_C( -48), INT8_C( 58),
2251
+ INT8_C( 33), INT8_C( 36), INT8_C( 87), INT8_C( 55),
2252
+ INT8_C( 104), INT8_C( -48), INT8_C( -39), INT8_C(-120),
2253
+ INT8_C( 61), INT8_C( -91), INT8_C(-106), INT8_C( 88),
2254
+ INT8_C( 63), INT8_C( 8), INT8_C( -58), INT8_C( -15)) },
2255
+ { simde_mm512_set_epi16(INT16_C( 5079), INT16_C(-24746), INT16_C( 23487), INT16_C(-22087),
2256
+ INT16_C( -8346), INT16_C( 29848), INT16_C( 14241), INT16_C( 18254),
2257
+ INT16_C( -3124), INT16_C(-16186), INT16_C(-13364), INT16_C( 10652),
2258
+ INT16_C( 31028), INT16_C( 21346), INT16_C( 1443), INT16_C(-20222),
2259
+ INT16_C(-17028), INT16_C(-21899), INT16_C( 18933), INT16_C( 6935),
2260
+ INT16_C( 24619), INT16_C( 1737), INT16_C( 12596), INT16_C( 31606),
2261
+ INT16_C(-32691), INT16_C( 11392), INT16_C( 32126), INT16_C(-32712),
2262
+ INT16_C( 20927), INT16_C(-27859), INT16_C( 22640), INT16_C( 8969)),
2263
+ simde_mm256_set_epi8(INT8_C( -41), INT8_C( 86), INT8_C( -65), INT8_C( -71),
2264
+ INT8_C( 102), INT8_C(-104), INT8_C( -95), INT8_C( 78),
2265
+ INT8_C( -52), INT8_C( -58), INT8_C( -52), INT8_C(-100),
2266
+ INT8_C( 52), INT8_C( 98), INT8_C( -93), INT8_C( 2),
2267
+ INT8_C( 124), INT8_C( 117), INT8_C( -11), INT8_C( 23),
2268
+ INT8_C( 43), INT8_C( -55), INT8_C( 52), INT8_C( 118),
2269
+ INT8_C( 77), INT8_C(-128), INT8_C( 126), INT8_C( 56),
2270
+ INT8_C( -65), INT8_C( 45), INT8_C( 112), INT8_C( 9)) },
2271
+ { simde_mm512_set_epi16(INT16_C( 6901), INT16_C(-23435), INT16_C(-26040), INT16_C(-11295),
2272
+ INT16_C( 623), INT16_C(-23058), INT16_C( 17549), INT16_C(-23291),
2273
+ INT16_C( 17215), INT16_C( -4892), INT16_C( -849), INT16_C( 21086),
2274
+ INT16_C(-13056), INT16_C( 19549), INT16_C( 16492), INT16_C(-22767),
2275
+ INT16_C(-24079), INT16_C( 6429), INT16_C( 15302), INT16_C( -9175),
2276
+ INT16_C( 17671), INT16_C(-29856), INT16_C(-12718), INT16_C(-22914),
2277
+ INT16_C(-19613), INT16_C( 14088), INT16_C(-10443), INT16_C( 31757),
2278
+ INT16_C( 24994), INT16_C( 24174), INT16_C( -9596), INT16_C(-22481)),
2279
+ simde_mm256_set_epi8(INT8_C( -11), INT8_C( 117), INT8_C( 72), INT8_C( -31),
2280
+ INT8_C( 111), INT8_C( -18), INT8_C(-115), INT8_C( 5),
2281
+ INT8_C( 63), INT8_C( -28), INT8_C( -81), INT8_C( 94),
2282
+ INT8_C( 0), INT8_C( 93), INT8_C( 108), INT8_C( 17),
2283
+ INT8_C( -15), INT8_C( 29), INT8_C( -58), INT8_C( 41),
2284
+ INT8_C( 7), INT8_C( 96), INT8_C( 82), INT8_C( 126),
2285
+ INT8_C( 99), INT8_C( 8), INT8_C( 53), INT8_C( 13),
2286
+ INT8_C( -94), INT8_C( 110), INT8_C(-124), INT8_C( 47)) },
2287
+ { simde_mm512_set_epi16(INT16_C( 15520), INT16_C( 15679), INT16_C( 8541), INT16_C(-20376),
2288
+ INT16_C( 8861), INT16_C( 12926), INT16_C( 25712), INT16_C( -8433),
2289
+ INT16_C( -7066), INT16_C(-23691), INT16_C(-20251), INT16_C( 18056),
2290
+ INT16_C( 5498), INT16_C(-18751), INT16_C(-26321), INT16_C( 7918),
2291
+ INT16_C( 1647), INT16_C( 21774), INT16_C( 5430), INT16_C(-19512),
2292
+ INT16_C(-14894), INT16_C( 12466), INT16_C( -9612), INT16_C(-23130),
2293
+ INT16_C( 18357), INT16_C( 32349), INT16_C(-25760), INT16_C( -6559),
2294
+ INT16_C(-24198), INT16_C( 13614), INT16_C( 13473), INT16_C(-25578)),
2295
+ simde_mm256_set_epi8(INT8_C( -96), INT8_C( 63), INT8_C( 93), INT8_C( 104),
2296
+ INT8_C( -99), INT8_C( 126), INT8_C( 112), INT8_C( 15),
2297
+ INT8_C( 102), INT8_C( 117), INT8_C( -27), INT8_C(-120),
2298
+ INT8_C( 122), INT8_C( -63), INT8_C( 47), INT8_C( -18),
2299
+ INT8_C( 111), INT8_C( 14), INT8_C( 54), INT8_C( -56),
2300
+ INT8_C( -46), INT8_C( -78), INT8_C( 116), INT8_C( -90),
2301
+ INT8_C( -75), INT8_C( 93), INT8_C( 96), INT8_C( 97),
2302
+ INT8_C( 122), INT8_C( 46), INT8_C( -95), INT8_C( 22)) },
2303
+ { simde_mm512_set_epi16(INT16_C(-13944), INT16_C( 30422), INT16_C( 10523), INT16_C( 28986),
2304
+ INT16_C(-23789), INT16_C(-20754), INT16_C( 29282), INT16_C(-10845),
2305
+ INT16_C( 10721), INT16_C( 2777), INT16_C(-18838), INT16_C( 8324),
2306
+ INT16_C( 19192), INT16_C( 114), INT16_C( -9073), INT16_C( 2615),
2307
+ INT16_C( 21008), INT16_C( 12652), INT16_C(-14859), INT16_C( 5734),
2308
+ INT16_C( -5598), INT16_C(-10707), INT16_C( 2170), INT16_C( 23903),
2309
+ INT16_C( 29988), INT16_C( 24405), INT16_C( 5383), INT16_C(-29994),
2310
+ INT16_C( 7143), INT16_C( 22270), INT16_C( -1480), INT16_C( 15491)),
2311
+ simde_mm256_set_epi8(INT8_C(-120), INT8_C( -42), INT8_C( 27), INT8_C( 58),
2312
+ INT8_C( 19), INT8_C( -18), INT8_C( 98), INT8_C( -93),
2313
+ INT8_C( -31), INT8_C( -39), INT8_C( 106), INT8_C(-124),
2314
+ INT8_C( -8), INT8_C( 114), INT8_C(-113), INT8_C( 55),
2315
+ INT8_C( 16), INT8_C( 108), INT8_C( -11), INT8_C( 102),
2316
+ INT8_C( 34), INT8_C( 45), INT8_C( 122), INT8_C( 95),
2317
+ INT8_C( 36), INT8_C( 85), INT8_C( 7), INT8_C( -42),
2318
+ INT8_C( -25), INT8_C( -2), INT8_C( 56), INT8_C(-125)) }
2319
+ };
2320
+
2321
+ for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
2322
+ simde__m256i r = simde_mm512_cvtepi16_epi8(test_vec[i].a);
2323
+ simde_assert_m256i_i8(r, ==, test_vec[i].r);
2324
+ }
2325
+
2326
+ return MUNIT_OK;
2327
+ }
2328
+
2329
+ static MunitResult
2330
+ test_simde_mm512_cvtepi8_epi16(const MunitParameter params[], void* data) {
2331
+ (void) params;
2332
+ (void) data;
2333
+
2334
+ const struct {
2335
+ simde__m256i a;
2336
+ simde__m512i r;
2337
+ } test_vec[8] = {
2338
+ { simde_mm256_set_epi8(INT8_C( 7), INT8_C( 68), INT8_C( -86), INT8_C( -36),
2339
+ INT8_C( -19), INT8_C( 73), INT8_C( 92), INT8_C( -27),
2340
+ INT8_C( 55), INT8_C( -65), INT8_C( -50), INT8_C( 19),
2341
+ INT8_C(-111), INT8_C( -79), INT8_C( -16), INT8_C( 70),
2342
+ INT8_C( 27), INT8_C( -28), INT8_C( 116), INT8_C( 42),
2343
+ INT8_C( -4), INT8_C( 78), INT8_C( 31), INT8_C( 51),
2344
+ INT8_C( 92), INT8_C( 39), INT8_C(-125), INT8_C( 94),
2345
+ INT8_C( -78), INT8_C( 67), INT8_C( -43), INT8_C( -71)),
2346
+ simde_mm512_set_epi16(INT16_C( 7), INT16_C( 68), INT16_C( -86), INT16_C( -36),
2347
+ INT16_C( -19), INT16_C( 73), INT16_C( 92), INT16_C( -27),
2348
+ INT16_C( 55), INT16_C( -65), INT16_C( -50), INT16_C( 19),
2349
+ INT16_C( -111), INT16_C( -79), INT16_C( -16), INT16_C( 70),
2350
+ INT16_C( 27), INT16_C( -28), INT16_C( 116), INT16_C( 42),
2351
+ INT16_C( -4), INT16_C( 78), INT16_C( 31), INT16_C( 51),
2352
+ INT16_C( 92), INT16_C( 39), INT16_C( -125), INT16_C( 94),
2353
+ INT16_C( -78), INT16_C( 67), INT16_C( -43), INT16_C( -71)) },
2354
+ { simde_mm256_set_epi8(INT8_C( 29), INT8_C( -37), INT8_C( 27), INT8_C( 10),
2355
+ INT8_C( -22), INT8_C( -9), INT8_C(-125), INT8_C( -3),
2356
+ INT8_C( -53), INT8_C( 92), INT8_C( 103), INT8_C( 92),
2357
+ INT8_C( 123), INT8_C( 74), INT8_C( 36), INT8_C( 59),
2358
+ INT8_C( 46), INT8_C( -29), INT8_C(-103), INT8_C( -4),
2359
+ INT8_C( 109), INT8_C( -54), INT8_C( 41), INT8_C( 79),
2360
+ INT8_C( 15), INT8_C( -92), INT8_C( 102), INT8_C( 116),
2361
+ INT8_C( -42), INT8_C( 52), INT8_C( -61), INT8_C( -99)),
2362
+ simde_mm512_set_epi16(INT16_C( 29), INT16_C( -37), INT16_C( 27), INT16_C( 10),
2363
+ INT16_C( -22), INT16_C( -9), INT16_C( -125), INT16_C( -3),
2364
+ INT16_C( -53), INT16_C( 92), INT16_C( 103), INT16_C( 92),
2365
+ INT16_C( 123), INT16_C( 74), INT16_C( 36), INT16_C( 59),
2366
+ INT16_C( 46), INT16_C( -29), INT16_C( -103), INT16_C( -4),
2367
+ INT16_C( 109), INT16_C( -54), INT16_C( 41), INT16_C( 79),
2368
+ INT16_C( 15), INT16_C( -92), INT16_C( 102), INT16_C( 116),
2369
+ INT16_C( -42), INT16_C( 52), INT16_C( -61), INT16_C( -99)) },
2370
+ { simde_mm256_set_epi8(INT8_C( -9), INT8_C( -47), INT8_C( 107), INT8_C( -74),
2371
+ INT8_C(-126), INT8_C( 34), INT8_C( 64), INT8_C( 115),
2372
+ INT8_C( -65), INT8_C(-124), INT8_C( 54), INT8_C( 27),
2373
+ INT8_C( 41), INT8_C( 112), INT8_C( 61), INT8_C( 6),
2374
+ INT8_C( 7), INT8_C( 39), INT8_C(-109), INT8_C( -99),
2375
+ INT8_C( 63), INT8_C( -35), INT8_C(-111), INT8_C( -72),
2376
+ INT8_C( 109), INT8_C( -39), INT8_C( -99), INT8_C( 26),
2377
+ INT8_C( 66), INT8_C( -78), INT8_C( 30), INT8_C( 38)),
2378
+ simde_mm512_set_epi16(INT16_C( -9), INT16_C( -47), INT16_C( 107), INT16_C( -74),
2379
+ INT16_C( -126), INT16_C( 34), INT16_C( 64), INT16_C( 115),
2380
+ INT16_C( -65), INT16_C( -124), INT16_C( 54), INT16_C( 27),
2381
+ INT16_C( 41), INT16_C( 112), INT16_C( 61), INT16_C( 6),
2382
+ INT16_C( 7), INT16_C( 39), INT16_C( -109), INT16_C( -99),
2383
+ INT16_C( 63), INT16_C( -35), INT16_C( -111), INT16_C( -72),
2384
+ INT16_C( 109), INT16_C( -39), INT16_C( -99), INT16_C( 26),
2385
+ INT16_C( 66), INT16_C( -78), INT16_C( 30), INT16_C( 38)) },
2386
+ { simde_mm256_set_epi8(INT8_C( -72), INT8_C( -80), INT8_C( 101), INT8_C( 81),
2387
+ INT8_C( 23), INT8_C( -68), INT8_C( -57), INT8_C(-111),
2388
+ INT8_C( -3), INT8_C( 21), INT8_C( 121), INT8_C( -22),
2389
+ INT8_C(-104), INT8_C( -10), INT8_C( -37), INT8_C( 66),
2390
+ INT8_C( -93), INT8_C( -80), INT8_C( 34), INT8_C( 104),
2391
+ INT8_C( -39), INT8_C( -99), INT8_C( 18), INT8_C( 110),
2392
+ INT8_C(-118), INT8_C( 38), INT8_C( 112), INT8_C( -67),
2393
+ INT8_C( 60), INT8_C( 47), INT8_C( 32), INT8_C( 33)),
2394
+ simde_mm512_set_epi16(INT16_C( -72), INT16_C( -80), INT16_C( 101), INT16_C( 81),
2395
+ INT16_C( 23), INT16_C( -68), INT16_C( -57), INT16_C( -111),
2396
+ INT16_C( -3), INT16_C( 21), INT16_C( 121), INT16_C( -22),
2397
+ INT16_C( -104), INT16_C( -10), INT16_C( -37), INT16_C( 66),
2398
+ INT16_C( -93), INT16_C( -80), INT16_C( 34), INT16_C( 104),
2399
+ INT16_C( -39), INT16_C( -99), INT16_C( 18), INT16_C( 110),
2400
+ INT16_C( -118), INT16_C( 38), INT16_C( 112), INT16_C( -67),
2401
+ INT16_C( 60), INT16_C( 47), INT16_C( 32), INT16_C( 33)) },
2402
+ { simde_mm256_set_epi8(INT8_C( 120), INT8_C( -90), INT8_C(-101), INT8_C(-106),
2403
+ INT8_C( 70), INT8_C( -49), INT8_C( 29), INT8_C( -43),
2404
+ INT8_C( -42), INT8_C( 38), INT8_C( 16), INT8_C( -43),
2405
+ INT8_C( -40), INT8_C( -76), INT8_C( -67), INT8_C( 53),
2406
+ INT8_C( -73), INT8_C( -17), INT8_C( 66), INT8_C( 57),
2407
+ INT8_C( -65), INT8_C( -63), INT8_C( 17), INT8_C( -9),
2408
+ INT8_C( 95), INT8_C( -50), INT8_C(-118), INT8_C( 114),
2409
+ INT8_C( 58), INT8_C( -28), INT8_C( -81), INT8_C( -37)),
2410
+ simde_mm512_set_epi16(INT16_C( 120), INT16_C( -90), INT16_C( -101), INT16_C( -106),
2411
+ INT16_C( 70), INT16_C( -49), INT16_C( 29), INT16_C( -43),
2412
+ INT16_C( -42), INT16_C( 38), INT16_C( 16), INT16_C( -43),
2413
+ INT16_C( -40), INT16_C( -76), INT16_C( -67), INT16_C( 53),
2414
+ INT16_C( -73), INT16_C( -17), INT16_C( 66), INT16_C( 57),
2415
+ INT16_C( -65), INT16_C( -63), INT16_C( 17), INT16_C( -9),
2416
+ INT16_C( 95), INT16_C( -50), INT16_C( -118), INT16_C( 114),
2417
+ INT16_C( 58), INT16_C( -28), INT16_C( -81), INT16_C( -37)) },
2418
+ { simde_mm256_set_epi8(INT8_C( -97), INT8_C( 10), INT8_C( -75), INT8_C(-120),
2419
+ INT8_C( -32), INT8_C(-105), INT8_C( -75), INT8_C(-101),
2420
+ INT8_C( 71), INT8_C(-122), INT8_C(-112), INT8_C( -2),
2421
+ INT8_C( 60), INT8_C( -71), INT8_C( 101), INT8_C( -1),
2422
+ INT8_C( 95), INT8_C( -58), INT8_C( -70), INT8_C( 102),
2423
+ INT8_C( 115), INT8_C( -68), INT8_C(-110), INT8_C( -36),
2424
+ INT8_C( 6), INT8_C( 58), INT8_C( 73), INT8_C( 97),
2425
+ INT8_C( -51), INT8_C( -4), INT8_C( 58), INT8_C( 31)),
2426
+ simde_mm512_set_epi16(INT16_C( -97), INT16_C( 10), INT16_C( -75), INT16_C( -120),
2427
+ INT16_C( -32), INT16_C( -105), INT16_C( -75), INT16_C( -101),
2428
+ INT16_C( 71), INT16_C( -122), INT16_C( -112), INT16_C( -2),
2429
+ INT16_C( 60), INT16_C( -71), INT16_C( 101), INT16_C( -1),
2430
+ INT16_C( 95), INT16_C( -58), INT16_C( -70), INT16_C( 102),
2431
+ INT16_C( 115), INT16_C( -68), INT16_C( -110), INT16_C( -36),
2432
+ INT16_C( 6), INT16_C( 58), INT16_C( 73), INT16_C( 97),
2433
+ INT16_C( -51), INT16_C( -4), INT16_C( 58), INT16_C( 31)) },
2434
+ { simde_mm256_set_epi8(INT8_C( -73), INT8_C(-123), INT8_C( -11), INT8_C( 62),
2435
+ INT8_C( -96), INT8_C(-103), INT8_C( 85), INT8_C( 88),
2436
+ INT8_C( -19), INT8_C( 28), INT8_C(-107), INT8_C( -81),
2437
+ INT8_C(-125), INT8_C( 88), INT8_C( 84), INT8_C( 115),
2438
+ INT8_C( 105), INT8_C( -47), INT8_C( 68), INT8_C(-124),
2439
+ INT8_C( 32), INT8_C(-100), INT8_C( 10), INT8_C( -69),
2440
+ INT8_C( 124), INT8_C( -51), INT8_C( -89), INT8_C( -72),
2441
+ INT8_C( -92), INT8_C( -5), INT8_C( -46), INT8_C( 115)),
2442
+ simde_mm512_set_epi16(INT16_C( -73), INT16_C( -123), INT16_C( -11), INT16_C( 62),
2443
+ INT16_C( -96), INT16_C( -103), INT16_C( 85), INT16_C( 88),
2444
+ INT16_C( -19), INT16_C( 28), INT16_C( -107), INT16_C( -81),
2445
+ INT16_C( -125), INT16_C( 88), INT16_C( 84), INT16_C( 115),
2446
+ INT16_C( 105), INT16_C( -47), INT16_C( 68), INT16_C( -124),
2447
+ INT16_C( 32), INT16_C( -100), INT16_C( 10), INT16_C( -69),
2448
+ INT16_C( 124), INT16_C( -51), INT16_C( -89), INT16_C( -72),
2449
+ INT16_C( -92), INT16_C( -5), INT16_C( -46), INT16_C( 115)) },
2450
+ { simde_mm256_set_epi8(INT8_C( 104), INT8_C( 66), INT8_C( 51), INT8_C( 81),
2451
+ INT8_C( -69), INT8_C( 104), INT8_C( 126), INT8_C( -43),
2452
+ INT8_C( -40), INT8_C( 23), INT8_C(-124), INT8_C( 98),
2453
+ INT8_C(-125), INT8_C( 95), INT8_C( -36), INT8_C( 46),
2454
+ INT8_C(-115), INT8_C( -93), INT8_C( 2), INT8_C( -77),
2455
+ INT8_C( 80), INT8_C(-116), INT8_C( 61), INT8_C( -89),
2456
+ INT8_C( -37), INT8_C( 9), INT8_C( 84), INT8_C( -64),
2457
+ INT8_C( 94), INT8_C( 67), INT8_C( -53), INT8_C( 111)),
2458
+ simde_mm512_set_epi16(INT16_C( 104), INT16_C( 66), INT16_C( 51), INT16_C( 81),
2459
+ INT16_C( -69), INT16_C( 104), INT16_C( 126), INT16_C( -43),
2460
+ INT16_C( -40), INT16_C( 23), INT16_C( -124), INT16_C( 98),
2461
+ INT16_C( -125), INT16_C( 95), INT16_C( -36), INT16_C( 46),
2462
+ INT16_C( -115), INT16_C( -93), INT16_C( 2), INT16_C( -77),
2463
+ INT16_C( 80), INT16_C( -116), INT16_C( 61), INT16_C( -89),
2464
+ INT16_C( -37), INT16_C( 9), INT16_C( 84), INT16_C( -64),
2465
+ INT16_C( 94), INT16_C( 67), INT16_C( -53), INT16_C( 111)) }
2466
+ };
2467
+
2468
+ for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
2469
+ simde__m512i r = simde_mm512_cvtepi8_epi16(test_vec[i].a);
2470
+ simde_assert_m512i_i16(r, ==, test_vec[i].r);
2471
+ }
2472
+
2473
+ return MUNIT_OK;
2474
+ }
2475
+
2476
+ static MunitResult
2477
+ test_simde_mm512_cvtsepi16_epi8(const MunitParameter params[], void* data) {
2478
+ (void) params;
2479
+ (void) data;
2480
+
2481
+ const struct {
2482
+ simde__m512i a;
2483
+ simde__m256i r;
2484
+ } test_vec[8] = {
2485
+ { simde_mm512_set_epi16(INT16_C( 8002), INT16_C( -42), INT16_C( 317), INT16_C( 3),
2486
+ INT16_C( 2), INT16_C( 22), INT16_C( 2), INT16_C( 102),
2487
+ INT16_C( 0), INT16_C( 130), INT16_C( 297), INT16_C( 4068),
2488
+ INT16_C( -202), INT16_C( 4593), INT16_C( 1545), INT16_C( -2),
2489
+ INT16_C( -4392), INT16_C( -3947), INT16_C( 301), INT16_C(-11526),
2490
+ INT16_C( -1), INT16_C( 1), INT16_C( -437), INT16_C( 4),
2491
+ INT16_C( -139), INT16_C( -4859), INT16_C( -1), INT16_C( 12),
2492
+ INT16_C( -591), INT16_C( -40), INT16_C( -269), INT16_C( -24)),
2493
+ simde_mm256_set_epi8(INT8_C( 127), INT8_C( -42), INT8_C( 127), INT8_C( 3),
2494
+ INT8_C( 2), INT8_C( 22), INT8_C( 2), INT8_C( 102),
2495
+ INT8_C( 0), INT8_C( 127), INT8_C( 127), INT8_C( 127),
2496
+ INT8_C(-128), INT8_C( 127), INT8_C( 127), INT8_C( -2),
2497
+ INT8_C(-128), INT8_C(-128), INT8_C( 127), INT8_C(-128),
2498
+ INT8_C( -1), INT8_C( 1), INT8_C(-128), INT8_C( 4),
2499
+ INT8_C(-128), INT8_C(-128), INT8_C( -1), INT8_C( 12),
2500
+ INT8_C(-128), INT8_C( -40), INT8_C(-128), INT8_C( -24)) },
2501
+ { simde_mm512_set_epi16(INT16_C( 2), INT16_C( 49), INT16_C( 2), INT16_C( 131),
2502
+ INT16_C( 1), INT16_C(-15743), INT16_C( 1984), INT16_C( 9),
2503
+ INT16_C(-20648), INT16_C( -5458), INT16_C( -1), INT16_C( -1),
2504
+ INT16_C( -3713), INT16_C( -60), INT16_C( -1328), INT16_C( 4),
2505
+ INT16_C( 150), INT16_C( -8), INT16_C( 1864), INT16_C( -14),
2506
+ INT16_C( 20), INT16_C( 194), INT16_C( 0), INT16_C( 5954),
2507
+ INT16_C( -13), INT16_C( -288), INT16_C( 3162), INT16_C( 1),
2508
+ INT16_C( 14), INT16_C( 2628), INT16_C( -1), INT16_C( -8)),
2509
+ simde_mm256_set_epi8(INT8_C( 2), INT8_C( 49), INT8_C( 2), INT8_C( 127),
2510
+ INT8_C( 1), INT8_C(-128), INT8_C( 127), INT8_C( 9),
2511
+ INT8_C(-128), INT8_C(-128), INT8_C( -1), INT8_C( -1),
2512
+ INT8_C(-128), INT8_C( -60), INT8_C(-128), INT8_C( 4),
2513
+ INT8_C( 127), INT8_C( -8), INT8_C( 127), INT8_C( -14),
2514
+ INT8_C( 20), INT8_C( 127), INT8_C( 0), INT8_C( 127),
2515
+ INT8_C( -13), INT8_C(-128), INT8_C( 127), INT8_C( 1),
2516
+ INT8_C( 14), INT8_C( 127), INT8_C( -1), INT8_C( -8)) },
2517
+ { simde_mm512_set_epi16(INT16_C( -562), INT16_C( -4), INT16_C( 14830), INT16_C( 23439),
2518
+ INT16_C( -872), INT16_C( 2), INT16_C( -152), INT16_C( 42),
2519
+ INT16_C( 23882), INT16_C( -7), INT16_C(-27326), INT16_C( 5025),
2520
+ INT16_C( 7663), INT16_C(-14858), INT16_C( 0), INT16_C( -1),
2521
+ INT16_C( 27), INT16_C( 3), INT16_C( -6), INT16_C( 54),
2522
+ INT16_C( -16), INT16_C( -120), INT16_C( -1), INT16_C( 0),
2523
+ INT16_C( 50), INT16_C( -3), INT16_C( 1), INT16_C( -128),
2524
+ INT16_C( -6425), INT16_C( 1), INT16_C( -1), INT16_C( -167)),
2525
+ simde_mm256_set_epi8(INT8_C(-128), INT8_C( -4), INT8_C( 127), INT8_C( 127),
2526
+ INT8_C(-128), INT8_C( 2), INT8_C(-128), INT8_C( 42),
2527
+ INT8_C( 127), INT8_C( -7), INT8_C(-128), INT8_C( 127),
2528
+ INT8_C( 127), INT8_C(-128), INT8_C( 0), INT8_C( -1),
2529
+ INT8_C( 27), INT8_C( 3), INT8_C( -6), INT8_C( 54),
2530
+ INT8_C( -16), INT8_C(-120), INT8_C( -1), INT8_C( 0),
2531
+ INT8_C( 50), INT8_C( -3), INT8_C( 1), INT8_C(-128),
2532
+ INT8_C(-128), INT8_C( 1), INT8_C( -1), INT8_C(-128)) },
2533
+ { simde_mm512_set_epi16(INT16_C( 117), INT16_C( 75), INT16_C( -56), INT16_C( -1),
2534
+ INT16_C( 53), INT16_C( -283), INT16_C( 138), INT16_C( 3),
2535
+ INT16_C( -1), INT16_C( 6705), INT16_C( 138), INT16_C( -3521),
2536
+ INT16_C( 22), INT16_C( 1779), INT16_C( 2888), INT16_C( -1),
2537
+ INT16_C( -189), INT16_C( 17712), INT16_C( -18), INT16_C( 923),
2538
+ INT16_C( 1), INT16_C( 1), INT16_C( 2605), INT16_C( 353),
2539
+ INT16_C( 201), INT16_C( -120), INT16_C(-28865), INT16_C( -13),
2540
+ INT16_C( -701), INT16_C( 945), INT16_C( -2270), INT16_C( 0)),
2541
+ simde_mm256_set_epi8(INT8_C( 117), INT8_C( 75), INT8_C( -56), INT8_C( -1),
2542
+ INT8_C( 53), INT8_C(-128), INT8_C( 127), INT8_C( 3),
2543
+ INT8_C( -1), INT8_C( 127), INT8_C( 127), INT8_C(-128),
2544
+ INT8_C( 22), INT8_C( 127), INT8_C( 127), INT8_C( -1),
2545
+ INT8_C(-128), INT8_C( 127), INT8_C( -18), INT8_C( 127),
2546
+ INT8_C( 1), INT8_C( 1), INT8_C( 127), INT8_C( 127),
2547
+ INT8_C( 127), INT8_C(-120), INT8_C(-128), INT8_C( -13),
2548
+ INT8_C(-128), INT8_C( 127), INT8_C(-128), INT8_C( 0)) },
2549
+ { simde_mm512_set_epi16(INT16_C( 127), INT16_C( 406), INT16_C( 74), INT16_C( -2),
2550
+ INT16_C( -12), INT16_C( 196), INT16_C( -4), INT16_C( -4852),
2551
+ INT16_C( 38), INT16_C( -10), INT16_C( -408), INT16_C( 453),
2552
+ INT16_C( -6833), INT16_C( 37), INT16_C( -3464), INT16_C( -2),
2553
+ INT16_C( -488), INT16_C( 0), INT16_C( 643), INT16_C( 6),
2554
+ INT16_C( 51), INT16_C( 0), INT16_C( -4), INT16_C( -1),
2555
+ INT16_C(-14928), INT16_C( -46), INT16_C( 58), INT16_C( -3),
2556
+ INT16_C( 0), INT16_C( -343), INT16_C(-10019), INT16_C( 0)),
2557
+ simde_mm256_set_epi8(INT8_C( 127), INT8_C( 127), INT8_C( 74), INT8_C( -2),
2558
+ INT8_C( -12), INT8_C( 127), INT8_C( -4), INT8_C(-128),
2559
+ INT8_C( 38), INT8_C( -10), INT8_C(-128), INT8_C( 127),
2560
+ INT8_C(-128), INT8_C( 37), INT8_C(-128), INT8_C( -2),
2561
+ INT8_C(-128), INT8_C( 0), INT8_C( 127), INT8_C( 6),
2562
+ INT8_C( 51), INT8_C( 0), INT8_C( -4), INT8_C( -1),
2563
+ INT8_C(-128), INT8_C( -46), INT8_C( 58), INT8_C( -3),
2564
+ INT8_C( 0), INT8_C(-128), INT8_C(-128), INT8_C( 0)) },
2565
+ { simde_mm512_set_epi16(INT16_C( -1), INT16_C( -378), INT16_C( 3797), INT16_C( 1),
2566
+ INT16_C( -61), INT16_C( -6468), INT16_C( 0), INT16_C(-18745),
2567
+ INT16_C( 3), INT16_C( -5), INT16_C( -1), INT16_C( 4066),
2568
+ INT16_C( -1), INT16_C( -11), INT16_C( -2), INT16_C( 881),
2569
+ INT16_C( -116), INT16_C( 22), INT16_C( 1), INT16_C( -1127),
2570
+ INT16_C( 15), INT16_C( 2276), INT16_C( -149), INT16_C( 7345),
2571
+ INT16_C( 850), INT16_C( -84), INT16_C( -2), INT16_C( 0),
2572
+ INT16_C( -6), INT16_C( -3696), INT16_C( -2), INT16_C( 2136)),
2573
+ simde_mm256_set_epi8(INT8_C( -1), INT8_C(-128), INT8_C( 127), INT8_C( 1),
2574
+ INT8_C( -61), INT8_C(-128), INT8_C( 0), INT8_C(-128),
2575
+ INT8_C( 3), INT8_C( -5), INT8_C( -1), INT8_C( 127),
2576
+ INT8_C( -1), INT8_C( -11), INT8_C( -2), INT8_C( 127),
2577
+ INT8_C(-116), INT8_C( 22), INT8_C( 1), INT8_C(-128),
2578
+ INT8_C( 15), INT8_C( 127), INT8_C(-128), INT8_C( 127),
2579
+ INT8_C( 127), INT8_C( -84), INT8_C( -2), INT8_C( 0),
2580
+ INT8_C( -6), INT8_C(-128), INT8_C( -2), INT8_C( 127)) },
2581
+ { simde_mm512_set_epi16(INT16_C( -368), INT16_C( -1403), INT16_C( -10), INT16_C( 2787),
2582
+ INT16_C( 6145), INT16_C( -228), INT16_C( 2519), INT16_C( -1),
2583
+ INT16_C( -244), INT16_C( 10), INT16_C( 14), INT16_C( 113),
2584
+ INT16_C( 23), INT16_C( 1), INT16_C( 21613), INT16_C( -2),
2585
+ INT16_C( -2), INT16_C( -29), INT16_C( 9866), INT16_C( 356),
2586
+ INT16_C( -254), INT16_C( -21), INT16_C( 9), INT16_C( 9),
2587
+ INT16_C( 249), INT16_C( 3052), INT16_C( -8880), INT16_C( 7),
2588
+ INT16_C( 0), INT16_C( -4602), INT16_C( -8839), INT16_C( 18288)),
2589
+ simde_mm256_set_epi8(INT8_C(-128), INT8_C(-128), INT8_C( -10), INT8_C( 127),
2590
+ INT8_C( 127), INT8_C(-128), INT8_C( 127), INT8_C( -1),
2591
+ INT8_C(-128), INT8_C( 10), INT8_C( 14), INT8_C( 113),
2592
+ INT8_C( 23), INT8_C( 1), INT8_C( 127), INT8_C( -2),
2593
+ INT8_C( -2), INT8_C( -29), INT8_C( 127), INT8_C( 127),
2594
+ INT8_C(-128), INT8_C( -21), INT8_C( 9), INT8_C( 9),
2595
+ INT8_C( 127), INT8_C( 127), INT8_C(-128), INT8_C( 7),
2596
+ INT8_C( 0), INT8_C(-128), INT8_C(-128), INT8_C( 127)) },
2597
+ { simde_mm512_set_epi16(INT16_C( 502), INT16_C( 22), INT16_C( -4), INT16_C( 1),
2598
+ INT16_C( 2), INT16_C( -1148), INT16_C( 1), INT16_C( 8),
2599
+ INT16_C( 25), INT16_C( 8616), INT16_C( -1), INT16_C( 0),
2600
+ INT16_C( 1091), INT16_C( -370), INT16_C( 0), INT16_C( -1),
2601
+ INT16_C( -1549), INT16_C( 12), INT16_C( -2), INT16_C( 4),
2602
+ INT16_C( -3952), INT16_C( 1681), INT16_C( 3), INT16_C( 35),
2603
+ INT16_C( -6), INT16_C( 0), INT16_C( -2), INT16_C( 51),
2604
+ INT16_C( 0), INT16_C( 3760), INT16_C( -1), INT16_C( -1)),
2605
+ simde_mm256_set_epi8(INT8_C( 127), INT8_C( 22), INT8_C( -4), INT8_C( 1),
2606
+ INT8_C( 2), INT8_C(-128), INT8_C( 1), INT8_C( 8),
2607
+ INT8_C( 25), INT8_C( 127), INT8_C( -1), INT8_C( 0),
2608
+ INT8_C( 127), INT8_C(-128), INT8_C( 0), INT8_C( -1),
2609
+ INT8_C(-128), INT8_C( 12), INT8_C( -2), INT8_C( 4),
2610
+ INT8_C(-128), INT8_C( 127), INT8_C( 3), INT8_C( 35),
2611
+ INT8_C( -6), INT8_C( 0), INT8_C( -2), INT8_C( 51),
2612
+ INT8_C( 0), INT8_C( 127), INT8_C( -1), INT8_C( -1)) }
2613
+ };
2614
+
2615
+ for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
2616
+ simde__m256i r = simde_mm512_cvtsepi16_epi8(test_vec[i].a);
2617
+ simde_assert_m256i_i8(r, ==, test_vec[i].r);
2618
+ }
2619
+
2620
+ return MUNIT_OK;
2621
+ }
2622
+
2623
+ #endif /* defined(SIMDE_avx512bw_NATIVE) || defined(SIMDE_NO_NATIVE) || defined(SIMDE_ALWAYS_BUILD_NATIVE_TESTS) */
2624
+
2625
+ HEDLEY_DIAGNOSTIC_PUSH
2626
+ HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL
2627
+
2628
+ static MunitTest test_suite_tests[] = {
2629
+ #if defined(SIMDE_AVX512BW_NATIVE) || defined(SIMDE_NO_NATIVE) || defined(SIMDE_ALWAYS_BUILD_NATIVE_TESTS)
2630
+ SIMDE_TESTS_DEFINE_TEST(mm512_add_epi32),
2631
+ SIMDE_TESTS_DEFINE_TEST(mm512_add_epi64),
2632
+
2633
+ SIMDE_TESTS_DEFINE_TEST(mm512_adds_epi8),
2634
+ SIMDE_TESTS_DEFINE_TEST(mm512_adds_epi16),
2635
+ SIMDE_TESTS_DEFINE_TEST(mm512_adds_epu8),
2636
+ SIMDE_TESTS_DEFINE_TEST(mm512_adds_epu16),
2637
+
2638
+ SIMDE_TESTS_DEFINE_TEST(mm512_shuffle_epi8),
2639
+ SIMDE_TESTS_DEFINE_TEST(mm512_cmpeq_epi8_mask),
2640
+
2641
+ SIMDE_TESTS_DEFINE_TEST(mm512_cvtepi8_epi16),
2642
+ SIMDE_TESTS_DEFINE_TEST(mm512_cvtepi16_epi8),
2643
+
2644
+ SIMDE_TESTS_DEFINE_TEST(mm512_cvtsepi16_epi8),
2645
+
2646
+ #endif /* defined(SIMDE_AVX512bw_NATIVE) || defined(SIMDE_NO_NATIVE) || defined(SIMDE_ALWAYS_BUILD_NATIVE_TESTS) */
2647
+ { NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }
2648
+ };
2649
+
2650
+ HEDLEY_C_DECL MunitSuite* SIMDE_TESTS_GENERATE_SYMBOL(suite)(void) {
2651
+ static MunitSuite suite = { (char*) "/" HEDLEY_STRINGIFY(SIMDE_TESTS_CURRENT_ISAX), test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE };
2652
+
2653
+ return &suite;
2654
+ }
2655
+
2656
+ #if defined(SIMDE_TESTS_SINGLE_ISAX)
2657
+ int main(int argc, char* argv[HEDLEY_ARRAY_PARAM(argc + 1)]) {
2658
+ static MunitSuite suite = { "", test_suite_tests, NULL, 1, MUNIT_SUITE_OPTION_NONE };
2659
+
2660
+ return munit_suite_main(&suite, NULL, argc, argv);
2661
+ }
2662
+ #endif /* defined(SIMDE_TESTS_SINGLE_ISAX) */
2663
+
2664
+ HEDLEY_DIAGNOSTIC_POP