@@ -268,23 +268,29 @@ set(EXPLICIT_SIMD_OPT_FLAG "EXPLICIT_SIMD_OPT")
268268set (MISC_MATH_BASIC_OPS_OPT_FLAG "MISC_MATH_BASIC_OPS_OPT" )
269269
270270# Skip FMA_OPT flag for targets that don't support fma.
271- if (NOT ((LIBC_TARGET_ARCHITECTURE_IS_X86_64 AND (LIBC_CPU_FEATURES MATCHES "FMA" )) OR
272- LIBC_TARGET_ARCHITECTURE_IS_RISCV64))
273- set (SKIP_FLAG_EXPANSION_FMA_OPT TRUE )
271+ if (NOT DEFINED SKIP_FLAG_EXPANSION_FMA_OPT)
272+ if (NOT ((LIBC_TARGET_ARCHITECTURE_IS_X86_64 AND (LIBC_CPU_FEATURES MATCHES "FMA" )) OR
273+ LIBC_TARGET_ARCHITECTURE_IS_RISCV64))
274+ set (SKIP_FLAG_EXPANSION_FMA_OPT TRUE )
275+ endif ()
274276endif ()
275277
276278# Skip EXPLICIT_SIMD_OPT flag for targets that don't support SSE2.
277279# Note: one may want to revisit it if they want to control other explicit SIMD
278- if (NOT (LIBC_TARGET_ARCHITECTURE_IS_X86_64 AND (LIBC_CPU_FEATURES MATCHES "SSE2" )))
279- set (SKIP_FLAG_EXPANSION_EXPLICIT_SIMD_OPT TRUE )
280+ if (NOT DEFINED SKIP_FLAG_EXPANSION_EXPLICIT_SIMD_OPT)
281+ if (NOT (LIBC_TARGET_ARCHITECTURE_IS_X86_64 AND (LIBC_CPU_FEATURES MATCHES "SSE2" )))
282+ set (SKIP_FLAG_EXPANSION_EXPLICIT_SIMD_OPT TRUE )
283+ endif ()
280284endif ()
281285
282286# Skip ROUND_OPT flag for targets that don't support rounding instructions. On
283287# x86, these are SSE4.1 instructions, but we already had code to check for
284288# SSE4.2 support.
285- if (NOT ((LIBC_TARGET_ARCHITECTURE_IS_X86_64 AND (LIBC_CPU_FEATURES MATCHES "SSE4_2" )) OR
286- LIBC_TARGET_ARCHITECTURE_IS_AARCH64 OR LIBC_TARGET_OS_IS_GPU))
287- set (SKIP_FLAG_EXPANSION_ROUND_OPT TRUE )
289+ if (NOT DEFINED SKIP_FLAG_EXPANSION_ROUND_OPT)
290+ if (NOT ((LIBC_TARGET_ARCHITECTURE_IS_X86_64 AND (LIBC_CPU_FEATURES MATCHES "SSE4_2" )) OR
291+ LIBC_TARGET_ARCHITECTURE_IS_AARCH64 OR LIBC_TARGET_OS_IS_GPU))
292+ set (SKIP_FLAG_EXPANSION_ROUND_OPT TRUE )
293+ endif ()
288294endif ()
289295
290296# Choose whether time_t is 32- or 64-bit, based on target architecture
0 commit comments