diff --git a/c/Makefile.am b/c/Makefile.am index 233d009..216d082 100644 --- a/c/Makefile.am +++ b/c/Makefile.am @@ -15,7 +15,6 @@ libmpi_la_SOURCES = \ comm_size.c \ finalize.c \ get_elements_int.c \ - get_elements_count.c \ get_elements_x.c \ init.c \ recv_int.c \ diff --git a/c/allgather_count.c b/c/allgather_count.c index 7cd9d0b..d4d4fea 100644 --- a/c/allgather_count.c +++ b/c/allgather_count.c @@ -9,7 +9,7 @@ #include "mpi.h" -int MPI_Allgather_l(const void *sendbuf, MPI_Count sendcount, +int MPI_Allgather_x(const void *sendbuf, MPI_Count sendcount, MPI_Datatype sendtype, void *recvbuf, MPI_Count recvcount, MPI_Datatype recvtype, MPI_Comm comm) diff --git a/c/get_elements_count.c b/c/get_elements_count.c deleted file mode 100644 index 8639261..0000000 --- a/c/get_elements_count.c +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2019 Cisco Systems, Inc. All rights reserved. - */ - -#include "froozle_config.h" - -#include - -#include "mpi.h" -#include "globals.h" - - -int MPI_Get_elements_l(const MPI_Status *status, - MPI_Datatype datatype, MPI_Count *count) -{ - printf("This is C %s\n", __func__); - - // The test programs are passing in bogus statuses (e.g., - // MPI_STATUS_IGNORE), so generate a status here and set a value - // based on the queried datatype. - MPI_Status dummy_status; - froozle_set_status(&dummy_status, datatype); - - *count = dummy_status.count; - - return MPI_SUCCESS; -} diff --git a/c/recv_count.c b/c/recv_count.c index 17abd7a..97f145b 100644 --- a/c/recv_count.c +++ b/c/recv_count.c @@ -9,7 +9,7 @@ #include "mpi.h" -int MPI_Recv_l(void *buf, MPI_Count count, +int MPI_Recv_x(void *buf, MPI_Count count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) diff --git a/c/send_count.c b/c/send_count.c index 18d2def..114b024 100644 --- a/c/send_count.c +++ b/c/send_count.c @@ -9,7 +9,7 @@ #include "mpi.h" -int MPI_Send_l(const void *buf, MPI_Count count, +int MPI_Send_x(const void *buf, MPI_Count count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) { diff --git a/examples/example_c.c b/examples/example_c.c index 1346dae..3e48623 100644 --- a/examples/example_c.c +++ b/examples/example_c.c @@ -33,20 +33,18 @@ static void do_sends(void) short smallI = 16; MPI_Send(buffer, smallI, MPI_CHAR, 0, 0, MPI_COMM_WORLD); -#if FROOZLE_HAVE_C11_GENERIC - printf(">> The following functions should call MPI_Send_l\n"); MPI_Count bigI = 8589934592; +#if FROOZLE_HAVE_C11_GENERIC + printf(">> The following functions should call MPI_Send_x\n"); MPI_Send(buffer, bigI, MPI_CHAR, 0, 0, MPI_COMM_WORLD); - // This one will generate a compiler warning (or error!) if you - // have no C11 _Generic support. MPI_Send(buffer, 8589934592, MPI_CHAR, 0, 0, MPI_COMM_WORLD); MPI_Send(buffer, (MPI_Count) 32, MPI_CHAR, 0, 0, MPI_COMM_WORLD); #endif // Let's also make sure that taking function pointers of both C // functions work (i.e., the back-end MPI_Send function and the - // MPI_Send_l function). + // MPI_Send_x function). typedef int (*int_fn_t)(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm); @@ -71,15 +69,23 @@ static void do_sends(void) #if FROOZLE_HAVE_C11_GENERIC // JMS Per the MPI Forum Virtual meeting on 2018-07-23, the - // MPI_Send_l function a) will be renamed MPI_Send_x, and b) will always + // MPI_Send_x function a) will be renamed MPI_Send_x, and b) will always // be available, even if C11 _Generic isn't. A future pull request will // make these changes. - printf(">> The following functions should call MPI_Send_l\n"); - count_fn_t count_fn = MPI_Send_l; + printf(">> The following functions should call MPI_Send_x\n"); + count_fn_t count_fn = MPI_Send_x; count_fn(buffer, i, MPI_CHAR, 0, 0, MPI_COMM_WORLD); count_fn(buffer, smallI, MPI_CHAR, 0, 0, MPI_COMM_WORLD); count_fn(buffer, bigI, MPI_CHAR, 0, 0, MPI_COMM_WORLD); #endif + + printf(">> The following functions should call MPI_Send_x\n"); + MPI_Send_x(buffer, i, MPI_CHAR, 0, 0, MPI_COMM_WORLD); + MPI_Send_x(buffer, 32, MPI_CHAR, 0, 0, MPI_COMM_WORLD); + MPI_Send_x(buffer, smallI, MPI_CHAR, 0, 0, MPI_COMM_WORLD); + MPI_Send_x(buffer, bigI, MPI_CHAR, 0, 0, MPI_COMM_WORLD); + MPI_Send_x(buffer, 8589934592, MPI_CHAR, 0, 0, MPI_COMM_WORLD); + MPI_Send_x(buffer, (MPI_Count) 32, MPI_CHAR, 0, 0, MPI_COMM_WORLD); } static void do_recvs(void) @@ -94,9 +100,9 @@ static void do_recvs(void) MPI_Recv(buffer, smallI, MPI_CHAR, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); -#if FROOZLE_HAVE_C11_GENERIC - printf(">> The following functions should call MPI_Recv_l\n"); MPI_Count bigI = 8589934592; +#if FROOZLE_HAVE_C11_GENERIC + printf(">> The following functions should call MPI_Recv_x\n"); MPI_Recv(buffer, bigI, MPI_CHAR, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); @@ -105,6 +111,19 @@ static void do_recvs(void) MPI_Recv(buffer, (MPI_Count) 32, MPI_CHAR, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); #endif + + printf(">> The following functions should call MPI_Recv_x\n"); + MPI_Recv_x(buffer, i, MPI_CHAR, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); + MPI_Recv_x(buffer, 32, MPI_CHAR, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); + MPI_Recv_x(buffer, smallI, MPI_CHAR, 0, 0, MPI_COMM_WORLD, + MPI_STATUS_IGNORE); + MPI_Recv_x(buffer, bigI, MPI_CHAR, 0, 0, MPI_COMM_WORLD, + MPI_STATUS_IGNORE); + + MPI_Recv_x(buffer, 8589934592, MPI_CHAR, 0, 0, MPI_COMM_WORLD, + MPI_STATUS_IGNORE); + MPI_Recv_x(buffer, (MPI_Count) 32, MPI_CHAR, 0, 0, MPI_COMM_WORLD, + MPI_STATUS_IGNORE); } static void do_allgathers(void) @@ -121,9 +140,9 @@ static void do_allgathers(void) MPI_Allgather(buffer, smallI, MPI_CHAR, buffer, smallI, MPI_CHAR, MPI_COMM_WORLD); -#if FROOZLE_HAVE_C11_GENERIC - printf(">> The following functions should call MPI_Allgather_l\n"); MPI_Count bigI = 8589934592; +#if FROOZLE_HAVE_C11_GENERIC + printf(">> The following functions should call MPI_Allgather_x\n"); MPI_Allgather(buffer, bigI, MPI_CHAR, buffer, bigI, MPI_CHAR, MPI_COMM_WORLD); MPI_Allgather(buffer, 8589934592, MPI_CHAR, @@ -131,6 +150,20 @@ static void do_allgathers(void) MPI_Allgather(buffer, (MPI_Count) 32, MPI_CHAR, buffer, (MPI_Count) 32, MPI_CHAR, MPI_COMM_WORLD); #endif + + printf(">> The following functions should call MPI_Allgather_x\n"); + MPI_Allgather_x(buffer, i, MPI_CHAR, + buffer, i, MPI_CHAR, MPI_COMM_WORLD); + MPI_Allgather_x(buffer, 32, MPI_CHAR, + buffer, 32, MPI_CHAR, MPI_COMM_WORLD); + MPI_Allgather_x(buffer, smallI, MPI_CHAR, + buffer, smallI, MPI_CHAR, MPI_COMM_WORLD); + MPI_Allgather_x(buffer, bigI, MPI_CHAR, + buffer, bigI, MPI_CHAR, MPI_COMM_WORLD); + MPI_Allgather_x(buffer, 8589934592, MPI_CHAR, + buffer, 8589934592, MPI_CHAR, MPI_COMM_WORLD); + MPI_Allgather_x(buffer, (MPI_Count) 32, MPI_CHAR, + buffer, (MPI_Count) 32, MPI_CHAR, MPI_COMM_WORLD); } static void check_eq(MPI_Count a, MPI_Count b, int line) @@ -155,7 +188,7 @@ static void do_get_elements(void) MPI_Count count_c; #if FROOZLE_HAVE_C11_GENERIC - printf(">> The following functions call MPI_Get_elements_l\n"); + printf(">> The following functions call MPI_Get_elements_x\n"); MPI_Get_elements(MPI_STATUS_IGNORE, MPI_CHAR, &count_c); CHECK_EQ(count_c, (MPI_Count) FROOZLE_TEST_SMALL_COUNT); MPI_Get_elements(MPI_STATUS_IGNORE, MPI_INT, &count_c); diff --git a/examples/example_cxx.cc b/examples/example_cxx.cc index ff71b27..8ad9022 100644 --- a/examples/example_cxx.cc +++ b/examples/example_cxx.cc @@ -33,11 +33,11 @@ static void do_sends(void) short smallI = 16; MPI_Send(buffer, smallI, MPI_CHAR, 0, 0, MPI_COMM_WORLD); - printf(">> The following functions should call MPI_Send_l\n"); + printf(">> The following functions should call MPI_Send_x\n"); MPI_Count bigI = 8589934592; - MPI_Send_l(buffer, bigI, MPI_CHAR, 0, 0, MPI_COMM_WORLD); - MPI_Send_l(buffer, 8589934592, MPI_CHAR, 0, 0, MPI_COMM_WORLD); - MPI_Send_l(buffer, (MPI_Count) 32, MPI_CHAR, 0, 0, MPI_COMM_WORLD); + MPI_Send_x(buffer, bigI, MPI_CHAR, 0, 0, MPI_COMM_WORLD); + MPI_Send_x(buffer, 8589934592, MPI_CHAR, 0, 0, MPI_COMM_WORLD); + MPI_Send_x(buffer, (MPI_Count) 32, MPI_CHAR, 0, 0, MPI_COMM_WORLD); } static void do_recvs(void) @@ -52,13 +52,13 @@ static void do_recvs(void) MPI_Recv(buffer, smallI, MPI_CHAR, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); - printf(">> The following functions should call MPI_Recv_l\n"); + printf(">> The following functions should call MPI_Recv_x\n"); MPI_Count bigI = 8589934592; - MPI_Recv_l(buffer, bigI, MPI_CHAR, 0, 0, MPI_COMM_WORLD, + MPI_Recv_x(buffer, bigI, MPI_CHAR, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); - MPI_Recv_l(buffer, 8589934592, MPI_CHAR, 0, 0, MPI_COMM_WORLD, + MPI_Recv_x(buffer, 8589934592, MPI_CHAR, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); - MPI_Recv_l(buffer, (MPI_Count) 32, MPI_CHAR, 0, 0, MPI_COMM_WORLD, + MPI_Recv_x(buffer, (MPI_Count) 32, MPI_CHAR, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); } @@ -76,13 +76,13 @@ static void do_allgathers(void) MPI_Allgather(buffer, smallI, MPI_CHAR, buffer, smallI, MPI_CHAR, MPI_COMM_WORLD); - printf(">> The following functions should call MPI_Allgather_l\n"); + printf(">> The following functions should call MPI_Allgather_x\n"); MPI_Count bigI = 8589934592; - MPI_Allgather_l(buffer, bigI, MPI_CHAR, + MPI_Allgather_x(buffer, bigI, MPI_CHAR, buffer, bigI, MPI_CHAR, MPI_COMM_WORLD); - MPI_Allgather_l(buffer, 8589934592, MPI_CHAR, + MPI_Allgather_x(buffer, 8589934592, MPI_CHAR, buffer, 8589934592, MPI_CHAR, MPI_COMM_WORLD); - MPI_Allgather_l(buffer, (MPI_Count) 32, MPI_CHAR, + MPI_Allgather_x(buffer, (MPI_Count) 32, MPI_CHAR, buffer, (MPI_Count) 32, MPI_CHAR, MPI_COMM_WORLD); } diff --git a/examples/example_usempif08.F90 b/examples/example_usempif08.F90 index 6fb9f58..e5de993 100644 --- a/examples/example_usempif08.F90 +++ b/examples/example_usempif08.F90 @@ -19,7 +19,7 @@ subroutine do_sends() call MPI_Send(buffer, 32, MPI_CHARACTER, 0, 0, MPI_COMM_WORLD, ierr) call MPI_Send(buffer, i, MPI_CHARACTER, 0, 0, MPI_COMM_WORLD, ierr) - write(*,*) '>> The following functions should call MPI_Send_l' + write(*,*) '>> The following functions should call MPI_Send_x' call MPI_Send(buffer, bigI, MPI_CHARACTER, 0, 0, MPI_COMM_WORLD, ierr) call MPI_Send(buffer, 858993459_MPI_COUNT_KIND, MPI_CHARACTER, & 0, 0, MPI_COMM_WORLD, ierr) @@ -41,7 +41,7 @@ subroutine do_recvs() call MPI_Recv(buffer, i, MPI_CHARACTER, 0, 0, MPI_COMM_WORLD, & MPI_STATUS_IGNORE, ierr) - write(*,*) '>> The following functions should call MPI_Recv_l' + write(*,*) '>> The following functions should call MPI_Recv_x' call MPI_Recv(buffer, bigI, MPI_CHARACTER, 0, 0, MPI_COMM_WORLD, & MPI_STATUS_IGNORE, ierr) call MPI_Recv(buffer, 8589934592_MPI_COUNT_KIND, MPI_CHARACTER, & @@ -65,7 +65,7 @@ subroutine do_allgathers() call MPI_Allgather(buffer, i, MPI_CHARACTER, & buffer, i, MPI_CHARACTER, & MPI_COMM_WORLD, ierr) - write(*,*) '>> The following functions should call MPI_Allgather_l' + write(*,*) '>> The following functions should call MPI_Allgather_x' call MPI_Allgather(buffer, bigI, MPI_CHARACTER, & buffer, bigI, MPI_CHARACTER, & MPI_COMM_WORLD, ierr) diff --git a/fortran-usempif08/allgather_count_usempif08.F90 b/fortran-usempif08/allgather_count_usempif08.F90 index 06e1047..63c71c2 100644 --- a/fortran-usempif08/allgather_count_usempif08.F90 +++ b/fortran-usempif08/allgather_count_usempif08.F90 @@ -5,7 +5,7 @@ #include "froozle_config_fortran.h" -subroutine MPI_Allgather_l_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & +subroutine MPI_Allgather_x_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & comm,ierror) use :: mpi_f08_types implicit none @@ -16,7 +16,7 @@ subroutine MPI_Allgather_l_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recv TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror - write(*,*) 'This is mpi_f08 module MPI_Allgather_l_f08' + write(*,*) 'This is mpi_f08 module MPI_Allgather_x_f08' if (present(ierror)) ierror = MPI_SUCCESS -end subroutine MPI_Allgather_l_f08 +end subroutine MPI_Allgather_x_f08 diff --git a/fortran-usempif08/mpi-f08-module.F90.in b/fortran-usempif08/mpi-f08-module.F90.in index bf7e7a2..ce56b8d 100644 --- a/fortran-usempif08/mpi-f08-module.F90.in +++ b/fortran-usempif08/mpi-f08-module.F90.in @@ -87,7 +87,7 @@ module mpi_f08 INTEGER, OPTIONAL, INTENT(OUT) :: ierror end subroutine MPI_Allgather_f08 - subroutine MPI_Allgather_l_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & + subroutine MPI_Allgather_x_f08(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype, & comm,ierror) use :: mpi_f08_types implicit none @@ -98,7 +98,7 @@ module mpi_f08 TYPE(MPI_Datatype), INTENT(IN) :: sendtype, recvtype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror - end subroutine MPI_Allgather_l_f08 + end subroutine MPI_Allgather_x_f08 end interface MPI_Allgather interface MPI_Send @@ -113,7 +113,7 @@ module mpi_f08 INTEGER, OPTIONAL, INTENT(OUT) :: ierror end subroutine MPI_Send_f08 - subroutine MPI_Send_l_f08(buf,count,datatype,dest,tag,comm,ierror) + subroutine MPI_Send_x_f08(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types implicit none @FROOZLE_FORTRAN_IGNORE_TKR_PREDECL@ buf @@ -123,7 +123,7 @@ module mpi_f08 TYPE(MPI_Datatype), INTENT(IN) :: datatype TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror - end subroutine MPI_Send_l_f08 + end subroutine MPI_Send_x_f08 end interface MPI_Send interface MPI_Recv @@ -139,7 +139,7 @@ module mpi_f08 INTEGER, OPTIONAL, INTENT(OUT) :: ierror end subroutine MPI_Recv_f08 - subroutine MPI_Recv_l_f08(buf,count,datatype,source,tag,comm,status,ierror) + subroutine MPI_Recv_x_f08(buf,count,datatype,source,tag,comm,status,ierror) use :: mpi_f08_types implicit none @FROOZLE_FORTRAN_IGNORE_TKR_PREDECL@ buf @@ -150,7 +150,7 @@ module mpi_f08 TYPE(MPI_Comm), INTENT(IN) :: comm TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror - end subroutine MPI_Recv_l_f08 + end subroutine MPI_Recv_x_f08 end interface MPI_Recv ! Back-end C function to do the work for MPI_Get_elements[_x] diff --git a/fortran-usempif08/recv_count_usempif08.F90 b/fortran-usempif08/recv_count_usempif08.F90 index 3e104fc..982dcf8 100644 --- a/fortran-usempif08/recv_count_usempif08.F90 +++ b/fortran-usempif08/recv_count_usempif08.F90 @@ -5,7 +5,7 @@ #include "froozle_config_fortran.h" -subroutine MPI_Recv_l_f08(buf,count,datatype,source,tag,comm,status,ierror) +subroutine MPI_Recv_x_f08(buf,count,datatype,source,tag,comm,status,ierror) use :: mpi_f08_types implicit none FROOZLE_FORTRAN_IGNORE_TKR_TYPE :: buf @@ -16,8 +16,8 @@ subroutine MPI_Recv_l_f08(buf,count,datatype,source,tag,comm,status,ierror) TYPE(MPI_Status) :: status INTEGER, OPTIONAL, INTENT(OUT) :: ierror - write(*,*) 'This is mpi_f08 module MPI_Recv_l_f08' + write(*,*) 'This is mpi_f08 module MPI_Recv_x_f08' status%MPI_SOURCE = 0 if (present(ierror)) ierror = MPI_SUCCESS -end subroutine MPI_Recv_l_f08 +end subroutine MPI_Recv_x_f08 diff --git a/fortran-usempif08/send_count_usempif08.F90 b/fortran-usempif08/send_count_usempif08.F90 index c554241..8ea3717 100644 --- a/fortran-usempif08/send_count_usempif08.F90 +++ b/fortran-usempif08/send_count_usempif08.F90 @@ -5,7 +5,7 @@ #include "froozle_config_fortran.h" -subroutine MPI_Send_l_f08(buf,count,datatype,dest,tag,comm,ierror) +subroutine MPI_Send_x_f08(buf,count,datatype,dest,tag,comm,ierror) use :: mpi_f08_types implicit none FROOZLE_FORTRAN_IGNORE_TKR_TYPE, INTENT(IN) :: buf @@ -15,7 +15,7 @@ subroutine MPI_Send_l_f08(buf,count,datatype,dest,tag,comm,ierror) TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, OPTIONAL, INTENT(OUT) :: ierror - write(*,*) 'This is mpi_f08 module MPI_Send_l_f08' + write(*,*) 'This is mpi_f08 module MPI_Send_x_f08' if (present(ierror)) ierror = MPI_SUCCESS -end subroutine MPI_Send_l_f08 +end subroutine MPI_Send_x_f08 diff --git a/include/.gitignore b/include/.gitignore index bf21f9a..a06e465 100644 --- a/include/.gitignore +++ b/include/.gitignore @@ -1,4 +1,4 @@ -mpi-config.h +mpi.h froozle_config.h froozle_config_fortran.h diff --git a/include/mpi.h.in b/include/mpi.h.in index d913845..e146e28 100644 --- a/include/mpi.h.in +++ b/include/mpi.h.in @@ -69,7 +69,7 @@ int MPI_Finalize(void); int MPI_Send(const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm); -int MPI_Send_l(const void *buf, MPI_Count count, +int MPI_Send_x(const void *buf, MPI_Count count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm); @@ -77,7 +77,7 @@ int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status); -int MPI_Recv_l(void *buf, MPI_Count count, +int MPI_Recv_x(void *buf, MPI_Count count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status); @@ -86,14 +86,14 @@ int MPI_Allgather(const void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm); -int MPI_Allgather_l(const void *sendbuf, MPI_Count sendcount, +int MPI_Allgather_x(const void *sendbuf, MPI_Count sendcount, MPI_Datatype sendtype, void *recvbuf, MPI_Count recvcount, MPI_Datatype recvtype, MPI_Comm comm); int MPI_Get_elements(const MPI_Status *status, MPI_Datatype datatype, int *count); -int MPI_Get_elements_l(const MPI_Status *status, +int MPI_Get_elements_x(const MPI_Status *status, MPI_Datatype datatype, MPI_Count *count); @@ -119,21 +119,21 @@ int MPI_Get_elements_x(const MPI_Status *status, _Generic(count, \ default: MPI_Send, \ int: MPI_Send, \ - MPI_Count: MPI_Send_l \ + MPI_Count: MPI_Send_x \ )(buf, count, dt, rank, tag, comm) #define MPI_Recv(buf, count, dt, rank, tag, comm, status) \ _Generic(count, \ default: MPI_Recv, \ int: MPI_Recv, \ - MPI_Count: MPI_Recv_l \ + MPI_Count: MPI_Recv_x \ )(buf, count, dt, rank, tag, comm, status) #define MPI_Allgather(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm) \ _Generic(sendcount, \ default: MPI_Allgather, \ int: MPI_Allgather, \ - MPI_Count: MPI_Allgather_l \ + MPI_Count: MPI_Allgather_x \ )(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm) @@ -141,7 +141,7 @@ int MPI_Get_elements_x(const MPI_Status *status, _Generic(count, \ default: MPI_Get_elements, \ int *: MPI_Get_elements, \ - MPI_Count *: MPI_Get_elements_l \ + MPI_Count *: MPI_Get_elements_x \ )(status, datatype, count) #endif // FROOZLE_WANT_C11_GENERIC