@@ -106,6 +106,39 @@ void test_extract_bits32_n(TestResultsSet& tc)
106106 TEST_PUSH_ALL_COMB_OP1_T (tc, std::uint32_t , uint32<B/4 >, extract_bits_any, s);
107107}
108108
109+ template <unsigned B>
110+ void test_extract_bits64_n (TestResultsSet& tc)
111+ {
112+ using namespace simdpp ;
113+
114+ TestData<uint64<B/8 >> s;
115+
116+ s.add (make_uint (0x0000000000000000 , 0x0000000000000000 ));
117+ s.add (make_uint (0xffffffffffffffff , 0x0000000000000000 ));
118+ s.add (make_uint (0x0000000000000000 , 0xffffffffffffffff ));
119+ s.add (make_uint (0xffffffffffffffff , 0xffffffffffffffff ));
120+
121+ TEST_PUSH_ALL_COMB_OP1_T (tc, std::uint32_t , uint64<B/8 >, extract_bits_any, s);
122+ }
123+
124+ template <unsigned B>
125+ void test_extract_bits64_n2 (TestResultsSet& tc)
126+ {
127+ using namespace simdpp ;
128+
129+ TestData<uint64<B/8 >> s;
130+
131+ s.add (make_uint (0xffffffffffffffff , 0x0000000000000000 , 0xffffffffffffffff , 0x0000000000000000 ));
132+ s.add (make_uint (0x0000000000000000 , 0xffffffffffffffff , 0x0000000000000000 , 0xffffffffffffffff ));
133+ s.add (make_uint (0x0000000000000000 , 0x0000000000000000 , 0xffffffffffffffff , 0x0000000000000000 ));
134+ s.add (make_uint (0x0000000000000000 , 0x0000000000000000 , 0x0000000000000000 , 0xffffffffffffffff ));
135+ s.add (make_uint (0x0000000000000000 , 0xffffffffffffffff , 0xffffffffffffffff , 0xffffffffffffffff ));
136+ s.add (make_uint (0xffffffffffffffff , 0xffffffffffffffff , 0xffffffffffffffff , 0xffffffffffffffff ));
137+ s.add (make_uint (0x0000000000000000 , 0x0000000000000000 , 0x0000000000000000 , 0x0000000000000000 ));
138+
139+ TEST_PUSH_ALL_COMB_OP1_T (tc, std::uint32_t , uint64<B/8 >, extract_bits_any, s);
140+ }
141+
109142template <class V , class V32I >
110143void test_popcnt_type (TestResultsSet& tc)
111144{
@@ -231,6 +264,8 @@ void test_bitwise(TestResults& res, TestReporter& tr)
231264 test_extract_bits16_n<32 >(tc);
232265 test_extract_bits32_n<16 >(tc);
233266 test_extract_bits32_n<32 >(tc);
267+ test_extract_bits64_n<16 >(tc);
268+ test_extract_bits64_n2<32 >(tc);
234269}
235270
236271} // namespace SIMDPP_ARCH_NAMESPACE
0 commit comments