@@ -29,26 +29,22 @@ template <unsigned SIMDSize> int testAccessor(queue q) {
29
29
auto vec_1 = std::vector<int >(size);
30
30
auto vec_2 = std::vector<int >(size);
31
31
auto vec_3 = std::vector<int >(size);
32
- auto vec_input = std::vector<int >(size);
33
32
34
33
std::iota (vec_0.begin (), vec_0.end (), 0 );
35
34
std::iota (vec_1.begin (), vec_1.end (), 0 );
36
35
std::iota (vec_2.begin (), vec_2.end (), 0 );
37
36
std::iota (vec_3.begin (), vec_3.end (), 0 );
38
- std::iota (vec_input.begin (), vec_input.end (), 0 );
39
37
auto buf_0 = buffer{vec_0};
40
38
auto buf_1 = buffer{vec_1};
41
39
auto buf_2 = buffer{vec_2};
42
40
auto buf_3 = buffer{vec_3};
43
- auto buf_input = buffer{vec_input};
44
41
45
42
try {
46
43
q.submit ([&](handler &h) {
47
- auto access_0 = buf_0.template get_access <access::mode::write>(h);
48
- auto access_1 = buf_1.template get_access <access::mode::write>(h);
49
- auto access_2 = buf_2.template get_access <access::mode::write>(h);
50
- auto access_3 = buf_3.template get_access <access::mode::write>(h);
51
- auto access_input = buf_input.template get_access <access::mode::read>(h);
44
+ auto access_0 = buf_0.template get_access <access::mode::read_write>(h);
45
+ auto access_1 = buf_1.template get_access <access::mode::read_write>(h);
46
+ auto access_2 = buf_2.template get_access <access::mode::read_write>(h);
47
+ auto access_3 = buf_3.template get_access <access::mode::read_write>(h);
52
48
53
49
h.parallel_for (
54
50
range<1 >{size / SIMDSize}, [=](id<1 > id) SYCL_ESIMD_KERNEL {
@@ -57,28 +53,28 @@ template <unsigned SIMDSize> int testAccessor(queue q) {
57
53
auto pred_enable = simd_mask<1 >(1 );
58
54
auto pred_disable = simd_mask<1 >(0 );
59
55
60
- auto data_0 = lsc_block_load< int , SIMDSize>(access_input, offset,
61
- pred_enable);
56
+ auto data_0 =
57
+ lsc_block_load< int , SIMDSize>(access_0, offset, pred_enable);
62
58
lsc_block_store<int , SIMDSize>(access_0, offset, data_0 * 2 ,
63
59
pred_enable);
64
60
65
- auto data_1 = lsc_block_load< int , SIMDSize>(access_input, offset,
66
- pred_disable);
61
+ auto data_1 =
62
+ lsc_block_load< int , SIMDSize>(access_1, offset, pred_disable);
67
63
lsc_block_store<int , SIMDSize>(access_1, offset, data_1 * 2 ,
68
64
pred_enable);
69
65
70
- auto data_2 = lsc_block_load< int , SIMDSize>(access_input, offset,
71
- pred_enable);
66
+ auto data_2 =
67
+ lsc_block_load< int , SIMDSize>(access_2, offset, pred_enable);
72
68
lsc_block_store<int , SIMDSize>(access_2, offset, data_2 * 2 ,
73
69
pred_disable);
74
70
75
- auto data_3 = lsc_block_load< int , SIMDSize>(access_input, offset,
76
- pred_disable);
71
+ auto data_3 =
72
+ lsc_block_load< int , SIMDSize>(access_3, offset, pred_disable);
77
73
lsc_block_store<int , SIMDSize>(access_3, offset, data_3 * 2 ,
78
74
pred_disable);
79
75
});
80
76
});
81
- q.wait ();
77
+ q.wait_and_throw ();
82
78
} catch (sycl::exception e) {
83
79
std::cout << " SYCL exception caught: " << e.what ();
84
80
return 1 ;
@@ -126,7 +122,7 @@ template <unsigned SIMDSize> int testUSM(queue q) {
126
122
std::iota (vec_1, vec_1 + size, 0 );
127
123
std::iota (vec_2, vec_2 + size, 0 );
128
124
std::iota (vec_3, vec_3 + size, 0 );
129
- std::iota (vec_input, vec_input + size, 0 );
125
+ std::iota (vec_input, vec_3 + size, 0 );
130
126
131
127
try {
132
128
q.submit ([&](handler &h) {
@@ -157,7 +153,7 @@ template <unsigned SIMDSize> int testUSM(queue q) {
157
153
pred_disable);
158
154
});
159
155
});
160
- q.wait ();
156
+ q.wait_and_throw ();
161
157
} catch (sycl::exception e) {
162
158
std::cout << " SYCL exception caught: " << e.what ();
163
159
sycl::free (vec_0, q);
0 commit comments