Skip to content

Commit 230b844

Browse files
Fixed coverity issue "unintended sign extension"
1 parent c41d09b commit 230b844

File tree

1 file changed

+25
-13
lines changed
  • dpctl/tensor/libtensor/include/kernels/elementwise_functions

1 file changed

+25
-13
lines changed

dpctl/tensor/libtensor/include/kernels/elementwise_functions/common.hpp

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,11 @@ struct UnaryContigFunctor
8282
sycl::vec<resT, vec_sz> res_vec(const_val);
8383
#pragma unroll
8484
for (std::uint8_t it = 0; it < n_vecs * vec_sz; it += vec_sz) {
85+
size_t offset = base + static_cast<size_t>(it) *
86+
static_cast<size_t>(sgSize);
8587
auto out_multi_ptr = sycl::address_space_cast<
8688
sycl::access::address_space::global_space,
87-
sycl::access::decorated::yes>(&out[base + it * sgSize]);
89+
sycl::access::decorated::yes>(&out[offset]);
8890

8991
sg.store<vec_sz>(out_multi_ptr, res_vec);
9092
}
@@ -111,12 +113,14 @@ struct UnaryContigFunctor
111113

112114
#pragma unroll
113115
for (std::uint16_t it = 0; it < n_vecs * vec_sz; it += vec_sz) {
116+
size_t offset = base + static_cast<size_t>(it) *
117+
static_cast<size_t>(sgSize);
114118
auto in_multi_ptr = sycl::address_space_cast<
115119
sycl::access::address_space::global_space,
116-
sycl::access::decorated::yes>(&in[base + it * sgSize]);
120+
sycl::access::decorated::yes>(&in[offset]);
117121
auto out_multi_ptr = sycl::address_space_cast<
118122
sycl::access::address_space::global_space,
119-
sycl::access::decorated::yes>(&out[base + it * sgSize]);
123+
sycl::access::decorated::yes>(&out[offset]);
120124

121125
x = sg.load<vec_sz>(in_multi_ptr);
122126
sycl::vec<resT, vec_sz> res_vec = op(x);
@@ -149,12 +153,14 @@ struct UnaryContigFunctor
149153

150154
#pragma unroll
151155
for (std::uint8_t it = 0; it < n_vecs * vec_sz; it += vec_sz) {
156+
size_t offset = base + static_cast<size_t>(it) *
157+
static_cast<size_t>(sgSize);
152158
auto in_multi_ptr = sycl::address_space_cast<
153159
sycl::access::address_space::global_space,
154-
sycl::access::decorated::yes>(&in[base + it * sgSize]);
160+
sycl::access::decorated::yes>(&in[offset]);
155161
auto out_multi_ptr = sycl::address_space_cast<
156162
sycl::access::address_space::global_space,
157-
sycl::access::decorated::yes>(&out[base + it * sgSize]);
163+
sycl::access::decorated::yes>(&out[offset]);
158164

159165
arg_vec = sg.load<vec_sz>(in_multi_ptr);
160166
#pragma unroll
@@ -188,12 +194,14 @@ struct UnaryContigFunctor
188194

189195
#pragma unroll
190196
for (std::uint8_t it = 0; it < n_vecs * vec_sz; it += vec_sz) {
197+
size_t offset = base + static_cast<size_t>(it) *
198+
static_cast<size_t>(sgSize);
191199
auto in_multi_ptr = sycl::address_space_cast<
192200
sycl::access::address_space::global_space,
193-
sycl::access::decorated::yes>(&in[base + it * sgSize]);
201+
sycl::access::decorated::yes>(&in[offset]);
194202
auto out_multi_ptr = sycl::address_space_cast<
195203
sycl::access::address_space::global_space,
196-
sycl::access::decorated::yes>(&out[base + it * sgSize]);
204+
sycl::access::decorated::yes>(&out[offset]);
197205

198206
arg_vec = sg.load<vec_sz>(in_multi_ptr);
199207
#pragma unroll
@@ -375,15 +383,17 @@ struct BinaryContigFunctor
375383

376384
#pragma unroll
377385
for (std::uint8_t it = 0; it < n_vecs * vec_sz; it += vec_sz) {
386+
size_t offset = base + static_cast<size_t>(it) *
387+
static_cast<size_t>(sgSize);
378388
auto in1_multi_ptr = sycl::address_space_cast<
379389
sycl::access::address_space::global_space,
380-
sycl::access::decorated::yes>(&in1[base + it * sgSize]);
390+
sycl::access::decorated::yes>(&in1[offset]);
381391
auto in2_multi_ptr = sycl::address_space_cast<
382392
sycl::access::address_space::global_space,
383-
sycl::access::decorated::yes>(&in2[base + it * sgSize]);
393+
sycl::access::decorated::yes>(&in2[offset]);
384394
auto out_multi_ptr = sycl::address_space_cast<
385395
sycl::access::address_space::global_space,
386-
sycl::access::decorated::yes>(&out[base + it * sgSize]);
396+
sycl::access::decorated::yes>(&out[offset]);
387397

388398
arg1_vec = sg.load<vec_sz>(in1_multi_ptr);
389399
arg2_vec = sg.load<vec_sz>(in2_multi_ptr);
@@ -415,15 +425,17 @@ struct BinaryContigFunctor
415425

416426
#pragma unroll
417427
for (std::uint8_t it = 0; it < n_vecs * vec_sz; it += vec_sz) {
428+
size_t offset = base + static_cast<size_t>(it) *
429+
static_cast<size_t>(sgSize);
418430
auto in1_multi_ptr = sycl::address_space_cast<
419431
sycl::access::address_space::global_space,
420-
sycl::access::decorated::yes>(&in1[base + it * sgSize]);
432+
sycl::access::decorated::yes>(&in1[offset]);
421433
auto in2_multi_ptr = sycl::address_space_cast<
422434
sycl::access::address_space::global_space,
423-
sycl::access::decorated::yes>(&in2[base + it * sgSize]);
435+
sycl::access::decorated::yes>(&in2[offset]);
424436
auto out_multi_ptr = sycl::address_space_cast<
425437
sycl::access::address_space::global_space,
426-
sycl::access::decorated::yes>(&out[base + it * sgSize]);
438+
sycl::access::decorated::yes>(&out[offset]);
427439

428440
arg1_vec = sg.load<vec_sz>(in1_multi_ptr);
429441
arg2_vec = sg.load<vec_sz>(in2_multi_ptr);

0 commit comments

Comments
 (0)