|
| 1 | +// REQUIRES: xptifw, opencl |
| 2 | +// RUN: %clangxx %s -DXPTI_COLLECTOR -DXPTI_CALLBACK_API_EXPORTS %xptifw_lib %shared_lib %fPIC %cxx_std_optionc++17 -o %t_collector.dll |
| 3 | +// RUN: %clangxx -fsycl %s -o %t.out |
| 4 | +// RUN: env XPTI_TRACE_ENABLE=1 XPTI_FRAMEWORK_DISPATCHER=%xptifw_dispatcher XPTI_SUBSCRIBERS=%t_collector.dll SYCL_DEVICE_FILTER=opencl %t.out | FileCheck %s 2>&1 |
| 5 | + |
| 6 | +#ifdef XPTI_COLLECTOR |
| 7 | + |
| 8 | +#include "../Inputs/buffer_info_collector.cpp" |
| 9 | + |
| 10 | +#else |
| 11 | + |
| 12 | +#include <sycl/sycl.hpp> |
| 13 | + |
| 14 | +using namespace sycl::access; |
| 15 | + |
| 16 | +int main() { |
| 17 | + bool MismatchFound = false; |
| 18 | + sycl::queue Queue{}; |
| 19 | + |
| 20 | + // CHECK:{{[0-9]+}}|Create buffer|[[#BUFFERID:]]|{{.*}}accessors.cpp:21:24|{{.*}}accessors.cpp:21:24 |
| 21 | + sycl::buffer<int, 1> Buf(4); |
| 22 | + |
| 23 | + sycl::range<1> Range{Buf.size()}; |
| 24 | + |
| 25 | + Queue.submit([&](sycl::handler &cgh) { |
| 26 | + // CHECK: {{[0-9]+}}|Construct accessor|[[#BUFFERID]]|[[#ACCID1:]]|2015|1024|{{.*}}accessors.cpp:27:15|{{.*}}accessors.cpp:27:15 |
| 27 | + auto A1 = Buf.get_access<mode::read, target::constant_buffer>(cgh); |
| 28 | + // CHECK: {{[0-9]+}}|Construct accessor|[[#BUFFERID]]|[[#ACCID2:]]|2014|1025|{{.*}}accessors.cpp:29:15|{{.*}}accessors.cpp:29:15 |
| 29 | + auto A2 = Buf.get_access<mode::write>(cgh); |
| 30 | + // CHECK: {{[0-9]+}}|Construct accessor|0|[[#ACCID3:]]|2016|1026|{{.*}}accessors.cpp:31:61|{{.*}}accessors.cpp:31:61 |
| 31 | + sycl::accessor<int, 1, mode::read_write, target::local> A3(Range, cgh); |
| 32 | + // CHECK: {{[0-9]+}}|Construct accessor|[[#BUFFERID]]|[[#ACCID4:]]|2014|1027|{{.*}}accessors.cpp:33:15|{{.*}}accessors.cpp:33:15 |
| 33 | + auto A4 = Buf.get_access<mode::discard_write>(cgh); |
| 34 | + // CHECK: {{[0-9]+}}|Construct accessor|[[#BUFFERID]]|[[#ACCID5:]]|2014|1028|{{.*}}accessors.cpp:35:15|{{.*}}accessors.cpp:35:15 |
| 35 | + auto A5 = Buf.get_access<mode::discard_read_write, target::device>(cgh); |
| 36 | + // CHECK: {{[0-9]+}}|Construct accessor|[[#BUFFERID]]|[[#ACCID6:]]|2014|1029|{{.*}}accessors.cpp:37:15|{{.*}}accessors.cpp:37:15 |
| 37 | + auto A6 = Buf.get_access<mode::atomic>(cgh); |
| 38 | + cgh.parallel_for<class FillBuffer>(Range, [=](sycl::id<1> WIid) {}); |
| 39 | + }); |
| 40 | + // CHECK: {{[0-9]+}}|Construct accessor|[[#BUFFERID]]|[[#ACCID1:]]|2018|1024|{{.*}}accessors.cpp:41:15|{{.*}}accessors.cpp:41:15 |
| 41 | + { auto HA = Buf.get_access<mode::read>(); } |
| 42 | + // CHECK: {{[0-9]+}}|Construct accessor|[[#BUFFERID]]|[[#ACCID1:]]|2018|1025|{{.*}}accessors.cpp:43:15|{{.*}}accessors.cpp:43:15 |
| 43 | + { auto HA = Buf.get_access<mode::write>(); } |
| 44 | + // CHECK: {{[0-9]+}}|Construct accessor|[[#BUFFERID]]|[[#ACCID1:]]|2018|1026|{{.*}}accessors.cpp:45:15|{{.*}}accessors.cpp:45:15 |
| 45 | + { auto HA = Buf.get_access<mode::read_write>(); } |
| 46 | + // CHECK: {{[0-9]+}}|Construct accessor|[[#BUFFERID]]|[[#ACCID1:]]|2018|1027|{{.*}}accessors.cpp:47:15|{{.*}}accessors.cpp:47:15 |
| 47 | + { auto HA = Buf.get_access<mode::discard_write>(); } |
| 48 | + // CHECK: {{[0-9]+}}|Construct accessor|[[#BUFFERID]]|[[#ACCID1:]]|2018|1028|{{.*}}accessors.cpp:49:15|{{.*}}accessors.cpp:49:15 |
| 49 | + { auto HA = Buf.get_access<mode::discard_read_write>(); } |
| 50 | + // CHECK: {{[0-9]+}}|Construct accessor|[[#BUFFERID]]|[[#ACCID1:]]|2018|1029|{{.*}}accessors.cpp:51:15|{{.*}}accessors.cpp:51:15 |
| 51 | + { auto HA = Buf.get_access<mode::atomic>(); } |
| 52 | + |
| 53 | + return 0; |
| 54 | +} |
| 55 | +// CHECK:{{[0-9]+}}|Destruct buffer|[[#BUFFERID]] |
| 56 | +#endif |
0 commit comments