Skip to content

Commit fd78ea7

Browse files
committed
enable the cmpestra tests from sse2neon
1 parent 1015e8c commit fd78ea7

1 file changed

Lines changed: 161 additions & 161 deletions

File tree

test/x86/sse4.2.c

Lines changed: 161 additions & 161 deletions
Original file line numberDiff line numberDiff line change
@@ -1652,6 +1652,166 @@ test_simde_mm_cmpistrz(SIMDE_MUNIT_TEST_ARGS) {
16521652
return 0;
16531653
}
16541654

1655+
static int
1656+
test_simde_mm_cmpestra(SIMDE_MUNIT_TEST_ARGS) {
1657+
const struct {
1658+
uint8_t a[16];
1659+
int la;
1660+
uint8_t b[16];
1661+
int lb;
1662+
int r;
1663+
} test_vecu[] = {
1664+
{ { UINT8_C( 20), UINT8_C( 10), UINT8_C( 33), UINT8_C( 56), UINT8_C( 78), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) },
1665+
3,
1666+
{ UINT8_C( 20), UINT8_C( 10), UINT8_C( 34), UINT8_C( 98), UINT8_C(127), UINT8_C( 20), UINT8_C( 10), UINT8_C( 32), UINT8_C( 20), UINT8_C( 10), UINT8_C( 32), UINT8_C( 11), UINT8_C( 3), UINT8_C( 20), UINT8_C( 10), UINT8_C( 31) },
1667+
17,
1668+
1 },
1669+
{ { UINT8_C( 20), UINT8_C(127), UINT8_C( 0), UINT8_C( 45), UINT8_C( 77), UINT8_C( 1), UINT8_C( 34), UINT8_C( 43), UINT8_C(109), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) },
1670+
9,
1671+
{ UINT8_C( 2), UINT8_C(127), UINT8_C( 0), UINT8_C( 54), UINT8_C( 6), UINT8_C( 43), UINT8_C( 12), UINT8_C(110), UINT8_C(100), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) },
1672+
20,
1673+
0 },
1674+
{ { UINT8_C( 22), UINT8_C( 33), UINT8_C( 90), UINT8_C( 1), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) },
1675+
4,
1676+
{ UINT8_C( 22), UINT8_C( 33), UINT8_C( 90), UINT8_C( 1), UINT8_C( 1), UINT8_C( 5), UINT8_C( 4), UINT8_C( 7), UINT8_C( 98), UINT8_C( 34), UINT8_C( 1), UINT8_C( 12), UINT8_C( 13), UINT8_C( 14), UINT8_C( 15), UINT8_C( 16) },
1677+
11,
1678+
0 },
1679+
};
1680+
const struct {
1681+
int8_t a[16];
1682+
int la;
1683+
int8_t b[16];
1684+
int lb;
1685+
int r;
1686+
} test_vec_sb[] = {
1687+
{ { INT8_C( 45), INT8_C( -94), INT8_C( 38), INT8_C( -11), INT8_C( 84), INT8_C(-123), INT8_C( -43), INT8_C( -49), INT8_C( 25), INT8_C( -55), INT8_C(-121), INT8_C( -6), INT8_C( 57), INT8_C( 108), INT8_C( -55), INT8_C( 69) },
1688+
23,
1689+
{ INT8_C( -26), INT8_C( -61), INT8_C( -21), INT8_C( -96), INT8_C( 48), INT8_C(-122), INT8_C( 95), INT8_C( -56), INT8_C( 29), INT8_C( -55), INT8_C(-121), INT8_C( -6), INT8_C( 57), INT8_C( 108), INT8_C( -55), INT8_C( 69) },
1690+
28,
1691+
0 },
1692+
{ { INT8_C( -12), INT8_C( -8), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0) },
1693+
2,
1694+
{ INT8_C( -12), INT8_C( 7), INT8_C( -12), INT8_C( 8), INT8_C( -13), INT8_C( 45), INT8_C( -12), INT8_C( 8), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0) },
1695+
8,
1696+
0 },
1697+
{ { INT8_C(-100), INT8_C(-127), INT8_C( 56), INT8_C( 78), INT8_C( 21), INT8_C( -1), INT8_C( 9), INT8_C( 127), INT8_C( 45), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0) },
1698+
10,
1699+
{ INT8_C( 100), INT8_C( 126), INT8_C( 30), INT8_C( 65), INT8_C( 87), INT8_C( 54), INT8_C( 80), INT8_C( 81), INT8_C( -98), INT8_C(-101), INT8_C( 90), INT8_C( 1), INT8_C( 5), INT8_C( 60), INT8_C( -77), INT8_C( -65) },
1700+
20,
1701+
1 },
1702+
};
1703+
const struct {
1704+
uint16_t a[8];
1705+
int la;
1706+
uint16_t b[8];
1707+
int lb;
1708+
int r;
1709+
} test_vec_uw[] = {
1710+
{ { UINT16_C(10000), UINT16_C(20000), UINT16_C(30000), UINT16_C(40000), UINT16_C(50000), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) },
1711+
5,
1712+
{ UINT16_C(40001), UINT16_C(50002), UINT16_C(10000), UINT16_C(20000), UINT16_C(30000), UINT16_C(40000), UINT16_C(50000), UINT16_C( 0) },
1713+
10,
1714+
0 },
1715+
{ { UINT16_C( 1001), UINT16_C( 9487), UINT16_C( 9487), UINT16_C( 8000), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) },
1716+
4,
1717+
{ UINT16_C( 1001), UINT16_C( 1002), UINT16_C( 1003), UINT16_C( 8709), UINT16_C( 100), UINT16_C( 1), UINT16_C( 1000), UINT16_C( 999) },
1718+
6,
1719+
0 },
1720+
{ { UINT16_C( 12), UINT16_C( 21), UINT16_C( 0), UINT16_C( 45), UINT16_C( 88), UINT16_C(10001), UINT16_C(10002), UINT16_C(65535) },
1721+
13,
1722+
{ UINT16_C( 22), UINT16_C( 13), UINT16_C( 3), UINT16_C( 54), UINT16_C( 888), UINT16_C(10003), UINT16_C(10000), UINT16_C(65530) },
1723+
13,
1724+
1 },
1725+
};
1726+
const struct {
1727+
int16_t a[8];
1728+
int la;
1729+
int16_t b[8];
1730+
int lb;
1731+
int r;
1732+
} test_vec_sw[] = {
1733+
{ { INT16_C( -100), INT16_C( -80), INT16_C( -5), INT16_C( -1), INT16_C( 10), INT16_C( 1000), INT16_C( 0), INT16_C( 0) },
1734+
6,
1735+
{ INT16_C( -100), INT16_C( -99), INT16_C( -80), INT16_C( -2), INT16_C( 11), INT16_C( 789), INT16_C( 889), INT16_C( 999) },
1736+
12,
1737+
1 },
1738+
{ { INT16_C(-30000), INT16_C( -90), INT16_C(-32766), INT16_C( 1200), INT16_C( 5), INT16_C( 0), INT16_C( 0), INT16_C( 0) },
1739+
5,
1740+
{ INT16_C(-30001), INT16_C( 21), INT16_C( 10000), INT16_C( 1201), INT16_C( 888), INT16_C( 0), INT16_C( 0), INT16_C( 0) },
1741+
5,
1742+
0 },
1743+
{ { INT16_C( 2001), INT16_C( -1928), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0) },
1744+
2,
1745+
{ INT16_C( 2000), INT16_C( 1928), INT16_C( 3000), INT16_C( 2289), INT16_C( 4000), INT16_C( 111), INT16_C( 2002), INT16_C( -1928) },
1746+
9,
1747+
0 },
1748+
};
1749+
simde__m128i a, b;
1750+
int r;
1751+
1752+
a = simde_x_mm_loadu_epu8(test_vecu[0].a);
1753+
b = simde_x_mm_loadu_epu8(test_vecu[0].b);
1754+
r = simde_mm_cmpestra(a, test_vecu[0].la, b, test_vecu[0].lb, SIMDE_SIDD_UBYTE_OPS | SIMDE_SIDD_CMP_EQUAL_ORDERED | SIMDE_SIDD_MOST_SIGNIFICANT);
1755+
simde_assert_equal_i32(r, test_vecu[0].r);
1756+
1757+
a = simde_x_mm_loadu_epu8(test_vecu[1].a);
1758+
b = simde_x_mm_loadu_epu8(test_vecu[1].b);
1759+
r = simde_mm_cmpestra(a, test_vecu[1].la, b, test_vecu[1].lb, SIMDE_SIDD_UBYTE_OPS | SIMDE_SIDD_CMP_EQUAL_EACH | SIMDE_SIDD_LEAST_SIGNIFICANT | SIMDE_SIDD_NEGATIVE_POLARITY);
1760+
simde_assert_equal_i32(r, test_vecu[1].r);
1761+
1762+
a = simde_x_mm_loadu_epu8(test_vecu[2].a);
1763+
b = simde_x_mm_loadu_epu8(test_vecu[2].b);
1764+
r = simde_mm_cmpestra(a, test_vecu[2].la, b, test_vecu[2].lb, SIMDE_SIDD_UBYTE_OPS | SIMDE_SIDD_CMP_EQUAL_ANY | SIMDE_SIDD_LEAST_SIGNIFICANT | SIMDE_SIDD_MASKED_NEGATIVE_POLARITY);
1765+
simde_assert_equal_i32(r, test_vecu[2].r);
1766+
1767+
a = simde_mm_loadu_epi8(test_vec_sb[0].a);
1768+
b = simde_mm_loadu_epi8(test_vec_sb[0].b);
1769+
r = simde_mm_cmpestra(a, test_vec_sb[0].la, b, test_vec_sb[0].lb, SIMDE_SIDD_SBYTE_OPS | SIMDE_SIDD_CMP_RANGES | SIMDE_SIDD_LEAST_SIGNIFICANT);
1770+
simde_assert_equal_i32(r, test_vec_sb[0].r);
1771+
1772+
a = simde_mm_loadu_epi8(test_vec_sb[1].a);
1773+
b = simde_mm_loadu_epi8(test_vec_sb[1].b);
1774+
r = simde_mm_cmpestra(a, test_vec_sb[1].la, b, test_vec_sb[1].lb, SIMDE_SIDD_SBYTE_OPS | SIMDE_SIDD_CMP_EQUAL_ORDERED | SIMDE_SIDD_MOST_SIGNIFICANT | SIMDE_SIDD_NEGATIVE_POLARITY);
1775+
simde_assert_equal_i32(r, test_vec_sb[1].r);
1776+
1777+
a = simde_mm_loadu_epi8(test_vec_sb[2].a);
1778+
b = simde_mm_loadu_epi8(test_vec_sb[2].b);
1779+
r = simde_mm_cmpestra(a, test_vec_sb[2].la, b, test_vec_sb[2].lb, SIMDE_SIDD_SBYTE_OPS | SIMDE_SIDD_CMP_EQUAL_ANY | SIMDE_SIDD_LEAST_SIGNIFICANT);
1780+
simde_assert_equal_i32(r, test_vec_sb[2].r);
1781+
1782+
a = simde_x_mm_loadu_epu16(test_vec_uw[0].a);
1783+
b = simde_x_mm_loadu_epu16(test_vec_uw[0].b);
1784+
r = simde_mm_cmpestra(a, test_vec_uw[0].la, b, test_vec_uw[0].lb, SIMDE_SIDD_UWORD_OPS | SIMDE_SIDD_CMP_EQUAL_ORDERED | SIMDE_SIDD_LEAST_SIGNIFICANT);
1785+
simde_assert_equal_i32(r, test_vec_uw[0].r);
1786+
1787+
a = simde_x_mm_loadu_epu16(test_vec_uw[1].a);
1788+
b = simde_x_mm_loadu_epu16(test_vec_uw[1].b);
1789+
r = simde_mm_cmpestra(a, test_vec_uw[1].la, b, test_vec_uw[1].lb, SIMDE_SIDD_UWORD_OPS | SIMDE_SIDD_CMP_RANGES | SIMDE_SIDD_MOST_SIGNIFICANT | SIMDE_SIDD_MASKED_NEGATIVE_POLARITY);
1790+
simde_assert_equal_i32(r, test_vec_uw[1].r);
1791+
1792+
a = simde_x_mm_loadu_epu16(test_vec_uw[2].a);
1793+
b = simde_x_mm_loadu_epu16(test_vec_uw[2].b);
1794+
r = simde_mm_cmpestra(a, test_vec_uw[2].la, b, test_vec_uw[2].lb, SIMDE_SIDD_UWORD_OPS | SIMDE_SIDD_CMP_EQUAL_EACH | SIMDE_SIDD_MOST_SIGNIFICANT);
1795+
simde_assert_equal_i32(r, test_vec_uw[2].r);
1796+
1797+
a = simde_mm_loadu_epi16(test_vec_sw[0].a);
1798+
b = simde_mm_loadu_epi16(test_vec_sw[0].b);
1799+
r = simde_mm_cmpestra(a, test_vec_sw[0].la, b, test_vec_sw[0].lb, SIMDE_SIDD_SWORD_OPS | SIMDE_SIDD_CMP_RANGES | SIMDE_SIDD_LEAST_SIGNIFICANT | SIMDE_SIDD_NEGATIVE_POLARITY);
1800+
simde_assert_equal_i32(r, test_vec_sw[0].r);
1801+
1802+
a = simde_mm_loadu_epi16(test_vec_sw[1].a);
1803+
b = simde_mm_loadu_epi16(test_vec_sw[1].b);
1804+
r = simde_mm_cmpestra(a, test_vec_sw[1].la, b, test_vec_sw[1].lb, SIMDE_SIDD_SWORD_OPS | SIMDE_SIDD_CMP_EQUAL_EACH | SIMDE_SIDD_MOST_SIGNIFICANT);
1805+
simde_assert_equal_i32(r, test_vec_sw[1].r);
1806+
1807+
a = simde_mm_loadu_epi16(test_vec_sw[2].a);
1808+
b = simde_mm_loadu_epi16(test_vec_sw[2].b);
1809+
r = simde_mm_cmpestra(a, test_vec_sw[2].la, b, test_vec_sw[2].lb, SIMDE_SIDD_SWORD_OPS | SIMDE_SIDD_CMP_EQUAL_ANY | SIMDE_SIDD_LEAST_SIGNIFICANT | SIMDE_SIDD_MASKED_NEGATIVE_POLARITY);
1810+
simde_assert_equal_i32(r, test_vec_sw[2].r);
1811+
1812+
return 0;
1813+
}
1814+
16551815
#if 0 // These are not yet implemented
16561816

16571817
static int
@@ -2081,166 +2241,6 @@ test_simde_mm_cmpestrm(SIMDE_MUNIT_TEST_ARGS) {
20812241
return 0;
20822242
}
20832243

2084-
static int
2085-
test_simde_mm_cmpestra(SIMDE_MUNIT_TEST_ARGS) {
2086-
const struct {
2087-
uint8_t a[16];
2088-
int la;
2089-
uint8_t b[16];
2090-
int lb;
2091-
int r;
2092-
} test_vecu[] = {
2093-
{ { UINT8_C( 20), UINT8_C( 10), UINT8_C( 33), UINT8_C( 56), UINT8_C( 78), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) },
2094-
3,
2095-
{ UINT8_C( 20), UINT8_C( 10), UINT8_C( 34), UINT8_C( 98), UINT8_C(127), UINT8_C( 20), UINT8_C( 10), UINT8_C( 32), UINT8_C( 20), UINT8_C( 10), UINT8_C( 32), UINT8_C( 11), UINT8_C( 3), UINT8_C( 20), UINT8_C( 10), UINT8_C( 31) },
2096-
17,
2097-
1 },
2098-
{ { UINT8_C( 20), UINT8_C(127), UINT8_C( 0), UINT8_C( 45), UINT8_C( 77), UINT8_C( 1), UINT8_C( 34), UINT8_C( 43), UINT8_C(109), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) },
2099-
9,
2100-
{ UINT8_C( 2), UINT8_C(127), UINT8_C( 0), UINT8_C( 54), UINT8_C( 6), UINT8_C( 43), UINT8_C( 12), UINT8_C(110), UINT8_C(100), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) },
2101-
20,
2102-
0 },
2103-
{ { UINT8_C( 22), UINT8_C( 33), UINT8_C( 90), UINT8_C( 1), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0), UINT8_C( 0) },
2104-
4,
2105-
{ UINT8_C( 22), UINT8_C( 33), UINT8_C( 90), UINT8_C( 1), UINT8_C( 1), UINT8_C( 5), UINT8_C( 4), UINT8_C( 7), UINT8_C( 98), UINT8_C( 34), UINT8_C( 1), UINT8_C( 12), UINT8_C( 13), UINT8_C( 14), UINT8_C( 15), UINT8_C( 16) },
2106-
11,
2107-
0 },
2108-
};
2109-
const struct {
2110-
int8_t a[16];
2111-
int la;
2112-
int8_t b[16];
2113-
int lb;
2114-
int r;
2115-
} test_vec_sb[] = {
2116-
{ { INT8_C( 45), INT8_C( -94), INT8_C( 38), INT8_C( -11), INT8_C( 84), INT8_C(-123), INT8_C( -43), INT8_C( -49), INT8_C( 25), INT8_C( -55), INT8_C(-121), INT8_C( -6), INT8_C( 57), INT8_C( 108), INT8_C( -55), INT8_C( 69) },
2117-
23,
2118-
{ INT8_C( -26), INT8_C( -61), INT8_C( -21), INT8_C( -96), INT8_C( 48), INT8_C(-122), INT8_C( 95), INT8_C( -56), INT8_C( 29), INT8_C( -55), INT8_C(-121), INT8_C( -6), INT8_C( 57), INT8_C( 108), INT8_C( -55), INT8_C( 69) },
2119-
28,
2120-
0 },
2121-
{ { INT8_C( -12), INT8_C( -8), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0) },
2122-
2,
2123-
{ INT8_C( -12), INT8_C( 7), INT8_C( -12), INT8_C( 8), INT8_C( -13), INT8_C( 45), INT8_C( -12), INT8_C( 8), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0) },
2124-
8,
2125-
0 },
2126-
{ { INT8_C(-100), INT8_C(-127), INT8_C( 56), INT8_C( 78), INT8_C( 21), INT8_C( -1), INT8_C( 9), INT8_C( 127), INT8_C( 45), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0) },
2127-
10,
2128-
{ INT8_C( 100), INT8_C( 126), INT8_C( 30), INT8_C( 65), INT8_C( 87), INT8_C( 54), INT8_C( 80), INT8_C( 81), INT8_C( -98), INT8_C(-101), INT8_C( 90), INT8_C( 1), INT8_C( 5), INT8_C( 60), INT8_C( -77), INT8_C( -65) },
2129-
20,
2130-
1 },
2131-
};
2132-
const struct {
2133-
uint16_t a[8];
2134-
int la;
2135-
uint16_t b[8];
2136-
int lb;
2137-
int r;
2138-
} test_vec_uw[] = {
2139-
{ { UINT16_C(10000), UINT16_C(20000), UINT16_C(30000), UINT16_C(40000), UINT16_C(50000), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) },
2140-
5,
2141-
{ UINT16_C(40001), UINT16_C(50002), UINT16_C(10000), UINT16_C(20000), UINT16_C(30000), UINT16_C(40000), UINT16_C(50000), UINT16_C( 0) },
2142-
10,
2143-
0 },
2144-
{ { UINT16_C( 1001), UINT16_C( 9487), UINT16_C( 9487), UINT16_C( 8000), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0), UINT16_C( 0) },
2145-
4,
2146-
{ UINT16_C( 1001), UINT16_C( 1002), UINT16_C( 1003), UINT16_C( 8709), UINT16_C( 100), UINT16_C( 1), UINT16_C( 1000), UINT16_C( 999) },
2147-
6,
2148-
0 },
2149-
{ { UINT16_C( 12), UINT16_C( 21), UINT16_C( 0), UINT16_C( 45), UINT16_C( 88), UINT16_C(10001), UINT16_C(10002), UINT16_C(65535) },
2150-
13,
2151-
{ UINT16_C( 22), UINT16_C( 13), UINT16_C( 3), UINT16_C( 54), UINT16_C( 888), UINT16_C(10003), UINT16_C(10000), UINT16_C(65530) },
2152-
13,
2153-
1 },
2154-
};
2155-
const struct {
2156-
int16_t a[8];
2157-
int la;
2158-
int16_t b[8];
2159-
int lb;
2160-
int r;
2161-
} test_vec_sw[] = {
2162-
{ { INT16_C( -100), INT16_C( -80), INT16_C( -5), INT16_C( -1), INT16_C( 10), INT16_C( 1000), INT16_C( 0), INT16_C( 0) },
2163-
6,
2164-
{ INT16_C( -100), INT16_C( -99), INT16_C( -80), INT16_C( -2), INT16_C( 11), INT16_C( 789), INT16_C( 889), INT16_C( 999) },
2165-
12,
2166-
1 },
2167-
{ { INT16_C(-30000), INT16_C( -90), INT16_C(-32766), INT16_C( 1200), INT16_C( 5), INT16_C( 0), INT16_C( 0), INT16_C( 0) },
2168-
5,
2169-
{ INT16_C(-30001), INT16_C( 21), INT16_C( 10000), INT16_C( 1201), INT16_C( 888), INT16_C( 0), INT16_C( 0), INT16_C( 0) },
2170-
5,
2171-
0 },
2172-
{ { INT16_C( 2001), INT16_C( -1928), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0) },
2173-
2,
2174-
{ INT16_C( 2000), INT16_C( 1928), INT16_C( 3000), INT16_C( 2289), INT16_C( 4000), INT16_C( 111), INT16_C( 2002), INT16_C( -1928) },
2175-
9,
2176-
0 },
2177-
};
2178-
simde__m128i a, b;
2179-
int r;
2180-
2181-
a = simde_x_mm_loadu_epu8(test_vecu[0].a);
2182-
b = simde_x_mm_loadu_epu8(test_vecu[0].b);
2183-
r = simde_mm_cmpestra(a, test_vecu[0].la, b, test_vecu[0].lb, SIMDE_SIDD_UBYTE_OPS | SIMDE_SIDD_CMP_EQUAL_ORDERED | SIMDE_SIDD_MOST_SIGNIFICANT);
2184-
simde_assert_equal_i32(r, test_vecu[0].r);
2185-
2186-
a = simde_x_mm_loadu_epu8(test_vecu[1].a);
2187-
b = simde_x_mm_loadu_epu8(test_vecu[1].b);
2188-
r = simde_mm_cmpestra(a, test_vecu[1].la, b, test_vecu[1].lb, SIMDE_SIDD_UBYTE_OPS | SIMDE_SIDD_CMP_EQUAL_EACH | SIMDE_SIDD_LEAST_SIGNIFICANT | SIMDE_SIDD_NEGATIVE_POLARITY);
2189-
simde_assert_equal_i32(r, test_vecu[1].r);
2190-
2191-
a = simde_x_mm_loadu_epu8(test_vecu[2].a);
2192-
b = simde_x_mm_loadu_epu8(test_vecu[2].b);
2193-
r = simde_mm_cmpestra(a, test_vecu[2].la, b, test_vecu[2].lb, SIMDE_SIDD_UBYTE_OPS | SIMDE_SIDD_CMP_EQUAL_ANY | SIMDE_SIDD_LEAST_SIGNIFICANT | SIMDE_SIDD_MASKED_NEGATIVE_POLARITY);
2194-
simde_assert_equal_i32(r, test_vecu[2].r);
2195-
2196-
a = simde_mm_loadu_epi8(test_vec_sb[0].a);
2197-
b = simde_mm_loadu_epi8(test_vec_sb[0].b);
2198-
r = simde_mm_cmpestra(a, test_vec_sb[0].la, b, test_vec_sb[0].lb, SIMDE_SIDD_SBYTE_OPS | SIMDE_SIDD_CMP_RANGES | SIMDE_SIDD_LEAST_SIGNIFICANT);
2199-
simde_assert_equal_i32(r, test_vec_sb[0].r);
2200-
2201-
a = simde_mm_loadu_epi8(test_vec_sb[1].a);
2202-
b = simde_mm_loadu_epi8(test_vec_sb[1].b);
2203-
r = simde_mm_cmpestra(a, test_vec_sb[1].la, b, test_vec_sb[1].lb, SIMDE_SIDD_SBYTE_OPS | SIMDE_SIDD_CMP_EQUAL_ORDERED | SIMDE_SIDD_MOST_SIGNIFICANT | SIMDE_SIDD_NEGATIVE_POLARITY);
2204-
simde_assert_equal_i32(r, test_vec_sb[1].r);
2205-
2206-
a = simde_mm_loadu_epi8(test_vec_sb[2].a);
2207-
b = simde_mm_loadu_epi8(test_vec_sb[2].b);
2208-
r = simde_mm_cmpestra(a, test_vec_sb[2].la, b, test_vec_sb[2].lb, SIMDE_SIDD_SBYTE_OPS | SIMDE_SIDD_CMP_EQUAL_ANY | SIMDE_SIDD_LEAST_SIGNIFICANT);
2209-
simde_assert_equal_i32(r, test_vec_sb[2].r);
2210-
2211-
a = simde_x_mm_loadu_epu16(test_vec_uw[0].a);
2212-
b = simde_x_mm_loadu_epu16(test_vec_uw[0].b);
2213-
r = simde_mm_cmpestra(a, test_vec_uw[0].la, b, test_vec_uw[0].lb, SIMDE_SIDD_UWORD_OPS | SIMDE_SIDD_CMP_EQUAL_ORDERED | SIMDE_SIDD_LEAST_SIGNIFICANT);
2214-
simde_assert_equal_i32(r, test_vec_uw[0].r);
2215-
2216-
a = simde_x_mm_loadu_epu16(test_vec_uw[1].a);
2217-
b = simde_x_mm_loadu_epu16(test_vec_uw[1].b);
2218-
r = simde_mm_cmpestra(a, test_vec_uw[1].la, b, test_vec_uw[1].lb, SIMDE_SIDD_UWORD_OPS | SIMDE_SIDD_CMP_RANGES | SIMDE_SIDD_MOST_SIGNIFICANT | SIMDE_SIDD_MASKED_NEGATIVE_POLARITY);
2219-
simde_assert_equal_i32(r, test_vec_uw[1].r);
2220-
2221-
a = simde_x_mm_loadu_epu16(test_vec_uw[2].a);
2222-
b = simde_x_mm_loadu_epu16(test_vec_uw[2].b);
2223-
r = simde_mm_cmpestra(a, test_vec_uw[2].la, b, test_vec_uw[2].lb, SIMDE_SIDD_UWORD_OPS | SIMDE_SIDD_CMP_EQUAL_EACH | SIMDE_SIDD_MOST_SIGNIFICANT);
2224-
simde_assert_equal_i32(r, test_vec_uw[2].r);
2225-
2226-
a = simde_mm_loadu_epi16(test_vec_sw[0].a);
2227-
b = simde_mm_loadu_epi16(test_vec_sw[0].b);
2228-
r = simde_mm_cmpestra(a, test_vec_sw[0].la, b, test_vec_sw[0].lb, SIMDE_SIDD_SWORD_OPS | SIMDE_SIDD_CMP_RANGES | SIMDE_SIDD_LEAST_SIGNIFICANT | SIMDE_SIDD_NEGATIVE_POLARITY);
2229-
simde_assert_equal_i32(r, test_vec_sw[0].r);
2230-
2231-
a = simde_mm_loadu_epi16(test_vec_sw[1].a);
2232-
b = simde_mm_loadu_epi16(test_vec_sw[1].b);
2233-
r = simde_mm_cmpestra(a, test_vec_sw[1].la, b, test_vec_sw[1].lb, SIMDE_SIDD_SWORD_OPS | SIMDE_SIDD_CMP_EQUAL_EACH | SIMDE_SIDD_MOST_SIGNIFICANT);
2234-
simde_assert_equal_i32(r, test_vec_sw[1].r);
2235-
2236-
a = simde_mm_loadu_epi16(test_vec_sw[2].a);
2237-
b = simde_mm_loadu_epi16(test_vec_sw[2].b);
2238-
r = simde_mm_cmpestra(a, test_vec_sw[2].la, b, test_vec_sw[2].lb, SIMDE_SIDD_SWORD_OPS | SIMDE_SIDD_CMP_EQUAL_ANY | SIMDE_SIDD_LEAST_SIGNIFICANT | SIMDE_SIDD_MASKED_NEGATIVE_POLARITY);
2239-
simde_assert_equal_i32(r, test_vec_sw[2].r);
2240-
2241-
return 0;
2242-
}
2243-
22442244
static int
22452245
test_simde_mm_cmpestrc(SIMDE_MUNIT_TEST_ARGS) {
22462246
const struct {
@@ -3442,7 +3442,7 @@ test_simde_mm_cmpistro(SIMDE_MUNIT_TEST_ARGS) {
34423442
// end test values from sse2neon
34433443

34443444
SIMDE_TEST_FUNC_LIST_BEGIN
3445-
// SIMDE_TEST_FUNC_LIST_ENTRY(mm_cmpestra)
3445+
SIMDE_TEST_FUNC_LIST_ENTRY(mm_cmpestra)
34463446
// SIMDE_TEST_FUNC_LIST_ENTRY(mm_cmpestrc)
34473447
// SIMDE_TEST_FUNC_LIST_ENTRY(mm_cmpestri)
34483448
// SIMDE_TEST_FUNC_LIST_ENTRY(mm_cmpestrm)

0 commit comments

Comments
 (0)