Skip to content

Commit 4f04a23

Browse files
committed
cmake: Reduce unnecessary nesting
1 parent 2bf9d53 commit 4f04a23

File tree

1 file changed

+44
-46
lines changed

1 file changed

+44
-46
lines changed

ggml/src/ggml-cpu/CMakeLists.txt

Lines changed: 44 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -154,53 +154,51 @@ function(ggml_add_cpu_backend_variant_impl tag_name)
154154
check_arm_feature(sme "#include <arm_sme.h>\n__arm_locally_streaming int main() { __asm__ volatile(\"smstart; smstop;\"); return 0; }")
155155

156156
list(APPEND ARCH_FLAGS "${ARM_MCPU_FLAG}${ARM_MCPU_FLAG_FIX}")
157-
else()
158-
if (GGML_CPU_ARM_ARCH)
159-
list(APPEND ARCH_FLAGS -march=${GGML_CPU_ARM_ARCH})
160-
elseif(GGML_CPU_ALL_VARIANTS)
161-
# Begin with the lowest baseline
162-
set(ARM_MCPU "armv8-a")
163-
set(ARCH_TAGS "")
164-
set(ARCH_DEFINITIONS "")
165-
166-
# When a feature is selected, bump the MCPU to the first
167-
# version that supported it
168-
if (GGML_INTERNAL_DOTPROD)
169-
set(ARM_MCPU "armv8.2-a")
170-
set(ARCH_TAGS "${ARCH_TAGS}+dotprod")
171-
list(APPEND ARCH_DEFINITIONS GGML_USE_DOTPROD)
172-
endif()
173-
if (GGML_INTERNAL_FP16_VECTOR_ARITHMETIC)
174-
set(ARM_MCPU "armv8.2-a")
175-
set(ARCH_TAGS "${ARCH_TAGS}+fp16")
176-
list(APPEND ARCH_DEFINITIONS GGML_USE_FP16_VECTOR_ARITHMETIC)
177-
endif()
178-
if (GGML_INTERNAL_SVE)
179-
set(ARM_MCPU "armv8.2-a")
180-
set(ARCH_TAGS "${ARCH_TAGS}+sve")
181-
list(APPEND ARCH_DEFINITIONS GGML_USE_SVE)
182-
endif()
183-
if (GGML_INTERNAL_MATMUL_INT8)
184-
set(ARM_MCPU "armv8.6-a")
185-
set(ARCH_TAGS "${ARCH_TAGS}+i8mm")
186-
list(APPEND ARCH_DEFINITIONS GGML_USE_MATMUL_INT8)
187-
endif()
188-
if (GGML_INTERNAL_SVE2)
189-
set(ARM_MCPU "armv8.6-a")
190-
set(ARCH_TAGS "${ARCH_TAGS}+sve2")
191-
list(APPEND ARCH_DEFINITIONS GGML_USE_SVE2)
192-
endif()
193-
if (GGML_INTERNAL_NOSVE)
194-
set(ARCH_TAGS "${ARCH_TAGS}+nosve")
195-
endif()
196-
if (GGML_INTERNAL_SME)
197-
set(ARM_MCPU "armv9.2-a")
198-
set(ARCH_TAGS "${ARCH_TAGS}+sme")
199-
list(APPEND ARCH_DEFINITIONS GGML_USE_SME)
200-
endif()
201-
list(APPEND ARCH_FLAGS "-march=${ARM_MCPU}${ARCH_TAGS}")
202-
ggml_add_cpu_backend_features(${GGML_CPU_NAME} arm ${ARCH_DEFINITIONS})
157+
elseif (GGML_CPU_ARM_ARCH)
158+
list(APPEND ARCH_FLAGS -march=${GGML_CPU_ARM_ARCH})
159+
elseif(GGML_CPU_ALL_VARIANTS)
160+
# Begin with the lowest baseline
161+
set(ARM_MCPU "armv8-a")
162+
set(ARCH_TAGS "")
163+
set(ARCH_DEFINITIONS "")
164+
165+
# When a feature is selected, bump the MCPU to the first
166+
# version that supported it
167+
if (GGML_INTERNAL_DOTPROD)
168+
set(ARM_MCPU "armv8.2-a")
169+
set(ARCH_TAGS "${ARCH_TAGS}+dotprod")
170+
list(APPEND ARCH_DEFINITIONS GGML_USE_DOTPROD)
171+
endif()
172+
if (GGML_INTERNAL_FP16_VECTOR_ARITHMETIC)
173+
set(ARM_MCPU "armv8.2-a")
174+
set(ARCH_TAGS "${ARCH_TAGS}+fp16")
175+
list(APPEND ARCH_DEFINITIONS GGML_USE_FP16_VECTOR_ARITHMETIC)
176+
endif()
177+
if (GGML_INTERNAL_SVE)
178+
set(ARM_MCPU "armv8.2-a")
179+
set(ARCH_TAGS "${ARCH_TAGS}+sve")
180+
list(APPEND ARCH_DEFINITIONS GGML_USE_SVE)
181+
endif()
182+
if (GGML_INTERNAL_MATMUL_INT8)
183+
set(ARM_MCPU "armv8.6-a")
184+
set(ARCH_TAGS "${ARCH_TAGS}+i8mm")
185+
list(APPEND ARCH_DEFINITIONS GGML_USE_MATMUL_INT8)
186+
endif()
187+
if (GGML_INTERNAL_SVE2)
188+
set(ARM_MCPU "armv8.6-a")
189+
set(ARCH_TAGS "${ARCH_TAGS}+sve2")
190+
list(APPEND ARCH_DEFINITIONS GGML_USE_SVE2)
191+
endif()
192+
if (GGML_INTERNAL_NOSVE)
193+
set(ARCH_TAGS "${ARCH_TAGS}+nosve")
194+
endif()
195+
if (GGML_INTERNAL_SME)
196+
set(ARM_MCPU "armv9.2-a")
197+
set(ARCH_TAGS "${ARCH_TAGS}+sme")
198+
list(APPEND ARCH_DEFINITIONS GGML_USE_SME)
203199
endif()
200+
list(APPEND ARCH_FLAGS "-march=${ARM_MCPU}${ARCH_TAGS}")
201+
ggml_add_cpu_backend_features(${GGML_CPU_NAME} arm ${ARCH_DEFINITIONS})
204202
endif()
205203

206204
# show enabled features

0 commit comments

Comments
 (0)