if { [check_effective_target_arm_v8_neon_ok] } {
global et_arm_v8_neon_flags
- return "$flags $et_arm_v8_neon_flags -march=armv8-a"
+ return "$flags $et_arm_v8_neon_flags -mcpu=unset -march=armv8-a"
}
if { [check_effective_target_sse4] } {
return "$flags"
}
global et_arm_v8_neon_flags
- return "$flags $et_arm_v8_neon_flags -march=armv8-a"
+ return "$flags $et_arm_v8_neon_flags -mcpu=unset -march=armv8-a"
}
# Add the options needed for ARMv8.1 Adv.SIMD. Also adds the ARMv8 NEON
global et_arm_neon_flags
set et_arm_neon_flags ""
if { [check_effective_target_arm32] } {
- foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon" "-mfpu=neon -mfloat-abi=softfp" "-mfpu=neon -mfloat-abi=softfp -march=armv7-a" "-mfloat-abi=hard" "-mfpu=neon -mfloat-abi=hard" "-mfpu=neon -mfloat-abi=hard -march=armv7-a"} {
+ foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon" "-mfpu=neon -mfloat-abi=softfp" "-mfpu=neon -mfloat-abi=softfp -mcpu=unset -march=armv7-a" "-mfloat-abi=hard" "-mfpu=neon -mfloat-abi=hard" "-mfpu=neon -mfloat-abi=hard -mcpu=unset -march=armv7-a"} {
if { [check_no_compiler_messages_nocache arm_neon_ok object {
#include <arm_neon.h>
int dummy;
proc check_effective_target_arm_simd32_ok_nocache { } {
global et_arm_simd32_flags
set et_arm_simd32_flags ""
- foreach flags {"" "-march=armv6" "-march=armv6 -mfloat-abi=softfp" "-march=armv6 -mfloat-abi=hard"} {
+ foreach flags {"" "-mcpu=unset -march=armv6" "-mcpu=unset -march=armv6 -mfloat-abi=softfp" "-mcpu=unset -march=armv6 -mfloat-abi=hard"} {
if { [check_no_compiler_messages_nocache arm_simd32_ok object {
#include <arm_acle.h>
int dummy;
proc check_effective_target_arm_sat_ok_nocache { } {
global et_arm_sat_flags
set et_arm_sat_flags ""
- foreach flags {"" "-march=armv6" "-march=armv6 -mfloat-abi=softfp" "-march=armv6 -mfloat-abi=hard -mfpu=vfp"} {
+ foreach flags {"" "-mcpu=unset -march=armv6" "-mcpu=unset -march=armv6 -mfloat-abi=softfp" "-mcpu=unset -march=armv6 -mfloat-abi=hard -mfpu=vfp"} {
if { [check_no_compiler_messages_nocache et_arm_sat_flags object {
#include <arm_acle.h>
int dummy;
proc check_effective_target_arm_dsp_ok_nocache { } {
global et_arm_dsp_flags
set et_arm_dsp_flags ""
- foreach flags {"" "-march=armv5te" "-march=armv5te -mfloat-abi=softfp" "-march=armv5te -mfloat-abi=hard"} {
+ foreach flags {"" "-mcpu=unset -march=armv5te" "-mcpu=unset -march=armv5te -mfloat-abi=softfp" "-mcpu=unset -march=armv5te -mfloat-abi=hard"} {
if { [check_no_compiler_messages_nocache et_arm_dsp_ok object {
#include <arm_acle.h>
int dummy;
proc check_effective_target_arm_crc_ok_nocache { } {
global et_arm_crc_flags
- set et_arm_crc_flags "-march=armv8-a+crc"
+ set et_arm_crc_flags "-mcpu=unset -march=armv8-a+crc"
return [check_no_compiler_messages_nocache arm_crc_ok object {
#if !defined (__ARM_FEATURE_CRC32)
#error FOO
{
__asm__ volatile ("vrintn.f32 q0, q0");
}
- } "$flags -march=armv8-a"] } {
+ } "$flags -mcpu=unset -march=armv8-a"] } {
set et_arm_v8_neon_flags $flags
return 1
}
# Iterate through sets of options to find the compiler flags that
# need to be added to the -march option.
- foreach flags {"" "-mfloat-abi=softfp -mfpu=auto -march=armv8.1-m.main+mve.fp" "-mfloat-abi=hard -mfpu=auto -march=armv8.1-m.main+mve.fp"} {
+ foreach flags {"" "-mfloat-abi=softfp -mfpu=auto -mcpu=unset -march=armv8.1-m.main+mve.fp" "-mfloat-abi=hard -mfpu=auto -mcpu=unset -march=armv8.1-m.main+mve.fp"} {
if { [check_no_compiler_messages_nocache \
arm_v8_1m_mve_fp_ok object {
#include <arm_mve.h>
# since AArch64 only needs the -march setting.
foreach flags {"" "-mfpu=neon-fp-armv8" "-mfloat-abi=softfp" \
"-mfpu=neon-fp-armv8 -mfloat-abi=softfp"} {
- foreach arches { "-march=armv8-a+rdma" "-march=armv8.1-a" } {
+ foreach arches { "-mcpu=unset -march=armv8-a+rdma" "-mcpu=unset -march=armv8.1-a" } {
if { [check_no_compiler_messages_nocache arm_v8_1a_neon_ok object {
#if !defined (__ARM_FEATURE_QRDMX)
#error "__ARM_FEATURE_QRDMX not defined"
#if !defined (__ARM_FEATURE_FP16_SCALAR_ARITHMETIC)
#error "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC not defined"
#endif
- } "$flags -march=armv8.2-a+fp16"] } {
- set et_arm_v8_2a_fp16_scalar_flags "$flags -march=armv8.2-a+fp16"
+ } "$flags -mcpu=unset -march=armv8.2-a+fp16"] } {
+ set et_arm_v8_2a_fp16_scalar_flags "$flags -mcpu=unset -march=armv8.2-a+fp16"
return 1
}
}
#if !defined (__ARM_FEATURE_FP16_VECTOR_ARITHMETIC)
#error "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC not defined"
#endif
- } "$flags -march=armv8.2-a+fp16"] } {
- set et_arm_v8_2a_fp16_neon_flags "$flags -march=armv8.2-a+fp16"
+ } "$flags -mcpu=unset -march=armv8.2-a+fp16"] } {
+ set et_arm_v8_2a_fp16_neon_flags "$flags -mcpu=unset -march=armv8.2-a+fp16"
return 1
}
}
#if !defined (__ARM_FEATURE_DOTPROD)
#error "__ARM_FEATURE_DOTPROD not defined"
#endif
- } "$flags -march=armv8.2-a+dotprod"] } {
- set et_arm_v8_2a_dotprod_neon_flags "$flags -march=armv8.2-a+dotprod"
+ } "$flags -mcpu=unset -march=armv8.2-a+dotprod"] } {
+ set et_arm_v8_2a_dotprod_neon_flags "$flags -mcpu=unset -march=armv8.2-a+dotprod"
return 1
}
}
# Iterate through sets of options to find the compiler flags that
# need to be added to the -march option.
- foreach flags {"" "-mfloat-abi=softfp -mfpu=auto -march=armv8.1-m.main+mve" "-mfloat-abi=hard -mfpu=auto -march=armv8.1-m.main+mve"} {
+ foreach flags {"" "-mfloat-abi=softfp -mfpu=auto -mcpu=unset -march=armv8.1-m.main+mve" "-mfloat-abi=hard -mfpu=auto -mcpu=unset -march=armv8.1-m.main+mve"} {
if { [check_no_compiler_messages_nocache \
arm_v8_1m_mve_ok object {
#if !defined (__ARM_FEATURE_MVE)
#if !defined (__ARM_FEATURE_MATMUL_INT8)
#error "__ARM_FEATURE_MATMUL_INT8 not defined"
#endif
- } "$flags -march=armv8.2-a+i8mm"] } {
- set et_arm_v8_2a_i8mm_flags "$flags -march=armv8.2-a+i8mm"
+ } "$flags -mcpu=unset -march=armv8.2-a+i8mm"] } {
+ set et_arm_v8_2a_i8mm_flags "$flags -mcpu=unset -march=armv8.2-a+i8mm"
return 1
}
}
{
return vfmlal_high_f16 (r, a, b);
}
- } "$flags -march=armv8.2-a+fp16fml"] } {
- set et_arm_fp16fml_neon_flags "$flags -march=armv8.2-a+fp16fml"
+ } "$flags -mcpu=unset -march=armv8.2-a+fp16fml"] } {
+ set et_arm_fp16fml_neon_flags "$flags -mcpu=unset -march=armv8.2-a+fp16fml"
return 1
}
}
#if !defined (__ARM_FEATURE_BF16_VECTOR_ARITHMETIC)
#error "__ARM_FEATURE_BF16_VECTOR_ARITHMETIC not defined"
#endif
- } "$flags -march=armv8.2-a+bf16"] } {
- set et_arm_v8_2a_bf16_neon_flags "$flags -march=armv8.2-a+bf16"
+ } "$flags -mcpu=unset -march=armv8.2-a+bf16"] } {
+ set et_arm_v8_2a_bf16_neon_flags "$flags -mcpu=unset -march=armv8.2-a+bf16"
return 1
}
}
#endif
#include <arm_cde.h>
INC
- } "FLAG"] } {
- set et_FUNC_flags "FLAG"
+ } "-mcpu=unset FLAG"] } {
+ set et_FUNC_flags "-mcpu=unset FLAG"
return 1
}
#if !defined (__ARM_FEATURE_COMPLEX)
#error "__ARM_FEATURE_COMPLEX not defined"
#endif
- } "$flags -march=armv8.3-a"] } {
- set et_arm_v8_3a_complex_neon_flags "$flags -march=armv8.3-a"
+ } "$flags -mcpu=unset -march=armv8.3-a"] } {
+ set et_arm_v8_3a_complex_neon_flags "$flags -mcpu=unset -march=armv8.3-a"
return 1;
}
}
#if !defined (__ARM_FEATURE_COMPLEX)
#error "__ARM_FEATURE_COMPLEX not defined"
#endif
- } "$flags -march=armv8.3-a+fp16"] } {
+ } "$flags -mcpu=unset -march=armv8.3-a+fp16"] } {
set et_arm_v8_3a_fp16_complex_neon_flags \
- "$flags -march=armv8.3-a+fp16"
+ "$flags -mcpu=unset -march=armv8.3-a+fp16"
return 1;
}
}
asm goto ("le lr, %l0" : : : "lr" : loop);
return i != 10;
}
- } "-mcpu=unset -march=armv8.1-m.main -mthumb" ]
+ } "-mcpu=unset -mcpu=unset -march=armv8.1-m.main -mthumb" ]
}
}