https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115362
Bug ID: 115362 Summary: fixed_size_simd dot product recognition not working for stdx::reduce Product: gcc Version: 14.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jondaniel879 at gmail dot com Target Milestone: --- namespace stdx = std::experimental; using namespace stdx::parallelism_v2; template<typename FIRST, typename... OTHER, typename = std::enable_if_t<(std::is_convertible_v<std::decay_t<OTHER>, const stdx::fixed_size_simd<T,N>> && ...)>> static inline constexpr T dot(FIRST first, OTHER&&... other) { return stdx::reduce(first * (... * std::forward<OTHER>(other))); } doesn't generate vdpp(s/d) on AVX machines.