Next: Add Options, Previous: Selectors, Up: Test Directives [Contents][Index]
Effective-target keywords identify sets of targets that support particular functionality. They are used to limit tests to be run only for particular targets, or to specify that particular sets of targets are expected to fail some tests.
Effective-target keywords are defined in lib/target-supports.exp in the GCC testsuite, with the exception of those that are documented as being local to a particular test directory.
The ‘effective target’ takes into account all of the compiler options
with which the test will be compiled, including the multilib options.
By convention, keywords ending in _nocache can also include options
specified for the particular test in an earlier dg-options or
dg-add-options directive.
ilp32Target has 32-bit int, long, and pointers.
lp64Target has 32-bit int, 64-bit long and pointers.
llp64Target has 32-bit int and long, 64-bit long long
and pointers.
double64Target has 64-bit double.
double64plusTarget has double that is 64 bits or longer.
longdouble128Target has 128-bit long double.
int32plusTarget has int that is at 32 bits or longer.
int16Target has int that is 16 bits or shorter.
long_neq_intTarget has int and long with different sizes.
large_doubleTarget supports double that is longer than float.
large_long_doubleTarget supports long double that is longer than double.
ptr32plusTarget has pointers that are 32 bits or longer.
size32plusTarget supports array and structure sizes that are 32 bits or longer.
4byte_wchar_tTarget has wchar_t that is at least 4 bytes.
floatnTarget has the _Floatn type.
floatnxTarget has the _Floatnx type.
floatn_runtimeTarget has the _Floatn type, including runtime support
for any options added with dg-add-options.
floatnx_runtimeTarget has the _Floatnx type, including runtime support
for any options added with dg-add-options.
floatn_nx_runtimeTarget has runtime support for any options added with
dg-add-options for any _Floatn or
_Floatnx type.
fortran_integer_16Target supports Fortran integer that is 16 bytes or longer.
fortran_large_intTarget supports Fortran integer kinds larger than integer(8).
fortran_large_realTarget supports Fortran real kinds larger than real(8).
vect_conditionTarget supports vector conditional operations.
vect_cond_mixedTarget supports vector conditional operations where comparison operands have different type from the value operands.
vect_doubleTarget supports hardware vectors of double.
vect_floatTarget supports hardware vectors of float.
vect_intTarget supports hardware vectors of int.
vect_longTarget supports hardware vectors of long.
vect_long_longTarget supports hardware vectors of long long.
vect_aligned_arraysTarget aligns arrays to vector alignment boundary.
vect_hw_misalignTarget supports a vector misalign access.
vect_no_alignTarget does not support a vector alignment mechanism.
vect_no_int_min_maxTarget does not support a vector min and max instruction on int.
vect_no_int_addTarget does not support a vector add instruction on int.
vect_no_bitwiseTarget does not support vector bitwise instructions.
vect_char_multTarget supports vector char multiplication.
vect_short_multTarget supports vector short multiplication.
vect_int_multTarget supports vector int multiplication.
vect_extract_even_oddTarget supports vector even/odd element extraction.
vect_extract_even_odd_wideTarget supports vector even/odd element extraction of vectors with elements
SImode or larger.
vect_interleaveTarget supports vector interleaving.
vect_stridedTarget supports vector interleaving and extract even/odd.
vect_strided_wideTarget supports vector interleaving and extract even/odd for wide element types.
vect_permTarget supports vector permutation.
vect_shiftTarget supports a hardware vector shift operation.
vect_widen_sum_hi_to_siTarget supports a vector widening summation of short operands
into int results, or can promote (unpack) from short
to int.
vect_widen_sum_qi_to_hiTarget supports a vector widening summation of char operands
into short results, or can promote (unpack) from char
to short.
vect_widen_sum_qi_to_siTarget supports a vector widening summation of char operands
into int results.
vect_widen_mult_qi_to_hiTarget supports a vector widening multiplication of char operands
into short results, or can promote (unpack) from char to
short and perform non-widening multiplication of short.
vect_widen_mult_hi_to_siTarget supports a vector widening multiplication of short operands
into int results, or can promote (unpack) from short to
int and perform non-widening multiplication of int.
vect_widen_mult_si_to_di_patternTarget supports a vector widening multiplication of int operands
into long results.
vect_sdot_qiTarget supports a vector dot-product of signed char.
vect_udot_qiTarget supports a vector dot-product of unsigned char.
vect_sdot_hiTarget supports a vector dot-product of signed short.
vect_udot_hiTarget supports a vector dot-product of unsigned short.
vect_pack_truncTarget supports a vector demotion (packing) of short to char
and from int to short using modulo arithmetic.
vect_unpackTarget supports a vector promotion (unpacking) of char to short
and from char to int.
vect_intfloat_cvtTarget supports conversion from signed int to float.
vect_uintfloat_cvtTarget supports conversion from unsigned int to float.
vect_floatint_cvtTarget supports conversion from float to signed int.
vect_floatuint_cvtTarget supports conversion from float to unsigned int.
vect_max_reducTarget supports max reduction for vectors.
tlsTarget supports thread-local storage.
tls_nativeTarget supports native (rather than emulated) thread-local storage.
tls_runtimeTest system supports executing TLS executables.
dfpTargets supports compiling decimal floating point extension to C.
dfp_nocacheIncluding the options used to compile this particular test, the target supports compiling decimal floating point extension to C.
dfprtTest system can execute decimal floating point tests.
dfprt_nocacheIncluding the options used to compile this particular test, the test system can execute decimal floating point tests.
hard_dfpTarget generates decimal floating point instructions with current options.
arm32ARM target generates 32-bit code.
arm_eabiARM target adheres to the ABI for the ARM Architecture.
arm_fp_okARM target defines __ARM_FP using -mfloat-abi=softfp or
equivalent options. Some multilibs may be incompatible with these
options.
arm_hf_eabiARM target adheres to the VFP and Advanced SIMD Register Arguments
variant of the ABI for the ARM Architecture (as selected with
-mfloat-abi=hard).
arm_hard_vfp_okARM target supports -mfpu=vfp -mfloat-abi=hard.
Some multilibs may be incompatible with these options.
arm_iwmmxt_okARM target supports -mcpu=iwmmxt.
Some multilibs may be incompatible with this option.
arm_neonARM target supports generating NEON instructions.
arm_tune_string_ops_prefer_neonTest CPU tune supports inlining string operations with NEON instructions.
arm_neon_hwTest system supports executing NEON instructions.
arm_neonv2_hwTest system supports executing NEON v2 instructions.
arm_neon_okARM Target supports -mfpu=neon -mfloat-abi=softfp or compatible
options. Some multilibs may be incompatible with these options.
arm_neon_ok_no_float_abiARM Target supports NEON with -mfpu=neon, but without any
-mfloat-abi= option. Some multilibs may be incompatible with this
option.
arm_neonv2_okARM Target supports -mfpu=neon-vfpv4 -mfloat-abi=softfp or compatible
options. Some multilibs may be incompatible with these options.
arm_fp16_okTarget supports options to generate VFP half-precision floating-point instructions. Some multilibs may be incompatible with these options. This test is valid for ARM only.
arm_fp16_hwTarget supports executing VFP half-precision floating-point instructions. This test is valid for ARM only.
arm_neon_fp16_okARM Target supports -mfpu=neon-fp16 -mfloat-abi=softfp or compatible
options, including -mfp16-format=ieee if necessary to obtain the
__fp16 type. Some multilibs may be incompatible with these options.
arm_neon_fp16_hwTest system supports executing Neon half-precision float instructions. (Implies previous.)
arm_fp16_alternative_okARM target supports the ARM FP16 alternative format. Some multilibs may be incompatible with the options needed.
arm_fp16_none_okARM target supports specifying none as the ARM FP16 format.
arm_thumb1_okARM target generates Thumb-1 code for -mthumb.
arm_thumb2_okARM target generates Thumb-2 code for -mthumb.
arm_vfp_okARM target supports -mfpu=vfp -mfloat-abi=softfp.
Some multilibs may be incompatible with these options.
arm_vfp3_okARM target supports -mfpu=vfp3 -mfloat-abi=softfp.
Some multilibs may be incompatible with these options.
arm_v8_vfp_okARM target supports -mfpu=fp-armv8 -mfloat-abi=softfp.
Some multilibs may be incompatible with these options.
arm_v8_neon_okARM target supports -mfpu=neon-fp-armv8 -mfloat-abi=softfp.
Some multilibs may be incompatible with these options.
arm_v8_1a_neon_okARM target supports options to generate ARMv8.1 Adv.SIMD instructions. Some multilibs may be incompatible with these options.
arm_v8_1a_neon_hwARM target supports executing ARMv8.1 Adv.SIMD instructions. Some multilibs may be incompatible with the options needed. Implies arm_v8_1a_neon_ok.
arm_acq_relARM target supports acquire-release instructions.
arm_v8_2a_fp16_scalar_okARM target supports options to generate instructions for ARMv8.2 and scalar instructions from the FP16 extension. Some multilibs may be incompatible with these options.
arm_v8_2a_fp16_scalar_hwARM target supports executing instructions for ARMv8.2 and scalar instructions from the FP16 extension. Some multilibs may be incompatible with these options. Implies arm_v8_2a_fp16_neon_ok.
arm_v8_2a_fp16_neon_okARM target supports options to generate instructions from ARMv8.2 with the FP16 extension. Some multilibs may be incompatible with these options. Implies arm_v8_2a_fp16_scalar_ok.
arm_v8_2a_fp16_neon_hwARM target supports executing instructions from ARMv8.2 with the FP16 extension. Some multilibs may be incompatible with these options. Implies arm_v8_2a_fp16_neon_ok and arm_v8_2a_fp16_scalar_hw.
arm_v8_2a_dotprod_neon_okARM target supports options to generate instructions from ARMv8.2 with the Dot Product extension. Some multilibs may be incompatible with these options.
arm_v8_2a_dotprod_neon_hwARM target supports executing instructions from ARMv8.2 with the Dot Product extension. Some multilibs may be incompatible with these options. Implies arm_v8_2a_dotprod_neon_ok.
arm_prefer_ldrd_strdARM target prefers LDRD and STRD instructions over
LDM and STM instructions.
arm_thumb1_movt_okARM target generates Thumb-1 code for -mthumb with MOVW
and MOVT instructions available.
arm_thumb1_cbz_okARM target generates Thumb-1 code for -mthumb with
CBZ and CBNZ instructions available.
arm_divmod_simodeARM target for which divmod transform is disabled, if it supports hardware div instruction.
arm_cmse_okARM target supports ARMv8-M Security Extensions, enabled by the -mcmse
option.
arm_coproc1_okARM target supports the following coprocessor instructions: CDP,
LDC, STC, MCR and MRC.
arm_coproc2_okARM target supports all the coprocessor instructions also listed as supported
in arm_coproc1_ok in addition to the following: CDP2, LDC2,
LDC2l, STC2, STC2l, MCR2 and MRC2.
arm_coproc3_okARM target supports all the coprocessor instructions also listed as supported
in arm_coproc2_ok in addition the following: MCRR and MRRC.
arm_coproc4_okARM target supports all the coprocessor instructions also listed as supported
in arm_coproc3_ok in addition the following: MCRR2 and MRRC2.
aarch64_asm_<ext>_okAArch64 assembler supports the architecture extension ext via the
.arch_extension pseudo-op.
aarch64_tinyAArch64 target which generates instruction sequences for tiny memory model.
aarch64_smallAArch64 target which generates instruction sequences for small memory model.
aarch64_largeAArch64 target which generates instruction sequences for large memory model.
aarch64_little_endianAArch64 target which generates instruction sequences for little endian.
aarch64_big_endianAArch64 target which generates instruction sequences for big endian.
aarch64_small_fpicBinutils installed on test system supports relocation types required by -fpic for AArch64 small memory model.
mips64MIPS target supports 64-bit instructions.
nomips16MIPS target does not produce MIPS16 code.
mips16_attributeMIPS target can generate MIPS16 code.
mips_loongsonMIPS target is a Loongson-2E or -2F target using an ABI that supports the Loongson vector modes.
mips_msaMIPS target supports -mmsa, MIPS SIMD Architecture (MSA).
mips_newabi_large_long_doubleMIPS target supports long double larger than double
when using the new ABI.
mpaired_singleMIPS target supports -mpaired-single.
dfp_hwPowerPC target supports executing hardware DFP instructions.
p8vector_hwPowerPC target supports executing VSX instructions (ISA 2.07).
powerpc64Test system supports executing 64-bit instructions.
powerpc_altivecPowerPC target supports AltiVec.
powerpc_altivec_okPowerPC target supports -maltivec.
powerpc_eabi_okPowerPC target supports -meabi.
powerpc_elfv2PowerPC target supports -mabi=elfv2.
powerpc_fprsPowerPC target supports floating-point registers.
powerpc_hard_doublePowerPC target supports hardware double-precision floating-point.
powerpc_htm_okPowerPC target supports -mhtm
powerpc_p8vector_okPowerPC target supports -mpower8-vector
powerpc_popcntb_okPowerPC target supports the popcntb instruction, indicating
that this target supports -mcpu=power5.
powerpc_ppu_okPowerPC target supports -mcpu=cell.
powerpc_spePowerPC target supports PowerPC SPE.
powerpc_spe_nocacheIncluding the options used to compile this particular test, the PowerPC target supports PowerPC SPE.
powerpc_spuPowerPC target supports PowerPC SPU.
powerpc_vsx_okPowerPC target supports -mvsx.
powerpc_405_nocacheIncluding the options used to compile this particular test, the PowerPC target supports PowerPC 405.
ppc_recip_hwPowerPC target supports executing reciprocal estimate instructions.
spu_auto_overlaySPU target has toolchain that supports automatic overlay generation.
vmx_hwPowerPC target supports executing AltiVec instructions.
vsx_hwPowerPC target supports executing VSX instructions (ISA 2.06).
avxTarget supports compiling avx instructions.
avx_runtimeTarget supports the execution of avx instructions.
cell_hwTest system can execute AltiVec and Cell PPU instructions.
coldfire_fpuTarget uses a ColdFire FPU.
hard_floatTarget supports FPU instructions.
non_strict_alignTarget does not require strict alignment.
sqrt_insnTarget has a square root instruction that the compiler can generate.
sseTarget supports compiling sse instructions.
sse_runtimeTarget supports the execution of sse instructions.
sse2Target supports compiling sse2 instructions.
sse2_runtimeTarget supports the execution of sse2 instructions.
sync_char_shortTarget supports atomic operations on char and short.
sync_int_longTarget supports atomic operations on int and long.
ultrasparc_hwTest environment appears to run executables on a simulator that
accepts only EM_SPARC executables and chokes on EM_SPARC32PLUS
or EM_SPARCV9 executables.
vect_cmdline_neededTarget requires a command line argument to enable a SIMD instruction set.
pie_copyrelocThe x86-64 target linker supports PIE with copy reloc.
divmodTarget supporting hardware divmod insn or divmod libcall.
divmod_simodeTarget supporting hardware divmod insn or divmod libcall for SImode.
cThe language for the compiler under test is C.
c++The language for the compiler under test is C++.
c99_runtimeTarget provides a full C99 runtime.
correct_iso_cpp_string_wchar_protosTarget string.h and wchar.h headers provide C++ required
overloads for strchr etc. functions.
dummy_wcsftimeTarget uses a dummy wcsftime function that always returns zero.
fd_truncateTarget can truncate a file from a file descriptor, as used by
libgfortran/io/unix.c:fd_truncate; i.e. ftruncate or
chsize.
freestandingTarget is ‘freestanding’ as defined in section 4 of the C99 standard. Effectively, it is a target which supports no extra headers or libraries other than what is considered essential.
gettimeofdayTarget supports gettimeofday.
init_priorityTarget supports constructors with initialization priority arguments.
inttypes_typesTarget has the basic signed and unsigned types in inttypes.h.
This is for tests that GCC’s notions of these types agree with those
in the header, as some systems have only inttypes.h.
lax_strtofpTarget might have errors of a few ULP in string to floating-point conversion functions and overflow is not always detected correctly by those functions.
mempcpyTarget provides mempcpy function.
mmapTarget supports mmap.
newlibTarget supports Newlib.
pow10Target provides pow10 function.
pthreadTarget can compile using pthread.h with no errors or warnings.
pthread_hTarget has pthread.h.
run_expensive_testsExpensive testcases (usually those that consume excessive amounts of CPU
time) should be run on this target. This can be enabled by setting the
GCC_TEST_RUN_EXPENSIVE environment variable to a non-empty string.
simulatorTest system runs executables on a simulator (i.e. slowly) rather than hardware (i.e. fast).
stabsTarget supports the stabs debugging format.
stdint_typesTarget has the basic signed and unsigned C types in stdint.h.
This will be obsolete when GCC ensures a working stdint.h for
all targets.
stpcpyTarget provides stpcpy function.
trampolinesTarget supports trampolines.
uclibcTarget supports uClibc.
unwrappedTarget does not use a status wrapper.
vxworks_kernelTarget is a VxWorks kernel.
vxworks_rtpTarget is a VxWorks RTP.
wcharTarget supports wide characters.
automatic_stack_alignmentTarget supports automatic stack alignment.
cilkplus_runtimeTarget supports the Cilk Plus runtime library.
cxa_atexitTarget uses __cxa_atexit.
default_packedTarget has packed layout of structure members by default.
fgraphiteTarget supports Graphite optimizations.
fixed_pointTarget supports fixed-point extension to C.
fopenaccTarget supports OpenACC via -fopenacc.
fopenmpTarget supports OpenMP via -fopenmp.
fpicTarget supports -fpic and -fPIC.
freorderTarget supports -freorder-blocks-and-partition.
fstack_protectorTarget supports -fstack-protector.
gasTarget uses GNU as.
gc_sectionsTarget supports --gc-sections.
gldTarget uses GNU ld.
keeps_null_pointer_checksTarget keeps null pointer checks, either due to the use of -fno-delete-null-pointer-checks or hardwired into the target.
ltoCompiler has been configured to support link-time optimization (LTO).
naked_functionsTarget supports the naked function attribute.
named_sectionsTarget supports named sections.
natural_alignment_32Target uses natural alignment (aligned to type size) for types of 32 bits or less.
target_natural_alignment_64Target uses natural alignment (aligned to type size) for types of 64 bits or less.
nonpicTarget does not generate PIC by default.
pie_enabledTarget generates PIE by default.
pcc_bitfield_type_mattersTarget defines PCC_BITFIELD_TYPE_MATTERS.
pe_aligned_commonsTarget supports -mpe-aligned-commons.
pieTarget supports -pie, -fpie and -fPIE.
rdynamicTarget supports -rdynamic.
section_anchorsTarget supports section anchors.
short_enumsTarget defaults to short enums.
staticTarget supports -static.
static_libgfortranTarget supports statically linking ‘libgfortran’.
string_mergingTarget supports merging string constants at link time.
ucnTarget supports compiling and assembling UCN.
ucn_nocacheIncluding the options used to compile this particular test, the target supports compiling and assembling UCN.
unaligned_stackTarget does not guarantee that its STACK_BOUNDARY is greater than
or equal to the required vector alignment.
vector_alignment_reachableVector alignment is reachable for types of 32 bits or less.
vector_alignment_reachable_for_64bitVector alignment is reachable for types of 64 bits or less.
wchar_t_char16_t_compatibleTarget supports wchar_t that is compatible with char16_t.
wchar_t_char32_t_compatibleTarget supports wchar_t that is compatible with char32_t.
comdat_groupTarget uses comdat groups.
gcc.target/i3863dnowTarget supports compiling 3dnow instructions.
aesTarget supports compiling aes instructions.
fma4Target supports compiling fma4 instructions.
ms_hook_prologueTarget supports attribute ms_hook_prologue.
pclmulTarget supports compiling pclmul instructions.
sse3Target supports compiling sse3 instructions.
sse4Target supports compiling sse4 instructions.
sse4aTarget supports compiling sse4a instructions.
ssse3Target supports compiling ssse3 instructions.
vaesTarget supports compiling vaes instructions.
vpclmulTarget supports compiling vpclmul instructions.
xopTarget supports compiling xop instructions.
gcc.target/spu/eaealibTarget __ea library functions are available.
gcc.test-frameworknoAlways returns 0.
yesAlways returns 1.
Next: Add Options, Previous: Selectors, Up: Test Directives [Contents][Index]