Document the new DPF surfaces in one command set, and test the field, half-tree, and multipoint edges.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ryan Henry 2026-09-24 23:18:10 -06:00
parent 0d8a5a8131
commit 0dff6df8ed
250 changed files with 12199 additions and 1981 deletions

View file

@ -172,6 +172,8 @@ TEST(PackedLane, ScalarRing)
EXPECT_EQ(10_nyble, dpf::nyble{10});
EXPECT_EQ(dpf::utils::bitlength_of_v<dpf::twobit>, 2u);
EXPECT_EQ(dpf::utils::bitlength_of_v<dpf::nyble>, 4u);
HEDLEY_PRAGMA(GCC diagnostic push)
HEDLEY_PRAGMA(GCC diagnostic ignored "-Wignored-attributes")
EXPECT_EQ((dpf::utils::bitlength_of_output_v<dpf::twobit, simde__m256i>), 2u);
EXPECT_EQ((dpf::utils::bitlength_of_output_v<dpf::nyble, simde__m128i>), 4u);
EXPECT_EQ((dpf::outputs_per_leaf_v<dpf::twobit, simde__m128i>), 64u);
@ -179,6 +181,7 @@ TEST(PackedLane, ScalarRing)
EXPECT_EQ((dpf::outputs_per_leaf_v<dpf::nyble, simde__m128i>), 32u);
EXPECT_EQ((dpf::outputs_per_leaf_v<dpf::nyble, simde__m256i>), 64u);
EXPECT_EQ((dpf::lg_outputs_per_leaf_v<dpf::twobit, simde__m256i>), 7u);
HEDLEY_PRAGMA(GCC diagnostic pop)
}
TEST(PackedLane, SimdMatchesScalar)
@ -229,8 +232,11 @@ TEST(PackedLane, LeafFunctorsMatchSimd)
auto via4 = dpf::lane_arith::mul_epi4(a256, dpf::nyble{7});
EXPECT_EQ(std::memcmp(&scaled, &via4, sizeof(via4)), 0);
HEDLEY_PRAGMA(GCC diagnostic push)
HEDLEY_PRAGMA(GCC diagnostic ignored "-Wignored-attributes")
std::array<simde__m128i, 2> aa{a128, b128};
std::array<simde__m128i, 2> bb{b128, a128};
HEDLEY_PRAGMA(GCC diagnostic pop)
auto both = dpf::add_leaf<dpf::nyble>(aa, bb);
auto e0 = dpf::lane_arith::add_epi4(a128, b128);
auto e1 = dpf::lane_arith::add_epi4(b128, a128);