blob: b33087e1c5b9ae9660d322b128985c67429ce5ab [file]
// RUN: %clangxx -fsycl -fsyntax-only %s
// expected-no-diagnostics
#include <sycl/sycl.hpp>
template <int Dims> struct ConvertibleFromNDItem {
ConvertibleFromNDItem(sycl::nd_item<Dims>) {}
};
int main() {
sycl::queue Q;
Q.submit([&](sycl::handler &CGH) {
CGH.parallel_for(sycl::range{1}, [=](sycl::item<1>) {});
});
Q.submit([&](sycl::handler &CGH) {
CGH.parallel_for(sycl::range{1, 1}, [=](sycl::item<2>) {});
});
Q.submit([&](sycl::handler &CGH) {
CGH.parallel_for(sycl::range{1, 1, 1}, [=](sycl::item<3>) {});
});
Q.submit([&](sycl::handler &CGH) {
CGH.parallel_for(sycl::range{1}, [=](sycl::id<1>) {});
});
Q.submit([&](sycl::handler &CGH) {
CGH.parallel_for(sycl::nd_range{sycl::range{4}, sycl::range{2}},
[=](sycl::nd_item<1>) {});
});
Q.submit([&](sycl::handler &CGH) {
CGH.parallel_for(sycl::nd_range{sycl::range{2, 4}, sycl::range{1, 2}},
[=](sycl::nd_item<2>) {});
});
Q.submit([&](sycl::handler &CGH) {
CGH.parallel_for(sycl::nd_range{sycl::range{2, 2, 4}, sycl::range{1, 1, 2}},
[=](sycl::nd_item<3>) {});
});
Q.submit([&](sycl::handler &CGH) {
CGH.parallel_for(sycl::nd_range{sycl::range{4}, sycl::range{2}},
[=](ConvertibleFromNDItem<1>) {});
});
return 0;
}