Skip to content

OSHMEM/AMO: added int/uint/32/64 atomics calls - v4.0 #6110

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
198 changes: 149 additions & 49 deletions oshmem/include/pshmem.h

Large diffs are not rendered by default.

2 changes: 0 additions & 2 deletions oshmem/include/pshmemx.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,6 @@ OSHMEM_DECLSPEC void pshmemx_int64_prod_to_all(int64_t *target, const int64_t *s

#define pshmem_int32_wait pshmemx_int32_wait
#define pshmem_int64_wait pshmemx_int64_wait
#define pshmem_int32_wait_until pshmemx_int32_wait_until
#define pshmem_int64_wait_until pshmemx_int64_wait_until

#define pshmem_int16_and_to_all pshmemx_int16_and_to_all
#define pshmem_int32_and_to_all pshmemx_int32_and_to_all
Expand Down
104 changes: 92 additions & 12 deletions oshmem/include/shmem.h.in

Large diffs are not rendered by default.

2 changes: 0 additions & 2 deletions oshmem/include/shmemx.h
Original file line number Diff line number Diff line change
Expand Up @@ -204,8 +204,6 @@ OSHMEM_DECLSPEC void shmemx_int64_prod_to_all(int64_t *target, const int64_t *so

#define shmem_int32_wait shmemx_int32_wait
#define shmem_int64_wait shmemx_int64_wait
#define shmem_int32_wait_until shmemx_int32_wait_until
#define shmem_int64_wait_until shmemx_int64_wait_until

#define shmem_int16_and_to_all shmemx_int16_and_to_all
#define shmem_int32_and_to_all shmemx_int32_and_to_all
Expand Down
69 changes: 69 additions & 0 deletions oshmem/shmem/c/profile/defines.h
Original file line number Diff line number Diff line change
Expand Up @@ -532,13 +532,21 @@
#define shmem_uint_atomic_fetch_and pshmem_uint_atomic_fetch_and
#define shmem_ulong_atomic_fetch_and pshmem_ulong_atomic_fetch_and
#define shmem_ulonglong_atomic_fetch_and pshmem_ulonglong_atomic_fetch_and
#define shmem_int32_atomic_fetch_and pshmem_int32_atomic_fetch_and
#define shmem_int64_atomic_fetch_and pshmem_int64_atomic_fetch_and
#define shmem_uint32_atomic_fetch_and pshmem_uint32_atomic_fetch_and
#define shmem_uint64_atomic_fetch_and pshmem_uint64_atomic_fetch_and

#define shmem_ctx_int_atomic_fetch_and pshmem_ctx_int_atomic_fetch_and
#define shmem_ctx_long_atomic_fetch_and pshmem_ctx_long_atomic_fetch_and
#define shmem_ctx_longlong_atomic_fetch_and pshmem_ctx_longlong_atomic_fetch_and
#define shmem_ctx_uint_atomic_fetch_and pshmem_ctx_uint_atomic_fetch_and
#define shmem_ctx_ulong_atomic_fetch_and pshmem_ctx_ulong_atomic_fetch_and
#define shmem_ctx_ulonglong_atomic_fetch_and pshmem_ctx_ulonglong_atomic_fetch_and
#define shmem_ctx_int32_atomic_fetch_and pshmem_ctx_int32_atomic_fetch_and
#define shmem_ctx_int64_atomic_fetch_and pshmem_ctx_int64_atomic_fetch_and
#define shmem_ctx_uint32_atomic_fetch_and pshmem_ctx_uint32_atomic_fetch_and
#define shmem_ctx_uint64_atomic_fetch_and pshmem_ctx_uint64_atomic_fetch_and

#define shmemx_int32_atomic_fetch_and pshmemx_int32_atomic_fetch_and
#define shmemx_int64_atomic_fetch_and pshmemx_int64_atomic_fetch_and
Expand All @@ -552,13 +560,21 @@
#define shmem_uint_atomic_fetch_or pshmem_uint_atomic_fetch_or
#define shmem_ulong_atomic_fetch_or pshmem_ulong_atomic_fetch_or
#define shmem_ulonglong_atomic_fetch_or pshmem_ulonglong_atomic_fetch_or
#define shmem_int32_atomic_fetch_or pshmem_int32_atomic_fetch_or
#define shmem_int64_atomic_fetch_or pshmem_int64_atomic_fetch_or
#define shmem_uint32_atomic_fetch_or pshmem_uint32_atomic_fetch_or
#define shmem_uint64_atomic_fetch_or pshmem_uint64_atomic_fetch_or

#define shmem_ctx_int_atomic_fetch_or pshmem_ctx_int_atomic_fetch_or
#define shmem_ctx_long_atomic_fetch_or pshmem_ctx_long_atomic_fetch_or
#define shmem_ctx_longlong_atomic_fetch_or pshmem_ctx_longlong_atomic_fetch_or
#define shmem_ctx_uint_atomic_fetch_or pshmem_ctx_uint_atomic_fetch_or
#define shmem_ctx_ulong_atomic_fetch_or pshmem_ctx_ulong_atomic_fetch_or
#define shmem_ctx_ulonglong_atomic_fetch_or pshmem_ctx_ulonglong_atomic_fetch_or
#define shmem_ctx_int32_atomic_fetch_or pshmem_ctx_int32_atomic_fetch_or
#define shmem_ctx_int64_atomic_fetch_or pshmem_ctx_int64_atomic_fetch_or
#define shmem_ctx_uint32_atomic_fetch_or pshmem_ctx_uint32_atomic_fetch_or
#define shmem_ctx_uint64_atomic_fetch_or pshmem_ctx_uint64_atomic_fetch_or

#define shmemx_int32_atomic_fetch_or pshmemx_int32_atomic_fetch_or
#define shmemx_int64_atomic_fetch_or pshmemx_int64_atomic_fetch_or
Expand All @@ -572,13 +588,21 @@
#define shmem_uint_atomic_fetch_xor pshmem_uint_atomic_fetch_xor
#define shmem_ulong_atomic_fetch_xor pshmem_ulong_atomic_fetch_xor
#define shmem_ulonglong_atomic_fetch_xor pshmem_ulonglong_atomic_fetch_xor
#define shmem_int32_atomic_fetch_xor pshmem_int32_atomic_fetch_xor
#define shmem_int64_atomic_fetch_xor pshmem_int64_atomic_fetch_xor
#define shmem_uint32_atomic_fetch_xor pshmem_uint32_atomic_fetch_xor
#define shmem_uint64_atomic_fetch_xor pshmem_uint64_atomic_fetch_xor

#define shmem_ctx_int_atomic_fetch_xor pshmem_ctx_int_atomic_fetch_xor
#define shmem_ctx_long_atomic_fetch_xor pshmem_ctx_long_atomic_fetch_xor
#define shmem_ctx_longlong_atomic_fetch_xor pshmem_ctx_longlong_atomic_fetch_xor
#define shmem_ctx_uint_atomic_fetch_xor pshmem_ctx_uint_atomic_fetch_xor
#define shmem_ctx_ulong_atomic_fetch_xor pshmem_ctx_ulong_atomic_fetch_xor
#define shmem_ctx_ulonglong_atomic_fetch_xor pshmem_ctx_ulonglong_atomic_fetch_xor
#define shmem_ctx_int32_atomic_fetch_xor pshmem_ctx_int32_atomic_fetch_xor
#define shmem_ctx_int64_atomic_fetch_xor pshmem_ctx_int64_atomic_fetch_xor
#define shmem_ctx_uint32_atomic_fetch_xor pshmem_ctx_uint32_atomic_fetch_xor
#define shmem_ctx_uint64_atomic_fetch_xor pshmem_ctx_uint64_atomic_fetch_xor

#define shmemx_int32_atomic_fetch_xor pshmemx_int32_atomic_fetch_xor
#define shmemx_int64_atomic_fetch_xor pshmemx_int64_atomic_fetch_xor
Expand Down Expand Up @@ -664,13 +688,21 @@
#define shmem_uint_atomic_and pshmem_uint_atomic_and
#define shmem_ulong_atomic_and pshmem_ulong_atomic_and
#define shmem_ulonglong_atomic_and pshmem_ulonglong_atomic_and
#define shmem_int32_atomic_and pshmem_int32_atomic_and
#define shmem_int64_atomic_and pshmem_int64_atomic_and
#define shmem_uint32_atomic_and pshmem_uint32_atomic_and
#define shmem_uint64_atomic_and pshmem_uint64_atomic_and

#define shmem_ctx_int_atomic_and pshmem_ctx_int_atomic_and
#define shmem_ctx_long_atomic_and pshmem_ctx_long_atomic_and
#define shmem_ctx_longlong_atomic_and pshmem_ctx_longlong_atomic_and
#define shmem_ctx_uint_atomic_and pshmem_ctx_uint_atomic_and
#define shmem_ctx_ulong_atomic_and pshmem_ctx_ulong_atomic_and
#define shmem_ctx_ulonglong_atomic_and pshmem_ctx_ulonglong_atomic_and
#define shmem_ctx_int32_atomic_and pshmem_ctx_int32_atomic_and
#define shmem_ctx_int64_atomic_and pshmem_ctx_int64_atomic_and
#define shmem_ctx_uint32_atomic_and pshmem_ctx_uint32_atomic_and
#define shmem_ctx_uint64_atomic_and pshmem_ctx_uint64_atomic_and

#define shmemx_int32_atomic_and pshmemx_int32_atomic_and
#define shmemx_int64_atomic_and pshmemx_int64_atomic_and
Expand All @@ -685,13 +717,21 @@
#define shmem_uint_atomic_or pshmem_uint_atomic_or
#define shmem_ulong_atomic_or pshmem_ulong_atomic_or
#define shmem_ulonglong_atomic_or pshmem_ulonglong_atomic_or
#define shmem_int32_atomic_or pshmem_int32_atomic_or
#define shmem_int64_atomic_or pshmem_int64_atomic_or
#define shmem_uint32_atomic_or pshmem_uint32_atomic_or
#define shmem_uint64_atomic_or pshmem_uint64_atomic_or

#define shmem_ctx_int_atomic_or pshmem_ctx_int_atomic_or
#define shmem_ctx_long_atomic_or pshmem_ctx_long_atomic_or
#define shmem_ctx_longlong_atomic_or pshmem_ctx_longlong_atomic_or
#define shmem_ctx_uint_atomic_or pshmem_ctx_uint_atomic_or
#define shmem_ctx_ulong_atomic_or pshmem_ctx_ulong_atomic_or
#define shmem_ctx_ulonglong_atomic_or pshmem_ctx_ulonglong_atomic_or
#define shmem_ctx_int32_atomic_or pshmem_ctx_int32_atomic_or
#define shmem_ctx_int64_atomic_or pshmem_ctx_int64_atomic_or
#define shmem_ctx_uint32_atomic_or pshmem_ctx_uint32_atomic_or
#define shmem_ctx_uint64_atomic_or pshmem_ctx_uint64_atomic_or

#define shmemx_int32_atomic_or pshmemx_int32_atomic_or
#define shmemx_int64_atomic_or pshmemx_int64_atomic_or
Expand All @@ -706,13 +746,21 @@
#define shmem_uint_atomic_xor pshmem_uint_atomic_xor
#define shmem_ulong_atomic_xor pshmem_ulong_atomic_xor
#define shmem_ulonglong_atomic_xor pshmem_ulonglong_atomic_xor
#define shmem_int32_atomic_xor pshmem_int32_atomic_xor
#define shmem_int64_atomic_xor pshmem_int64_atomic_xor
#define shmem_uint32_atomic_xor pshmem_uint32_atomic_xor
#define shmem_uint64_atomic_xor pshmem_uint64_atomic_xor

#define shmem_ctx_int_atomic_xor pshmem_ctx_int_atomic_xor
#define shmem_ctx_long_atomic_xor pshmem_ctx_long_atomic_xor
#define shmem_ctx_longlong_atomic_xor pshmem_ctx_longlong_atomic_xor
#define shmem_ctx_uint_atomic_xor pshmem_ctx_uint_atomic_xor
#define shmem_ctx_ulong_atomic_xor pshmem_ctx_ulong_atomic_xor
#define shmem_ctx_ulonglong_atomic_xor pshmem_ctx_ulonglong_atomic_xor
#define shmem_ctx_int32_atomic_xor pshmem_ctx_int32_atomic_xor
#define shmem_ctx_int64_atomic_xor pshmem_ctx_int64_atomic_xor
#define shmem_ctx_uint32_atomic_xor pshmem_ctx_uint32_atomic_xor
#define shmem_ctx_uint64_atomic_xor pshmem_ctx_uint64_atomic_xor

#define shmemx_int32_atomic_xor pshmemx_int32_atomic_xor
#define shmemx_int64_atomic_xor pshmemx_int64_atomic_xor
Expand Down Expand Up @@ -764,13 +812,34 @@
#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_ushort_wait_until pshmem_ushort_wait_until
#define shmem_uint_wait_until pshmem_uint_wait_until
#define shmem_ulong_wait_until pshmem_ulong_wait_until
#define shmem_ulonglong_wait_until pshmem_ulonglong_wait_until
#define shmem_int32_wait_until pshmem_int32_wait_until
#define shmem_int64_wait_until pshmem_int64_wait_until
#define shmem_uint32_wait_until pshmem_uint32_wait_until
#define shmem_uint64_wait_until pshmem_uint64_wait_until
#define shmem_size_wait_until pshmem_size_wait_until
#define shmem_ptrdiff_wait_until pshmem_ptrdiff_wait_until

#define shmemx_int32_wait_until pshmemx_int32_wait_until
#define shmemx_int64_wait_until pshmemx_int64_wait_until

#define shmem_short_test pshmem_short_test
#define shmem_int_test pshmem_int_test
#define shmem_long_test pshmem_long_test
#define shmem_longlong_test pshmem_longlong_test
#define shmem_ushort_test pshmem_ushort_test
#define shmem_uint_test pshmem_uint_test
#define shmem_ulong_test pshmem_ulong_test
#define shmem_ulonglong_test pshmem_ulonglong_test
#define shmem_int32_test pshmem_int32_test
#define shmem_int64_test pshmem_int64_test
#define shmem_uint32_test pshmem_uint32_test
#define shmem_uint64_test pshmem_uint64_test
#define shmem_size_test pshmem_size_test
#define shmem_ptrdiff_test pshmem_ptrdiff_test

/*
* Barrier sync routines
Expand Down
18 changes: 18 additions & 0 deletions oshmem/shmem/c/shmem_and.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,21 @@
#pragma weak shmem_uint_atomic_and = pshmem_uint_atomic_and
#pragma weak shmem_ulong_atomic_and = pshmem_ulong_atomic_and
#pragma weak shmem_ulonglong_atomic_and = pshmem_ulonglong_atomic_and
#pragma weak shmem_int32_atomic_and = pshmem_int32_atomic_and
#pragma weak shmem_int64_atomic_and = pshmem_int64_atomic_and
#pragma weak shmem_uint32_atomic_and = pshmem_uint32_atomic_and
#pragma weak shmem_uint64_atomic_and = pshmem_uint64_atomic_and

#pragma weak shmem_ctx_int_atomic_and = pshmem_ctx_int_atomic_and
#pragma weak shmem_ctx_long_atomic_and = pshmem_ctx_long_atomic_and
#pragma weak shmem_ctx_longlong_atomic_and = pshmem_ctx_longlong_atomic_and
#pragma weak shmem_ctx_uint_atomic_and = pshmem_ctx_uint_atomic_and
#pragma weak shmem_ctx_ulong_atomic_and = pshmem_ctx_ulong_atomic_and
#pragma weak shmem_ctx_ulonglong_atomic_and = pshmem_ctx_ulonglong_atomic_and
#pragma weak shmem_ctx_int32_atomic_and = pshmem_ctx_int32_atomic_and
#pragma weak shmem_ctx_int64_atomic_and = pshmem_ctx_int64_atomic_and
#pragma weak shmem_ctx_uint32_atomic_and = pshmem_ctx_uint32_atomic_and
#pragma weak shmem_ctx_uint64_atomic_and = pshmem_ctx_uint64_atomic_and

#pragma weak shmemx_int32_atomic_and = pshmemx_int32_atomic_and
#pragma weak shmemx_int64_atomic_and = pshmemx_int64_atomic_and
Expand All @@ -52,12 +60,22 @@ OSHMEM_TYPE_OP(longlong, long long, shmem, and)
OSHMEM_TYPE_OP(uint, unsigned int, shmem, and)
OSHMEM_TYPE_OP(ulong, unsigned long, shmem, and)
OSHMEM_TYPE_OP(ulonglong, unsigned long long, shmem, and)
OSHMEM_TYPE_OP(int32, int32_t, shmem, and)
OSHMEM_TYPE_OP(int64, int64_t, shmem, and)
OSHMEM_TYPE_OP(uint32, uint32_t, shmem, and)
OSHMEM_TYPE_OP(uint64, uint64_t, shmem, and)

OSHMEM_CTX_TYPE_OP(int, int, shmem, and)
OSHMEM_CTX_TYPE_OP(long, long, shmem, and)
OSHMEM_CTX_TYPE_OP(longlong, long long, shmem, and)
OSHMEM_CTX_TYPE_OP(uint, unsigned int, shmem, and)
OSHMEM_CTX_TYPE_OP(ulong, unsigned long, shmem, and)
OSHMEM_CTX_TYPE_OP(ulonglong, unsigned long long, shmem, and)
OSHMEM_CTX_TYPE_OP(int32, int32_t, shmem, and)
OSHMEM_CTX_TYPE_OP(int64, int64_t, shmem, and)
OSHMEM_CTX_TYPE_OP(uint32, uint32_t, shmem, and)
OSHMEM_CTX_TYPE_OP(uint64, uint64_t, shmem, and)

OSHMEM_TYPE_OP(int32, int32_t, shmemx, and)
OSHMEM_TYPE_OP(int64, int64_t, shmemx, and)
OSHMEM_TYPE_OP(uint32, uint32_t, shmemx, and)
Expand Down
20 changes: 18 additions & 2 deletions oshmem/shmem/c/shmem_fand.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,21 @@
#pragma weak shmem_uint_atomic_fetch_and = pshmem_uint_atomic_fetch_and
#pragma weak shmem_ulong_atomic_fetch_and = pshmem_ulong_atomic_fetch_and
#pragma weak shmem_ulonglong_atomic_fetch_and = pshmem_ulonglong_atomic_fetch_and
#pragma weak shmem_int32_atomic_fetch_and = pshmem_int32_atomic_fetch_and
#pragma weak shmem_int64_atomic_fetch_and = pshmem_int64_atomic_fetch_and
#pragma weak shmem_uint32_atomic_fetch_and = pshmem_uint32_atomic_fetch_and
#pragma weak shmem_uint64_atomic_fetch_and = pshmem_uint64_atomic_fetch_and

#pragma weak shmem_ctx_int_atomic_fetch_and = pshmem_ctx_int_atomic_fetch_and
#pragma weak shmem_ctx_long_atomic_fetch_and = pshmem_ctx_long_atomic_fetch_and
#pragma weak shmem_ctx_longlong_atomic_fetch_and = pshmem_ctx_longlong_atomic_fetch_and
#pragma weak shmem_ctx_uint_atomic_fetch_and = pshmem_ctx_uint_atomic_fetch_and
#pragma weak shmem_ctx_ulong_atomic_fetch_and = pshmem_ctx_ulong_atomic_fetch_and
#pragma weak shmem_ctx_ulonglong_atomic_fetch_and = pshmem_ctx_ulonglong_atomic_fetch_and
#pragma weak shmem_ctx_int32_atomic_fetch_and = pshmem_ctx_int32_atomic_fetch_and
#pragma weak shmem_ctx_int64_atomic_fetch_and = pshmem_ctx_int64_atomic_fetch_and
#pragma weak shmem_ctx_uint32_atomic_fetch_and = pshmem_ctx_uint32_atomic_fetch_and
#pragma weak shmem_ctx_uint64_atomic_fetch_and = pshmem_ctx_uint64_atomic_fetch_and

#pragma weak shmemx_int32_atomic_fetch_and = pshmemx_int32_atomic_fetch_and
#pragma weak shmemx_int64_atomic_fetch_and = pshmemx_int64_atomic_fetch_and
Expand All @@ -48,20 +56,28 @@
#include "oshmem/shmem/c/profile/defines.h"
#endif

unsigned int shmem_uint_atomic_fand(unsigned int *target, unsigned int value, int pe);

OSHMEM_TYPE_FOP(int, int, shmem, and)
OSHMEM_TYPE_FOP(long, long, shmem, and)
OSHMEM_TYPE_FOP(longlong, long long, shmem, and)
OSHMEM_TYPE_FOP(uint, unsigned int, shmem, and)
OSHMEM_TYPE_FOP(ulong, unsigned long, shmem, and)
OSHMEM_TYPE_FOP(ulonglong, unsigned long long, shmem, and)
OSHMEM_TYPE_FOP(int32, int32_t, shmem, and)
OSHMEM_TYPE_FOP(int64, int64_t, shmem, and)
OSHMEM_TYPE_FOP(uint32, uint32_t, shmem, and)
OSHMEM_TYPE_FOP(uint64, uint64_t, shmem, and)

OSHMEM_CTX_TYPE_FOP(int, int, shmem, and)
OSHMEM_CTX_TYPE_FOP(long, long, shmem, and)
OSHMEM_CTX_TYPE_FOP(longlong, long long, shmem, and)
OSHMEM_CTX_TYPE_FOP(uint, unsigned int, shmem, and)
OSHMEM_CTX_TYPE_FOP(ulong, unsigned long, shmem, and)
OSHMEM_CTX_TYPE_FOP(ulonglong, unsigned long long, shmem, and)
OSHMEM_CTX_TYPE_FOP(int32, int32_t, shmem, and)
OSHMEM_CTX_TYPE_FOP(int64, int64_t, shmem, and)
OSHMEM_CTX_TYPE_FOP(uint32, uint32_t, shmem, and)
OSHMEM_CTX_TYPE_FOP(uint64, uint64_t, shmem, and)

OSHMEM_TYPE_FOP(int32, int32_t, shmemx, and)
OSHMEM_TYPE_FOP(int64, int64_t, shmemx, and)
OSHMEM_TYPE_FOP(uint32, uint32_t, shmemx, and)
Expand Down
18 changes: 18 additions & 0 deletions oshmem/shmem/c/shmem_for.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,21 @@
#pragma weak shmem_uint_atomic_fetch_or = pshmem_uint_atomic_fetch_or
#pragma weak shmem_ulong_atomic_fetch_or = pshmem_ulong_atomic_fetch_or
#pragma weak shmem_ulonglong_atomic_fetch_or = pshmem_ulonglong_atomic_fetch_or
#pragma weak shmem_int32_atomic_fetch_or = pshmem_int32_atomic_fetch_or
#pragma weak shmem_int64_atomic_fetch_or = pshmem_int64_atomic_fetch_or
#pragma weak shmem_uint32_atomic_fetch_or = pshmem_uint32_atomic_fetch_or
#pragma weak shmem_uint64_atomic_fetch_or = pshmem_uint64_atomic_fetch_or

#pragma weak shmem_ctx_int_atomic_fetch_or = pshmem_ctx_int_atomic_fetch_or
#pragma weak shmem_ctx_long_atomic_fetch_or = pshmem_ctx_long_atomic_fetch_or
#pragma weak shmem_ctx_longlong_atomic_fetch_or = pshmem_ctx_longlong_atomic_fetch_or
#pragma weak shmem_ctx_uint_atomic_fetch_or = pshmem_ctx_uint_atomic_fetch_or
#pragma weak shmem_ctx_ulong_atomic_fetch_or = pshmem_ctx_ulong_atomic_fetch_or
#pragma weak shmem_ctx_ulonglong_atomic_fetch_or = pshmem_ctx_ulonglong_atomic_fetch_or
#pragma weak shmem_ctx_int32_atomic_fetch_or = pshmem_ctx_int32_atomic_fetch_or
#pragma weak shmem_ctx_int64_atomic_fetch_or = pshmem_ctx_int64_atomic_fetch_or
#pragma weak shmem_ctx_uint32_atomic_fetch_or = pshmem_ctx_uint32_atomic_fetch_or
#pragma weak shmem_ctx_uint64_atomic_fetch_or = pshmem_ctx_uint64_atomic_fetch_or

#pragma weak shmemx_int32_atomic_fetch_or = pshmemx_int32_atomic_fetch_or
#pragma weak shmemx_int64_atomic_fetch_or = pshmemx_int64_atomic_fetch_or
Expand All @@ -54,12 +62,22 @@ OSHMEM_TYPE_FOP(longlong, long long, shmem, or)
OSHMEM_TYPE_FOP(uint, unsigned int, shmem, or)
OSHMEM_TYPE_FOP(ulong, unsigned long, shmem, or)
OSHMEM_TYPE_FOP(ulonglong, unsigned long long, shmem, or)
OSHMEM_TYPE_FOP(int32, int32_t, shmem, or)
OSHMEM_TYPE_FOP(int64, int64_t, shmem, or)
OSHMEM_TYPE_FOP(uint32, uint32_t, shmem, or)
OSHMEM_TYPE_FOP(uint64, uint64_t, shmem, or)

OSHMEM_CTX_TYPE_FOP(int, int, shmem, or)
OSHMEM_CTX_TYPE_FOP(long, long, shmem, or)
OSHMEM_CTX_TYPE_FOP(longlong, long long, shmem, or)
OSHMEM_CTX_TYPE_FOP(uint, unsigned int, shmem, or)
OSHMEM_CTX_TYPE_FOP(ulong, unsigned long, shmem, or)
OSHMEM_CTX_TYPE_FOP(ulonglong, unsigned long long, shmem, or)
OSHMEM_CTX_TYPE_FOP(int32, int32_t, shmem, or)
OSHMEM_CTX_TYPE_FOP(int64, int64_t, shmem, or)
OSHMEM_CTX_TYPE_FOP(uint32, uint32_t, shmem, or)
OSHMEM_CTX_TYPE_FOP(uint64, uint64_t, shmem, or)

OSHMEM_TYPE_FOP(int32, int32_t, shmemx, or)
OSHMEM_TYPE_FOP(int64, int64_t, shmemx, or)
OSHMEM_TYPE_FOP(uint32, uint32_t, shmemx, or)
Expand Down
Loading