#define GEN2_CMA__ARM_CAVIUM_V8_2S_32_MLX_CX_EDR__32PPN {		\
	{		\
	32,		\
	21,		\
	{		\
	{1, &MPIR_Allgather_Bruck_MV2},		\
	{2, &MPIR_Allgather_RD_MV2},		\
	{4, &MPIR_Allgather_RD_MV2},		\
	{8, &MPIR_Allgather_RD_MV2},		\
	{16, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{32, &MPIR_Allgather_Bruck_MV2},		\
	{64, &MPIR_Allgather_Bruck_MV2},		\
	{128, &MPIR_Allgather_RD_MV2},		\
	{256, &MPIR_Allgather_Bruck_MV2},		\
	{512, &MPIR_Allgather_RD_MV2},		\
	{1024, &MPIR_Allgather_RD_MV2},		\
	{2048, &MPIR_Allgather_RD_MV2},		\
	{4096, &MPIR_Allgather_Ring_MV2},		\
	{8192, &MPIR_Allgather_RD_MV2},		\
	{16384, &MPIR_Allgather_Ring_MV2},		\
	{32768, &MPIR_Allgather_Ring_MV2},		\
	{65536, &MPIR_Allgather_Ring_MV2},		\
	{131072, &MPIR_Allgather_Ring_MV2},		\
	{262144, &MPIR_Allgather_Ring_MV2},		\
	{524288, &MPIR_Allgather_Ring_MV2},		\
	{1048576, &MPIR_Allgather_Ring_MV2}		\
	}		\
	},		 \
	{		\
	64,		\
	21,		\
	{		\
	{1, &MPIR_Allgather_RD_MV2},		\
	{2, &MPIR_Allgather_RD_MV2},		\
	{4, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{8, &MPIR_Allgather_RD_MV2},		\
	{16, &MPIR_Allgather_RD_MV2},		\
	{32, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{64, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{128, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{256, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{512, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{1024, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{2048, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{4096, &MPIR_Allgather_Ring_MV2},		\
	{8192, &MPIR_Allgather_Ring_MV2},		\
	{16384, &MPIR_Allgather_Ring_MV2},		\
	{32768, &MPIR_Allgather_Ring_MV2},		\
	{65536, &MPIR_Allgather_Ring_MV2},		\
	{131072, &MPIR_Allgather_Ring_MV2},		\
	{262144, &MPIR_Allgather_Ring_MV2},		\
	{524288, &MPIR_Allgather_Ring_MV2},		\
	{1048576, &MPIR_Allgather_Ring_MV2}		\
	}		\
	},		 \
	{		\
	128,		\
	21,		\
	{		\
	{1, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{2, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{4, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{8, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{16, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{32, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{64, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{128, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{256, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{512, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{1024, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{2048, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{4096, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{8192, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{16384, &MPIR_Allgather_Ring_MV2},		\
	{32768, &MPIR_Allgather_Ring_MV2},		\
	{65536, &MPIR_Allgather_Ring_MV2},		\
	{131072, &MPIR_Allgather_Ring_MV2},		\
	{262144, &MPIR_Allgather_Ring_MV2},		\
	{524288, &MPIR_Allgather_Ring_MV2},		\
	{1048576, &MPIR_Allgather_Ring_MV2}		\
	}		\
	},		 \
        {               \
        256,            \
        21,             \
        {               \
        {1, &MPIR_Allgather_RD_MV2},            \
        {2, &MPIR_Allgather_RD_MV2},            \
        {4, &MPIR_Allgather_RD_Allgather_Comm_MV2},             \
        {8, &MPIR_Allgather_RD_Allgather_Comm_MV2},             \
        {16, &MPIR_Allgather_RD_Allgather_Comm_MV2},            \
        {32, &MPIR_Allgather_RD_Allgather_Comm_MV2},            \
        {64, &MPIR_Allgather_RD_Allgather_Comm_MV2},            \
        {128, &MPIR_Allgather_RD_Allgather_Comm_MV2},           \
        {256, &MPIR_Allgather_RD_Allgather_Comm_MV2},           \
        {512, &MPIR_Allgather_RD_Allgather_Comm_MV2},           \
        {1024, &MPIR_Allgather_RD_Allgather_Comm_MV2},          \
        {2048, &MPIR_Allgather_RD_Allgather_Comm_MV2},          \
        {4096, &MPIR_Allgather_Ring_MV2},               \
        {8192, &MPIR_Allgather_Ring_MV2},               \
        {16384, &MPIR_Allgather_Ring_MV2},              \
        {32768, &MPIR_Allgather_Ring_MV2},              \
        {65536, &MPIR_Allgather_Ring_MV2},              \
        {131072, &MPIR_Allgather_Ring_MV2},             \
        {262144, &MPIR_Allgather_Ring_MV2},             \
        {524288, &MPIR_Allgather_Ring_MV2},             \
        {1048576, &MPIR_Allgather_Ring_MV2}             \
        }               \
        },                \
	{		\
	512,		\
	18,		\
	{		\
	{1, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{2, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{4, &MPIR_Allgather_RD_MV2},		\
	{8, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{16, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{32, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{64, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{128, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{256, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{512, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{1024, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{2048, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{4096, &MPIR_Allgather_Ring_MV2},		\
	{8192, &MPIR_Allgather_Ring_MV2},		\
	{16384, &MPIR_Allgather_Ring_MV2},		\
	{32768, &MPIR_Allgather_Ring_MV2},		\
	{65536, &MPIR_Allgather_Ring_MV2},		\
	{131072, &MPIR_Allgather_Ring_MV2}		\
	}		\
	},		 \
	{		\
	1024,		\
	18,		\
	{		\
	{1, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{2, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{4, &MPIR_Allgather_RD_MV2},		\
	{8, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{16, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{32, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{64, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{128, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{256, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{512, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{1024, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{2048, &MPIR_Allgather_RD_Allgather_Comm_MV2},		\
	{4096, &MPIR_Allgather_Ring_MV2},		\
	{8192, &MPIR_Allgather_Ring_MV2},		\
	{16384, &MPIR_Allgather_Ring_MV2},		\
	{32768, &MPIR_Allgather_Ring_MV2},		\
	{65536, &MPIR_Allgather_Ring_MV2},		\
	{131072, &MPIR_Allgather_Ring_MV2}		\
	}		\
	}		 \
}
