Skip to content

Commit 57f7420

Browse files
committed
aarch64_op_refactoring: always define macros
Build system changes: - configure.m4: remove check for Neon floating point support as it is never used - configure.m4: always define macros to either 0 or 1 - Makefile.am: always declare GENERATE_NEON_CODE and GENERATE_SVE_CODE Source code (only preprocessor): - updated macro check to #if instead of #ifdef - Add compile-time guard in op_aarch64_functions.c to ensure exactly one of GENERATE_SVE_CODE or GENERATE_NEON_CODE is enabled - added comment above compile-time guard No changes to the source code logic. Only the build system and macro checks have been changed. Signed-off-by: Marco Vogel <[email protected]>
1 parent fcdc735 commit 57f7420

File tree

4 files changed

+59
-78
lines changed

4 files changed

+59
-78
lines changed

ompi/mca/op/aarch64/Makefile.am

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ specialized_op_libs =
4343
if MCA_BUILD_ompi_op_has_neon_support
4444
specialized_op_libs += liblocal_ops_neon.la
4545
liblocal_ops_neon_la_SOURCES = op_aarch64_functions.c
46-
liblocal_ops_neon_la_CPPFLAGS = -DGENERATE_NEON_CODE
46+
liblocal_ops_neon_la_CPPFLAGS = -DGENERATE_NEON_CODE=1 -DGENERATE_SVE_CODE=0
4747
endif
4848
if MCA_BUILD_ompi_op_has_sve_support
4949
specialized_op_libs += liblocal_ops_sve.la
5050
liblocal_ops_sve_la_SOURCES = op_aarch64_functions.c
51-
liblocal_ops_sve_la_CPPFLAGS = -DGENERATE_SVE_CODE
51+
liblocal_ops_sve_la_CPPFLAGS = -DGENERATE_NEON_CODE=0 -DGENERATE_SVE_CODE=1
5252
endif
5353

5454
component_noinst = $(specialized_op_libs)

ompi/mca/op/aarch64/configure.m4

+4-30
Original file line numberDiff line numberDiff line change
@@ -48,29 +48,6 @@ AC_DEFUN([MCA_ompi_op_aarch64_CONFIG],[
4848
[op_cv_neon_support=yes],
4949
[op_cv_neon_support=no])])
5050

51-
#
52-
# Check for NEON FP support
53-
#
54-
AC_CACHE_CHECK([for NEON FP support], op_cv_neon_fp_support,
55-
[AS_IF([test "$op_cv_neon_support" = "yes"],
56-
[
57-
AC_LINK_IFELSE(
58-
[AC_LANG_PROGRAM([[
59-
#if defined(__aarch64__) && defined(__ARM_NEON) && (defined(__ARM_NEON_FP) || defined(__ARM_FP))
60-
#include <arm_neon.h>
61-
#else
62-
#error "No support for __aarch64__ or NEON FP"
63-
#endif
64-
]],
65-
[[
66-
#if defined(__aarch64__) && defined(__ARM_NEON) && (defined(__ARM_NEON_FP) || defined(__ARM_FP))
67-
float32x4_t vA;
68-
vA = vmovq_n_f32(0)
69-
#endif
70-
]])],
71-
[op_cv_neon_fp_support=yes],
72-
[op_cv_neon_fp_support=no])])])
73-
7451
#
7552
# Check for SVE support
7653
#
@@ -133,21 +110,18 @@ int main(void) {
133110
])
134111
AM_CONDITIONAL([MCA_BUILD_ompi_op_has_neon_support],
135112
[test "$op_cv_neon_support" = "yes"])
136-
AM_CONDITIONAL([MCA_BUILD_ompi_op_has_neon_fp_support],
137-
[test "$op_cv_neon_fp_support" = "yes"])
138113
AM_CONDITIONAL([MCA_BUILD_ompi_op_has_sve_support],
139114
[test "$op_cv_sve_support" = "yes"])
140115

141116
AC_SUBST(MCA_BUILD_ompi_op_has_neon_support)
142-
AC_SUBST(MCA_BUILD_ompi_op_has_neon_fp_support)
143117
AC_SUBST(MCA_BUILD_ompi_op_has_sve_support)
144118

145119
AS_IF([test "$op_cv_neon_support" = "yes"],
146-
[AC_DEFINE([OMPI_MCA_OP_HAVE_NEON], [1],[NEON supported in the current build])])
147-
AS_IF([test "$op_cv_neon_fp_support" = "yes"],
148-
[AC_DEFINE([OMPI_MCA_OP_HAVE_NEON_FP], [1],[NEON FP supported in the current build])])
120+
[AC_DEFINE([OMPI_MCA_OP_HAVE_NEON], [1],[NEON supported in the current build])],
121+
[AC_DEFINE([OMPI_MCA_OP_HAVE_NEON], [0],[NEON not supported in the current build])])
149122
AS_IF([test "$op_cv_sve_support" = "yes"],
150-
[AC_DEFINE([OMPI_MCA_OP_HAVE_SVE], [1],[SVE supported in the current build])])
123+
[AC_DEFINE([OMPI_MCA_OP_HAVE_SVE], [1],[SVE supported in the current build])],
124+
[AC_DEFINE([OMPI_MCA_OP_HAVE_SVE], [0],[SVE not supported in the current build])])
151125
AS_IF([test "$op_cv_sve_add_flags" = "yes"],
152126
[AC_DEFINE([OMPI_MCA_OP_SVE_EXTRA_FLAGS], [1],[SVE supported with additional compile attributes])],
153127
[AC_DEFINE([OMPI_MCA_OP_SVE_EXTRA_FLAGS], [0],[SVE not supported])])

ompi/mca/op/aarch64/op_aarch64_component.c

+12-12
Original file line numberDiff line numberDiff line change
@@ -105,12 +105,12 @@ OMPI_SVE_ATTR static int mca_op_aarch64_component_register(void)
105105
{
106106

107107
mca_op_aarch64_component.hardware_available = 1; /* Check for Neon */
108-
#if defined(OMPI_MCA_OP_HAVE_SVE)
108+
#if OMPI_MCA_OP_HAVE_SVE
109109
uint64_t id_aa64pfr0_el1 = (1UL << 32);
110110
__asm__("mrs %0, ID_AA64PFR0_EL1" : "=r"(id_aa64pfr0_el1) : :);
111111
/* Check for SVE support */
112112
mca_op_aarch64_component.hardware_available |= ((id_aa64pfr0_el1 & (1UL << 32)) ? 2 : 0);
113-
#endif /* defined(OMPI_MCA_OP_HAVE_SVE) */
113+
#endif /* OMPI_MCA_OP_HAVE_SVE */
114114
(void) mca_base_component_var_register(&mca_op_aarch64_component.super.opc_version,
115115
"hardware_available",
116116
"Whether the Neon (1) or SVE (2) hardware is available",
@@ -119,9 +119,9 @@ OMPI_SVE_ATTR static int mca_op_aarch64_component_register(void)
119119
MCA_BASE_VAR_SCOPE_READONLY,
120120
&mca_op_aarch64_component.hardware_available);
121121
uint64_t id_aa64zfr0_el1 = 0;
122-
#if defined(OMPI_MCA_OP_HAVE_SVE)
122+
#if OMPI_MCA_OP_HAVE_SVE
123123
__asm__("mrs %0, ID_AA64ZFR0_EL1" : "=r"(id_aa64zfr0_el1) : :);
124-
#endif /* defined(OMPI_MCA_OP_HAVE_SVE) */
124+
#endif /* OMPI_MCA_OP_HAVE_SVE */
125125
mca_op_aarch64_component.double_supported = id_aa64zfr0_el1 & (1UL << 56);
126126
/* Bit 1: mandatory SVE2 instructions */
127127
/* Bit 2: mandatory SVE2.1 instructions */
@@ -148,18 +148,18 @@ static int mca_op_aarch64_component_init_query(bool enable_progress_threads,
148148
return OMPI_ERR_NOT_SUPPORTED;
149149
}
150150

151-
#if defined(OMPI_MCA_OP_HAVE_NEON)
151+
#if OMPI_MCA_OP_HAVE_NEON
152152
extern ompi_op_base_handler_fn_t
153153
ompi_op_aarch64_functions_neon[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX];
154154
extern ompi_op_base_3buff_handler_fn_t
155155
ompi_op_aarch64_3buff_functions_neon[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX];
156-
#endif /* defined(OMPI_MCA_OP_HAVE_NEON) */
157-
#if defined(OMPI_MCA_OP_HAVE_SVE)
156+
#endif /* OMPI_MCA_OP_HAVE_NEON */
157+
#if OMPI_MCA_OP_HAVE_SVE
158158
extern ompi_op_base_handler_fn_t
159159
ompi_op_aarch64_functions_sve[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX];
160160
extern ompi_op_base_3buff_handler_fn_t
161161
ompi_op_aarch64_3buff_functions_sve[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX];
162-
#endif /* defined(OMPI_MCA_OP_HAVE_SVE) */
162+
#endif /* OMPI_MCA_OP_HAVE_SVE */
163163

164164
/*
165165
* Query whether this component can be used for a specific op
@@ -189,13 +189,13 @@ static struct ompi_op_base_module_1_0_0_t *
189189
for (int i = 0; i < OMPI_OP_BASE_TYPE_MAX; ++i) {
190190
module->opm_fns[i] = NULL;
191191
module->opm_3buff_fns[i] = NULL;
192-
#if defined(OMPI_MCA_OP_HAVE_SVE)
192+
#if OMPI_MCA_OP_HAVE_SVE
193193
if( mca_op_aarch64_component.hardware_available & 2 ) {
194194
module->opm_fns[i] = ompi_op_aarch64_functions_sve[op->o_f_to_c_index][i];
195195
module->opm_3buff_fns[i] = ompi_op_aarch64_3buff_functions_sve[op->o_f_to_c_index][i];
196196
}
197-
#endif /* defined(OMPI_MCA_OP_HAVE_SVE) */
198-
#if defined(OMPI_MCA_OP_HAVE_NEON)
197+
#endif /* OMPI_MCA_OP_HAVE_SVE */
198+
#if OMPI_MCA_OP_HAVE_NEON
199199
if( mca_op_aarch64_component.hardware_available & 1 ) {
200200
if( NULL == module->opm_fns[i] ) {
201201
module->opm_fns[i] = ompi_op_aarch64_functions_neon[op->o_f_to_c_index][i];
@@ -204,7 +204,7 @@ static struct ompi_op_base_module_1_0_0_t *
204204
module->opm_3buff_fns[i] = ompi_op_aarch64_3buff_functions_neon[op->o_f_to_c_index][i];
205205
}
206206
}
207-
#endif /* defined(OMPI_MCA_OP_HAVE_NEON) */
207+
#endif /* OMPI_MCA_OP_HAVE_NEON */
208208
}
209209
break;
210210
case OMPI_OP_BASE_FORTRAN_LAND:

ompi/mca/op/aarch64/op_aarch64_functions.c

+41-34
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,25 @@
2626
#include "ompi/mca/op/base/base.h"
2727
#include "ompi/mca/op/aarch64/op_aarch64.h"
2828

29-
#if defined(GENERATE_SVE_CODE)
29+
/**
30+
* Ensure exactly one of GENERATE_SVE_CODE or GENERATE_NEON_CODE is enabled.
31+
* Enabling both is invalid as each builds a separate library. Disabling both
32+
* would leave no implementation to compile.
33+
*/
34+
#if GENERATE_SVE_CODE && GENERATE_NEON_CODE
35+
#error "Never build NEON and SVE within the same library"
36+
#elif GENERATE_SVE_CODE
3037
# include <arm_sve.h>
3138
#define OMPI_OP_TYPE_PREPEND sv
3239
#define OMPI_OP_OP_PREPEND sv
3340
#define APPEND _sve
34-
#elif defined(GENERATE_NEON_CODE)
41+
#elif GENERATE_NEON_CODE
3542
# include <arm_neon.h>
3643
#define OMPI_OP_TYPE_PREPEND
3744
#define OMPI_OP_OP_PREPEND v
3845
#define APPEND _neon
3946
#else
40-
#error we should not reach this
47+
#error "Neither NEON nor SVE code generated. This should never happen"
4148
#endif /* OMPI_MCA_OP_HAVE_SVE */
4249

4350
/*
@@ -51,7 +58,7 @@
5158
*/
5259
#define OP_CONCAT(A, B) OP_CONCAT_NX(A, B)
5360

54-
#if defined(GENERATE_SVE_CODE)
61+
#if GENERATE_SVE_CODE
5562
# define svcnt(X) \
5663
_Generic((X), \
5764
int8_t: svcntb, \
@@ -101,7 +108,7 @@ _Generic((*(out)), \
101108
uint64_t: __extension__({ switch ((how_much)) { DUMP2(out, in1, in2) }}), \
102109
float32_t: __extension__({ switch ((how_much)) { DUMP4(out, in1, in2) }}), \
103110
float64_t: __extension__({ switch ((how_much)) { DUMP2(out, in1, in2) }}))
104-
#endif /* defined(GENERATE_SVE_CODE) */
111+
#endif /* GENERATE_SVE_CODE */
105112

106113
/*
107114
* Since all the functions in this file are essentially identical, we
@@ -111,7 +118,7 @@ _Generic((*(out)), \
111118
* This macro is for (out op in).
112119
*
113120
*/
114-
#if defined(GENERATE_NEON_CODE)
121+
#if GENERATE_NEON_CODE
115122
#define OP_AARCH64_FUNC(name, type_name, type_size, type_cnt, type, op) \
116123
static void OP_CONCAT(ompi_op_aarch64_2buff_##name##_##type##type_size##_t, \
117124
APPEND)(const void *_in, void *_out, int *count, \
@@ -135,7 +142,7 @@ _Generic((*(out)), \
135142
neon_loop(left_over, out, out, in); \
136143
} \
137144
}
138-
#elif defined(GENERATE_SVE_CODE)
145+
#elif GENERATE_SVE_CODE
139146
#define OP_AARCH64_FUNC(name, type_name, type_size, type_cnt, type, op) \
140147
OMPI_SVE_ATTR \
141148
static void OP_CONCAT(ompi_op_aarch64_2buff_##name##_##type##type_size##_t, APPEND) \
@@ -169,10 +176,10 @@ _Generic((*(out)), \
169176
OP_AARCH64_FUNC(max, u, 16, 8, uint, max)
170177
OP_AARCH64_FUNC(max, s, 32, 4, int, max)
171178
OP_AARCH64_FUNC(max, u, 32, 4, uint, max)
172-
#if defined(GENERATE_SVE_CODE)
179+
#if GENERATE_SVE_CODE
173180
OP_AARCH64_FUNC(max, s, 64, 2, int, max)
174181
OP_AARCH64_FUNC(max, u, 64, 2, uint, max)
175-
#endif /* defined(GENERATE_SVE_CODE) */
182+
#endif /* GENERATE_SVE_CODE */
176183

177184
OP_AARCH64_FUNC(max, f, 32, 4, float, max)
178185
OP_AARCH64_FUNC(max, f, 64, 2, float, max)
@@ -188,10 +195,10 @@ _Generic((*(out)), \
188195
OP_AARCH64_FUNC(min, u, 16, 8, uint, min)
189196
OP_AARCH64_FUNC(min, s, 32, 4, int, min)
190197
OP_AARCH64_FUNC(min, u, 32, 4, uint, min)
191-
#if defined(GENERATE_SVE_CODE)
198+
#if GENERATE_SVE_CODE
192199
OP_AARCH64_FUNC(min, s, 64, 2, int, min)
193200
OP_AARCH64_FUNC(min, u, 64, 2, uint, min)
194-
#endif /* defined(GENERATE_SVE_CODE) */
201+
#endif /* GENERATE_SVE_CODE */
195202

196203
OP_AARCH64_FUNC(min, f, 32, 4, float, min)
197204
OP_AARCH64_FUNC(min, f, 64, 2, float, min)
@@ -223,10 +230,10 @@ _Generic((*(out)), \
223230
OP_AARCH64_FUNC(prod, u, 16, 8, uint, mul)
224231
OP_AARCH64_FUNC(prod, s, 32, 4, int, mul)
225232
OP_AARCH64_FUNC(prod, u, 32, 4, uint, mul)
226-
#if defined(GENERATE_SVE_CODE)
233+
#if GENERATE_SVE_CODE
227234
OP_AARCH64_FUNC(prod, s, 64, 2, int, mul)
228235
OP_AARCH64_FUNC(prod, u, 64, 2, uint, mul)
229-
#endif /* defined(GENERATE_SVE_CODE) */
236+
#endif /* GENERATE_SVE_CODE */
230237

231238
OP_AARCH64_FUNC(prod, f, 32, 4, float, mul)
232239
OP_AARCH64_FUNC(prod, f, 64, 2, float, mul)
@@ -277,7 +284,7 @@ _Generic((*(out)), \
277284
* This is a three buffer (2 input and 1 output) version of the reduction
278285
* routines, needed for some optimizations.
279286
*/
280-
#if defined(GENERATE_NEON_CODE)
287+
#if GENERATE_NEON_CODE
281288
#define OP_AARCH64_FUNC_3BUFF(name, type_name, type_size, type_cnt, type, op) \
282289
static void OP_CONCAT(ompi_op_aarch64_3buff_##name##_##type##type_size##_t, APPEND) \
283290
(const void *_in1, const void *_in2, void *_out, int *count, \
@@ -302,7 +309,7 @@ static void OP_CONCAT(ompi_op_aarch64_3buff_##name##_##type##type_size##_t, APPE
302309
neon_loop(left_over, out, in1, in2); \
303310
} \
304311
}
305-
#elif defined(GENERATE_SVE_CODE)
312+
#elif GENERATE_SVE_CODE
306313
#define OP_AARCH64_FUNC_3BUFF(name, type_name, type_size, type_cnt, type, op) \
307314
OMPI_SVE_ATTR \
308315
static void OP_CONCAT(ompi_op_aarch64_3buff_##name##_##type##type_size##_t, APPEND) \
@@ -324,7 +331,7 @@ static void OP_CONCAT(ompi_op_aarch64_3buff_##name##_##type##type_size##_t, APPE
324331
OP_CONCAT(OMPI_OP_OP_PREPEND, st1)(pred, &out[idx], vdst); \
325332
} \
326333
}
327-
#endif /* defined(GENERATE_SVE_CODE) */
334+
#endif /* GENERATE_SVE_CODE */
328335

329336
/*************************************************************************
330337
* Max
@@ -337,10 +344,10 @@ static void OP_CONCAT(ompi_op_aarch64_3buff_##name##_##type##type_size##_t, APPE
337344
OP_AARCH64_FUNC_3BUFF(max, u, 16, 8, uint, max)
338345
OP_AARCH64_FUNC_3BUFF(max, s, 32, 4, int, max)
339346
OP_AARCH64_FUNC_3BUFF(max, u, 32, 4, uint, max)
340-
#if defined(GENERATE_SVE_CODE)
347+
#if GENERATE_SVE_CODE
341348
OP_AARCH64_FUNC_3BUFF(max, s, 64, 2, int, max)
342349
OP_AARCH64_FUNC_3BUFF(max, u, 64, 2, uint, max)
343-
#endif /* defined(GENERATE_SVE_CODE) */
350+
#endif /* GENERATE_SVE_CODE */
344351

345352
OP_AARCH64_FUNC_3BUFF(max, f, 32, 4, float, max)
346353
OP_AARCH64_FUNC_3BUFF(max, f, 64, 2, float, max)
@@ -356,10 +363,10 @@ static void OP_CONCAT(ompi_op_aarch64_3buff_##name##_##type##type_size##_t, APPE
356363
OP_AARCH64_FUNC_3BUFF(min, u, 16, 8, uint, min)
357364
OP_AARCH64_FUNC_3BUFF(min, s, 32, 4, int, min)
358365
OP_AARCH64_FUNC_3BUFF(min, u, 32, 4, uint, min)
359-
#if defined(GENERATE_SVE_CODE)
366+
#if GENERATE_SVE_CODE
360367
OP_AARCH64_FUNC_3BUFF(min, s, 64, 2, int, min)
361368
OP_AARCH64_FUNC_3BUFF(min, u, 64, 2, uint, min)
362-
#endif /* defined(GENERATE_SVE_CODE) */
369+
#endif /* GENERATE_SVE_CODE */
363370

364371
OP_AARCH64_FUNC_3BUFF(min, f, 32, 4, float, min)
365372
OP_AARCH64_FUNC_3BUFF(min, f, 64, 2, float, min)
@@ -392,10 +399,10 @@ static void OP_CONCAT(ompi_op_aarch64_3buff_##name##_##type##type_size##_t, APPE
392399
OP_AARCH64_FUNC_3BUFF(prod, u, 16, 8, uint, mul)
393400
OP_AARCH64_FUNC_3BUFF(prod, s, 32, 4, int, mul)
394401
OP_AARCH64_FUNC_3BUFF(prod, u, 32, 4, uint, mul)
395-
#if defined(GENERATE_SVE_CODE)
402+
#if GENERATE_SVE_CODE
396403
OP_AARCH64_FUNC_3BUFF(prod, s, 64, 2, int, mul)
397404
OP_AARCH64_FUNC_3BUFF(prod, u, 64, 2, uint, mul)
398-
#endif /* defined(GENERATE_SVE_CODE) */
405+
#endif /* GENERATE_SVE_CODE */
399406

400407
OP_AARCH64_FUNC_3BUFF(prod, f, 32, 4, float, mul)
401408
OP_AARCH64_FUNC_3BUFF(prod, f, 64, 2, float, mul)
@@ -482,17 +489,17 @@ static void OP_CONCAT(ompi_op_aarch64_3buff_##name##_##type##type_size##_t, APPE
482489
/* Corresponds to MPI_MAX */
483490
[OMPI_OP_BASE_FORTRAN_MAX] = {
484491
C_INTEGER_BASE(max, 2buff),
485-
#if defined(GENERATE_SVE_CODE)
492+
#if GENERATE_SVE_CODE
486493
C_INTEGER_EX(max, 2buff),
487-
#endif /* defined(GENERATE_SVE_CODE) */
494+
#endif /* GENERATE_SVE_CODE */
488495
FLOATING_POINT(max, 2buff),
489496
},
490497
/* Corresponds to MPI_MIN */
491498
[OMPI_OP_BASE_FORTRAN_MIN] = {
492499
C_INTEGER_BASE(min, 2buff),
493-
#if defined(GENERATE_SVE_CODE)
500+
#if GENERATE_SVE_CODE
494501
C_INTEGER_EX(min, 2buff),
495-
#endif /* defined(GENERATE_SVE_CODE) */
502+
#endif /* GENERATE_SVE_CODE */
496503
FLOATING_POINT(min, 2buff),
497504
},
498505
/* Corresponds to MPI_SUM */
@@ -504,9 +511,9 @@ static void OP_CONCAT(ompi_op_aarch64_3buff_##name##_##type##type_size##_t, APPE
504511
/* Corresponds to MPI_PROD */
505512
[OMPI_OP_BASE_FORTRAN_PROD] = {
506513
C_INTEGER_BASE(prod, 2buff),
507-
#if defined(GENERATE_SVE_CODE)
514+
#if GENERATE_SVE_CODE
508515
C_INTEGER_EX(prod, 2buff),
509-
#endif /* defined(GENERATE_SVE_CODE) */
516+
#endif /* GENERATE_SVE_CODE */
510517
FLOATING_POINT(prod, 2buff),
511518
},
512519
/* Corresponds to MPI_LAND */
@@ -558,17 +565,17 @@ static void OP_CONCAT(ompi_op_aarch64_3buff_##name##_##type##type_size##_t, APPE
558565
/* Corresponds to MPI_MAX */
559566
[OMPI_OP_BASE_FORTRAN_MAX] = {
560567
C_INTEGER_BASE(max, 3buff),
561-
#if defined(GENERATE_SVE_CODE)
568+
#if GENERATE_SVE_CODE
562569
C_INTEGER_EX(max, 3buff),
563-
#endif /* defined(GENERATE_SVE_CODE) */
570+
#endif /* GENERATE_SVE_CODE */
564571
FLOATING_POINT(max, 3buff),
565572
},
566573
/* Corresponds to MPI_MIN */
567574
[OMPI_OP_BASE_FORTRAN_MIN] = {
568575
C_INTEGER_BASE(min, 3buff),
569-
#if defined(GENERATE_SVE_CODE)
576+
#if GENERATE_SVE_CODE
570577
C_INTEGER_EX(min, 3buff),
571-
#endif /* defined(GENERATE_SVE_CODE) */
578+
#endif /* GENERATE_SVE_CODE */
572579
FLOATING_POINT(min, 3buff),
573580
},
574581
/* Corresponds to MPI_SUM */
@@ -580,9 +587,9 @@ static void OP_CONCAT(ompi_op_aarch64_3buff_##name##_##type##type_size##_t, APPE
580587
/* Corresponds to MPI_PROD */
581588
[OMPI_OP_BASE_FORTRAN_PROD] = {
582589
C_INTEGER_BASE(prod, 3buff),
583-
#if defined(GENERATE_SVE_CODE)
590+
#if GENERATE_SVE_CODE
584591
C_INTEGER_EX(prod, 3buff),
585-
#endif /* defined(GENERATE_SVE_CODE) */
592+
#endif /* GENERATE_SVE_CODE */
586593
FLOATING_POINT(prod, 3buff),
587594
},
588595
/* Corresponds to MPI_LAND */

0 commit comments

Comments
 (0)