Skip to content

Commit 2468be3

Browse files
author
Chandra Ghale
committed
test update
1 parent 4df2910 commit 2468be3

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

openmp/runtime/test/worksharing/for/omp_for_private_reduction.cpp

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,37 @@ class Sum {
2222
#pragma omp declare reduction(sum_reduction:Sum : omp_out += omp_in) \
2323
initializer(omp_priv = Sum(0))
2424

25+
#pragma omp declare reduction(sum_pctor_reduction:Sum : omp_out += omp_in) \
26+
initializer(omp_priv = Sum(1)) // non-default ctor
27+
2528
int checkUserDefinedReduction() {
2629
Sum final_result_udr(0);
30+
Sum final_result_udr_pctor(1);
2731
Sum array_sum[N];
2832
int error_flag = 0;
2933
int expected_value = 0;
34+
int expected_value_pctor = 0;
3035
for (int i = 0; i < N; ++i) {
3136
array_sum[i] = Sum(i);
3237
expected_value += i; // Calculate expected sum: 0 + 1 + ... + (N-1)
38+
expected_value_pctor += i;
3339
}
34-
#pragma omp parallel num_threads(4) private(final_result_udr)
40+
int num_threads_for_pctor_calc = 4; // num_threads(4)
41+
int priv_initializer_val_pctor = 1; // initializer(omp_priv = Sum(1))
42+
expected_value_pctor +=
43+
num_threads_for_pctor_calc + priv_initializer_val_pctor;
44+
#pragma omp parallel num_threads(4) private(final_result_udr) private( \
45+
final_result_udr_pctor)
3546
{
36-
#pragma omp for reduction(sum_reduction : final_result_udr)
47+
#pragma omp for reduction(sum_reduction : final_result_udr) \
48+
reduction(sum_pctor_reduction : final_result_udr_pctor)
3749
for (int i = 0; i < N; ++i) {
3850
final_result_udr += array_sum[i];
51+
final_result_udr_pctor += array_sum[i];
3952
}
4053

41-
if (final_result_udr.getValue() != expected_value)
54+
if (final_result_udr.getValue() != expected_value ||
55+
final_result_udr_pctor.getValue() != expected_value_pctor)
4256
error_flag += 1;
4357
}
4458
return error_flag;

0 commit comments

Comments
 (0)