- if( !smpi_op_is_commute(op) ) {
- if ((communicator_size < 12) && (message_size < 2048)) {
- return smpi_coll_tuned_reduce_ompi_basic_linear (sendbuf, recvbuf, count, datatype, op, root, comm/*, module*/);
- }
- return smpi_coll_tuned_reduce_ompi_in_order_binary (sendbuf, recvbuf, count, datatype, op, root, comm/*, module,
- 0, max_requests*/);
+ if ((op != MPI_OP_NULL) && not op->is_commutative()) {
+ if ((communicator_size < 12) && (message_size < 2048)) {
+ return reduce__ompi_basic_linear(sendbuf, recvbuf, count, datatype, op, root, comm /*, module*/);
+ }
+ return reduce__ompi_in_order_binary(sendbuf, recvbuf, count, datatype, op, root, comm /*, module,
+ 0, max_requests*/);