Update googletest to 1.18.0 and SIMDe to 0.8.2.

Googletest 1.18 asks for CMake 3.13 or newer, so configuring the tests no longer warns that CMake compatibility below 3.10 is deprecated.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ryan Henry 2026-09-24 14:30:19 -06:00
parent e4e666f459
commit 3f10e05176
912 changed files with 224964 additions and 11502 deletions

View file

@ -716,6 +716,67 @@ test_simde_mm512_maskz_cvtepi16_epi8(SIMDE_MUNIT_TEST_ARGS) {
return 0;
}
static int
test_simde_mm512_cvtepi16_epi32(SIMDE_MUNIT_TEST_ARGS) {
#if 1
const struct {
int16_t a[16];
int32_t r[16];
} test_vec[8] = {
{ { INT16_C( 11473), -INT16_C( 24916), INT16_C( 28320), INT16_C( 26158), -INT16_C( 7038), INT16_C( 18438), INT16_C( 16807), -INT16_C( 25518),
-INT16_C( 2083), INT16_C( 25639), INT16_C( 13124), INT16_C( 17659), -INT16_C( 12304), -INT16_C( 22808), -INT16_C( 23567), -INT16_C( 15722) },
{ INT32_C( 11473), -INT32_C( 24916), INT32_C( 28320), INT32_C( 26158), -INT32_C( 7038), INT32_C( 18438), INT32_C( 16807), -INT32_C( 25518),
-INT32_C( 2083), INT32_C( 25639), INT32_C( 13124), INT32_C( 17659), -INT32_C( 12304), -INT32_C( 22808), -INT32_C( 23567), -INT32_C( 15722) } },
{ { INT16_C( 17360), INT16_C( 28768), -INT16_C( 28751), INT16_C( 13526), -INT16_C( 9101), INT16_C( 6780), -INT16_C( 12771), -INT16_C( 1353),
-INT16_C( 8507), INT16_C( 2655), INT16_C( 23058), INT16_C( 590), INT16_C( 13865), INT16_C( 6824), INT16_C( 16090), -INT16_C( 21796) },
{ INT32_C( 17360), INT32_C( 28768), -INT32_C( 28751), INT32_C( 13526), -INT32_C( 9101), INT32_C( 6780), -INT32_C( 12771), -INT32_C( 1353),
-INT32_C( 8507), INT32_C( 2655), INT32_C( 23058), INT32_C( 590), INT32_C( 13865), INT32_C( 6824), INT32_C( 16090), -INT32_C( 21796) } },
{ { INT16_C( 15745), INT16_C( 13082), -INT16_C( 3636), INT16_C( 16231), -INT16_C( 7219), -INT16_C( 5287), INT16_C( 4273), INT16_C( 30693),
INT16_C( 17647), INT16_C( 385), -INT16_C( 12385), -INT16_C( 14333), -INT16_C( 21754), -INT16_C( 7965), -INT16_C( 16407), INT16_C( 27530) },
{ INT32_C( 15745), INT32_C( 13082), -INT32_C( 3636), INT32_C( 16231), -INT32_C( 7219), -INT32_C( 5287), INT32_C( 4273), INT32_C( 30693),
INT32_C( 17647), INT32_C( 385), -INT32_C( 12385), -INT32_C( 14333), -INT32_C( 21754), -INT32_C( 7965), -INT32_C( 16407), INT32_C( 27530) } },
{ { -INT16_C( 23300), -INT16_C( 14178), INT16_C( 1429), INT16_C( 25351), INT16_C( 25064), -INT16_C( 26290), INT16_C( 13169), INT16_C( 24592),
-INT16_C( 28296), INT16_C( 5985), INT16_C( 25697), INT16_C( 26591), -INT16_C( 15857), -INT16_C( 1721), -INT16_C( 11902), INT16_C( 32356) },
{ -INT32_C( 23300), -INT32_C( 14178), INT32_C( 1429), INT32_C( 25351), INT32_C( 25064), -INT32_C( 26290), INT32_C( 13169), INT32_C( 24592),
-INT32_C( 28296), INT32_C( 5985), INT32_C( 25697), INT32_C( 26591), -INT32_C( 15857), -INT32_C( 1721), -INT32_C( 11902), INT32_C( 32356) } },
{ { INT16_C( 629), INT16_C( 2887), INT16_C( 19975), -INT16_C( 4242), -INT16_C( 17233), INT16_C( 8584), -INT16_C( 26129), INT16_C( 26497),
-INT16_C( 7382), -INT16_C( 29826), INT16_C( 24135), INT16_C( 22514), INT16_C( 14624), -INT16_C( 23984), -INT16_C( 19446), -INT16_C( 32735) },
{ INT32_C( 629), INT32_C( 2887), INT32_C( 19975), -INT32_C( 4242), -INT32_C( 17233), INT32_C( 8584), -INT32_C( 26129), INT32_C( 26497),
-INT32_C( 7382), -INT32_C( 29826), INT32_C( 24135), INT32_C( 22514), INT32_C( 14624), -INT32_C( 23984), -INT32_C( 19446), -INT32_C( 32735) } },
{ { INT16_C( 26806), -INT16_C( 17013), -INT16_C( 1610), INT16_C( 26284), INT16_C( 13493), -INT16_C( 23417), INT16_C( 2253), -INT16_C( 2036),
-INT16_C( 29973), INT16_C( 13187), INT16_C( 30440), INT16_C( 2442), -INT16_C( 9553), -INT16_C( 17749), -INT16_C( 13170), INT16_C( 17466) },
{ INT32_C( 26806), -INT32_C( 17013), -INT32_C( 1610), INT32_C( 26284), INT32_C( 13493), -INT32_C( 23417), INT32_C( 2253), -INT32_C( 2036),
-INT32_C( 29973), INT32_C( 13187), INT32_C( 30440), INT32_C( 2442), -INT32_C( 9553), -INT32_C( 17749), -INT32_C( 13170), INT32_C( 17466) } },
{ { -INT16_C( 15052), -INT16_C( 5375), -INT16_C( 21058), INT16_C( 29521), -INT16_C( 10015), -INT16_C( 20713), INT16_C( 9184), -INT16_C( 13145),
INT16_C( 10926), -INT16_C( 26881), -INT16_C( 30304), INT16_C( 20639), INT16_C( 19299), -INT16_C( 3830), INT16_C( 17431), INT16_C( 19509) },
{ -INT32_C( 15052), -INT32_C( 5375), -INT32_C( 21058), INT32_C( 29521), -INT32_C( 10015), -INT32_C( 20713), INT32_C( 9184), -INT32_C( 13145),
INT32_C( 10926), -INT32_C( 26881), -INT32_C( 30304), INT32_C( 20639), INT32_C( 19299), -INT32_C( 3830), INT32_C( 17431), INT32_C( 19509) } },
{ { INT16_C( 13833), -INT16_C( 14537), -INT16_C( 30493), -INT16_C( 15302), INT16_C( 20832), INT16_C( 16499), INT16_C( 6773), INT16_C( 8972),
INT16_C( 2885), -INT16_C( 6727), INT16_C( 22932), -INT16_C( 2251), INT16_C( 16292), -INT16_C( 17432), INT16_C( 7555), -INT16_C( 29689) },
{ INT32_C( 13833), -INT32_C( 14537), -INT32_C( 30493), -INT32_C( 15302), INT32_C( 20832), INT32_C( 16499), INT32_C( 6773), INT32_C( 8972),
INT32_C( 2885), -INT32_C( 6727), INT32_C( 22932), -INT32_C( 2251), INT32_C( 16292), -INT32_C( 17432), INT32_C( 7555), -INT32_C( 29689) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m256i a = simde_mm256_loadu_epi16(test_vec[i].a);
simde__m512i r = simde_mm512_cvtepi16_epi32(a);
simde_test_x86_assert_equal_i32x16(r, simde_mm512_loadu_epi32(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde__m256i a = simde_test_x86_random_i16x16();
simde__m512i r = simde_mm512_cvtepi16_epi32(a);
simde_test_x86_write_i16x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_x86_write_i32x16(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_mm512_cvtepi8_epi16(SIMDE_MUNIT_TEST_ARGS) {
const struct {
@ -860,6 +921,83 @@ test_simde_mm512_cvtepi8_epi16(SIMDE_MUNIT_TEST_ARGS) {
return 0;
}
static int
test_simde_mm512_cvtepi32_ps (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
const int32_t a[16];
const simde_float32 r[16];
} test_vec[] = {
{ { -INT32_C( 306772899), -INT32_C( 67271131), -INT32_C( 861816948), INT32_C( 1650063263), -INT32_C( 965362418), INT32_C( 1647322575), INT32_C( 278105299), INT32_C( 223924400),
-INT32_C( 84275243), INT32_C( 569833365), INT32_C( 1324259247), -INT32_C( 1649326194), -INT32_C( 731699707), INT32_C( 506893131), -INT32_C( 819017185), INT32_C( 1876723354) },
{ SIMDE_FLOAT32_C(-306772896.00), SIMDE_FLOAT32_C(-67271128.00), SIMDE_FLOAT32_C(-861816960.00), SIMDE_FLOAT32_C(1650063232.00),
SIMDE_FLOAT32_C(-965362432.00), SIMDE_FLOAT32_C(1647322624.00), SIMDE_FLOAT32_C(278105312.00), SIMDE_FLOAT32_C(223924400.00),
SIMDE_FLOAT32_C(-84275240.00), SIMDE_FLOAT32_C(569833344.00), SIMDE_FLOAT32_C(1324259200.00), SIMDE_FLOAT32_C(-1649326208.00),
SIMDE_FLOAT32_C(-731699712.00), SIMDE_FLOAT32_C(506893120.00), SIMDE_FLOAT32_C(-819017216.00), SIMDE_FLOAT32_C(1876723328.00) } },
{ { INT32_C( 728422293), INT32_C( 2102157518), -INT32_C( 2033435913), -INT32_C( 2027717246), -INT32_C( 279214429), INT32_C( 940413465), -INT32_C( 167232420), INT32_C( 1483138242),
-INT32_C( 1971072837), INT32_C( 654823216), -INT32_C( 1934765302), -INT32_C( 200028080), INT32_C( 1877175894), INT32_C( 1554575360), -INT32_C( 279728084), INT32_C( 1346877844) },
{ SIMDE_FLOAT32_C(728422272.00), SIMDE_FLOAT32_C(2102157568.00), SIMDE_FLOAT32_C(-2033435904.00), SIMDE_FLOAT32_C(-2027717248.00),
SIMDE_FLOAT32_C(-279214432.00), SIMDE_FLOAT32_C(940413440.00), SIMDE_FLOAT32_C(-167232416.00), SIMDE_FLOAT32_C(1483138304.00),
SIMDE_FLOAT32_C(-1971072896.00), SIMDE_FLOAT32_C(654823232.00), SIMDE_FLOAT32_C(-1934765312.00), SIMDE_FLOAT32_C(-200028080.00),
SIMDE_FLOAT32_C(1877175936.00), SIMDE_FLOAT32_C(1554575360.00), SIMDE_FLOAT32_C(-279728096.00), SIMDE_FLOAT32_C(1346877824.00) } },
{ { -INT32_C( 1176843639), -INT32_C( 1545543271), INT32_C( 87002805), -INT32_C( 1241955746), -INT32_C( 1322984271), -INT32_C( 116470579), INT32_C( 300441980), -INT32_C( 1553912038),
-INT32_C( 1822671879), -INT32_C( 784974820), INT32_C( 701982410), INT32_C( 1507774632), INT32_C( 2047541933), INT32_C( 1265834447), -INT32_C( 1805886342), -INT32_C( 2059944565) },
{ SIMDE_FLOAT32_C(-1176843648.00), SIMDE_FLOAT32_C(-1545543296.00), SIMDE_FLOAT32_C(87002808.00), SIMDE_FLOAT32_C(-1241955712.00),
SIMDE_FLOAT32_C(-1322984320.00), SIMDE_FLOAT32_C(-116470576.00), SIMDE_FLOAT32_C(300441984.00), SIMDE_FLOAT32_C(-1553912064.00),
SIMDE_FLOAT32_C(-1822671872.00), SIMDE_FLOAT32_C(-784974848.00), SIMDE_FLOAT32_C(701982400.00), SIMDE_FLOAT32_C(1507774592.00),
SIMDE_FLOAT32_C(2047541888.00), SIMDE_FLOAT32_C(1265834496.00), SIMDE_FLOAT32_C(-1805886336.00), SIMDE_FLOAT32_C(-2059944576.00) } },
{ { INT32_C( 353932280), -INT32_C( 1696182577), INT32_C( 1573109172), INT32_C( 1001824654), INT32_C( 1924514211), INT32_C( 1421748442), INT32_C( 283646596), -INT32_C( 795533352),
-INT32_C( 2098877006), -INT32_C( 1340289797), INT32_C( 386785161), INT32_C( 592626560), INT32_C( 1603667845), -INT32_C( 1263250384), INT32_C( 1187290222), INT32_C( 1847024060) },
{ SIMDE_FLOAT32_C(353932288.00), SIMDE_FLOAT32_C(-1696182528.00), SIMDE_FLOAT32_C(1573109120.00), SIMDE_FLOAT32_C(1001824640.00),
SIMDE_FLOAT32_C(1924514176.00), SIMDE_FLOAT32_C(1421748480.00), SIMDE_FLOAT32_C(283646592.00), SIMDE_FLOAT32_C(-795533376.00),
SIMDE_FLOAT32_C(-2098877056.00), SIMDE_FLOAT32_C(-1340289792.00), SIMDE_FLOAT32_C(386785152.00), SIMDE_FLOAT32_C(592626560.00),
SIMDE_FLOAT32_C(1603667840.00), SIMDE_FLOAT32_C(-1263250432.00), SIMDE_FLOAT32_C(1187290240.00), SIMDE_FLOAT32_C(1847024000.00) } },
{ { INT32_C( 49347590), INT32_C( 1387400392), INT32_C( 1802092523), INT32_C( 126860418), -INT32_C( 211343933), -INT32_C( 408413319), INT32_C( 1932422327), -INT32_C( 857586234),
INT32_C( 181326401), -INT32_C( 899907361), -INT32_C( 1036597953), INT32_C( 1170851201), INT32_C( 1664626922), INT32_C( 55238731), INT32_C( 326531149), -INT32_C( 2139971) },
{ SIMDE_FLOAT32_C(49347592.00), SIMDE_FLOAT32_C(1387400448.00), SIMDE_FLOAT32_C(1802092544.00), SIMDE_FLOAT32_C(126860416.00),
SIMDE_FLOAT32_C(-211343936.00), SIMDE_FLOAT32_C(-408413312.00), SIMDE_FLOAT32_C(1932422272.00), SIMDE_FLOAT32_C(-857586240.00),
SIMDE_FLOAT32_C(181326400.00), SIMDE_FLOAT32_C(-899907392.00), SIMDE_FLOAT32_C(-1036597952.00), SIMDE_FLOAT32_C(1170851200.00),
SIMDE_FLOAT32_C(1664626944.00), SIMDE_FLOAT32_C(55238732.00), SIMDE_FLOAT32_C(326531136.00), SIMDE_FLOAT32_C(-2139971.00) } },
{ { INT32_C( 168406571), INT32_C( 1859413294), -INT32_C( 1406137814), -INT32_C( 1175324209), INT32_C( 1964779818), INT32_C( 1467508490), -INT32_C( 1653936161), INT32_C( 1922844999),
INT32_C( 645703159), INT32_C( 882135306), INT32_C( 736150619), -INT32_C( 404434499), INT32_C( 89981435), INT32_C( 1197266280), INT32_C( 216319684), INT32_C( 125730831) },
{ SIMDE_FLOAT32_C(168406576.00), SIMDE_FLOAT32_C(1859413248.00), SIMDE_FLOAT32_C(-1406137856.00), SIMDE_FLOAT32_C(-1175324160.00),
SIMDE_FLOAT32_C(1964779776.00), SIMDE_FLOAT32_C(1467508480.00), SIMDE_FLOAT32_C(-1653936128.00), SIMDE_FLOAT32_C(1922845056.00),
SIMDE_FLOAT32_C(645703168.00), SIMDE_FLOAT32_C(882135296.00), SIMDE_FLOAT32_C(736150592.00), SIMDE_FLOAT32_C(-404434496.00),
SIMDE_FLOAT32_C(89981432.00), SIMDE_FLOAT32_C(1197266304.00), SIMDE_FLOAT32_C(216319680.00), SIMDE_FLOAT32_C(125730832.00) } },
{ { INT32_C( 791542565), -INT32_C( 1486569140), INT32_C( 1121076357), INT32_C( 288012054), INT32_C( 538347448), INT32_C( 560427612), INT32_C( 1194150968), -INT32_C( 229725236),
-INT32_C( 232686682), -INT32_C( 1046837956), -INT32_C( 536580918), -INT32_C( 604951005), INT32_C( 301664181), -INT32_C( 1322097799), INT32_C( 2079874991), -INT32_C( 1318238453) },
{ SIMDE_FLOAT32_C(791542592.00), SIMDE_FLOAT32_C(-1486569088.00), SIMDE_FLOAT32_C(1121076352.00), SIMDE_FLOAT32_C(288012064.00),
SIMDE_FLOAT32_C(538347456.00), SIMDE_FLOAT32_C(560427584.00), SIMDE_FLOAT32_C(1194150912.00), SIMDE_FLOAT32_C(-229725232.00),
SIMDE_FLOAT32_C(-232686688.00), SIMDE_FLOAT32_C(-1046837952.00), SIMDE_FLOAT32_C(-536580928.00), SIMDE_FLOAT32_C(-604950976.00),
SIMDE_FLOAT32_C(301664192.00), SIMDE_FLOAT32_C(-1322097792.00), SIMDE_FLOAT32_C(2079874944.00), SIMDE_FLOAT32_C(-1318238464.00) } },
{ { -INT32_C( 5992510), -INT32_C( 557826540), -INT32_C( 826358614), -INT32_C( 1482051598), INT32_C( 800695734), -INT32_C( 1209996536), INT32_C( 1446173003), -INT32_C( 502816736),
INT32_C( 1138862895), -INT32_C( 1809669399), INT32_C( 1499652198), INT32_C( 1174408080), -INT32_C( 1200178768), -INT32_C( 261138779), INT32_C( 1330029103), INT32_C( 1899121986) },
{ SIMDE_FLOAT32_C(-5992510.00), SIMDE_FLOAT32_C(-557826560.00), SIMDE_FLOAT32_C(-826358592.00), SIMDE_FLOAT32_C(-1482051584.00),
SIMDE_FLOAT32_C(800695744.00), SIMDE_FLOAT32_C(-1209996544.00), SIMDE_FLOAT32_C(1446173056.00), SIMDE_FLOAT32_C(-502816736.00),
SIMDE_FLOAT32_C(1138862848.00), SIMDE_FLOAT32_C(-1809669376.00), SIMDE_FLOAT32_C(1499652224.00), SIMDE_FLOAT32_C(1174408064.00),
SIMDE_FLOAT32_C(-1200178816.00), SIMDE_FLOAT32_C(-261138784.00), SIMDE_FLOAT32_C(1330029056.00), SIMDE_FLOAT32_C(1899122048.00) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde__m512i a = simde_mm512_loadu_epi32(test_vec[i].a);
simde__m512 r = simde_mm512_cvtepi32_ps(a);
simde_test_x86_assert_equal_f32x16(r, simde_mm512_loadu_ps(test_vec[i].r), 1);
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde__m512i a = simde_test_x86_random_i32x16();
simde__m512 r = simde_mm512_cvtepi32_ps(a);
simde_test_x86_write_i32x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_x86_write_f32x16(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_mm512_cvtepi64_epi32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -913,6 +1051,67 @@ test_simde_mm512_cvtepi64_epi32 (SIMDE_MUNIT_TEST_ARGS) {
#endif
}
static int
test_simde_mm512_cvtepu16_epi32(SIMDE_MUNIT_TEST_ARGS) {
#if 1
const struct {
uint16_t a[16];
int32_t r[16];
} test_vec[8] = {
{ { UINT16_C(56444), UINT16_C(17934), UINT16_C( 7652), UINT16_C(55248), UINT16_C(25465), UINT16_C(47543), UINT16_C( 2382), UINT16_C(41535),
UINT16_C( 7355), UINT16_C(49718), UINT16_C( 7009), UINT16_C( 754), UINT16_C( 9751), UINT16_C(15009), UINT16_C(59135), UINT16_C(31807) },
{ INT32_C( 56444), INT32_C( 17934), INT32_C( 7652), INT32_C( 55248), INT32_C( 25465), INT32_C( 47543), INT32_C( 2382), INT32_C( 41535),
INT32_C( 7355), INT32_C( 49718), INT32_C( 7009), INT32_C( 754), INT32_C( 9751), INT32_C( 15009), INT32_C( 59135), INT32_C( 31807) } },
{ { UINT16_C(20162), UINT16_C(42690), UINT16_C(37483), UINT16_C(58494), UINT16_C(13813), UINT16_C(17309), UINT16_C(56639), UINT16_C(64229),
UINT16_C( 7161), UINT16_C(23229), UINT16_C(44855), UINT16_C(20060), UINT16_C(65238), UINT16_C(54664), UINT16_C(51172), UINT16_C(42833) },
{ INT32_C( 20162), INT32_C( 42690), INT32_C( 37483), INT32_C( 58494), INT32_C( 13813), INT32_C( 17309), INT32_C( 56639), INT32_C( 64229),
INT32_C( 7161), INT32_C( 23229), INT32_C( 44855), INT32_C( 20060), INT32_C( 65238), INT32_C( 54664), INT32_C( 51172), INT32_C( 42833) } },
{ { UINT16_C( 4885), UINT16_C(32845), UINT16_C(52133), UINT16_C(39524), UINT16_C( 513), UINT16_C(16606), UINT16_C(50143), UINT16_C(55354),
UINT16_C(63455), UINT16_C( 5683), UINT16_C(36775), UINT16_C(32100), UINT16_C(60557), UINT16_C(29266), UINT16_C(42163), UINT16_C(51481) },
{ INT32_C( 4885), INT32_C( 32845), INT32_C( 52133), INT32_C( 39524), INT32_C( 513), INT32_C( 16606), INT32_C( 50143), INT32_C( 55354),
INT32_C( 63455), INT32_C( 5683), INT32_C( 36775), INT32_C( 32100), INT32_C( 60557), INT32_C( 29266), INT32_C( 42163), INT32_C( 51481) } },
{ { UINT16_C(26295), UINT16_C(23881), UINT16_C(44594), UINT16_C(13303), UINT16_C(54704), UINT16_C(36723), UINT16_C(44441), UINT16_C(30823),
UINT16_C(39589), UINT16_C(19598), UINT16_C(61994), UINT16_C(47049), UINT16_C( 7134), UINT16_C(37161), UINT16_C(17087), UINT16_C(30554) },
{ INT32_C( 26295), INT32_C( 23881), INT32_C( 44594), INT32_C( 13303), INT32_C( 54704), INT32_C( 36723), INT32_C( 44441), INT32_C( 30823),
INT32_C( 39589), INT32_C( 19598), INT32_C( 61994), INT32_C( 47049), INT32_C( 7134), INT32_C( 37161), INT32_C( 17087), INT32_C( 30554) } },
{ { UINT16_C(42153), UINT16_C(56276), UINT16_C(52050), UINT16_C( 526), UINT16_C(33185), UINT16_C(14993), UINT16_C(63534), UINT16_C(54194),
UINT16_C(16531), UINT16_C(48415), UINT16_C(59442), UINT16_C( 4212), UINT16_C(40452), UINT16_C(50081), UINT16_C(64736), UINT16_C(35130) },
{ INT32_C( 42153), INT32_C( 56276), INT32_C( 52050), INT32_C( 526), INT32_C( 33185), INT32_C( 14993), INT32_C( 63534), INT32_C( 54194),
INT32_C( 16531), INT32_C( 48415), INT32_C( 59442), INT32_C( 4212), INT32_C( 40452), INT32_C( 50081), INT32_C( 64736), INT32_C( 35130) } },
{ { UINT16_C( 3744), UINT16_C(62052), UINT16_C(29402), UINT16_C(31732), UINT16_C(34291), UINT16_C( 8885), UINT16_C(26493), UINT16_C( 4341),
UINT16_C( 5543), UINT16_C(55757), UINT16_C(17149), UINT16_C( 489), UINT16_C(35552), UINT16_C(49349), UINT16_C(65414), UINT16_C( 9802) },
{ INT32_C( 3744), INT32_C( 62052), INT32_C( 29402), INT32_C( 31732), INT32_C( 34291), INT32_C( 8885), INT32_C( 26493), INT32_C( 4341),
INT32_C( 5543), INT32_C( 55757), INT32_C( 17149), INT32_C( 489), INT32_C( 35552), INT32_C( 49349), INT32_C( 65414), INT32_C( 9802) } },
{ { UINT16_C(44558), UINT16_C(59416), UINT16_C( 3105), UINT16_C( 5219), UINT16_C( 6289), UINT16_C( 3894), UINT16_C(11391), UINT16_C( 9759),
UINT16_C(60737), UINT16_C(16127), UINT16_C(59439), UINT16_C( 3904), UINT16_C( 1394), UINT16_C(63951), UINT16_C( 6404), UINT16_C( 4639) },
{ INT32_C( 44558), INT32_C( 59416), INT32_C( 3105), INT32_C( 5219), INT32_C( 6289), INT32_C( 3894), INT32_C( 11391), INT32_C( 9759),
INT32_C( 60737), INT32_C( 16127), INT32_C( 59439), INT32_C( 3904), INT32_C( 1394), INT32_C( 63951), INT32_C( 6404), INT32_C( 4639) } },
{ { UINT16_C(14536), UINT16_C(59898), UINT16_C(23876), UINT16_C(55037), UINT16_C(13429), UINT16_C(62693), UINT16_C( 1120), UINT16_C(41242),
UINT16_C( 6641), UINT16_C( 8415), UINT16_C( 7937), UINT16_C(29743), UINT16_C(65316), UINT16_C(10605), UINT16_C(35864), UINT16_C(57403) },
{ INT32_C( 14536), INT32_C( 59898), INT32_C( 23876), INT32_C( 55037), INT32_C( 13429), INT32_C( 62693), INT32_C( 1120), INT32_C( 41242),
INT32_C( 6641), INT32_C( 8415), INT32_C( 7937), INT32_C( 29743), INT32_C( 65316), INT32_C( 10605), INT32_C( 35864), INT32_C( 57403) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])); i++) {
simde__m256i a = simde_mm256_loadu_epi16(test_vec[i].a);
simde__m512i r = simde_mm512_cvtepu16_epi32(a);
simde_test_x86_assert_equal_i32x16(r, simde_mm512_loadu_epi32(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde__m256i a = simde_test_x86_random_u16x16();
simde__m512i r = simde_mm512_cvtepu16_epi32(a);
simde_test_x86_write_u16x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_x86_write_i32x16(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_mm512_cvtepu32_ps (SIMDE_MUNIT_TEST_ARGS) {
#if 1
@ -990,6 +1189,162 @@ test_simde_mm512_cvtepu32_ps (SIMDE_MUNIT_TEST_ARGS) {
#endif
}
static int
test_simde_mm512_cvtph_ps (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
const uint16_t a[16];
const simde_float32 r[16];
} test_vec[] = {
#if !defined(SIMDE_FAST_MATH)
{ { UINT16_C(32632), UINT16_C(36683), UINT16_C(18546), UINT16_C(51187), UINT16_C(33803), UINT16_C(35143), UINT16_C(30623), UINT16_C(24534),
UINT16_C(28431), UINT16_C(40447), UINT16_C(62650), UINT16_C(16359), UINT16_C(56775), UINT16_C(44943), UINT16_C(35557), UINT16_C(23914) },
{ SIMDE_MATH_NANF, SIMDE_FLOAT32_C( -0.00), SIMDE_FLOAT32_C( 8.89), SIMDE_FLOAT32_C( -7.95),
SIMDE_FLOAT32_C( -0.00), SIMDE_FLOAT32_C( -0.00), SIMDE_FLOAT32_C( 31216.00), SIMDE_FLOAT32_C( 501.50),
SIMDE_FLOAT32_C( 7228.00), SIMDE_FLOAT32_C( -0.01), SIMDE_FLOAT32_C(-19360.00), SIMDE_FLOAT32_C( 1.98),
SIMDE_FLOAT32_C( -369.75), SIMDE_FLOAT32_C( -0.12), SIMDE_FLOAT32_C( -0.00), SIMDE_FLOAT32_C( 346.50) } },
{ { UINT16_C(41196), UINT16_C(59759), UINT16_C(45695), UINT16_C(58354), UINT16_C(33596), UINT16_C(15846), UINT16_C(18667), UINT16_C(49998),
UINT16_C(64681), UINT16_C(65108), UINT16_C( 9617), UINT16_C( 795), UINT16_C(59525), UINT16_C(28506), UINT16_C( 3614), UINT16_C( 2659) },
{ SIMDE_FLOAT32_C( -0.01), SIMDE_FLOAT32_C( -2782.00), SIMDE_FLOAT32_C( -0.20), SIMDE_FLOAT32_C( -1017.00),
SIMDE_FLOAT32_C( -0.00), SIMDE_FLOAT32_C( 1.47), SIMDE_FLOAT32_C( 9.84), SIMDE_FLOAT32_C( -3.65),
SIMDE_MATH_NANF, SIMDE_MATH_NANF, SIMDE_FLOAT32_C( 0.02), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( -2314.00), SIMDE_FLOAT32_C( 7528.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00) } },
#endif
{ { UINT16_C(20084), UINT16_C(63622), UINT16_C( 506), UINT16_C(38217), UINT16_C(42669), UINT16_C(23539), UINT16_C(51678), UINT16_C(24564),
UINT16_C( 5252), UINT16_C(47129), UINT16_C(15484), UINT16_C(26255), UINT16_C(50293), UINT16_C(34953), UINT16_C(37361), UINT16_C(25911) },
{ SIMDE_FLOAT32_C( 25.81), SIMDE_FLOAT32_C(-37056.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -0.00),
SIMDE_FLOAT32_C( -0.03), SIMDE_FLOAT32_C( 254.38), SIMDE_FLOAT32_C( -11.73), SIMDE_FLOAT32_C( 509.00),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -0.51), SIMDE_FLOAT32_C( 1.12), SIMDE_FLOAT32_C( 1679.00),
SIMDE_FLOAT32_C( -4.46), SIMDE_FLOAT32_C( -0.00), SIMDE_FLOAT32_C( -0.00), SIMDE_FLOAT32_C( 1335.00) } },
{ { UINT16_C(48607), UINT16_C(55646), UINT16_C(42942), UINT16_C(27503), UINT16_C(25165), UINT16_C(11462), UINT16_C(47915), UINT16_C(44939),
UINT16_C(42191), UINT16_C(19303), UINT16_C(63456), UINT16_C(21937), UINT16_C(15035), UINT16_C(44253), UINT16_C( 5579), UINT16_C(43538) },
{ SIMDE_FLOAT32_C( -1.47), SIMDE_FLOAT32_C( -171.75), SIMDE_FLOAT32_C( -0.03), SIMDE_FLOAT32_C( 3806.00),
SIMDE_FLOAT32_C( 806.50), SIMDE_FLOAT32_C( 0.07), SIMDE_FLOAT32_C( -0.90), SIMDE_FLOAT32_C( -0.12),
SIMDE_FLOAT32_C( -0.02), SIMDE_FLOAT32_C( 14.80), SIMDE_FLOAT32_C(-32256.00), SIMDE_FLOAT32_C( 91.06),
SIMDE_FLOAT32_C( 0.84), SIMDE_FLOAT32_C( -0.08), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -0.05) } },
{ { UINT16_C(28882), UINT16_C(37252), UINT16_C(62231), UINT16_C(25852), UINT16_C(50005), UINT16_C(32912), UINT16_C( 7038), UINT16_C(19760),
UINT16_C(38847), UINT16_C(41113), UINT16_C(19086), UINT16_C(18933), UINT16_C(54149), UINT16_C(20726), UINT16_C( 2280), UINT16_C(47867) },
{ SIMDE_FLOAT32_C( 9872.00), SIMDE_FLOAT32_C( -0.00), SIMDE_FLOAT32_C(-14520.00), SIMDE_FLOAT32_C( 1276.00),
SIMDE_FLOAT32_C( -3.67), SIMDE_FLOAT32_C( -0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 20.75),
SIMDE_FLOAT32_C( -0.00), SIMDE_FLOAT32_C( -0.01), SIMDE_FLOAT32_C( 13.11), SIMDE_FLOAT32_C( 11.91),
SIMDE_FLOAT32_C( -60.16), SIMDE_FLOAT32_C( 39.69), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -0.87) } },
{ { UINT16_C(46345), UINT16_C(31724), UINT16_C(57341), UINT16_C( 2114), UINT16_C(35427), UINT16_C( 913), UINT16_C(26625), UINT16_C( 4194),
UINT16_C(25047), UINT16_C(37294), UINT16_C(38229), UINT16_C( 7632), UINT16_C(24690), UINT16_C(22476), UINT16_C(14058), UINT16_C(62644) },
{ SIMDE_FLOAT32_C( -0.31), SIMDE_FLOAT32_C( 64896.00), SIMDE_FLOAT32_C( -511.25), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( -0.00), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 2050.00), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( 747.50), SIMDE_FLOAT32_C( -0.00), SIMDE_FLOAT32_C( -0.00), SIMDE_FLOAT32_C( 0.01),
SIMDE_FLOAT32_C( 569.00), SIMDE_FLOAT32_C( 124.75), SIMDE_FLOAT32_C( 0.43), SIMDE_FLOAT32_C(-19264.00) } },
{ { UINT16_C(54190), UINT16_C(11764), UINT16_C(59013), UINT16_C(49424), UINT16_C(63081), UINT16_C(22014), UINT16_C(19518), UINT16_C(59160),
UINT16_C(27720), UINT16_C(55782), UINT16_C( 401), UINT16_C( 5852), UINT16_C(14057), UINT16_C( 2182), UINT16_C(59716), UINT16_C(61970) },
{ SIMDE_FLOAT32_C( -61.44), SIMDE_FLOAT32_C( 0.09), SIMDE_FLOAT32_C( -1669.00), SIMDE_FLOAT32_C( -2.53),
SIMDE_FLOAT32_C(-26256.00), SIMDE_FLOAT32_C( 95.88), SIMDE_FLOAT32_C( 16.97), SIMDE_FLOAT32_C( -1816.00),
SIMDE_FLOAT32_C( 4384.00), SIMDE_FLOAT32_C( -188.75), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 0.00),
SIMDE_FLOAT32_C( 0.43), SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( -2696.00), SIMDE_FLOAT32_C(-12432.00) } },
{ { UINT16_C( 1724), UINT16_C(16672), UINT16_C(12524), UINT16_C(22018), UINT16_C( 295), UINT16_C(26027), UINT16_C(49997), UINT16_C(38477),
UINT16_C(13103), UINT16_C(49519), UINT16_C(19508), UINT16_C( 7895), UINT16_C(23938), UINT16_C(50982), UINT16_C(14407), UINT16_C( 953) },
{ SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 2.56), SIMDE_FLOAT32_C( 0.15), SIMDE_FLOAT32_C( 96.12),
SIMDE_FLOAT32_C( 0.00), SIMDE_FLOAT32_C( 1451.00), SIMDE_FLOAT32_C( -3.65), SIMDE_FLOAT32_C( -0.00),
SIMDE_FLOAT32_C( 0.22), SIMDE_FLOAT32_C( -2.72), SIMDE_FLOAT32_C( 16.81), SIMDE_FLOAT32_C( 0.01),
SIMDE_FLOAT32_C( 352.50), SIMDE_FLOAT32_C( -7.15), SIMDE_FLOAT32_C( 0.53), SIMDE_FLOAT32_C( 0.00) } },
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde__m256i a = simde_mm256_loadu_epi32(test_vec[i].a);
simde__m512 r = simde_mm512_cvtph_ps(a);
simde_test_x86_assert_equal_f32x16(r, simde_mm512_loadu_ps(test_vec[i].r), 1);
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde__m256i a = simde_test_x86_random_u16x16();
simde__m512 r = simde_mm512_cvtph_ps(a);
simde_test_x86_write_u16x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_x86_write_f32x16(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
static int
test_simde_mm512_cvtps_epi32 (SIMDE_MUNIT_TEST_ARGS) {
#if 1
static const struct {
const simde_float32 a[16];
const int32_t r[16];
} test_vec[] = {
{ { SIMDE_FLOAT32_C( -664.31), SIMDE_FLOAT32_C( 46.87), SIMDE_FLOAT32_C( -293.16), SIMDE_FLOAT32_C( 296.83),
SIMDE_FLOAT32_C( 133.30), SIMDE_FLOAT32_C( -856.99), SIMDE_FLOAT32_C( -918.09), SIMDE_FLOAT32_C( 891.16),
SIMDE_FLOAT32_C( -796.45), SIMDE_FLOAT32_C( -376.63), SIMDE_FLOAT32_C( 772.49), SIMDE_FLOAT32_C( -594.73),
SIMDE_FLOAT32_C( 306.50), SIMDE_FLOAT32_C( 620.07), SIMDE_FLOAT32_C( -54.46), SIMDE_FLOAT32_C( 57.44) },
{ -INT32_C( 664), INT32_C( 47), -INT32_C( 293), INT32_C( 297), INT32_C( 133), -INT32_C( 857), -INT32_C( 918), INT32_C( 891),
-INT32_C( 796), -INT32_C( 377), INT32_C( 772), -INT32_C( 595), INT32_C( 306), INT32_C( 620), -INT32_C( 54), INT32_C( 57) } },
{ { SIMDE_FLOAT32_C( -873.70), SIMDE_FLOAT32_C( -956.33), SIMDE_FLOAT32_C( -412.63), SIMDE_FLOAT32_C( 232.64),
SIMDE_FLOAT32_C( 228.03), SIMDE_FLOAT32_C( 396.65), SIMDE_FLOAT32_C( 283.06), SIMDE_FLOAT32_C( 677.47),
SIMDE_FLOAT32_C( -618.05), SIMDE_FLOAT32_C( 365.83), SIMDE_FLOAT32_C( 689.36), SIMDE_FLOAT32_C( -939.18),
SIMDE_FLOAT32_C( -776.84), SIMDE_FLOAT32_C( 26.86), SIMDE_FLOAT32_C( -820.35), SIMDE_FLOAT32_C( -441.16) },
{ -INT32_C( 874), -INT32_C( 956), -INT32_C( 413), INT32_C( 233), INT32_C( 228), INT32_C( 397), INT32_C( 283), INT32_C( 677),
-INT32_C( 618), INT32_C( 366), INT32_C( 689), -INT32_C( 939), -INT32_C( 777), INT32_C( 27), -INT32_C( 820), -INT32_C( 441) } },
{ { SIMDE_FLOAT32_C( -926.28), SIMDE_FLOAT32_C( -113.51), SIMDE_FLOAT32_C( 855.67), SIMDE_FLOAT32_C( 207.03),
SIMDE_FLOAT32_C( 29.50), SIMDE_FLOAT32_C( 937.58), SIMDE_FLOAT32_C( 98.19), SIMDE_FLOAT32_C( 233.05),
SIMDE_FLOAT32_C( -439.05), SIMDE_FLOAT32_C( -129.32), SIMDE_FLOAT32_C( 638.32), SIMDE_FLOAT32_C( 867.44),
SIMDE_FLOAT32_C( -509.26), SIMDE_FLOAT32_C( -416.14), SIMDE_FLOAT32_C( -75.12), SIMDE_FLOAT32_C( -382.95) },
{ -INT32_C( 926), -INT32_C( 114), INT32_C( 856), INT32_C( 207), INT32_C( 30), INT32_C( 938), INT32_C( 98), INT32_C( 233),
-INT32_C( 439), -INT32_C( 129), INT32_C( 638), INT32_C( 867), -INT32_C( 509), -INT32_C( 416), -INT32_C( 75), -INT32_C( 383) } },
{ { SIMDE_FLOAT32_C( -372.47), SIMDE_FLOAT32_C( 512.25), SIMDE_FLOAT32_C( 849.68), SIMDE_FLOAT32_C( 855.56),
SIMDE_FLOAT32_C( -91.10), SIMDE_FLOAT32_C( 132.74), SIMDE_FLOAT32_C( 533.03), SIMDE_FLOAT32_C( 290.85),
SIMDE_FLOAT32_C( -501.43), SIMDE_FLOAT32_C( 222.39), SIMDE_FLOAT32_C( 351.67), SIMDE_FLOAT32_C( -278.27),
SIMDE_FLOAT32_C( -750.75), SIMDE_FLOAT32_C( 531.32), SIMDE_FLOAT32_C( 280.57), SIMDE_FLOAT32_C( -677.03) },
{ -INT32_C( 372), INT32_C( 512), INT32_C( 850), INT32_C( 856), -INT32_C( 91), INT32_C( 133), INT32_C( 533), INT32_C( 291),
-INT32_C( 501), INT32_C( 222), INT32_C( 352), -INT32_C( 278), -INT32_C( 751), INT32_C( 531), INT32_C( 281), -INT32_C( 677) } },
{ { SIMDE_FLOAT32_C( -582.19), SIMDE_FLOAT32_C( 136.24), SIMDE_FLOAT32_C( 530.00), SIMDE_FLOAT32_C( 447.31),
SIMDE_FLOAT32_C( 73.82), SIMDE_FLOAT32_C( -371.81), SIMDE_FLOAT32_C( -319.64), SIMDE_FLOAT32_C( 634.77),
SIMDE_FLOAT32_C( 498.87), SIMDE_FLOAT32_C( -681.32), SIMDE_FLOAT32_C( 502.21), SIMDE_FLOAT32_C( 989.61),
SIMDE_FLOAT32_C( -97.45), SIMDE_FLOAT32_C( -572.91), SIMDE_FLOAT32_C( -393.34), SIMDE_FLOAT32_C( 530.08) },
{ -INT32_C( 582), INT32_C( 136), INT32_C( 530), INT32_C( 447), INT32_C( 74), -INT32_C( 372), -INT32_C( 320), INT32_C( 635),
INT32_C( 499), -INT32_C( 681), INT32_C( 502), INT32_C( 990), -INT32_C( 97), -INT32_C( 573), -INT32_C( 393), INT32_C( 530) } },
{ { SIMDE_FLOAT32_C( 939.33), SIMDE_FLOAT32_C( -543.66), SIMDE_FLOAT32_C( 385.63), SIMDE_FLOAT32_C( -151.77),
SIMDE_FLOAT32_C( 589.09), SIMDE_FLOAT32_C( -81.34), SIMDE_FLOAT32_C( -860.92), SIMDE_FLOAT32_C( -912.34),
SIMDE_FLOAT32_C( -858.95), SIMDE_FLOAT32_C( 490.75), SIMDE_FLOAT32_C( -190.61), SIMDE_FLOAT32_C( -609.70),
SIMDE_FLOAT32_C( 22.08), SIMDE_FLOAT32_C( -910.04), SIMDE_FLOAT32_C( -286.73), SIMDE_FLOAT32_C( 439.89) },
{ INT32_C( 939), -INT32_C( 544), INT32_C( 386), -INT32_C( 152), INT32_C( 589), -INT32_C( 81), -INT32_C( 861), -INT32_C( 912),
-INT32_C( 859), INT32_C( 491), -INT32_C( 191), -INT32_C( 610), INT32_C( 22), -INT32_C( 910), -INT32_C( 287), INT32_C( 440) } },
{ { SIMDE_FLOAT32_C( 226.20), SIMDE_FLOAT32_C( -756.73), SIMDE_FLOAT32_C( -112.80), SIMDE_FLOAT32_C( -699.98),
SIMDE_FLOAT32_C( -128.54), SIMDE_FLOAT32_C( 567.57), SIMDE_FLOAT32_C( 934.79), SIMDE_FLOAT32_C( -629.67),
SIMDE_FLOAT32_C( 886.25), SIMDE_FLOAT32_C( 437.00), SIMDE_FLOAT32_C( -640.06), SIMDE_FLOAT32_C( -211.20),
SIMDE_FLOAT32_C( 864.09), SIMDE_FLOAT32_C( -33.40), SIMDE_FLOAT32_C( -681.12), SIMDE_FLOAT32_C( 803.42) },
{ INT32_C( 226), -INT32_C( 757), -INT32_C( 113), -INT32_C( 700), -INT32_C( 129), INT32_C( 568), INT32_C( 935), -INT32_C( 630),
INT32_C( 886), INT32_C( 437), -INT32_C( 640), -INT32_C( 211), INT32_C( 864), -INT32_C( 33), -INT32_C( 681), INT32_C( 803) } },
{ { SIMDE_FLOAT32_C( 422.95), SIMDE_FLOAT32_C( 704.51), SIMDE_FLOAT32_C( -348.34), SIMDE_FLOAT32_C( 12.03),
SIMDE_FLOAT32_C( -376.83), SIMDE_FLOAT32_C( -209.26), SIMDE_FLOAT32_C( 99.69), SIMDE_FLOAT32_C( -235.78),
SIMDE_FLOAT32_C( -718.51), SIMDE_FLOAT32_C( 909.08), SIMDE_FLOAT32_C( 154.52), SIMDE_FLOAT32_C( 303.57),
SIMDE_FLOAT32_C( 999.03), SIMDE_FLOAT32_C( 867.79), SIMDE_FLOAT32_C( -256.54), SIMDE_FLOAT32_C( 225.23) },
{ INT32_C( 423), INT32_C( 705), -INT32_C( 348), INT32_C( 12), -INT32_C( 377), -INT32_C( 209), INT32_C( 100), -INT32_C( 236),
-INT32_C( 719), INT32_C( 909), INT32_C( 155), INT32_C( 304), INT32_C( 999), INT32_C( 868), -INT32_C( 257), INT32_C( 225) } }
};
for (size_t i = 0 ; i < (sizeof(test_vec) / sizeof(test_vec[0])) ; i++) {
simde__m512 a = simde_mm512_loadu_ps(test_vec[i].a);
simde__m512i r = simde_mm512_cvtps_epi32(a);
simde_test_x86_assert_equal_i32x16(r, simde_mm512_loadu_epi32(test_vec[i].r));
}
return 0;
#else
fputc('\n', stdout);
for (int i = 0 ; i < 8 ; i++) {
simde__m512 a = simde_test_x86_random_f32x16(SIMDE_FLOAT32_C(-1000.0), SIMDE_FLOAT32_C(1000.0));
simde__m512i r = simde_mm512_cvtps_epi32(a);
simde_test_x86_write_f32x16(2, a, SIMDE_TEST_VEC_POS_FIRST);
simde_test_x86_write_i32x16(2, r, SIMDE_TEST_VEC_POS_LAST);
}
return 1;
#endif
}
SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(mm_cvtepi64_pd)
SIMDE_TEST_FUNC_LIST_ENTRY(mm_mask_cvtepi64_pd)
@ -998,8 +1353,13 @@ SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_cvtepi16_epi8)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_mask_cvtepi16_epi8)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_maskz_cvtepi16_epi8)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_cvtepi16_epi32)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_cvtepi32_ps)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_cvtepi64_epi32)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_cvtepu16_epi32)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_cvtepu32_ps)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_cvtph_ps)
SIMDE_TEST_FUNC_LIST_ENTRY(mm512_cvtps_epi32)
SIMDE_TEST_FUNC_LIST_END
#include <test/x86/avx512/test-avx512-footer.h>