Next: Add Options, Previous: Selectors, Up: Test Directives
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.
ilp32
int
, long
, and pointers.
lp64
int
, 64-bit long
and pointers.
llp64
int
and long
, 64-bit long long
and pointers.
double64
double
.
double64plus
double
that is 64 bits or longer.
longdouble128
long double
.
int32plus
int
that is at 32 bits or longer.
int16
int
that is 16 bits or shorter.
long_neq_int
int
and long
with different sizes.
large_double
double
that is longer than float
.
large_long_double
long double
that is longer than double
.
ptr32plus
size32plus
4byte_wchar_t
wchar_t
that is at least 4 bytes.
fortran_integer_16
integer
that is 16 bytes or longer.
fortran_large_int
integer
kinds larger than integer(8)
.
fortran_large_real
real
kinds larger than real(8)
.
vect_condition
vect_double
double
.
vect_float
float
.
vect_int
int
.
vect_long
long
.
vect_long_long
long long
.
vect_aligned_arrays
vect_hw_misalign
vect_no_align
vect_no_int_max
int
.
vect_no_int_add
int
.
vect_no_bitwise
vect_char_mult
vector char
multiplication.
vect_short_mult
vector short
multiplication.
vect_int_mult
vector int
multiplication.
vect_extract_even_odd
vect_extract_even_odd_wide
SImode
or larger.
vect_interleave
vect_strided
vect_strided_wide
vect_perm
vect_shift
vect_widen_sum_hi_to_si
short
operands
into int
results, or can promote (unpack) from short
to int
.
vect_widen_sum_qi_to_hi
char
operands
into short
results, or can promote (unpack) from char
to short
.
vect_widen_sum_qi_to_si
char
operands
into int
results.
vect_widen_mult_qi_to_hi
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_si
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_pattern
int
operands
into long
results.
vect_sdot_qi
signed char
.
vect_udot_qi
unsigned char
.
vect_sdot_hi
signed short
.
vect_udot_hi
unsigned short
.
vect_pack_trunc
short
to char
and from int
to short
using modulo arithmetic.
vect_unpack
char
to short
and from char
to int
.
vect_intfloat_cvt
signed int
to float
.
vect_uintfloat_cvt
unsigned int
to float
.
vect_floatint_cvt
float
to signed int
.
vect_floatuint_cvt
float
to unsigned int
.
tls
tls_native
tls_runtime
dfp
dfp_nocache
dfprt
dfprt_nocache
hard_dfp
arm32
arm_eabi
arm_hf_eabi
-mfloat-abi=hard
).
arm_hard_vfp_ok
-mfpu=vfp -mfloat-abi=hard
.
Some multilibs may be incompatible with these options.
arm_iwmmxt_ok
-mcpu=iwmmxt
.
Some multilibs may be incompatible with this option.
arm_neon
arm_tune_string_ops_prefer_neon
arm_neon_hw
arm_neonv2_hw
arm_neon_ok
-mfpu=neon -mfloat-abi=softfp
or compatible
options. Some multilibs may be incompatible with these options.
arm_neonv2_ok
-mfpu=neon-vfpv4 -mfloat-abi=softfp
or compatible
options. Some multilibs may be incompatible with these options.
arm_neon_fp16_ok
-mfpu=neon-fp16 -mfloat-abi=softfp
or compatible
options. Some multilibs may be incompatible with these options.
arm_thumb1_ok
-mthumb
.
arm_thumb2_ok
-mthumb
.
arm_vfp_ok
-mfpu=vfp -mfloat-abi=softfp
.
Some multilibs may be incompatible with these options.
arm_vfp3_ok
-mfpu=vfp3 -mfloat-abi=softfp
.
Some multilibs may be incompatible with these options.
arm_v8_vfp_ok
-mfpu=fp-armv8 -mfloat-abi=softfp
.
Some multilibs may be incompatible with these options.
arm_v8_neon_ok
-mfpu=neon-fp-armv8 -mfloat-abi=softfp
.
Some multilibs may be incompatible with these options.
arm_prefer_ldrd_strd
LDRD
and STRD
instructions over
LDM
and STM
instructions.
arm_thumb1_movt_ko
-mthumb
with no
MOVT
instruction available.
mips64
nomips16
mips16_attribute
mips_loongson
mips_newabi_large_long_double
long double
larger than double
when using the new ABI.
mpaired_single
-mpaired-single
.
dfp_hw
p8vector_hw
powerpc64
powerpc_altivec
powerpc_altivec_ok
-maltivec
.
powerpc_eabi_ok
-meabi
.
powerpc_elfv2
-mabi=elfv2
.
powerpc_fprs
powerpc_hard_double
powerpc_htm_ok
-mhtm
powerpc_p8vector_ok
-mpower8-vector
powerpc_ppu_ok
-mcpu=cell
.
powerpc_spe
powerpc_spe_nocache
powerpc_spu
powerpc_vsx_ok
-mvsx
.
powerpc_405_nocache
ppc_recip_hw
spu_auto_overlay
vmx_hw
vsx_hw
avx
avx
instructions.
avx_runtime
avx
instructions.
cell_hw
coldfire_fpu
hard_float
non_strict_align
sse
sse
instructions.
sse_runtime
sse
instructions.
sse2
sse2
instructions.
sse2_runtime
sse2
instructions.
sync_char_short
char
and short
.
sync_int_long
int
and long
.
ultrasparc_hw
EM_SPARC
executables and chokes on EM_SPARC32PLUS
or EM_SPARCV9
executables.
vect_cmdline_needed
pie_copyreloc
c
c++
c99_runtime
correct_iso_cpp_string_wchar_protos
string.h
and wchar.h
headers provide C++ required
overloads for strchr
etc. functions.
dummy_wcsftime
wcsftime
function that always returns zero.
fd_truncate
ftruncate
or
chsize
.
freestanding
init_priority
inttypes_types
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_strtofp
mempcpy
mempcpy
function.
mmap
mmap
.
newlib
pow10
pow10
function.
pthread
pthread.h
with no errors or warnings.
pthread_h
pthread.h
.
run_expensive_tests
simulator
stabs
stdint_types
stdint.h
.
This will be obsolete when GCC ensures a working stdint.h
for
all targets.
stpcpy
stpcpy
function.
trampolines
uclibc
unwrapped
vxworks_kernel
vxworks_rtp
wchar
automatic_stack_alignment
cxa_atexit
__cxa_atexit
.
default_packed
fgraphite
fixed_point
fopenacc
fopenmp
fpic
freorder
fstack_protector
gas
gc_sections
gld
keeps_null_pointer_checks
lto
naked_functions
naked
function attribute.
named_sections
natural_alignment_32
target_natural_alignment_64
nonpic
pie_enabled
pcc_bitfield_type_matters
PCC_BITFIELD_TYPE_MATTERS
.
pe_aligned_commons
pie
section_anchors
short_enums
static
static_libgfortran
string_merging
ucn
ucn_nocache
unaligned_stack
STACK_BOUNDARY
is greater than
or equal to the required vector alignment.
vector_alignment_reachable
vector_alignment_reachable_for_64bit
wchar_t_char16_t_compatible
wchar_t
that is compatible with char16_t
.
wchar_t_char32_t_compatible
wchar_t
that is compatible with char32_t
.
comdat_group
gcc.target/i386
3dnow
3dnow
instructions.
aes
aes
instructions.
fma4
fma4
instructions.
ms_hook_prologue
ms_hook_prologue
.
pclmul
pclmul
instructions.
sse3
sse3
instructions.
sse4
sse4
instructions.
sse4a
sse4a
instructions.
ssse3
ssse3
instructions.
vaes
vaes
instructions.
vpclmul
vpclmul
instructions.
xop
xop
instructions.
gcc.target/spu/ea
ealib
__ea
library functions are available.
gcc.test-framework
no
yes