From 282634f7426200d35b8447afb5def2fa6b346876 Mon Sep 17 00:00:00 2001 From: John Pennycook Date: Fri, 18 Sep 2020 10:43:40 -0400 Subject: [PATCH] [SYCL] Remove any/all/none arithmetic restriction pred(x) will transform any input type to Boolean. Signed-off-by: John Pennycook --- .../CL/sycl/ONEAPI/group_algorithm.hpp | 33 +++++++------------ 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/sycl/include/CL/sycl/ONEAPI/group_algorithm.hpp b/sycl/include/CL/sycl/ONEAPI/group_algorithm.hpp index 9cb88e53f13e4..3aaab50b236aa 100644 --- a/sycl/include/CL/sycl/ONEAPI/group_algorithm.hpp +++ b/sycl/include/CL/sycl/ONEAPI/group_algorithm.hpp @@ -203,18 +203,15 @@ all_of(Group, bool pred) { } template -detail::enable_if_t<(detail::is_generic_group::value && - detail::is_arithmetic::value), - bool> +detail::enable_if_t::value, bool> all_of(Group g, T x, Predicate pred) { return all_of(g, pred(x)); } template -detail::enable_if_t< - (detail::is_generic_group::value && detail::is_pointer::value && - detail::is_arithmetic::type>::value), - bool> +detail::enable_if_t<(detail::is_generic_group::value && + detail::is_pointer::value), + bool> all_of(Group g, Ptr first, Ptr last, Predicate pred) { #ifdef __SYCL_DEVICE_ONLY__ bool partial = true; @@ -245,18 +242,15 @@ any_of(Group, bool pred) { } template -detail::enable_if_t<(detail::is_generic_group::value && - detail::is_arithmetic::value), - bool> +detail::enable_if_t::value, bool> any_of(Group g, T x, Predicate pred) { return any_of(g, pred(x)); } template -detail::enable_if_t< - (detail::is_generic_group::value && detail::is_pointer::value && - detail::is_arithmetic::type>::value), - bool> +detail::enable_if_t<(detail::is_generic_group::value && + detail::is_pointer::value), + bool> any_of(Group g, Ptr first, Ptr last, Predicate pred) { #ifdef __SYCL_DEVICE_ONLY__ bool partial = false; @@ -287,18 +281,15 @@ none_of(Group, bool pred) { } template -detail::enable_if_t<(detail::is_generic_group::value && - detail::is_arithmetic::value), - bool> +detail::enable_if_t::value, bool> none_of(Group g, T x, Predicate pred) { return none_of(g, pred(x)); } template -detail::enable_if_t< - (detail::is_generic_group::value && detail::is_pointer::value && - detail::is_arithmetic::type>::value), - bool> +detail::enable_if_t<(detail::is_generic_group::value && + detail::is_pointer::value), + bool> none_of(Group g, Ptr first, Ptr last, Predicate pred) { #ifdef __SYCL_DEVICE_ONLY__ return !any_of(g, first, last, pred);