|
| 1 | +// RUN: %clangxx -std=c++17 -fsyntax-only -Xclang -verify %s |
| 2 | +// expected-no-diagnostics |
| 3 | +//==--------------- ctad.cpp - SYCL multi_ptr CTAD test --------------------==// |
| 4 | +// |
| 5 | +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| 6 | +// See https://llvm.org/LICENSE.txt for license information. |
| 7 | +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| 8 | +// |
| 9 | +//===----------------------------------------------------------------------===// |
| 10 | +#include <CL/sycl.hpp> |
| 11 | + |
| 12 | +namespace sycl = cl::sycl; |
| 13 | + |
| 14 | +int main() { |
| 15 | + using sycl::access::address_space; |
| 16 | + using sycl::access::mode; |
| 17 | + using sycl::access::target; |
| 18 | + using globlAcc = sycl::accessor<int, 1, mode::read, target::global_buffer>; |
| 19 | + using constAcc = sycl::accessor<int, 1, mode::read, target::constant_buffer>; |
| 20 | + using localAcc = sycl::accessor<int, 1, mode::read, target::local>; |
| 21 | + using globlCTAD = decltype(sycl::multi_ptr(std::declval<globlAcc>())); |
| 22 | + using constCTAD = decltype(sycl::multi_ptr(std::declval<constAcc>())); |
| 23 | + using localCTAD = decltype(sycl::multi_ptr(std::declval<localAcc>())); |
| 24 | + using globlMPtr = sycl::multi_ptr<int, address_space::global_space>; |
| 25 | + using constMPtr = sycl::multi_ptr<int, address_space::constant_space>; |
| 26 | + using localMPtr = sycl::multi_ptr<int, address_space::local_space>; |
| 27 | + static_assert(std::is_same_v<globlCTAD, globlMPtr>); |
| 28 | + static_assert(std::is_same_v<constCTAD, constMPtr>); |
| 29 | + static_assert(std::is_same_v<localCTAD, localMPtr>); |
| 30 | +} |
0 commit comments