1
1

OSHMEM: Added missing API for Java bindings (int16/32/64 stuff)

fixed by Roman, reviewed by Mike

cmr=v1.8.2:reviewer=ompi-rm1.8

This commit was SVN r31564.
This commit is contained in:
Mike Dubman 2014-04-30 12:03:23 +00:00
parent 4369206f2c
commit ff42999037
19 changed files with 350 additions and 2 deletions

View File

@ -84,6 +84,8 @@ enum {
SHMEM_LONG,
SHMEM_ULONG,
SHMEM_LLONG,
SHMEM_INT32_T,
SHMEM_INT64_T,
SHMEM_ULLONG,
SHMEM_FLOAT,
SHMEM_DOUBLE,

View File

@ -92,6 +92,9 @@ OSHMEM_DECLSPEC void pshmem_float_p(float* addr, float value, int pe);
OSHMEM_DECLSPEC void pshmem_double_p(double* addr, double value, int pe);
OSHMEM_DECLSPEC void pshmem_longlong_p(long long* addr, long long value, int pe);
OSHMEM_DECLSPEC void pshmem_longdouble_p(long double* addr, long double value, int pe);
OSHMEM_DECLSPEC void pshmem_int16_p(int16_t* addr, int16_t value, int pe);
OSHMEM_DECLSPEC void pshmem_int32_p(int32_t* addr, int32_t value, int pe);
OSHMEM_DECLSPEC void pshmem_int64_p(int64_t* addr, int64_t value, int pe);
/*
* Block data put routines
@ -104,6 +107,7 @@ OSHMEM_DECLSPEC void pshmem_float_put(float *target, const float *source, size_
OSHMEM_DECLSPEC void pshmem_double_put(double *target, const double *source, size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_longlong_put(long long *target, const long long *source, size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_longdouble_put(long double *target, const long double *source, size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_put16(void *target, const void *source, size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_put32(void *target, const void *source, size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_put64(void *target, const void *source, size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_put128(void *target, const void *source, size_t len, int pe);
@ -119,6 +123,7 @@ OSHMEM_DECLSPEC void pshmem_double_iput(double* target, const double* source, pt
OSHMEM_DECLSPEC void pshmem_longlong_iput(long long* target, const long long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_longdouble_iput(long double* target, const long double* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_long_iput(long* target, const long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_iput16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_iput32(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_iput64(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_iput128(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
@ -134,6 +139,9 @@ OSHMEM_DECLSPEC float pshmem_float_g(float* addr, int pe);
OSHMEM_DECLSPEC double pshmem_double_g(double* addr, int pe);
OSHMEM_DECLSPEC long long pshmem_longlong_g(long long* addr, int pe);
OSHMEM_DECLSPEC long double pshmem_longdouble_g(long double* addr, int pe);
OSHMEM_DECLSPEC int16_t pshmem_int16_g(int16_t* addr, int pe);
OSHMEM_DECLSPEC int32_t pshmem_int32_g(int32_t* addr, int pe);
OSHMEM_DECLSPEC int64_t pshmem_int64_g(int64_t* addr, int pe);
/*
* Block data get routines
@ -146,6 +154,7 @@ OSHMEM_DECLSPEC void pshmem_float_get(float *target, const float *source, size_
OSHMEM_DECLSPEC void pshmem_double_get(double *target, const double *source, size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_longlong_get(long long *target, const long long *source, size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_longdouble_get(long double *target, const long double *source, size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_get16(void *target, const void *source, size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_get32(void *target, const void *source, size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_get64(void *target, const void *source, size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_get128(void *target, const void *source, size_t len, int pe);
@ -161,6 +170,7 @@ OSHMEM_DECLSPEC void pshmem_double_iget(double* target, const double* source, pt
OSHMEM_DECLSPEC void pshmem_longlong_iget(long long* target, const long long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_longdouble_iget(long double* target, const long double* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_long_iget(long* target, const long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_iget16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_iget32(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_iget64(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void pshmem_iget128(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
@ -175,31 +185,43 @@ OSHMEM_DECLSPEC float pshmem_float_swap(float *target, float value, int pe);
OSHMEM_DECLSPEC int pshmem_int_swap(int *target, int value, int pe);
OSHMEM_DECLSPEC long pshmem_long_swap(long *target, long value, int pe);
OSHMEM_DECLSPEC long long pshmem_longlong_swap(long long*target, long long value, int pe);
OSHMEM_DECLSPEC int32_t pshmem_int32_swap(int32_t *target, int32_t value, int pe);
OSHMEM_DECLSPEC int64_t pshmem_int64_swap(int64_t *target, int64_t value, int pe);
/* Atomic conditional swap */
OSHMEM_DECLSPEC int pshmem_int_cswap(int *target, int cond, int value, int pe);
OSHMEM_DECLSPEC long pshmem_long_cswap(long *target, long cond, long value, int pe);
OSHMEM_DECLSPEC long long pshmem_longlong_cswap(long long *target, long long cond, long long value, int pe);
OSHMEM_DECLSPEC int32_t pshmem_int32_cswap(int32_t *target, int32_t cond, int32_t value, int pe);
OSHMEM_DECLSPEC int64_t pshmem_int64_cswap(int64_t *target, int64_t cond, int64_t value, int pe);
/* Atomic Fetch&Add */
OSHMEM_DECLSPEC int pshmem_int_fadd(int *target, int value, int pe);
OSHMEM_DECLSPEC long pshmem_long_fadd(long *target, long value, int pe);
OSHMEM_DECLSPEC long long pshmem_longlong_fadd(long long *target, long long value, int pe);
OSHMEM_DECLSPEC int32_t pshmem_int32_fadd(int32_t *target, int32_t value, int pe);
OSHMEM_DECLSPEC int64_t pshmem_int64_fadd(int64_t *target, int64_t value, int pe);
/* Atomic Fetch&Inc */
OSHMEM_DECLSPEC int pshmem_int_finc(int *target, int pe);
OSHMEM_DECLSPEC long pshmem_long_finc(long *target, int pe);
OSHMEM_DECLSPEC long long pshmem_longlong_finc(long long *target, int pe);
OSHMEM_DECLSPEC int32_t pshmem_int32_finc(int32_t *target, int pe);
OSHMEM_DECLSPEC int64_t pshmem_int64_finc(int64_t *target, int pe);
/* Atomic Add*/
OSHMEM_DECLSPEC void pshmem_int_add(int *target, int value, int pe);
OSHMEM_DECLSPEC void pshmem_long_add(long *target, long value, int pe);
OSHMEM_DECLSPEC void pshmem_longlong_add(long long *target, long long value, int pe);
OSHMEM_DECLSPEC void pshmem_int32_add(int32_t *target, int32_t value, int pe);
OSHMEM_DECLSPEC void pshmem_int64_add(int64_t *target, int64_t value, int pe);
/* Atomic Inc */
OSHMEM_DECLSPEC void pshmem_int_inc(int *target, int pe);
OSHMEM_DECLSPEC void pshmem_long_inc(long *target, int pe);
OSHMEM_DECLSPEC void pshmem_longlong_inc(long long *target, int pe);
OSHMEM_DECLSPEC void pshmem_int32_inc(int32_t *target, int pe);
OSHMEM_DECLSPEC void pshmem_int64_inc(int64_t *target, int pe);
/*
* Lock functions
@ -216,12 +238,18 @@ OSHMEM_DECLSPEC void pshmem_int_wait(int *addr, int value);
OSHMEM_DECLSPEC void pshmem_long_wait(long *addr, long value);
OSHMEM_DECLSPEC void pshmem_longlong_wait(long long *addr, long long value);
OSHMEM_DECLSPEC void pshmem_wait(long *addr, long value);
OSHMEM_DECLSPEC void pshmem_int16_wait(int16_t *addr, int16_t value);
OSHMEM_DECLSPEC void pshmem_int32_wait(int32_t *addr, int32_t value);
OSHMEM_DECLSPEC void pshmem_int64_wait(int64_t *addr, int64_t value);
OSHMEM_DECLSPEC void pshmem_short_wait_until(short *addr, int cmp, short value);
OSHMEM_DECLSPEC void pshmem_int_wait_until(int *addr, int cmp, int value);
OSHMEM_DECLSPEC void pshmem_long_wait_until(long *addr, int cmp, long value);
OSHMEM_DECLSPEC void pshmem_longlong_wait_until(long long *addr, int cmp, long long value);
OSHMEM_DECLSPEC void pshmem_wait_until(long *addr, int cmp, long value);
OSHMEM_DECLSPEC void pshmem_int16_wait_until(int16_t *addr, int cmp, int16_t value);
OSHMEM_DECLSPEC void pshmem_int32_wait_until(int32_t *addr, int cmp, int32_t value);
OSHMEM_DECLSPEC void pshmem_int64_wait_until(int64_t *addr, int cmp, int64_t value);
/*
* Barrier sync routines
@ -249,16 +277,25 @@ OSHMEM_DECLSPEC void pshmem_short_and_to_all(short *target, short *source, int n
OSHMEM_DECLSPEC void pshmem_int_and_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_long_and_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_longlong_and_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int16_and_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int32_and_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int64_and_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_short_or_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int_or_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_long_or_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_longlong_or_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int16_or_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int32_or_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int64_or_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_short_xor_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int_xor_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_long_xor_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_longlong_xor_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int16_xor_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int32_xor_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int64_xor_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_short_max_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int_max_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
@ -267,6 +304,9 @@ OSHMEM_DECLSPEC void pshmem_longlong_max_to_all(long long *target, long long *so
OSHMEM_DECLSPEC void pshmem_float_max_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_double_max_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_longdouble_max_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int16_max_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int32_max_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int64_max_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_short_min_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int_min_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
@ -275,6 +315,9 @@ OSHMEM_DECLSPEC void pshmem_longlong_min_to_all(long long *target, long long *so
OSHMEM_DECLSPEC void pshmem_float_min_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_double_min_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_longdouble_min_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int16_min_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int32_min_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int64_min_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_short_sum_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int_sum_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
@ -285,6 +328,9 @@ OSHMEM_DECLSPEC void pshmem_double_sum_to_all(double *target, double *source, in
OSHMEM_DECLSPEC void pshmem_longdouble_sum_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_complexf_sum_to_all(OSHMEM_COMPLEX_TYPE(float) *target, OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_complexd_sum_to_all(OSHMEM_COMPLEX_TYPE(double) *target, OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int16_sum_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int32_sum_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int64_sum_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_short_prod_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int_prod_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
@ -295,6 +341,9 @@ OSHMEM_DECLSPEC void pshmem_double_prod_to_all(double *target, double *source, i
OSHMEM_DECLSPEC void pshmem_longdouble_prod_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_complexf_prod_to_all(OSHMEM_COMPLEX_TYPE(float) *target, OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_complexd_prod_to_all(OSHMEM_COMPLEX_TYPE(double) *target, OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int16_prod_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int32_prod_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void pshmem_int64_prod_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
/*
* Platform specific cache management routines

View File

@ -144,6 +144,9 @@ OSHMEM_DECLSPEC void shmem_float_p(float* addr, float value, int pe);
OSHMEM_DECLSPEC void shmem_double_p(double* addr, double value, int pe);
OSHMEM_DECLSPEC void shmem_longlong_p(long long* addr, long long value, int pe);
OSHMEM_DECLSPEC void shmem_longdouble_p(long double* addr, long double value, int pe);
OSHMEM_DECLSPEC void shmem_int16_p(int16_t* addr, int16_t value, int pe);
OSHMEM_DECLSPEC void shmem_int32_p(int32_t* addr, int32_t value, int pe);
OSHMEM_DECLSPEC void shmem_int64_p(int64_t* addr, int64_t value, int pe);
/*
* Block data put routines
@ -156,6 +159,7 @@ OSHMEM_DECLSPEC void shmem_float_put(float *target, const float *source, size_t
OSHMEM_DECLSPEC void shmem_double_put(double *target, const double *source, size_t len, int pe);
OSHMEM_DECLSPEC void shmem_longlong_put(long long *target, const long long *source, size_t len, int pe);
OSHMEM_DECLSPEC void shmem_longdouble_put(long double *target, const long double *source, size_t len, int pe);
OSHMEM_DECLSPEC void shmem_put16(void *target, const void *source, size_t len, int pe);
OSHMEM_DECLSPEC void shmem_put32(void *target, const void *source, size_t len, int pe);
OSHMEM_DECLSPEC void shmem_put64(void *target, const void *source, size_t len, int pe);
OSHMEM_DECLSPEC void shmem_put128(void *target, const void *source, size_t len, int pe);
@ -171,6 +175,7 @@ OSHMEM_DECLSPEC void shmem_double_iput(double* target, const double* source, ptr
OSHMEM_DECLSPEC void shmem_longlong_iput(long long* target, const long long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void shmem_longdouble_iput(long double* target, const long double* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void shmem_long_iput(long* target, const long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void shmem_iput16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void shmem_iput32(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void shmem_iput64(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void shmem_iput128(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
@ -186,6 +191,9 @@ OSHMEM_DECLSPEC float shmem_float_g(float* addr, int pe);
OSHMEM_DECLSPEC double shmem_double_g(double* addr, int pe);
OSHMEM_DECLSPEC long long shmem_longlong_g(long long* addr, int pe);
OSHMEM_DECLSPEC long double shmem_longdouble_g(long double* addr, int pe);
OSHMEM_DECLSPEC int16_t shmem_int16_g(int16_t* addr, int pe);
OSHMEM_DECLSPEC int32_t shmem_int32_g(int32_t* addr, int pe);
OSHMEM_DECLSPEC int64_t shmem_int64_g(int64_t* addr, int pe);
/*
* Block data get routines
@ -198,6 +206,7 @@ OSHMEM_DECLSPEC void shmem_float_get(float *target, const float *source, size_t
OSHMEM_DECLSPEC void shmem_double_get(double *target, const double *source, size_t len, int pe);
OSHMEM_DECLSPEC void shmem_longlong_get(long long *target, const long long *source, size_t len, int pe);
OSHMEM_DECLSPEC void shmem_longdouble_get(long double *target, const long double *source, size_t len, int pe);
OSHMEM_DECLSPEC void shmem_get16(void *target, const void *source, size_t len, int pe);
OSHMEM_DECLSPEC void shmem_get32(void *target, const void *source, size_t len, int pe);
OSHMEM_DECLSPEC void shmem_get64(void *target, const void *source, size_t len, int pe);
OSHMEM_DECLSPEC void shmem_get128(void *target, const void *source, size_t len, int pe);
@ -213,6 +222,7 @@ OSHMEM_DECLSPEC void shmem_double_iget(double* target, const double* source, ptr
OSHMEM_DECLSPEC void shmem_longlong_iget(long long* target, const long long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void shmem_longdouble_iget(long double* target, const long double* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void shmem_long_iget(long* target, const long* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void shmem_iget16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void shmem_iget32(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void shmem_iget64(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
OSHMEM_DECLSPEC void shmem_iget128(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
@ -227,31 +237,43 @@ OSHMEM_DECLSPEC float shmem_float_swap(float *target, float value, int pe);
OSHMEM_DECLSPEC int shmem_int_swap(int *target, int value, int pe);
OSHMEM_DECLSPEC long shmem_long_swap(long *target, long value, int pe);
OSHMEM_DECLSPEC long long shmem_longlong_swap(long long*target, long long value, int pe);
OSHMEM_DECLSPEC int32_t shmem_int32_swap(int32_t *target, int32_t value, int pe);
OSHMEM_DECLSPEC int64_t shmem_int64_swap(int64_t *target, int64_t value, int pe);
/* Atomic conditional swap */
OSHMEM_DECLSPEC int shmem_int_cswap(int *target, int cond, int value, int pe);
OSHMEM_DECLSPEC long shmem_long_cswap(long *target, long cond, long value, int pe);
OSHMEM_DECLSPEC long long shmem_longlong_cswap(long long *target, long long cond, long long value, int pe);
OSHMEM_DECLSPEC int32_t shmem_int32_cswap(int32_t *target, int32_t cond, int32_t value, int pe);
OSHMEM_DECLSPEC int64_t shmem_int64_cswap(int64_t *target, int64_t cond, int64_t value, int pe);
/* Atomic Fetch&Add */
OSHMEM_DECLSPEC int shmem_int_fadd(int *target, int value, int pe);
OSHMEM_DECLSPEC long shmem_long_fadd(long *target, long value, int pe);
OSHMEM_DECLSPEC long long shmem_longlong_fadd(long long *target, long long value, int pe);
OSHMEM_DECLSPEC int32_t shmem_int32_fadd(int32_t *target, int32_t value, int pe);
OSHMEM_DECLSPEC int64_t shmem_int64_fadd(int64_t *target, int64_t value, int pe);
/* Atomic Fetch&Inc */
OSHMEM_DECLSPEC int shmem_int_finc(int *target, int pe);
OSHMEM_DECLSPEC long shmem_long_finc(long *target, int pe);
OSHMEM_DECLSPEC long long shmem_longlong_finc(long long *target, int pe);
OSHMEM_DECLSPEC int32_t shmem_int32_finc(int32_t *target, int pe);
OSHMEM_DECLSPEC int64_t shmem_int64_finc(int64_t *target, int pe);
/* Atomic Add*/
OSHMEM_DECLSPEC void shmem_int_add(int *target, int value, int pe);
OSHMEM_DECLSPEC void shmem_long_add(long *target, long value, int pe);
OSHMEM_DECLSPEC void shmem_longlong_add(long long *target, long long value, int pe);
OSHMEM_DECLSPEC void shmem_int32_add(int32_t *target, int32_t value, int pe);
OSHMEM_DECLSPEC void shmem_int64_add(int64_t *target, int64_t value, int pe);
/* Atomic Inc */
OSHMEM_DECLSPEC void shmem_int_inc(int *target, int pe);
OSHMEM_DECLSPEC void shmem_long_inc(long *target, int pe);
OSHMEM_DECLSPEC void shmem_longlong_inc(long long *target, int pe);
OSHMEM_DECLSPEC void shmem_int32_inc(int32_t *target, int pe);
OSHMEM_DECLSPEC void shmem_int64_inc(int64_t *target, int pe);
/*
* Lock functions
@ -268,12 +290,18 @@ OSHMEM_DECLSPEC void shmem_int_wait(int *addr, int value);
OSHMEM_DECLSPEC void shmem_long_wait(long *addr, long value);
OSHMEM_DECLSPEC void shmem_longlong_wait(long long *addr, long long value);
OSHMEM_DECLSPEC void shmem_wait(long *addr, long value);
OSHMEM_DECLSPEC void shmem_int16_wait(int16_t *addr, int16_t value);
OSHMEM_DECLSPEC void shmem_int32_wait(int32_t *addr, int32_t value);
OSHMEM_DECLSPEC void shmem_int64_wait(int64_t *addr, int64_t value);
OSHMEM_DECLSPEC void shmem_short_wait_until(short *addr, int cmp, short value);
OSHMEM_DECLSPEC void shmem_int_wait_until(int *addr, int cmp, int value);
OSHMEM_DECLSPEC void shmem_long_wait_until(long *addr, int cmp, long value);
OSHMEM_DECLSPEC void shmem_longlong_wait_until(long long *addr, int cmp, long long value);
OSHMEM_DECLSPEC void shmem_wait_until(long *addr, int cmp, long value);
OSHMEM_DECLSPEC void shmem_int16_wait_until(int16_t *addr, int cmp, int16_t value);
OSHMEM_DECLSPEC void shmem_int32_wait_until(int32_t *addr, int cmp, int32_t value);
OSHMEM_DECLSPEC void shmem_int64_wait_until(int64_t *addr, int cmp, int64_t value);
/*
* Barrier sync routines
@ -301,16 +329,25 @@ OSHMEM_DECLSPEC void shmem_short_and_to_all(short *target, short *source, int nr
OSHMEM_DECLSPEC void shmem_int_and_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_long_and_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_longlong_and_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int16_and_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int32_and_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int64_and_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_short_or_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int_or_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_long_or_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_longlong_or_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int16_or_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int32_or_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int64_or_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_short_xor_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int_xor_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_long_xor_to_all(long *target, long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_longlong_xor_to_all(long long *target, long long *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long long *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int16_xor_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int32_xor_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int64_xor_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_short_max_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int_max_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
@ -319,6 +356,9 @@ OSHMEM_DECLSPEC void shmem_longlong_max_to_all(long long *target, long long *sou
OSHMEM_DECLSPEC void shmem_float_max_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_double_max_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_longdouble_max_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int16_max_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int32_max_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int64_max_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_short_min_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int_min_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
@ -327,6 +367,9 @@ OSHMEM_DECLSPEC void shmem_longlong_min_to_all(long long *target, long long *sou
OSHMEM_DECLSPEC void shmem_float_min_to_all(float *target, float *source, int nreduce, int PE_start, int logPE_stride, int PE_size, float *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_double_min_to_all(double *target, double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, double *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_longdouble_min_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int16_min_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int32_min_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int64_min_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_short_sum_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int_sum_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
@ -337,6 +380,9 @@ OSHMEM_DECLSPEC void shmem_double_sum_to_all(double *target, double *source, int
OSHMEM_DECLSPEC void shmem_longdouble_sum_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_complexf_sum_to_all(OSHMEM_COMPLEX_TYPE(float) *target, OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_complexd_sum_to_all(OSHMEM_COMPLEX_TYPE(double) *target, OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int16_sum_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int32_sum_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int64_sum_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_short_prod_to_all(short *target, short *source, int nreduce, int PE_start, int logPE_stride, int PE_size, short *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int_prod_to_all(int *target, int *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int *pWrk, long *pSync);
@ -347,6 +393,9 @@ OSHMEM_DECLSPEC void shmem_double_prod_to_all(double *target, double *source, in
OSHMEM_DECLSPEC void shmem_longdouble_prod_to_all(long double *target, long double *source, int nreduce, int PE_start, int logPE_stride, int PE_size, long double *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_complexf_prod_to_all(OSHMEM_COMPLEX_TYPE(float) *target, OSHMEM_COMPLEX_TYPE(float) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(float) *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_complexd_prod_to_all(OSHMEM_COMPLEX_TYPE(double) *target, OSHMEM_COMPLEX_TYPE(double) *source, int nreduce, int PE_start, int logPE_stride, int PE_size, OSHMEM_COMPLEX_TYPE(double) *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int16_prod_to_all(int16_t *target, int16_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int16_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int32_prod_to_all(int32_t *target, int32_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int32_t *pWrk, long *pSync);
OSHMEM_DECLSPEC void shmem_int64_prod_to_all(int64_t *target, int64_t *source, int nreduce, int PE_start, int logPE_stride, int PE_size, int64_t *pWrk, long *pSync);
/*
* Platform specific cache management routines

View File

@ -58,6 +58,8 @@ int mca_spml_base_wait(void* addr, int cmp, void* value, int datatype)
long *long_addr, long_value;
short *short_addr, short_value;
long long *longlong_addr, longlong_value;
int32_t *int32_addr, int32_value;
int64_t *int64_addr, int64_value;
ompi_fortran_integer_t *fint_addr, fint_value;
ompi_fortran_integer4_t *fint4_addr, fint4_value;
ompi_fortran_integer8_t *fint8_addr, fint8_value;
@ -93,6 +95,20 @@ int mca_spml_base_wait(void* addr, int cmp, void* value, int datatype)
SPML_BASE_DO_WAIT(res, longlong_addr, cmp, longlong_value);
break;
/* Int32_t */
case SHMEM_INT32_T:
int32_value = *(int32_t*) value;
int32_addr = (int32_t*) addr;
SPML_BASE_DO_WAIT(res, int32_addr, cmp, int32_value);
break;
/* Int64_t */
case SHMEM_INT64_T:
int64_value = *(int64_t*) value;
int64_addr = (int64_t*) addr;
SPML_BASE_DO_WAIT(res, int64_addr, cmp, int64_value);
break;
/*C equivalent of Fortran integer type */
case SHMEM_FINT:
fint_value = *(ompi_fortran_integer_t *) value;

View File

@ -50,6 +50,9 @@ oshmem_op_t* oshmem_op_and_longlong = NULL;
oshmem_op_t* oshmem_op_and_fint2 = NULL;
oshmem_op_t* oshmem_op_and_fint4 = NULL;
oshmem_op_t* oshmem_op_and_fint8 = NULL;
oshmem_op_t* oshmem_op_and_int16 = NULL;
oshmem_op_t* oshmem_op_and_int32 = NULL;
oshmem_op_t* oshmem_op_and_int64 = NULL;
/* Bitwise OR */
oshmem_op_t* oshmem_op_or_short = NULL;
@ -59,6 +62,9 @@ oshmem_op_t* oshmem_op_or_longlong = NULL;
oshmem_op_t* oshmem_op_or_fint2 = NULL;
oshmem_op_t* oshmem_op_or_fint4 = NULL;
oshmem_op_t* oshmem_op_or_fint8 = NULL;
oshmem_op_t* oshmem_op_or_int16 = NULL;
oshmem_op_t* oshmem_op_or_int32 = NULL;
oshmem_op_t* oshmem_op_or_int64 = NULL;
/* Bitwise XOR */
oshmem_op_t* oshmem_op_xor_short = NULL;
@ -68,6 +74,9 @@ oshmem_op_t* oshmem_op_xor_longlong = NULL;
oshmem_op_t* oshmem_op_xor_fint2 = NULL;
oshmem_op_t* oshmem_op_xor_fint4 = NULL;
oshmem_op_t* oshmem_op_xor_fint8 = NULL;
oshmem_op_t* oshmem_op_xor_int16 = NULL;
oshmem_op_t* oshmem_op_xor_int32 = NULL;
oshmem_op_t* oshmem_op_xor_int64 = NULL;
/* MAX */
oshmem_op_t* oshmem_op_max_short = NULL;
@ -83,6 +92,9 @@ oshmem_op_t* oshmem_op_max_fint8 = NULL;
oshmem_op_t* oshmem_op_max_freal4 = NULL;
oshmem_op_t* oshmem_op_max_freal8 = NULL;
oshmem_op_t* oshmem_op_max_freal16 = NULL;
oshmem_op_t* oshmem_op_max_int16 = NULL;
oshmem_op_t* oshmem_op_max_int32 = NULL;
oshmem_op_t* oshmem_op_max_int64 = NULL;
/* MIN */
oshmem_op_t* oshmem_op_min_short = NULL;
@ -98,6 +110,9 @@ oshmem_op_t* oshmem_op_min_fint8 = NULL;
oshmem_op_t* oshmem_op_min_freal4 = NULL;
oshmem_op_t* oshmem_op_min_freal8 = NULL;
oshmem_op_t* oshmem_op_min_freal16 = NULL;
oshmem_op_t* oshmem_op_min_int16 = NULL;
oshmem_op_t* oshmem_op_min_int32 = NULL;
oshmem_op_t* oshmem_op_min_int64 = NULL;
/* SUM */
oshmem_op_t* oshmem_op_sum_short = NULL;
@ -115,6 +130,9 @@ oshmem_op_t* oshmem_op_sum_fint8 = NULL;
oshmem_op_t* oshmem_op_sum_freal4 = NULL;
oshmem_op_t* oshmem_op_sum_freal8 = NULL;
oshmem_op_t* oshmem_op_sum_freal16 = NULL;
oshmem_op_t* oshmem_op_sum_int16 = NULL;
oshmem_op_t* oshmem_op_sum_int32 = NULL;
oshmem_op_t* oshmem_op_sum_int64 = NULL;
/* PROD */
oshmem_op_t* oshmem_op_prod_short = NULL;
@ -132,6 +150,9 @@ oshmem_op_t* oshmem_op_prod_fint8 = NULL;
oshmem_op_t* oshmem_op_prod_freal4 = NULL;
oshmem_op_t* oshmem_op_prod_freal8 = NULL;
oshmem_op_t* oshmem_op_prod_freal16 = NULL;
oshmem_op_t* oshmem_op_prod_int16 = NULL;
oshmem_op_t* oshmem_op_prod_int32 = NULL;
oshmem_op_t* oshmem_op_prod_int64 = NULL;
#define FUNC_OP_CREATE(name, type_name, type, calc) \
void oshmem_op_##name##_##type_name##_func(void *in, void *out, int count); \
@ -166,6 +187,9 @@ FUNC_OP_CREATE(and, longlong, long long, __and_op)
FUNC_OP_CREATE(and, fint2, ompi_fortran_integer4_t, __and_op)
FUNC_OP_CREATE(and, fint4, ompi_fortran_integer4_t, __and_op)
FUNC_OP_CREATE(and, fint8, ompi_fortran_integer8_t, __and_op)
FUNC_OP_CREATE(and, int16, int16_t, __and_op)
FUNC_OP_CREATE(and, int32, int32_t, __and_op)
FUNC_OP_CREATE(and, int64, int64_t, __and_op)
/* Bitwise OR */
#define __or_op(a, b) ((a) | (b))
@ -176,6 +200,9 @@ FUNC_OP_CREATE(or, longlong, long long, __or_op)
FUNC_OP_CREATE(or, fint2, ompi_fortran_integer2_t, __or_op)
FUNC_OP_CREATE(or, fint4, ompi_fortran_integer4_t, __or_op)
FUNC_OP_CREATE(or, fint8, ompi_fortran_integer8_t, __or_op)
FUNC_OP_CREATE(or, int16, int16_t, __or_op)
FUNC_OP_CREATE(or, int32, int32_t, __or_op)
FUNC_OP_CREATE(or, int64, int64_t, __or_op)
/* Bitwise XOR */
#define __xor_op(a, b) ((a) ^ (b))
@ -186,6 +213,9 @@ FUNC_OP_CREATE(xor, longlong, long long, __xor_op)
FUNC_OP_CREATE(xor, fint2, ompi_fortran_integer4_t, __xor_op)
FUNC_OP_CREATE(xor, fint4, ompi_fortran_integer4_t, __xor_op)
FUNC_OP_CREATE(xor, fint8, ompi_fortran_integer8_t, __xor_op)
FUNC_OP_CREATE(xor, int16, int16_t, __xor_op)
FUNC_OP_CREATE(xor, int32, int32_t, __xor_op)
FUNC_OP_CREATE(xor, int64, int64_t, __xor_op)
/* MAX */
#define __max_op(a, b) ((a) > (b) ? (a) : (b))
@ -204,6 +234,9 @@ FUNC_OP_CREATE(max, freal8, ompi_fortran_real8_t, __max_op)
#if OMPI_HAVE_FORTRAN_REAL16
FUNC_OP_CREATE(max, freal16, ompi_fortran_real16_t, __max_op)
#endif
FUNC_OP_CREATE(max, int16, int16_t, __max_op)
FUNC_OP_CREATE(max, int32, int32_t, __max_op)
FUNC_OP_CREATE(max, int64, int64_t, __max_op)
/* MIN */
#define __min_op(a, b) ((a) < (b) ? (a) : (b))
@ -222,6 +255,9 @@ FUNC_OP_CREATE(min, freal8, ompi_fortran_real8_t, __min_op)
#if OMPI_HAVE_FORTRAN_REAL16
FUNC_OP_CREATE(min, freal16, ompi_fortran_real16_t, __min_op)
#endif
FUNC_OP_CREATE(min, int16, int16_t, __min_op)
FUNC_OP_CREATE(min, int32, int32_t, __min_op)
FUNC_OP_CREATE(min, int64, int64_t, __min_op)
/* SUM */
#define __sum_op(a, b) ((a) + (b))
@ -242,6 +278,9 @@ FUNC_OP_CREATE(sum, freal8, ompi_fortran_real8_t, __sum_op)
#if OMPI_HAVE_FORTRAN_REAL16
FUNC_OP_CREATE(sum, freal16, ompi_fortran_real16_t, __sum_op)
#endif
FUNC_OP_CREATE(sum, int16, int16_t, __sum_op)
FUNC_OP_CREATE(sum, int32, int32_t, __sum_op)
FUNC_OP_CREATE(sum, int64, int64_t, __sum_op)
/* PROD */
#define __prod_op(a, b) ((a) * (b))
@ -262,6 +301,9 @@ FUNC_OP_CREATE(prod, freal8, ompi_fortran_real8_t, __prod_op)
#if OMPI_HAVE_FORTRAN_REAL16
FUNC_OP_CREATE(prod, freal16, ompi_fortran_real16_t, __prod_op)
#endif
FUNC_OP_CREATE(prod, int16, int16_t, __prod_op)
FUNC_OP_CREATE(prod, int32, int32_t, __prod_op)
FUNC_OP_CREATE(prod, int64, int64_t, __prod_op)
int oshmem_op_init(void)
{
@ -284,6 +326,9 @@ int oshmem_op_init(void)
OBJ_OP_CREATE(and, fint2, ompi_fortran_integer2_t, OSHMEM_OP_AND, OSHMEM_OP_TYPE_FINT2);
OBJ_OP_CREATE(and, fint4, ompi_fortran_integer4_t, OSHMEM_OP_AND, OSHMEM_OP_TYPE_FINT4);
OBJ_OP_CREATE(and, fint8, ompi_fortran_integer8_t, OSHMEM_OP_AND, OSHMEM_OP_TYPE_FINT8);
OBJ_OP_CREATE(and, int16, int16_t, OSHMEM_OP_AND, OSHMEM_OP_TYPE_INT16_T);
OBJ_OP_CREATE(and, int32, int32_t, OSHMEM_OP_AND, OSHMEM_OP_TYPE_INT32_T);
OBJ_OP_CREATE(and, int64, int64_t, OSHMEM_OP_AND, OSHMEM_OP_TYPE_INT64_T);
/* Bitwise OR */
OBJ_OP_CREATE(or, short, short, OSHMEM_OP_OR, OSHMEM_OP_TYPE_SHORT);
@ -293,6 +338,9 @@ int oshmem_op_init(void)
OBJ_OP_CREATE(or, fint2, ompi_fortran_integer2_t, OSHMEM_OP_OR, OSHMEM_OP_TYPE_FINT2);
OBJ_OP_CREATE(or, fint4, ompi_fortran_integer4_t, OSHMEM_OP_OR, OSHMEM_OP_TYPE_FINT4);
OBJ_OP_CREATE(or, fint8, ompi_fortran_integer8_t, OSHMEM_OP_OR, OSHMEM_OP_TYPE_FINT8);
OBJ_OP_CREATE(or, int16, int16_t, OSHMEM_OP_OR, OSHMEM_OP_TYPE_INT16_T);
OBJ_OP_CREATE(or, int32, int32_t, OSHMEM_OP_OR, OSHMEM_OP_TYPE_INT32_T);
OBJ_OP_CREATE(or, int64, int64_t, OSHMEM_OP_OR, OSHMEM_OP_TYPE_INT64_T);
/* Bitwise XOR */
OBJ_OP_CREATE(xor, short, short, OSHMEM_OP_XOR, OSHMEM_OP_TYPE_SHORT);
@ -302,6 +350,9 @@ int oshmem_op_init(void)
OBJ_OP_CREATE(xor, fint2, ompi_fortran_integer2_t, OSHMEM_OP_XOR, OSHMEM_OP_TYPE_FINT2);
OBJ_OP_CREATE(xor, fint4, ompi_fortran_integer4_t, OSHMEM_OP_XOR, OSHMEM_OP_TYPE_FINT4);
OBJ_OP_CREATE(xor, fint8, ompi_fortran_integer8_t, OSHMEM_OP_XOR, OSHMEM_OP_TYPE_FINT8);
OBJ_OP_CREATE(xor, int16, int16_t, OSHMEM_OP_XOR, OSHMEM_OP_TYPE_INT16_T);
OBJ_OP_CREATE(xor, int32, int32_t, OSHMEM_OP_XOR, OSHMEM_OP_TYPE_INT32_T);
OBJ_OP_CREATE(xor, int64, int64_t, OSHMEM_OP_XOR, OSHMEM_OP_TYPE_INT64_T);
/* MAX */
OBJ_OP_CREATE(max, short, short, OSHMEM_OP_MAX, OSHMEM_OP_TYPE_SHORT);
@ -319,6 +370,9 @@ int oshmem_op_init(void)
#if OMPI_HAVE_FORTRAN_REAL16
OBJ_OP_CREATE(max, freal16, ompi_fortran_real16_t, OSHMEM_OP_MAX, OSHMEM_OP_TYPE_FREAL16);
#endif
OBJ_OP_CREATE(max, int16, int16_t, OSHMEM_OP_MAX, OSHMEM_OP_TYPE_INT16_T);
OBJ_OP_CREATE(max, int32, int32_t, OSHMEM_OP_MAX, OSHMEM_OP_TYPE_INT32_T);
OBJ_OP_CREATE(max, int64, int64_t, OSHMEM_OP_MAX, OSHMEM_OP_TYPE_INT64_T);
/* MIN */
OBJ_OP_CREATE(min, short, short, OSHMEM_OP_MIN, OSHMEM_OP_TYPE_SHORT);
@ -336,6 +390,9 @@ int oshmem_op_init(void)
#if OMPI_HAVE_FORTRAN_REAL16
OBJ_OP_CREATE(min, freal16, ompi_fortran_real16_t, OSHMEM_OP_MIN, OSHMEM_OP_TYPE_FREAL16);
#endif
OBJ_OP_CREATE(min, int16, int16_t, OSHMEM_OP_MIN, OSHMEM_OP_TYPE_INT16_T);
OBJ_OP_CREATE(min, int32, int32_t, OSHMEM_OP_MIN, OSHMEM_OP_TYPE_INT32_T);
OBJ_OP_CREATE(min, int64, int64_t, OSHMEM_OP_MIN, OSHMEM_OP_TYPE_INT64_T);
/* SUM */
OBJ_OP_CREATE(sum, short, short, OSHMEM_OP_SUM, OSHMEM_OP_TYPE_SHORT);
@ -355,6 +412,9 @@ int oshmem_op_init(void)
#if OMPI_HAVE_FORTRAN_REAL16
OBJ_OP_CREATE(sum, freal16, ompi_fortran_real16_t, OSHMEM_OP_SUM, OSHMEM_OP_TYPE_FREAL16);
#endif
OBJ_OP_CREATE(sum, int16, int16_t, OSHMEM_OP_SUM, OSHMEM_OP_TYPE_INT16_T);
OBJ_OP_CREATE(sum, int32, int32_t, OSHMEM_OP_SUM, OSHMEM_OP_TYPE_INT32_T);
OBJ_OP_CREATE(sum, int64, int64_t, OSHMEM_OP_SUM, OSHMEM_OP_TYPE_INT64_T);
/* PROD */
OBJ_OP_CREATE(prod, short, short, OSHMEM_OP_PROD, OSHMEM_OP_TYPE_SHORT);
@ -374,6 +434,9 @@ int oshmem_op_init(void)
#if OMPI_HAVE_FORTRAN_REAL16
OBJ_OP_CREATE(prod, freal16, ompi_fortran_real16_t, OSHMEM_OP_PROD, OSHMEM_OP_TYPE_FREAL16);
#endif
OBJ_OP_CREATE(prod, int16, int16_t, OSHMEM_OP_PROD, OSHMEM_OP_TYPE_INT16_T);
OBJ_OP_CREATE(prod, int32, int32_t, OSHMEM_OP_PROD, OSHMEM_OP_TYPE_INT32_T);
OBJ_OP_CREATE(prod, int64, int64_t, OSHMEM_OP_PROD, OSHMEM_OP_TYPE_INT64_T);
return OSHMEM_SUCCESS;
}

View File

@ -33,6 +33,9 @@ enum {
OSHMEM_OP_TYPE_INT, /** C integer: int */
OSHMEM_OP_TYPE_LONG, /** C integer: long */
OSHMEM_OP_TYPE_LLONG, /** C integer: long long */
OSHMEM_OP_TYPE_INT16_T, /** C integer: int16_t */
OSHMEM_OP_TYPE_INT32_T, /** C integer: int32_t */
OSHMEM_OP_TYPE_INT64_T, /** C integer: int64_t */
OSHMEM_OP_TYPE_FLOAT, /** Floating point: float */
OSHMEM_OP_TYPE_DOUBLE, /** Floating point: double */
@ -95,6 +98,9 @@ OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_and_longlong;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_and_fint2;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_and_fint4;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_and_fint8;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_and_int16;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_and_int32;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_and_int64;
/* Bitwise OR */
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_or_short;
@ -104,6 +110,9 @@ OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_or_longlong;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_or_fint2;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_or_fint4;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_or_fint8;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_or_int16;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_or_int32;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_or_int64;
/* Bitwise XOR */
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_xor_short;
@ -113,6 +122,9 @@ OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_xor_longlong;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_xor_fint2;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_xor_fint4;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_xor_fint8;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_xor_int16;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_xor_int32;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_xor_int64;
/* MAX */
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_max_short;
@ -128,6 +140,9 @@ OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_max_fint8;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_max_freal4;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_max_freal8;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_max_freal16;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_max_int16;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_max_int32;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_max_int64;
/* MIN */
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_min_short;
@ -143,6 +158,9 @@ OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_min_fint8;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_min_freal4;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_min_freal8;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_min_freal16;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_min_int16;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_min_int32;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_min_int64;
/* SUM */
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_sum_short;
@ -160,6 +178,9 @@ OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_sum_fint8;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_sum_freal4;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_sum_freal8;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_sum_freal16;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_sum_int16;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_sum_int32;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_sum_int64;
/* PROD */
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_prod_short;
@ -177,6 +198,9 @@ OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_prod_fint8;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_prod_freal4;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_prod_freal8;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_prod_freal16;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_prod_int16;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_prod_int32;
OSHMEM_DECLSPEC extern oshmem_op_t* oshmem_op_prod_int64;
/**
* Initialize the op interface.

View File

@ -49,7 +49,7 @@
/*
* Elemental put routines
*/
#define shmem_char_p pshmem_char_p
#define shmem_char_p pshmem_char_p
#define shmem_short_p pshmem_short_p
#define shmem_int_p pshmem_int_p
#define shmem_long_p pshmem_long_p
@ -57,6 +57,9 @@
#define shmem_double_p pshmem_double_p
#define shmem_longlong_p pshmem_longlong_p
#define shmem_longdouble_p pshmem_longdouble_p
#define shmem_int16_p pshmem_int16_p
#define shmem_int32_p pshmem_int32_p
#define shmem_int64_p pshmem_int64_p
/*
* Block data put routines
@ -69,6 +72,7 @@
#define shmem_double_put pshmem_double_put
#define shmem_longlong_put pshmem_longlong_put
#define shmem_longdouble_put pshmem_longdouble_put
#define shmem_put16 pshmem_put16
#define shmem_put32 pshmem_put32
#define shmem_put64 pshmem_put64
#define shmem_put128 pshmem_put128
@ -84,6 +88,7 @@
#define shmem_longlong_iput pshmem_longlong_iput
#define shmem_longdouble_iput pshmem_longdouble_iput
#define shmem_long_iput pshmem_long_iput
#define shmem_iput16 pshmem_iput16
#define shmem_iput32 pshmem_iput32
#define shmem_iput64 pshmem_iput64
#define shmem_iput128 pshmem_iput128
@ -91,7 +96,7 @@
/*
* Elemental get routines
*/
#define shmem_char_g pshmem_char_g
#define shmem_char_g pshmem_char_g
#define shmem_short_g pshmem_short_g
#define shmem_int_g pshmem_int_g
#define shmem_long_g pshmem_long_g
@ -99,6 +104,9 @@
#define shmem_double_g pshmem_double_g
#define shmem_longlong_g pshmem_longlong_g
#define shmem_longdouble_g pshmem_longdouble_g
#define shmem_int16_g pshmem_int16_g
#define shmem_int32_g pshmem_int32_g
#define shmem_int64_g pshmem_int64_g
/*
* Block data get routines
@ -111,6 +119,7 @@
#define shmem_double_get pshmem_double_get
#define shmem_longlong_get pshmem_longlong_get
#define shmem_longdouble_get pshmem_longdouble_get
#define shmem_get16 pshmem_get16
#define shmem_get32 pshmem_get32
#define shmem_get64 pshmem_get64
#define shmem_get128 pshmem_get128
@ -126,6 +135,7 @@
#define shmem_longlong_iget pshmem_longlong_iget
#define shmem_longdouble_iget pshmem_longdouble_iget
#define shmem_long_iget pshmem_long_iget
#define shmem_iget16 pshmem_iget16
#define shmem_iget32 pshmem_iget32
#define shmem_iget64 pshmem_iget64
#define shmem_iget128 pshmem_iget128
@ -140,31 +150,51 @@
#define shmem_int_swap pshmem_int_swap
#define shmem_long_swap pshmem_long_swap
#define shmem_longlong_swap pshmem_longlong_swap
#define shmem_int16_swap pshmem_int16_swap
#define shmem_int32_swap pshmem_int32_swap
#define shmem_int64_swap pshmem_int64_swap
/* Atomic conditional swap */
#define shmem_int_cswap pshmem_int_cswap
#define shmem_long_cswap pshmem_long_cswap
#define shmem_longlong_cswap pshmem_longlong_cswap
#define shmem_int16_cswap pshmem_int16_cswap
#define shmem_int32_cswap pshmem_int32_cswap
#define shmem_int64_cswap pshmem_int64_cswap
/* Atomic Fetch&Add */
#define shmem_int_fadd pshmem_int_fadd
#define shmem_long_fadd pshmem_long_fadd
#define shmem_longlong_fadd pshmem_longlong_fadd
#define shmem_int16_fadd pshmem_int16_fadd
#define shmem_int32_fadd pshmem_int32_fadd
#define shmem_int64_fadd pshmem_int64_fadd
/* Atomic Fetch&Inc */
#define shmem_int_finc pshmem_int_finc
#define shmem_long_finc pshmem_long_finc
#define shmem_longlong_finc pshmem_longlong_finc
#define shmem_int16_finc pshmem_int16_finc
#define shmem_int32_finc pshmem_int32_finc
#define shmem_int64_finc pshmem_int64_finc
/* Atomic Add*/
#define shmem_int_add pshmem_int_add
#define shmem_long_add pshmem_long_add
#define shmem_longlong_add pshmem_longlong_add
#define shmem_int16_add pshmem_int16_add
#define shmem_int32_add pshmem_int32_add
#define shmem_int64_add pshmem_int64_add
/* Atomic Inc */
#define shmem_int_inc pshmem_int_inc
#define shmem_long_inc pshmem_long_inc
#define shmem_longlong_inc pshmem_longlong_inc
#define shmem_int16_inc pshmem_int16_inc
#define shmem_int32_inc pshmem_int32_inc
#define shmem_int64_inc pshmem_int64_inc
/*
* Lock functions
@ -181,12 +211,18 @@
#define shmem_long_wait pshmem_long_wait
#define shmem_longlong_wait pshmem_longlong_wait
#define shmem_wait pshmem_wait
#define shmem_int16_wait pshmem_int16_wait
#define shmem_int32_wait pshmem_int32_wait
#define shmem_int64_wait pshmem_int64_wait
#define shmem_short_wait_until pshmem_short_wait_until
#define shmem_int_wait_until pshmem_int_wait_until
#define shmem_long_wait_until pshmem_long_wait_until
#define shmem_longlong_wait_until pshmem_longlong_wait_until
#define shmem_wait_until pshmem_wait_until
#define shmem_int16_wait_until pshmem_int16_wait_until
#define shmem_int32_wait_until pshmem_int32_wait_until
#define shmem_int64_wait_until pshmem_int64_wait_until
/*
* Barrier sync routines
@ -214,16 +250,25 @@
#define shmem_int_and_to_all pshmem_int_and_to_all
#define shmem_long_and_to_all pshmem_long_and_to_all
#define shmem_longlong_and_to_all pshmem_longlong_and_to_all
#define shmem_int16_and_to_all pshmem_int16_and_to_all
#define shmem_int32_and_to_all pshmem_int32_and_to_all
#define shmem_int64_and_to_all pshmem_int64_and_to_all
#define shmem_short_or_to_all pshmem_short_or_to_all
#define shmem_int_or_to_all pshmem_int_or_to_all
#define shmem_long_or_to_all pshmem_long_or_to_all
#define shmem_longlong_or_to_all pshmem_longlong_or_to_all
#define shmem_int16_or_to_all pshmem_int16_or_to_all
#define shmem_int32_or_to_all pshmem_int32_or_to_all
#define shmem_int64_or_to_all pshmem_int64_or_to_all
#define shmem_short_xor_to_all pshmem_short_xor_to_all
#define shmem_int_xor_to_all pshmem_int_xor_to_all
#define shmem_long_xor_to_all pshmem_long_xor_to_all
#define shmem_longlong_xor_to_all pshmem_longlong_xor_to_all
#define shmem_int16_xor_to_all pshmem_int16_xor_to_all
#define shmem_int32_xor_to_all pshmem_int32_xor_to_all
#define shmem_int64_xor_to_all pshmem_int64_xor_to_all
#define shmem_short_max_to_all pshmem_short_max_to_all
#define shmem_int_max_to_all pshmem_int_max_to_all
@ -232,6 +277,9 @@
#define shmem_float_max_to_all pshmem_float_max_to_all
#define shmem_double_max_to_all pshmem_double_max_to_all
#define shmem_longdouble_max_to_all pshmem_longdouble_max_to_all
#define shmem_int16_max_to_all pshmem_int16_max_to_all
#define shmem_int32_max_to_all pshmem_int32_max_to_all
#define shmem_int64_max_to_all pshmem_int64_max_to_all
#define shmem_short_min_to_all pshmem_short_min_to_all
#define shmem_int_min_to_all pshmem_int_min_to_all
@ -240,6 +288,9 @@
#define shmem_float_min_to_all pshmem_float_min_to_all
#define shmem_double_min_to_all pshmem_double_min_to_all
#define shmem_longdouble_min_to_all pshmem_longdouble_min_to_all
#define shmem_int16_min_to_all pshmem_int16_min_to_all
#define shmem_int32_min_to_all pshmem_int32_min_to_all
#define shmem_int64_min_to_all pshmem_int64_min_to_all
#define shmem_short_sum_to_all pshmem_short_sum_to_all
#define shmem_int_sum_to_all pshmem_int_sum_to_all
@ -250,6 +301,9 @@
#define shmem_longdouble_sum_to_all pshmem_longdouble_sum_to_all
#define shmem_complexf_sum_to_all pshmem_complexf_sum_to_all
#define shmem_complexd_sum_to_all pshmem_complexd_sum_to_all
#define shmem_int16_sum_to_all pshmem_int16_sum_to_all
#define shmem_int32_sum_to_all pshmem_int32_sum_to_all
#define shmem_int64_sum_to_all pshmem_int64_sum_to_all
#define shmem_short_prod_to_all pshmem_short_prod_to_all
#define shmem_int_prod_to_all pshmem_int_prod_to_all
@ -260,6 +314,9 @@
#define shmem_longdouble_prod_to_all pshmem_longdouble_prod_to_all
#define shmem_complexf_prod_to_all pshmem_complexf_prod_to_all
#define shmem_complexd_prod_to_all pshmem_complexd_prod_to_all
#define shmem_int16_prod_to_all pshmem_int16_prod_to_all
#define shmem_int32_prod_to_all pshmem_int32_prod_to_all
#define shmem_int64_prod_to_all pshmem_int64_prod_to_all
/*
* Platform specific cache management routines

View File

@ -52,9 +52,13 @@
#pragma weak shmem_int_add = pshmem_int_add
#pragma weak shmem_long_add = pshmem_long_add
#pragma weak shmem_longlong_add = pshmem_longlong_add
#pragma weak shmem_int32_add = pshmem_int32_add
#pragma weak shmem_int64_add = pshmem_int64_add
#include "oshmem/shmem/c/profile/defines.h"
#endif
SHMEM_TYPE_ADD(_int, int)
SHMEM_TYPE_ADD(_long, long)
SHMEM_TYPE_ADD(_longlong, long long)
SHMEM_TYPE_ADD(_int32, int32_t)
SHMEM_TYPE_ADD(_int64, int64_t)

View File

@ -53,10 +53,14 @@
#pragma weak shmem_int_cswap = pshmem_int_cswap
#pragma weak shmem_long_cswap = pshmem_long_cswap
#pragma weak shmem_longlong_cswap = pshmem_longlong_cswap
#pragma weak shmem_int32_cswap = pshmem_int32_cswap
#pragma weak shmem_int64_cswap = pshmem_int64_cswap
#include "oshmem/shmem/c/profile/defines.h"
#endif
SHMEM_TYPE_CSWAP(_int, int)
SHMEM_TYPE_CSWAP(_long, long)
SHMEM_TYPE_CSWAP(_longlong, long long)
SHMEM_TYPE_CSWAP(_int32, int32_t)
SHMEM_TYPE_CSWAP(_int64, int64_t)

View File

@ -54,9 +54,13 @@
#pragma weak shmem_int_fadd = pshmem_int_fadd
#pragma weak shmem_long_fadd = pshmem_long_fadd
#pragma weak shmem_longlong_fadd = pshmem_longlong_fadd
#pragma weak shmem_int32_fadd = pshmem_int32_fadd
#pragma weak shmem_int64_fadd = pshmem_int64_fadd
#include "oshmem/shmem/c/profile/defines.h"
#endif
SHMEM_TYPE_FADD(_int, int)
SHMEM_TYPE_FADD(_long, long)
SHMEM_TYPE_FADD(_longlong, long long)
SHMEM_TYPE_FADD(_int32, int32_t)
SHMEM_TYPE_FADD(_int64, int64_t)

View File

@ -53,6 +53,9 @@
#pragma weak shmem_float_g = pshmem_float_g
#pragma weak shmem_double_g = pshmem_double_g
#pragma weak shmem_longdouble_g = pshmem_longdouble_g
#pragma weak shmem_int16_g = pshmem_int16_g
#pragma weak shmem_int32_g = pshmem_int32_g
#pragma weak shmem_int64_g = pshmem_int64_g
#include "oshmem/shmem/c/profile/defines.h"
#endif
@ -64,3 +67,6 @@ SHMEM_TYPE_G(_longlong, long long)
SHMEM_TYPE_G(_float, float)
SHMEM_TYPE_G(_double, double)
SHMEM_TYPE_G(_longdouble, long double)
SHMEM_TYPE_G(_int16, int16_t)
SHMEM_TYPE_G(_int32, int32_t)
SHMEM_TYPE_G(_int64, int64_t)

View File

@ -54,6 +54,7 @@
#pragma weak shmem_double_get = pshmem_double_get
#pragma weak shmem_longdouble_get = pshmem_longdouble_get
#pragma weak shmem_getmem = pshmem_getmem
#pragma weak shmem_get16 = pshmem_get16
#pragma weak shmem_get32 = pshmem_get32
#pragma weak shmem_get64 = pshmem_get64
#pragma weak shmem_get128 = pshmem_get128
@ -91,6 +92,7 @@ SHMEM_TYPE_GET(_longdouble, long double)
}
SHMEM_TYPE_GETMEM(_getmem, 1)
SHMEM_TYPE_GETMEM(_get16, 2)
SHMEM_TYPE_GETMEM(_get32, 4)
SHMEM_TYPE_GETMEM(_get64, 8)
SHMEM_TYPE_GETMEM(_get128, 16)

View File

@ -54,9 +54,13 @@
#pragma weak shmem_int_inc = pshmem_int_inc
#pragma weak shmem_long_inc = pshmem_long_inc
#pragma weak shmem_longlong_inc = pshmem_longlong_inc
#pragma weak shmem_int32_inc = pshmem_int32_inc
#pragma weak shmem_int64_inc = pshmem_int64_inc
#include "oshmem/shmem/c/profile/defines.h"
#endif
SHMEM_TYPE_INC(_int, int)
SHMEM_TYPE_INC(_long, long)
SHMEM_TYPE_INC(_longlong, long long)
SHMEM_TYPE_INC(_int32, int32_t)
SHMEM_TYPE_INC(_int64, int64_t)

View File

@ -57,6 +57,7 @@
#pragma weak shmem_float_iput = pshmem_float_iput
#pragma weak shmem_double_iput = pshmem_double_iput
#pragma weak shmem_longdouble_iput = pshmem_longdouble_iput
#pragma weak shmem_iput16 = pshmem_iput16
#pragma weak shmem_iput32 = pshmem_iput32
#pragma weak shmem_iput64 = pshmem_iput64
#pragma weak shmem_iput128 = pshmem_iput128
@ -94,6 +95,7 @@ SHMEM_TYPE_IPUT(_longdouble, long double)
return ; \
}
SHMEM_TYPE_IPUTMEM(_iput16, 2)
SHMEM_TYPE_IPUTMEM(_iput32, 4)
SHMEM_TYPE_IPUTMEM(_iput64, 8)
SHMEM_TYPE_IPUTMEM(_iput128, 16)

View File

@ -54,6 +54,9 @@
#pragma weak shmem_float_p = pshmem_float_p
#pragma weak shmem_double_p = pshmem_double_p
#pragma weak shmem_longdouble_p = pshmem_longdouble_p
#pragma weak shmem_int16_p = pshmem_int16_p
#pragma weak shmem_int32_p = pshmem_int32_p
#pragma weak shmem_int64_p = pshmem_int64_p
#include "oshmem/shmem/c/profile/defines.h"
#endif
@ -65,3 +68,6 @@ SHMEM_TYPE_P(_longlong, long long)
SHMEM_TYPE_P(_float, float)
SHMEM_TYPE_P(_double, double)
SHMEM_TYPE_P(_longdouble, long double)
SHMEM_TYPE_P(_int16, int16_t)
SHMEM_TYPE_P(_int32, int32_t)
SHMEM_TYPE_P(_int64, int64_t)

View File

@ -57,6 +57,7 @@
#pragma weak shmem_double_put = pshmem_double_put
#pragma weak shmem_longdouble_put = pshmem_longdouble_put
#pragma weak shmem_putmem = pshmem_putmem
#pragma weak shmem_put16 = pshmem_put16
#pragma weak shmem_put32 = pshmem_put32
#pragma weak shmem_put64 = pshmem_put64
#pragma weak shmem_put128 = pshmem_put128
@ -94,6 +95,7 @@ SHMEM_TYPE_PUT(_longdouble, long double)
}
SHMEM_TYPE_PUTMEM(_putmem, 1)
SHMEM_TYPE_PUTMEM(_put16, 2)
SHMEM_TYPE_PUTMEM(_put32, 4)
SHMEM_TYPE_PUTMEM(_put64, 8)
SHMEM_TYPE_PUTMEM(_put128, 16)

View File

@ -101,16 +101,25 @@ static bool __group_cache_enabled = true;
#pragma weak shmem_int_and_to_all = pshmem_int_and_to_all
#pragma weak shmem_long_and_to_all = pshmem_long_and_to_all
#pragma weak shmem_longlong_and_to_all = pshmem_longlong_and_to_all
#pragma weak shmem_int16_and_to_all = pshmem_int16_and_to_all
#pragma weak shmem_int32_and_to_all = pshmem_int32_and_to_all
#pragma weak shmem_int64_and_to_all = pshmem_int64_and_to_all
#pragma weak shmem_short_or_to_all = pshmem_short_or_to_all
#pragma weak shmem_int_or_to_all = pshmem_int_or_to_all
#pragma weak shmem_long_or_to_all = pshmem_long_or_to_all
#pragma weak shmem_longlong_or_to_all = pshmem_longlong_or_to_all
#pragma weak shmem_int16_or_to_all = pshmem_int16_or_to_all
#pragma weak shmem_int32_or_to_all = pshmem_int32_or_to_all
#pragma weak shmem_int64_or_to_all = pshmem_int64_or_to_all
#pragma weak shmem_short_xor_to_all = pshmem_short_xor_to_all
#pragma weak shmem_int_xor_to_all = pshmem_int_xor_to_all
#pragma weak shmem_long_xor_to_all = pshmem_long_xor_to_all
#pragma weak shmem_longlong_xor_to_all = pshmem_longlong_xor_to_all
#pragma weak shmem_int16_xor_to_all = pshmem_int16_xor_to_all
#pragma weak shmem_int32_xor_to_all = pshmem_int32_xor_to_all
#pragma weak shmem_int64_xor_to_all = pshmem_int64_xor_to_all
#pragma weak shmem_short_max_to_all = pshmem_short_max_to_all
#pragma weak shmem_int_max_to_all = pshmem_int_max_to_all
@ -119,6 +128,9 @@ static bool __group_cache_enabled = true;
#pragma weak shmem_float_max_to_all = pshmem_float_max_to_all
#pragma weak shmem_double_max_to_all = pshmem_double_max_to_all
#pragma weak shmem_longdouble_max_to_all= pshmem_longdouble_max_to_all
#pragma weak shmem_int16_max_to_all = pshmem_int16_max_to_all
#pragma weak shmem_int32_max_to_all = pshmem_int32_max_to_all
#pragma weak shmem_int64_max_to_all = pshmem_int64_max_to_all
#pragma weak shmem_short_min_to_all = pshmem_short_min_to_all