Skip to content
This repository was archived by the owner on Mar 28, 2023. It is now read-only.

Commit 1101f64

Browse files
[SYCL] Fix scan tests for multiplication (#404)
Co-authored-by: Michel Migdal <[email protected]>
1 parent 4c95eba commit 1101f64

File tree

2 files changed

+28
-8
lines changed

2 files changed

+28
-8
lines changed

SYCL/GroupAlgorithm/exclusive_scan_sycl2020.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,9 +153,18 @@ int main() {
153153
constexpr int N = 128;
154154
std::array<int, N> input;
155155
std::array<int, N> output;
156-
std::iota(input.begin(), input.end(), 0);
156+
std::iota(input.begin(), input.end(), 2);
157157
std::fill(output.begin(), output.end(), 0);
158158

159+
// Smaller size as the multiplication test
160+
// will result in computing of a factorial
161+
// 12! fits in a 32 bits integer.
162+
constexpr int M = 12;
163+
std::array<int, M> input_small;
164+
std::array<int, M> output_small;
165+
std::iota(input_small.begin(), input_small.end(), 1);
166+
std::fill(output_small.begin(), output_small.end(), 0);
167+
159168
test<class KernelNamePlusV>(q, input, output, sycl::plus<>(), 0);
160169
test<class KernelNameMinimumV>(q, input, output, sycl::minimum<>(),
161170
std::numeric_limits<int>::max());
@@ -169,11 +178,12 @@ int main() {
169178
std::numeric_limits<int>::lowest());
170179

171180
#ifdef SPIRV_1_3
172-
test<class KernelNameMultipliesI>(q, input, output, sycl::multiplies<int>(),
173-
1);
181+
test<class KernelNameMultipliesI>(q, input_small, output_small,
182+
sycl::multiplies<int>(), 1);
174183
test<class KernelNameBitOrI>(q, input, output, sycl::bit_or<int>(), 0);
175184
test<class KernelNameBitXorI>(q, input, output, sycl::bit_xor<int>(), 0);
176-
test<class KernelNameBitAndI>(q, input, output, sycl::bit_and<int>(), ~0);
185+
test<class KernelNameBitAndI>(q, input_small, output_small,
186+
sycl::bit_and<int>(), ~0);
177187
#endif // SPIRV_1_3
178188

179189
std::cout << "Test passed." << std::endl;

SYCL/GroupAlgorithm/inclusive_scan_sycl2020.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,9 +153,18 @@ int main() {
153153
constexpr int N = 128;
154154
std::array<int, N> input;
155155
std::array<int, N> output;
156-
std::iota(input.begin(), input.end(), 0);
156+
std::iota(input.begin(), input.end(), 2);
157157
std::fill(output.begin(), output.end(), 0);
158158

159+
// Smaller size as the multiplication test
160+
// will result in computing of a factorial
161+
// 12! fits in a 32 bits integer.
162+
constexpr int M = 12;
163+
std::array<int, M> input_small;
164+
std::array<int, M> output_small;
165+
std::iota(input_small.begin(), input_small.end(), 1);
166+
std::fill(output_small.begin(), output_small.end(), 0);
167+
159168
test<class KernelNamePlusV>(q, input, output, sycl::plus<>(), 0);
160169
test<class KernelNameMinimumV>(q, input, output, sycl::minimum<>(),
161170
std::numeric_limits<int>::max());
@@ -169,11 +178,12 @@ int main() {
169178
std::numeric_limits<int>::lowest());
170179

171180
#ifdef SPIRV_1_3
172-
test<class KernelNameMultipliesI>(q, input, output, sycl::multiplies<int>(),
173-
1);
181+
test<class KernelNameMultipliesI>(q, input_small, output_small,
182+
sycl::multiplies<int>(), 1);
174183
test<class KernelNameBitOrI>(q, input, output, sycl::bit_or<int>(), 0);
175184
test<class KernelNameBitXorI>(q, input, output, sycl::bit_xor<int>(), 0);
176-
test<class KernelNameBitAndI>(q, input, output, sycl::bit_and<int>(), ~0);
185+
test<class KernelNameBitAndI>(q, input_small, output_small,
186+
sycl::bit_and<int>(), ~0);
177187
#endif // SPIRV_1_3
178188

179189
std::cout << "Test passed." << std::endl;

0 commit comments

Comments
 (0)