⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 target-supports.exp

📁 用于进行gcc测试
💻 EXP
📖 第 1 页 / 共 5 页
字号:
}# Return 1 if this is a PowerPC target that supports SPU.proc check_effective_target_powerpc_spu { } {    if [istarget powerpc*-*-linux*] {	return [check_effective_target_powerpc_altivec_ok]    } else {	return 0    }}# Return 1 if this is a PowerPC target with SPE enabled.proc check_effective_target_powerpc_spe { } {    if { [istarget powerpc*-*-*] } {	return [check_no_compiler_messages powerpc_spe object {	    #ifndef __SPE__	    #error not SPE	    #else	    int dummy;	    #endif	}]    } else {	return 0    }}# Return 1 if this is a PowerPC target with Altivec enabled.proc check_effective_target_powerpc_altivec { } {    if { [istarget powerpc*-*-*] } {	return [check_no_compiler_messages powerpc_altivec object {	    #ifndef __ALTIVEC__	    #error not Altivec	    #else	    int dummy;	    #endif	}]    } else {	return 0    }}# Return 1 if this is a SPU target with a toolchain that# supports automatic overlay generation.proc check_effective_target_spu_auto_overlay { } {    if { [istarget spu*-*-elf*] } {	return [check_no_compiler_messages spu_auto_overlay executable {		int main (void) { }		} "-Wl,--auto-overlay" ]    } else {	return 0    }}# The VxWorks SPARC simulator accepts only EM_SPARC executables and# chokes on EM_SPARC32PLUS or EM_SPARCV9 executables.  Return 1 if the# test environment appears to run executables on such a simulator.proc check_effective_target_ultrasparc_hw { } {    return [check_runtime ultrasparc_hw {	int main() { return 0; }    } "-mcpu=ultrasparc"]}# Return 1 if the target supports hardware vector shift operation.proc check_effective_target_vect_shift { } {    global et_vect_shift_saved    if [info exists et_vect_shift_saved] {	verbose "check_effective_target_vect_shift: using cached result" 2    } else {	set et_vect_shift_saved 0	if { ([istarget powerpc*-*-*]             && ![istarget powerpc-*-linux*paired*])	     || [istarget ia64-*-*]	     || [istarget i?86-*-*]	     || [istarget x86_64-*-*] } {	   set et_vect_shift_saved 1	}    }    verbose "check_effective_target_vect_shift: returning $et_vect_shift_saved" 2    return $et_vect_shift_saved}# Return 1 if the target supports hardware vectors of long, 0 otherwise.## This can change for different subtargets so do not cache the result.proc check_effective_target_vect_long { } {    if { [istarget i?86-*-*]	 || (([istarget powerpc*-*-*]               && ![istarget powerpc-*-linux*paired*])               && [check_effective_target_ilp32])	 || [istarget x86_64-*-*]	 || ([istarget sparc*-*-*] && [check_effective_target_ilp32]) } {	set answer 1    } else {	set answer 0    }    verbose "check_effective_target_vect_long: returning $answer" 2    return $answer}# Return 1 if the target supports hardware vectors of float, 0 otherwise.## This won't change for different subtargets so cache the result.proc check_effective_target_vect_float { } {    global et_vect_float_saved    if [info exists et_vect_float_saved] {	verbose "check_effective_target_vect_float: using cached result" 2    } else {	set et_vect_float_saved 0	if { [istarget i?86-*-*]	      || [istarget powerpc*-*-*]	      || [istarget spu-*-*]	      || [istarget mipsisa64*-*-*]	      || [istarget x86_64-*-*]	      || [istarget ia64-*-*] } {	   set et_vect_float_saved 1	}    }    verbose "check_effective_target_vect_float: returning $et_vect_float_saved" 2    return $et_vect_float_saved}# Return 1 if the target supports hardware vectors of double, 0 otherwise.## This won't change for different subtargets so cache the result.proc check_effective_target_vect_double { } {    global et_vect_double_saved    if [info exists et_vect_double_saved] {	verbose "check_effective_target_vect_double: using cached result" 2    } else {	set et_vect_double_saved 0	if { [istarget i?86-*-*]	      || [istarget x86_64-*-*] 	      || [istarget spu-*-*] } {	   set et_vect_double_saved 1	}    }    verbose "check_effective_target_vect_double: returning $et_vect_double_saved" 2    return $et_vect_double_saved}# Return 1 if the target plus current options does not support a vector# max instruction on "int", 0 otherwise.## This won't change for different subtargets so cache the result.proc check_effective_target_vect_no_int_max { } {    global et_vect_no_int_max_saved    if [info exists et_vect_no_int_max_saved] {	verbose "check_effective_target_vect_no_int_max: using cached result" 2    } else {	set et_vect_no_int_max_saved 0	if { [istarget sparc*-*-*]	     || [istarget spu-*-*]	     || [istarget alpha*-*-*] } {	    set et_vect_no_int_max_saved 1	}    }    verbose "check_effective_target_vect_no_int_max: returning $et_vect_no_int_max_saved" 2    return $et_vect_no_int_max_saved}# Return 1 if the target plus current options does not support a vector# add instruction on "int", 0 otherwise.## This won't change for different subtargets so cache the result.proc check_effective_target_vect_no_int_add { } {    global et_vect_no_int_add_saved    if [info exists et_vect_no_int_add_saved] {	verbose "check_effective_target_vect_no_int_add: using cached result" 2    } else {	set et_vect_no_int_add_saved 0	# Alpha only supports vector add on V8QI and V4HI.	if { [istarget alpha*-*-*] } {	    set et_vect_no_int_add_saved 1	}    }    verbose "check_effective_target_vect_no_int_add: returning $et_vect_no_int_add_saved" 2    return $et_vect_no_int_add_saved}# Return 1 if the target plus current options does not support vector# bitwise instructions, 0 otherwise.## This won't change for different subtargets so cache the result.proc check_effective_target_vect_no_bitwise { } {    global et_vect_no_bitwise_saved    if [info exists et_vect_no_bitwise_saved] {	verbose "check_effective_target_vect_no_bitwise: using cached result" 2    } else {	set et_vect_no_bitwise_saved 0    }    verbose "check_effective_target_vect_no_bitwise: returning $et_vect_no_bitwise_saved" 2    return $et_vect_no_bitwise_saved}# Return 1 if the target plus current options supports a vector# widening summation of *short* args into *int* result, 0 otherwise.# A target can also support this widening summation if it can support# promotion (unpacking) from shorts to ints.## This won't change for different subtargets so cache the result.                                                                                                proc check_effective_target_vect_widen_sum_hi_to_si { } {    global et_vect_widen_sum_hi_to_si    if [info exists et_vect_widen_sum_hi_to_si_saved] {        verbose "check_effective_target_vect_widen_sum_hi_to_si: using cached result" 2    } else {        set et_vect_widen_sum_hi_to_si_saved [check_effective_target_vect_unpack]        if { [istarget powerpc*-*-*] 	     || [istarget ia64-*-*] } {            set et_vect_widen_sum_hi_to_si_saved 1        }    }    verbose "check_effective_target_vect_widen_sum_hi_to_si: returning $et_vect_widen_sum_hi_to_si_saved" 2    return $et_vect_widen_sum_hi_to_si_saved}# Return 1 if the target plus current options supports a vector# widening summation of *char* args into *short* result, 0 otherwise.# A target can also support this widening summation if it can support# promotion (unpacking) from chars to shorts.## This won't change for different subtargets so cache the result.                                                                                                proc check_effective_target_vect_widen_sum_qi_to_hi { } {    global et_vect_widen_sum_qi_to_hi    if [info exists et_vect_widen_sum_qi_to_hi_saved] {        verbose "check_effective_target_vect_widen_sum_qi_to_hi: using cached result" 2    } else {        set et_vect_widen_sum_qi_to_hi_saved 0	if { [check_effective_target_vect_unpack] 	     || [istarget ia64-*-*] } {            set et_vect_widen_sum_qi_to_hi_saved 1	}    }    verbose "check_effective_target_vect_widen_sum_qi_to_hi: returning $et_vect_widen_sum_qi_to_hi_saved" 2    return $et_vect_widen_sum_qi_to_hi_saved}# Return 1 if the target plus current options supports a vector# widening summation of *char* args into *int* result, 0 otherwise.## This won't change for different subtargets so cache the result.                                                                                                proc check_effective_target_vect_widen_sum_qi_to_si { } {    global et_vect_widen_sum_qi_to_si    if [info exists et_vect_widen_sum_qi_to_si_saved] {        verbose "check_effective_target_vect_widen_sum_qi_to_si: using cached result" 2    } else {        set et_vect_widen_sum_qi_to_si_saved 0        if { [istarget powerpc*-*-*] } {            set et_vect_widen_sum_qi_to_si_saved 1        }    }    verbose "check_effective_target_vect_widen_sum_qi_to_si: returning $et_vect_widen_sum_qi_to_si_saved" 2    return $et_vect_widen_sum_qi_to_si_saved}# Return 1 if the target plus current options supports a vector# widening multiplication of *char* args into *short* result, 0 otherwise.# A target can also support this widening multplication if it can support# promotion (unpacking) from chars to shorts, and vect_short_mult (non-widening# multiplication of shorts).## This won't change for different subtargets so cache the result.proc check_effective_target_vect_widen_mult_qi_to_hi { } {    global et_vect_widen_mult_qi_to_hi    if [info exists et_vect_widen_mult_qi_to_hi_saved] {        verbose "check_effective_target_vect_widen_mult_qi_to_hi: using cached result" 2    } else {	if { [check_effective_target_vect_unpack]	     && [check_effective_target_vect_short_mult] } {	    set et_vect_widen_mult_qi_to_hi_saved 1	} else {	    set et_vect_widen_mult_qi_to_hi_saved 0	}        if { [istarget powerpc*-*-*] } {            set et_vect_widen_mult_qi_to_hi_saved 1        }    }    verbose "check_effective_target_vect_widen_mult_qi_to_hi: returning $et_vect_widen_mult_qi_to_hi_saved" 2    return $et_vect_widen_mult_qi_to_hi_saved}# Return 1 if the target plus current options supports a vector# widening multiplication of *short* args into *int* result, 0 otherwise.# A target can also support this widening multplication if it can support# promotion (unpacking) from shorts to ints, and vect_int_mult (non-widening# multiplication of ints).## This won't change for different subtargets so cache the result.proc check_effective_target_vect_widen_mult_hi_to_si { } {    global et_vect_widen_mult_hi_to_si    if [info exists et_vect_widen_mult_hi_to_si_saved] {        verbose "check_effective_target_vect_widen_mult_hi_to_si: using cached result" 2    } else {        if { [check_effective_target_vect_unpack]             && [check_effective_target_vect_int_mult] } {          set et_vect_widen_mult_hi_to_si_saved 1        } else {          set et_vect_widen_mult_hi_to_si_saved 0        }        if { [istarget powerpc*-*-*]	      || [istarget spu-*-*]	      || [istarget i?86-*-*]	      || [istarget x86_64-*-*] } {            set et_vect_widen_mult_hi_to_si_saved 1        }    }    verbose "check_effective_target_vect_widen_mult_hi_to_si: returning $et_vect_widen_mult_hi_to_si_saved" 2    return $et_vect_widen_mult_hi_to_si_saved}# Return 1 if the target plus current options supports a vector# dot-product of signed chars, 0 otherwise.## This won't change for different subtargets so cache the result.proc check_effective_target_vect_sdot_qi { } {    global et_vect_sdot_qi    if [info exists et_vect_sdot_qi_saved] {        verbose "check_effective_target_vect_sdot_qi: using cached result" 2    } else {        set et_vect_sdot_qi_saved 0    }    verbose "check_effective_target_vect_sdot_qi: returning $et_vect_sdot_qi_saved" 2    return $et_vect_sdot_qi_saved}# Return 1 if the target plus current options supports a vector# dot-product of unsigned chars, 0 otherwise.## This won't change for different subtargets so cache the result.proc check_effective_target_vect_udot_qi { } {    global et_vect_udot_qi    if [info exists et_vect_udot_qi_saved] {        verbose "check_effective_target_vect_udot_qi: using cached result" 2    } else {        set et_vect_udot_qi_saved 0        if { [istarget powerpc*-*-*] } {            set et_vect_udot_qi_saved 1        }    }    verbose "check_effective_target_vect_udot_qi: returning $et_vect_udot_qi_saved" 2    return $et_vect_udot_qi_saved}# Return 1 if the target plus current options supports a vector# dot-product of signed shorts, 0 otherwise.## This won't change for different subtargets so cache the result.proc check_effective_target_vect_sdot_hi { } {    global et_vect_sdot_hi    if [info exists et_vect_sdot_hi_saved] {        verbose "check_effective_target_vect_sdot_hi: using cached result" 2    } else {        set et_vect_sdot_hi_saved 0        if { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*])	     || [istarget i?86-*-*]             || [istarget x86_64-*-*] } {            set et_vect_sdot_hi_saved 1        }    }    verbose "check_effective_target_vect_sdot_hi: returning $et_vect_sdot_hi_saved" 2    return $et_vect_sdot_hi_saved}# Return 1 if the target plus current options supports a vector# dot-product of unsigned shorts, 0 otherwise.## This won't change for different subtargets so cache the result.proc check_effective_target_vect_udot_hi { } {    global et_vect_udot_hi    if [info exists et_vect_udot_hi_saved] {        verbose "check_effective_target_vect_udot_hi: using cached result" 2    } else {        set et_vect_udot_hi_saved 0        if { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*]) } {            set et_vect_udot_hi_saved 1        }    }    verbose "check_effective_target_vect_udot_hi: returning $et_vect_udot_hi_saved" 2    return $et_vect_udot_hi_saved}# Return 1 if the target plus current options supports a vector# demotion (packing) of shorts (to chars) and ints (to shorts) # using modulo arithmetic, 0 otherwise.## This won't change for different subtargets so cache the result.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -