Skip to content

Commit 282634f

Browse files
committed
[SYCL] Remove any/all/none arithmetic restriction
pred(x) will transform any input type to Boolean. Signed-off-by: John Pennycook <[email protected]>
1 parent da518f9 commit 282634f

File tree

1 file changed

+12
-21
lines changed

1 file changed

+12
-21
lines changed

sycl/include/CL/sycl/ONEAPI/group_algorithm.hpp

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -203,18 +203,15 @@ all_of(Group, bool pred) {
203203
}
204204

205205
template <typename Group, typename T, class Predicate>
206-
detail::enable_if_t<(detail::is_generic_group<Group>::value &&
207-
detail::is_arithmetic<T>::value),
208-
bool>
206+
detail::enable_if_t<detail::is_generic_group<Group>::value, bool>
209207
all_of(Group g, T x, Predicate pred) {
210208
return all_of(g, pred(x));
211209
}
212210

213211
template <typename Group, typename Ptr, class Predicate>
214-
detail::enable_if_t<
215-
(detail::is_generic_group<Group>::value && detail::is_pointer<Ptr>::value &&
216-
detail::is_arithmetic<typename detail::remove_pointer<Ptr>::type>::value),
217-
bool>
212+
detail::enable_if_t<(detail::is_generic_group<Group>::value &&
213+
detail::is_pointer<Ptr>::value),
214+
bool>
218215
all_of(Group g, Ptr first, Ptr last, Predicate pred) {
219216
#ifdef __SYCL_DEVICE_ONLY__
220217
bool partial = true;
@@ -245,18 +242,15 @@ any_of(Group, bool pred) {
245242
}
246243

247244
template <typename Group, typename T, class Predicate>
248-
detail::enable_if_t<(detail::is_generic_group<Group>::value &&
249-
detail::is_arithmetic<T>::value),
250-
bool>
245+
detail::enable_if_t<detail::is_generic_group<Group>::value, bool>
251246
any_of(Group g, T x, Predicate pred) {
252247
return any_of(g, pred(x));
253248
}
254249

255250
template <typename Group, typename Ptr, class Predicate>
256-
detail::enable_if_t<
257-
(detail::is_generic_group<Group>::value && detail::is_pointer<Ptr>::value &&
258-
detail::is_arithmetic<typename detail::remove_pointer<Ptr>::type>::value),
259-
bool>
251+
detail::enable_if_t<(detail::is_generic_group<Group>::value &&
252+
detail::is_pointer<Ptr>::value),
253+
bool>
260254
any_of(Group g, Ptr first, Ptr last, Predicate pred) {
261255
#ifdef __SYCL_DEVICE_ONLY__
262256
bool partial = false;
@@ -287,18 +281,15 @@ none_of(Group, bool pred) {
287281
}
288282

289283
template <typename Group, typename T, class Predicate>
290-
detail::enable_if_t<(detail::is_generic_group<Group>::value &&
291-
detail::is_arithmetic<T>::value),
292-
bool>
284+
detail::enable_if_t<detail::is_generic_group<Group>::value, bool>
293285
none_of(Group g, T x, Predicate pred) {
294286
return none_of(g, pred(x));
295287
}
296288

297289
template <typename Group, typename Ptr, class Predicate>
298-
detail::enable_if_t<
299-
(detail::is_generic_group<Group>::value && detail::is_pointer<Ptr>::value &&
300-
detail::is_arithmetic<typename detail::remove_pointer<Ptr>::type>::value),
301-
bool>
290+
detail::enable_if_t<(detail::is_generic_group<Group>::value &&
291+
detail::is_pointer<Ptr>::value),
292+
bool>
302293
none_of(Group g, Ptr first, Ptr last, Predicate pred) {
303294
#ifdef __SYCL_DEVICE_ONLY__
304295
return !any_of(g, first, last, pred);

0 commit comments

Comments
 (0)