[PATCH] Improve implementation of parallel equal()
Jonathan Wakely
jwakely@redhat.com
Thu Apr 18 21:23:00 GMT 2019
On 16/04/19 12:39 -0700, Thomas Rodgers wrote:
>
> * include/pstl/algorithm_impl.h
> (__internal::__brick_equal): use "4 iterator" version of
> std::equal().
> (__internal::__brick_equal): use simd for random access
> iterators on unsequenced execution policies.
> (__internal::__pattern_equal): add "4 iterator" version
> (__internal::__pattern_equal): dispatch to simd __brick_equal
> for vector-only execution policies.
> (__internal::__pattern_equal): disptach to __parallel_or for
s/disptach/dispatch/ in the changelog
>--- a/libstdc++-v3/include/pstl/glue_algorithm_impl.h
>+++ b/libstdc++-v3/include/pstl/glue_algorithm_impl.h
>@@ -757,7 +757,7 @@ __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, bool>
> equal(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
> _ForwardIterator2 __last2)
> {
>- return equal(std::forward<_ExecutionPolicy>(__exec), __first1, __last1, __first2,
>+ return equal(std::forward<_ExecutionPolicy>(__exec), __first1, __last1, __first2, __last2,
N.B. I don't think this should be an unqualified call, but that can be
fixed in a later patch.
OK for trunk, thanks.
More information about the Gcc-patches
mailing list