I got tired of repeating the conditional that recognizes ia32 or x86_64, and introduced 'x86' as a shorthand for that, adjusting all occurrences in target-supports.exp, to set an example. I found some patterns that recognized i?86* and x86_64*, but I took those as likely cut&pastos instead of trying to preserve those weirdnesses.
Regstrapped on x86_64-linux-gnu, also tested with gcc-14 targeting x86_64-elf. Ok to install? for gcc/ChangeLog * doc/sourcebuild.texi: Add x86 effective target. for gcc/testsuite/ChangeLog * lib/target-supports.exp (check_effective_target_x86): New. Replace all uses of i?86-*-* and x86_64-*-* in this file. --- gcc/doc/sourcebuild.texi | 3 + gcc/testsuite/lib/target-supports.exp | 188 +++++++++++++++++---------------- 2 files changed, 99 insertions(+), 92 deletions(-) diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index 255d1a451e44d..d4e2a13dd77a4 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -2801,6 +2801,9 @@ Target supports the execution of @code{user_msr} instructions. @item vect_cmdline_needed Target requires a command line argument to enable a SIMD instruction set. +@item x86 +Target is ia32 or x86_64. + @item xorsign Target supports the xorsign optab expansion. diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 60e24129bd585..035f82eb86c93 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -740,7 +740,7 @@ proc check_profiling_available { test_what } { } if { $test_what == "-fauto-profile" } { - if { !([istarget i?86-*-linux*] || [istarget x86_64-*-linux*]) } { + if { !([check_effective_target_x86] && [istarget *-*-linux*]) } { verbose "autofdo only supported on linux" return 0 } @@ -2616,17 +2616,23 @@ proc remove_options_for_riscv_zvbb { flags } { return [add_options_for_riscv_z_ext zvbb $flags] } +# Return 1 if the target is ia32 or x86_64. + +proc check_effective_target_x86 { } { + if { ([istarget x86_64-*-*] || [istarget i?86-*-*]) } { + return 1 + } else { + return 0 + } +} + # Return 1 if the target OS supports running SSE executables, 0 # otherwise. Cache the result. proc check_sse_os_support_available { } { return [check_cached_effective_target sse_os_support_available { # If this is not the right target then we can skip the test. - if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { - expr 0 - } else { - expr 1 - } + expr [check_effective_target_x86] }] } @@ -2636,7 +2642,7 @@ proc check_sse_os_support_available { } { proc check_avx_os_support_available { } { return [check_cached_effective_target avx_os_support_available { # If this is not the right target then we can skip the test. - if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { + if { !([check_effective_target_x86]) } { expr 0 } else { # Check that OS has AVX and SSE saving enabled. @@ -2659,7 +2665,7 @@ proc check_avx_os_support_available { } { proc check_avx512_os_support_available { } { return [check_cached_effective_target avx512_os_support_available { # If this is not the right target then we can skip the test. - if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { + if { !([check_effective_target_x86]) } { expr 0 } else { # Check that OS has AVX512, AVX and SSE saving enabled. @@ -2682,7 +2688,7 @@ proc check_avx512_os_support_available { } { proc check_sse_hw_available { } { return [check_cached_effective_target sse_hw_available { # If this is not the right target then we can skip the test. - if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { + if { !([check_effective_target_x86]) } { expr 0 } else { check_runtime_nocache sse_hw_available { @@ -2706,7 +2712,7 @@ proc check_sse_hw_available { } { proc check_sse2_hw_available { } { return [check_cached_effective_target sse2_hw_available { # If this is not the right target then we can skip the test. - if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { + if { !([check_effective_target_x86]) } { expr 0 } else { check_runtime_nocache sse2_hw_available { @@ -2730,7 +2736,7 @@ proc check_sse2_hw_available { } { proc check_sse4_hw_available { } { return [check_cached_effective_target sse4_hw_available { # If this is not the right target then we can skip the test. - if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { + if { !([check_effective_target_x86]) } { expr 0 } else { check_runtime_nocache sse4_hw_available { @@ -2754,7 +2760,7 @@ proc check_sse4_hw_available { } { proc check_avx_hw_available { } { return [check_cached_effective_target avx_hw_available { # If this is not the right target then we can skip the test. - if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { + if { !([check_effective_target_x86]) } { expr 0 } else { check_runtime_nocache avx_hw_available { @@ -2779,7 +2785,7 @@ proc check_avx_hw_available { } { proc check_avx2_hw_available { } { return [check_cached_effective_target avx2_hw_available { # If this is not the right target then we can skip the test. - if { !([istarget x86_64-*-*] || [istarget i?86-*-*]) } { + if { !([check_effective_target_x86]) } { expr 0 } else { check_runtime_nocache avx2_hw_available { @@ -2812,7 +2818,7 @@ proc check_avx2_hw_available { } { proc check_avx512f_hw_available { } { return [check_cached_effective_target avx512f_hw_available { # If this is not the right target then we can skip the test. - if { !([istarget x86_64-*-*] || [istarget i?86-*-*]) } { + if { !([check_effective_target_x86]) } { expr 0 } else { check_runtime_nocache avx512f_hw_available { @@ -2907,8 +2913,8 @@ proc check_effective_target_avx512f_runtime { } { # Return 1 if bmi2 instructions can be compiled. proc check_effective_target_bmi2 { } { - if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { - return 0 + if { !([check_effective_target_x86]) } { + return 0 } return [check_no_compiler_messages bmi2 object { unsigned int @@ -4150,7 +4156,7 @@ proc add_options_for_float16 { flags } { if { [istarget arm*-*-*] } { return "$flags -mfp16-format=ieee" } - if { [istarget i?86-*-*] || [istarget x86_64-*-*] } { + if { [check_effective_target_x86] } { return "$flags -msse2 -mfpmath=sse" } return "$flags" @@ -4188,7 +4194,7 @@ proc check_effective_target___float128 { } { return [check_ppc_float128_sw_available] } if { [istarget ia64-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] } { + || [check_effective_target_x86] } { return 1 } return 0 @@ -4225,7 +4231,7 @@ proc check_effective_target_bfloat16_runtime {} { } proc add_options_for_bfloat16 { flags } { - if { [istarget i?86-*-*] || [istarget x86_64-*-*] } { + if { [check_effective_target_x86] } { return "$flags -msse2" } return "$flags" @@ -4334,7 +4340,7 @@ proc check_effective_target_dfprt { } { proc check_effective_target_dfp_bid { } { if { [istarget aarch64*-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*]} { + || [check_effective_target_x86]} { return 1 } return 0 @@ -4425,7 +4431,7 @@ proc check_effective_target_vect_cmdline_needed { } { return [check_cached_effective_target vect_cmdline_needed { if { [istarget alpha*-*-*] || [istarget ia64-*-*] - || (([istarget i?86-*-*] || [istarget x86_64-*-*]) + || (([check_effective_target_x86]) && ![is-effective-target ia32]) || ([istarget powerpc*-*-*] && [check_effective_target_powerpc_altivec]) @@ -4447,7 +4453,7 @@ proc check_effective_target_vect_cmdline_needed { } { proc check_effective_target_vect_int { } { return [check_cached_effective_target_indexed vect_int { expr { - [istarget i?86-*-*] || [istarget x86_64-*-*] + [check_effective_target_x86] || [istarget powerpc*-*-*] || [istarget amdgcn-*-*] || [istarget sparc*-*-*] @@ -4648,7 +4654,7 @@ proc check_effective_target_vect_complex_add_double { } { proc check_effective_target_vect_intfloat_cvt { } { return [check_cached_effective_target_indexed vect_intfloat_cvt { - expr { [istarget i?86-*-*] || [istarget x86_64-*-*] + expr { [check_effective_target_x86] || [istarget powerpc*-*-*] || [is-effective-target arm_neon] || ([istarget mips*-*-*] @@ -4667,7 +4673,7 @@ proc check_effective_target_vect_intfloat_cvt { } { proc check_effective_target_vect_doubleint_cvt { } { return [check_cached_effective_target_indexed vect_doubleint_cvt { - expr { (([istarget i?86-*-*] || [istarget x86_64-*-*]) + expr { (([check_effective_target_x86]) && [check_no_compiler_messages vect_doubleint_cvt assembly { #ifdef __tune_atom__ # error No double vectorizer support. @@ -4690,7 +4696,7 @@ proc check_effective_target_vect_doubleint_cvt { } { proc check_effective_target_vect_intdouble_cvt { } { return [check_cached_effective_target_indexed vect_intdouble_cvt { - expr { (([istarget i?86-*-*] || [istarget x86_64-*-*]) + expr { (([check_effective_target_x86]) && [check_no_compiler_messages vect_intdouble_cvt assembly { #ifdef __tune_atom__ # error No double vectorizer support. @@ -4727,7 +4733,7 @@ proc check_effective_target_int128 { } { proc check_effective_target_vect_uintfloat_cvt { } { return [check_cached_effective_target_indexed vect_uintfloat_cvt { - expr { [istarget i?86-*-*] || [istarget x86_64-*-*] + expr { [check_effective_target_x86] || [istarget powerpc*-*-*] || [istarget aarch64*-*-*] || [is-effective-target arm_neon] @@ -4748,7 +4754,7 @@ proc check_effective_target_vect_uintfloat_cvt { } { proc check_effective_target_vect_floatint_cvt { } { return [check_cached_effective_target_indexed vect_floatint_cvt { - expr { [istarget i?86-*-*] || [istarget x86_64-*-*] + expr { [check_effective_target_x86] || [istarget powerpc*-*-*] || [is-effective-target arm_neon] || ([istarget mips*-*-*] @@ -4811,7 +4817,7 @@ proc check_effective_target_vect_simd_clones { } { # specified arch will be chosen, but still we need to at least # be able to assemble avx512f. return [check_cached_effective_target_indexed vect_simd_clones { - expr { (([istarget i?86-*-*] || [istarget x86_64-*-*]) + expr { (([check_effective_target_x86]) && [check_effective_target_avx512f]) || [istarget amdgcn-*-*] || [istarget aarch64*-*-*] }}] @@ -7870,7 +7876,7 @@ proc check_effective_target_vect_shift { } { return [check_cached_effective_target_indexed vect_shift { expr {[istarget powerpc*-*-*] || [istarget ia64-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || [istarget aarch64*-*-*] || [is-effective-target arm_neon] || ([istarget mips*-*-*] @@ -7889,7 +7895,7 @@ proc check_effective_target_vect_shift { } { proc check_effective_target_vect_var_shift { } { return [check_cached_effective_target_indexed vect_var_shift { - expr {(([istarget i?86-*-*] || [istarget x86_64-*-*]) + expr {(([check_effective_target_x86]) && [check_avx2_available]) || [istarget aarch64*-*-*] || ([istarget riscv*-*-*] @@ -7900,7 +7906,7 @@ proc check_effective_target_vect_var_shift { } { } proc check_effective_target_whole_vector_shift { } { - if { [istarget i?86-*-*] || [istarget x86_64-*-*] + if { [check_effective_target_x86] || [istarget ia64-*-*] || [istarget aarch64*-*-*] || [istarget powerpc64*-*-*] @@ -7941,7 +7947,7 @@ proc check_effective_target_vect_bswap { } { proc check_effective_target_vect_bool_cmp { } { return [check_cached_effective_target_indexed vect_bool_cmp { - expr { [istarget i?86-*-*] || [istarget x86_64-*-*] + expr { [check_effective_target_x86] || [istarget aarch64*-*-*] || [is-effective-target arm_neon] || ([istarget riscv*-*-*] @@ -7956,7 +7962,7 @@ proc check_effective_target_vect_bool_cmp { } { proc check_effective_target_vect_char_add { } { return [check_cached_effective_target_indexed vect_char_add { expr { - [istarget i?86-*-*] || [istarget x86_64-*-*] + [check_effective_target_x86] || [istarget powerpc*-*-*] || [istarget amdgcn-*-*] || [istarget ia64-*-*] @@ -7996,7 +8002,7 @@ proc check_effective_target_vect_shift_char { } { # This can change for different subtargets so do not cache the result. proc check_effective_target_vect_long { } { - if { [istarget i?86-*-*] || [istarget x86_64-*-*] + if { [check_effective_target_x86] || ([istarget powerpc*-*-*] && [check_effective_target_ilp32]) || [is-effective-target arm_neon] @@ -8027,7 +8033,7 @@ proc check_effective_target_vect_long { } { proc check_effective_target_vect_float { } { return [check_cached_effective_target_indexed vect_float { - expr { [istarget i?86-*-*] || [istarget x86_64-*-*] + expr { [check_effective_target_x86] || [istarget powerpc*-*-*] || [istarget mips-sde-elf] || [istarget mipsisa64*-*-*] @@ -8059,7 +8065,7 @@ proc check_effective_target_vect_float_strict { } { proc check_effective_target_vect_double { } { return [check_cached_effective_target_indexed vect_double { - expr { (([istarget i?86-*-*] || [istarget x86_64-*-*]) + expr { (([check_effective_target_x86]) && [check_no_compiler_messages vect_double assembly { #ifdef __tune_atom__ # error No double vectorizer support. @@ -8093,7 +8099,7 @@ proc check_effective_target_vect_double_cond_arith { } { proc check_effective_target_vect_long_long { } { return [check_cached_effective_target_indexed vect_long_long { - expr { [istarget i?86-*-*] || [istarget x86_64-*-*] + expr { [check_effective_target_x86] || ([istarget mips*-*-*] && [et-is-effective-target mips_msa]) || ([istarget s390*-*-*] @@ -8152,7 +8158,7 @@ proc check_effective_target_vect_perm { } { expr { [is-effective-target arm_neon] || [istarget aarch64*-*-*] || [istarget powerpc*-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || ([istarget mips*-*-*] && ([et-is-effective-target mpaired_single] || [et-is-effective-target mips_msa])) @@ -8282,7 +8288,7 @@ proc check_effective_target_vect_perm_short { } { || ([istarget aarch64*-*-*] && [is-effective-target aarch64_little_endian]) || [istarget powerpc*-*-*] - || (([istarget i?86-*-*] || [istarget x86_64-*-*]) + || ([check_effective_target_x86] && [check_ssse3_available]) || ([istarget mips*-*-*] && [et-is-effective-target mips_msa]) @@ -8310,7 +8316,7 @@ proc check_effective_target_vect_perm3_short { } { proc check_effective_target_xorsign { } { return [check_cached_effective_target_indexed xorsign { - expr { [istarget i?86-*-*] || [istarget x86_64-*-*] + expr { [check_effective_target_x86] || [istarget aarch64*-*-*] || [istarget arm*-*-*] }}] } @@ -8322,7 +8328,7 @@ proc check_effective_target_xorsign { } { proc check_effective_target_ifn_copysign { } { return [check_cached_effective_target_indexed ifn_copysign { expr { - (([istarget i?86-*-*] || [istarget x86_64-*-*]) + (([check_effective_target_x86]) && [is-effective-target sse]) || ([istarget loongarch*-*-*] && [check_effective_target_hard_float]) @@ -8434,7 +8440,7 @@ proc check_effective_target_vect_widen_mult_hi_to_si { } { || [istarget ia64-*-*] || ([istarget aarch64*-*-*] && ![check_effective_target_aarch64_sve]) - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || [is-effective-target arm_neon] || ([istarget s390*-*-*] && [check_effective_target_s390_vx])) @@ -8467,7 +8473,7 @@ proc check_effective_target_vect_widen_mult_hi_to_si_pattern { } { expr { [istarget powerpc*-*-*] || [istarget ia64-*-*] || [istarget loongarch*-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || ([is-effective-target arm_neon] && [check_effective_target_arm_little_endian]) || ([istarget s390*-*-*] @@ -8483,7 +8489,7 @@ proc check_effective_target_vect_widen_mult_hi_to_si_pattern { } { proc check_effective_target_vect_widen_mult_si_to_di_pattern { } { return [check_cached_effective_target_indexed vect_widen_mult_si_to_di_pattern { expr { [istarget ia64-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || [istarget loongarch*-*-*] || ([istarget s390*-*-*] && [check_effective_target_s390_vx]) }}] @@ -8558,7 +8564,7 @@ proc check_effective_target_vect_sdot_hi { } { return [check_cached_effective_target_indexed vect_sdot_hi { expr { [istarget powerpc*-*-*] || [istarget ia64-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || ([istarget mips*-*-*] && [et-is-effective-target mips_msa]) || ([istarget riscv*-*-*] @@ -8590,8 +8596,7 @@ proc check_effective_target_vect_udot_hi { } { proc check_effective_target_vect_usad_char { } { return [check_cached_effective_target_indexed vect_usad_char { - expr { [istarget i?86-*-*] - || [istarget x86_64-*-*] + expr { [check_effective_target_x86] || ([istarget aarch64*-*-*] && ![check_effective_target_aarch64_sve]) || ([istarget powerpc*-*-*] @@ -8640,7 +8645,7 @@ proc check_effective_target_vect_sdiv_pow2_si {} { proc check_effective_target_vect_pack_trunc { } { return [check_cached_effective_target_indexed vect_pack_trunc { expr { [istarget powerpc*-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || [istarget aarch64*-*-*] || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok] && [check_effective_target_arm_little_endian]) @@ -8663,7 +8668,7 @@ proc check_effective_target_vect_pack_trunc { } { proc check_effective_target_vect_unpack { } { return [check_cached_effective_target_indexed vect_unpack { expr { [istarget powerpc*-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || [istarget ia64-*-*] || [istarget aarch64*-*-*] || ([istarget mips*-*-*] @@ -8711,7 +8716,7 @@ proc check_effective_target_vect_no_align { } { proc check_effective_target_vect_hw_misalign { } { return [check_cached_effective_target_indexed vect_hw_misalign { - if { [istarget i?86-*-*] || [istarget x86_64-*-*] + if { [check_effective_target_x86] || ([istarget powerpc*-*-*] && [check_p8vector_hw_available]) || [istarget aarch64*-*-*] || ([istarget mips*-*-*] && [et-is-effective-target mips_msa]) @@ -8740,7 +8745,7 @@ proc check_effective_target_vect_hw_misalign { } { proc check_effective_target_vect_aligned_arrays { } { set et_vect_aligned_arrays 0 - if { (([istarget i?86-*-*] || [istarget x86_64-*-*]) + if { (([check_effective_target_x86]) && !([is-effective-target ia32] || ([check_avx_available] && ![check_prefer_avx128]))) } { set et_vect_aligned_arrays 1 @@ -9352,7 +9357,7 @@ proc check_effective_target_vect_condition { } { expr { [istarget aarch64*-*-*] || [istarget powerpc*-*-*] || [istarget ia64-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || ([istarget mips*-*-*] && [et-is-effective-target mips_msa]) || ([istarget arm*-*-*] @@ -9371,7 +9376,7 @@ proc check_effective_target_vect_condition { } { proc check_effective_target_vect_cond_mixed { } { return [check_cached_effective_target_indexed vect_cond_mixed { - expr { [istarget i?86-*-*] || [istarget x86_64-*-*] + expr { [check_effective_target_x86] || [istarget aarch64*-*-*] || [istarget powerpc*-*-*] || ([istarget arm*-*-*] @@ -9393,7 +9398,7 @@ proc check_effective_target_vect_char_mult { } { return [check_cached_effective_target_indexed vect_char_mult { expr { [istarget aarch64*-*-*] || [istarget ia64-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || [check_effective_target_arm32] || [check_effective_target_powerpc_altivec] || ([istarget mips*-*-*] @@ -9412,7 +9417,7 @@ proc check_effective_target_vect_char_mult { } { proc check_effective_target_vect_short_mult { } { return [check_cached_effective_target_indexed vect_short_mult { expr { [istarget ia64-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || [istarget powerpc*-*-*] || [istarget aarch64*-*-*] || [check_effective_target_arm32] @@ -9433,7 +9438,7 @@ proc check_effective_target_vect_short_mult { } { proc check_effective_target_vect_int_mult { } { return [check_cached_effective_target_indexed vect_int_mult { expr { [istarget powerpc*-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || [istarget ia64-*-*] || [istarget aarch64*-*-*] || ([istarget mips*-*-*] @@ -9454,7 +9459,7 @@ proc check_effective_target_vect_int_mult { } { # This can change for different subtargets so do not cache the result. proc check_effective_target_vect_long_mult { } { - if { [istarget i?86-*-*] || [istarget x86_64-*-*] + if { [check_effective_target_x86] || ([istarget powerpc*-*-*] && ([check_effective_target_ilp32] || ([check_effective_target_powerpc_vsx_ok] @@ -9487,7 +9492,7 @@ proc check_effective_target_vect_extract_even_odd { } { expr { [istarget aarch64*-*-*] || [istarget powerpc*-*-*] || [is-effective-target arm_neon] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || [istarget ia64-*-*] || ([istarget mips*-*-*] && ([et-is-effective-target mips_msa] @@ -9507,7 +9512,7 @@ proc check_effective_target_vect_interleave { } { expr { [istarget aarch64*-*-*] || [istarget powerpc*-*-*] || [is-effective-target arm_neon] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || [istarget ia64-*-*] || ([istarget mips*-*-*] && ([et-is-effective-target mpaired_single] @@ -9559,7 +9564,7 @@ proc available_vector_sizes { } { } elseif { [istarget arm*-*-*] && [check_effective_target_arm_neon_ok] } { lappend result 128 64 - } elseif { [istarget i?86-*-*] || [istarget x86_64-*-*] } { + } elseif { [check_effective_target_x86] } { if { [check_avx_available] && ![check_prefer_avx128] } { lappend result 256 } @@ -9637,7 +9642,7 @@ proc check_effective_target_vect32 { } { proc check_effective_target_vect_call_copysignf { } { return [check_cached_effective_target_indexed vect_call_copysignf { - expr { [istarget i?86-*-*] || [istarget x86_64-*-*] + expr { [check_effective_target_x86] || [istarget powerpc*-*-*] || [istarget aarch64*-*-*] || [istarget amdgcn-*-*] @@ -9651,7 +9656,7 @@ proc check_effective_target_vect_call_copysignf { } { proc check_effective_target_sqrt_insn { } { return [check_cached_effective_target sqrt_insn { - expr { [istarget i?86-*-*] || [istarget x86_64-*-*] + expr { [check_effective_target_x86] || [check_effective_target_powerpc_sqrt] || [istarget aarch64*-*-*] || ([istarget arm*-*-*] && [check_effective_target_arm_vfp_ok]) @@ -9677,7 +9682,7 @@ proc add_options_for_sqrt_insn { flags } { proc check_effective_target_vect_call_sqrtf { } { return [check_cached_effective_target_indexed vect_call_sqrtf { expr { [istarget aarch64*-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || ([istarget powerpc*-*-*] && [check_vsx_hw_available]) || ([istarget s390*-*-*] && [check_effective_target_s390_vx]) @@ -9692,7 +9697,7 @@ proc check_effective_target_vect_call_sqrtf { } { proc check_effective_target_vect_call_lrint { } { set et_vect_call_lrint 0 - if { (([istarget i?86-*-*] || [istarget x86_64-*-*]) + if { (([check_effective_target_x86]) && [check_effective_target_ilp32]) || [istarget amdgcn-*-*] || [istarget loongarch*-*-*] } { @@ -9808,7 +9813,7 @@ proc check_effective_target_vect_logical_reduc { } { || [istarget amdgcn-*-*] || [check_effective_target_riscv_v] || [check_effective_target_loongarch_sx] - || [istarget i?86-*-*] || [istarget x86_64-*-*]}] + || [check_effective_target_x86]}] } # Return 1 if the target supports the fold_extract_last optab. @@ -9849,7 +9854,7 @@ proc check_effective_target_sync_int_128_runtime { } { # Note: 32bit s390 targets require -mzarch in dg-options. proc check_effective_target_sync_long_long { } { - if { [istarget i?86-*-*] || [istarget x86_64-*-*] + if { [check_effective_target_x86] || [istarget aarch64*-*-*] || [istarget arm*-*-*] || [istarget alpha*-*-*] @@ -9967,7 +9972,7 @@ proc check_effective_target_ctzll { } { # Note: 32bit x86 targets require -march=pentium in dg-options. proc check_effective_target_sync_long_long_runtime { } { - if { (([istarget x86_64-*-*] || [istarget i?86-*-*]) + if { (([check_effective_target_x86]) && [check_cached_effective_target sync_long_long_available { check_runtime_nocache sync_long_long_available { #include "cpuid.h" @@ -10016,7 +10021,7 @@ proc check_effective_target_bswap { } { return [check_cached_effective_target bswap { expr { [istarget aarch64*-*-*] || [istarget alpha*-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || [istarget m68k-*-*] || [istarget powerpc*-*-*] || [istarget rs6000-*-*] @@ -10044,7 +10049,7 @@ proc check_effective_target_sync_int_long { } { # load-reserved/store-conditional instructions. return [check_cached_effective_target sync_int_long { expr { [istarget ia64-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || [istarget aarch64*-*-*] || [istarget alpha*-*-*] || [istarget arm*-*-linux-*] @@ -10081,7 +10086,7 @@ proc check_effective_target_sync_char_short { } { return [check_cached_effective_target sync_char_short { expr { [istarget aarch64*-*-*] || [istarget ia64-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || [istarget alpha*-*-*] || [istarget arm*-*-linux-*] || [istarget arm*-*-uclinuxfdpiceabi] @@ -10678,7 +10683,7 @@ proc check_effective_target_4byte_wchar_t { } { proc check_effective_target_automatic_stack_alignment { } { # Ordinarily x86 supports automatic stack alignment ... - if { [istarget i?86*-*-*] || [istarget x86_64-*-*] } then { + if { [check_effective_target_x86] } then { if { [istarget *-*-mingw*] || [istarget *-*-cygwin*] } { # ... except Win64 SEH doesn't. Succeed for Win32 though. return [check_effective_target_ilp32]; @@ -10800,7 +10805,7 @@ proc check_effective_target_avx512f { } { # Return 1 if avx instructions can be compiled. proc check_effective_target_avx { } { - if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { + if { !([check_effective_target_x86]) } { return 0 } return [check_no_compiler_messages avx object { @@ -11397,7 +11402,7 @@ proc check_effective_target_avx512bw { } { # Return 1 if -Wa,-march=+noavx512bw is supported. proc check_effective_target_assembler_march_noavx512bw {} { - if { [istarget i?86*-*-*] || [istarget x86_64*-*-*] } { + if { [check_effective_target_x86] } { return [check_no_compiler_messages assembler_march_noavx512bw object { void foo (void) {} } "-mno-avx512bw -Wa,-march=+noavx512bw"] @@ -12153,7 +12158,7 @@ proc check_vect_support_and_set_flags { } { } set dg-do-what-default compile } - } elseif { [istarget i?86-*-*] || [istarget x86_64-*-*] } { + } elseif { [check_effective_target_x86] } { lappend DEFAULT_VECTCFLAGS "-msse2" if { [check_effective_target_sse2_runtime] } { set dg-do-what-default run @@ -12615,7 +12620,7 @@ proc check_effective_target_branch_cost {} { || [istarget csky*-*-*] || [istarget epiphany*-*-*] || [istarget frv*-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || [istarget loongarch*-*-*] || [istarget mips*-*-*] || [istarget s390*-*-*] @@ -12672,7 +12677,7 @@ proc check_effective_target_pie_copyreloc { } { global tool global GCC_UNDER_TEST - if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { + if { !([check_effective_target_x86]) } { return 0 } @@ -12719,7 +12724,7 @@ proc check_effective_target_code_6_gottpoff_reloc { } { global tool global GCC_UNDER_TEST - if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { + if { !([check_effective_target_x86]) } { return 0 } @@ -12767,7 +12772,7 @@ proc check_effective_target_got32x_reloc { } { global tool global GCC_UNDER_TEST - if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { + if { !([check_effective_target_x86]) } { return 0 } @@ -12815,7 +12820,7 @@ proc check_effective_target_tls_get_addr_via_got { } { global tool global GCC_UNDER_TEST - if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { + if { !([check_effective_target_x86]) } { return 0 } @@ -13023,7 +13028,7 @@ proc check_effective_target_divmod { } { #TODO: Add checks for all targets that have either hardware divmod insn # or define libfunc for divmod. if { [istarget arm*-*-*] - || [istarget i?86-*-*] || [istarget x86_64-*-*] + || [check_effective_target_x86] || [istarget amdgcn-*-*] } { return 1 } @@ -13179,7 +13184,7 @@ proc check_effective_target_autoincdec { } { # proc check_effective_target_supports_stack_clash_protection { } { - if { [istarget x86_64-*-*] || [istarget i?86-*-*] + if { [check_effective_target_x86] || [istarget powerpc*-*-*] || [istarget rs6000*-*-*] || [istarget aarch64*-**] || [istarget s390*-*-*] || [istarget loongarch64*-**] || [istarget riscv64*-**] } { @@ -13192,7 +13197,7 @@ proc check_effective_target_supports_stack_clash_protection { } { # Note we ignore cases where we apply tail call optimization here. proc check_effective_target_frame_pointer_for_non_leaf { } { # Solaris/x86 defaults to -fno-omit-frame-pointer. - if { [istarget i?86-*-solaris*] || [istarget x86_64-*-solaris*] } { + if { [check_effective_target_x86] && [istarget *-*-solaris*] } { return 1 } @@ -13244,7 +13249,7 @@ proc check_effective_target_caller_implicit_probes { } { # On x86/x86_64 the call instruction itself pushes the return # address onto the stack. That is an implicit probe of *sp. - if { [istarget x86_64-*-*] || [istarget i?86-*-*] } { + if { [check_effective_target_x86] } { return 1 } @@ -13287,7 +13292,7 @@ proc check_effective_target_caller_implicit_probes { } { # stack allocations and make it difficult to elimination loops or residual # allocations for dynamic stack allocations proc check_effective_target_callee_realigns_stack { } { - if { [istarget x86_64-*-*] || [istarget i?86-*-*] } { + if { [check_effective_target_x86] } { return 1 } return 0 @@ -13295,7 +13300,7 @@ proc check_effective_target_callee_realigns_stack { } { # Return 1 if CET instructions can be compiled. proc check_effective_target_cet { } { - if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { + if { !([check_effective_target_x86]) } { return 0 } return [check_no_compiler_messages cet object { @@ -13549,8 +13554,8 @@ proc check_effective_target_llvm_binutils { } { # Return 1 if the compiler supports '-mfentry'. proc check_effective_target_mfentry { } { - if { !([istarget i?86-*-*] || [istarget x86_64-*-*]) } { - return 0 + if { !([check_effective_target_x86]) } { + return 0 } return [check_no_compiler_messages mfentry object { void foo (void) { } @@ -13802,7 +13807,7 @@ proc check_effective_target_powerpc_as_p10_htm { } { proc check_effective_target_lra { } { # Start with heavily used targets which are known to always use LRA. - if { [istarget i?86-*-*] || [istarget x86_64-*-*] + if { [check_effective_target_x86] || [istarget aarch64*-*-*] || [istarget arm*-*-*] || [istarget powerpc*-*-*] || [istarget riscv*-*-*] } { return 1 @@ -14108,10 +14113,9 @@ proc dg-require-python-h { args } { # Return 1 if the target supports heap-trampoline, 0 otherwise. proc check_effective_target_heap_trampoline {} { if { [istarget aarch64*-*-linux*] - || [istarget i?86-*-darwin*] - || [istarget x86_64-*-darwin*] - || [istarget i?86-*-linux*] - || [istarget x86_64-*-linux*] } { + || { [check_effective_target_x86] + && { [istarget *-*-darwin*] + || [istarget *-*-linux*] } } } { return 1 } return 0 -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer More tolerance and less prejudice are key for inclusion and diversity Excluding neuro-others for not behaving ""normal"" is *not* inclusive