#endif
}
-void smpi_datatype_unuse(MPI_Datatype type){
+void smpi_datatype_unuse(MPI_Datatype type)
+{
+ if (type == MPI_DATATYPE_NULL)
+ return;
+
if (type->in_use > 0)
type->in_use--;
static_cast<s_smpi_subtype_t *>((type)->substruct)->subtype_free(&type);
}
- if(type != MPI_DATATYPE_NULL && type->in_use == 0){
+ if (type->in_use == 0)
smpi_datatype_free(&type);
- }
+
#if HAVE_MC
if(MC_is_active())
MC_ignore(&(type->in_use), sizeof(type->in_use));
APPLY_FUNC(a, b, length, unsigned short, SUM_OP)
} else if (*datatype == MPI_UNSIGNED) {
APPLY_FUNC(a, b, length, unsigned int, SUM_OP)
+ } else if (*datatype == MPI_UNSIGNED_LONG_LONG) {
+ APPLY_FUNC(a, b, length, unsigned long long, SUM_OP)
+ } else if (*datatype == MPI_LONG_LONG) {
+ APPLY_FUNC(a, b, length, long long, SUM_OP)
} else if (*datatype == MPI_UNSIGNED_LONG) {
APPLY_FUNC(a, b, length, unsigned long, SUM_OP)
} else if (*datatype == MPI_UNSIGNED_CHAR) {
APPLY_FUNC(a, b, length, unsigned int, PROD_OP)
} else if (*datatype == MPI_UNSIGNED_LONG) {
APPLY_FUNC(a, b, length, unsigned long, PROD_OP)
+ } else if (*datatype == MPI_UNSIGNED_LONG_LONG) {
+ APPLY_FUNC(a, b, length, unsigned long long, PROD_OP)
+ } else if (*datatype == MPI_LONG_LONG) {
+ APPLY_FUNC(a, b, length, long long, PROD_OP)
} else if (*datatype == MPI_UNSIGNED_CHAR) {
APPLY_FUNC(a, b, length, unsigned char, PROD_OP)
} else if (*datatype == MPI_FLOAT) {
APPLY_FUNC(a, b, length, unsigned long, LAND_OP)
} else if (*datatype == MPI_UNSIGNED_CHAR) {
APPLY_FUNC(a, b, length, unsigned char, LAND_OP)
+ } else if (*datatype == MPI_UNSIGNED_LONG_LONG) {
+ APPLY_FUNC(a, b, length, unsigned long long, LAND_OP)
+ } else if (*datatype == MPI_LONG_LONG) {
+ APPLY_FUNC(a, b, length, long long, LAND_OP)
} else if (*datatype == MPI_C_BOOL) {
APPLY_FUNC(a, b, length, bool, LAND_OP)
} else {
APPLY_FUNC(a, b, length, unsigned long, LOR_OP)
} else if (*datatype == MPI_UNSIGNED_CHAR) {
APPLY_FUNC(a, b, length, unsigned char, LOR_OP)
+ } else if (*datatype == MPI_UNSIGNED_LONG_LONG) {
+ APPLY_FUNC(a, b, length, unsigned long long, LOR_OP)
+ } else if (*datatype == MPI_LONG_LONG) {
+ APPLY_FUNC(a, b, length, long long, LOR_OP)
} else if (*datatype == MPI_C_BOOL) {
APPLY_FUNC(a, b, length, bool, LOR_OP)
} else {
APPLY_FUNC(a, b, length, unsigned long, LXOR_OP)
} else if (*datatype == MPI_UNSIGNED_CHAR) {
APPLY_FUNC(a, b, length, unsigned char, LXOR_OP)
+ } else if (*datatype == MPI_UNSIGNED_LONG_LONG) {
+ APPLY_FUNC(a, b, length, unsigned long long, LXOR_OP)
+ } else if (*datatype == MPI_LONG_LONG) {
+ APPLY_FUNC(a, b, length, long long, LXOR_OP)
} else if (*datatype == MPI_C_BOOL) {
APPLY_FUNC(a, b, length, bool, LXOR_OP)
} else {
APPLY_FUNC(a, b, length, unsigned long, BAND_OP)
} else if (*datatype == MPI_UNSIGNED_CHAR) {
APPLY_FUNC(a, b, length, unsigned char, BAND_OP)
+ } else if (*datatype == MPI_UNSIGNED_LONG_LONG) {
+ APPLY_FUNC(a, b, length, unsigned long long, BAND_OP)
+ } else if (*datatype == MPI_LONG_LONG) {
+ APPLY_FUNC(a, b, length, long long, BAND_OP)
} else if (*datatype == MPI_BYTE) {
APPLY_FUNC(a, b, length, uint8_t, BAND_OP)
} else {
APPLY_FUNC(a, b, length, unsigned long, BOR_OP)
} else if (*datatype == MPI_UNSIGNED_CHAR) {
APPLY_FUNC(a, b, length, unsigned char, BOR_OP)
+ } else if (*datatype == MPI_UNSIGNED_LONG_LONG) {
+ APPLY_FUNC(a, b, length, unsigned long long, BOR_OP)
+ } else if (*datatype == MPI_LONG_LONG) {
+ APPLY_FUNC(a, b, length, long long, BOR_OP)
} else if (*datatype == MPI_BYTE) {
APPLY_FUNC(a, b, length, uint8_t, BOR_OP)
} else {
APPLY_FUNC(a, b, length, unsigned long, BXOR_OP)
} else if (*datatype == MPI_UNSIGNED_CHAR) {
APPLY_FUNC(a, b, length, unsigned char, BXOR_OP)
+ } else if (*datatype == MPI_UNSIGNED_LONG_LONG) {
+ APPLY_FUNC(a, b, length, unsigned long long, BXOR_OP)
+ } else if (*datatype == MPI_LONG_LONG) {
+ APPLY_FUNC(a, b, length, long long, BXOR_OP)
} else if (*datatype == MPI_BYTE) {
APPLY_FUNC(a, b, length, uint8_t, BXOR_OP)
} else {