[PATCH] Improve implementation of parallel equal()
Thomas Rodgers
trodgers@redhat.com
Sat Apr 20 22:38:00 GMT 2019
Jonathan Wakely writes:
> 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.
Tested x86_64-linux-gnu, committed to trunk.
More information about the Libstdc++
mailing list