|
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <!-- Copyright (C) 1988-2020 Free Software Foundation, Inc.
-
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3 or
- any later version published by the Free Software Foundation; with the
- Invariant Sections being "Funding Free Software", the Front-Cover
- Texts being (a) (see below), and with the Back-Cover Texts being (b)
- (see below). A copy of the license is included in the section entitled
- "GNU Free Documentation License".
-
- (a) The FSF's Front-Cover Text is:
-
- A GNU Manual
-
- (b) The FSF's Back-Cover Text is:
-
- You have freedom to copy and modify this GNU Manual, like GNU
- software. Copies published by the Free Software Foundation raise
- funds for GNU development. -->
- <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Effective-Target Keywords (GNU Compiler Collection (GCC) Internals)</title>
-
- <meta name="description" content="Effective-Target Keywords (GNU Compiler Collection (GCC) Internals)">
- <meta name="keywords" content="Effective-Target Keywords (GNU Compiler Collection (GCC) Internals)">
- <meta name="resource-type" content="document">
- <meta name="distribution" content="global">
- <meta name="Generator" content="makeinfo">
- <link href="index.html#Top" rel="start" title="Top">
- <link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
- <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
- <link href="Test-Directives.html#Test-Directives" rel="up" title="Test Directives">
- <link href="Add-Options.html#Add-Options" rel="next" title="Add Options">
- <link href="Selectors.html#Selectors" rel="prev" title="Selectors">
- <style type="text/css">
- <!--
- a.summary-letter {text-decoration: none}
- blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
- div.display {margin-left: 3.2em}
- div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- div.smalllisp {margin-left: 3.2em}
- kbd {font-style: oblique}
- pre.display {font-family: inherit}
- pre.format {font-family: inherit}
- pre.menu-comment {font-family: serif}
- pre.menu-preformatted {font-family: serif}
- pre.smalldisplay {font-family: inherit; font-size: smaller}
- pre.smallexample {font-size: smaller}
- pre.smallformat {font-family: inherit; font-size: smaller}
- pre.smalllisp {font-size: smaller}
- span.nolinebreak {white-space: nowrap}
- span.roman {font-family: initial; font-weight: normal}
- span.sansserif {font-family: sans-serif; font-weight: normal}
- ul.no-bullet {list-style: none}
- -->
- </style>
-
-
- </head>
-
- <body lang="en">
- <a name="Effective_002dTarget-Keywords"></a>
- <div class="header">
- <p>
- Next: <a href="Add-Options.html#Add-Options" accesskey="n" rel="next">Add Options</a>, Previous: <a href="Selectors.html#Selectors" accesskey="p" rel="prev">Selectors</a>, Up: <a href="Test-Directives.html#Test-Directives" accesskey="u" rel="up">Test Directives</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
- </div>
- <hr>
- <a name="Keywords-describing-target-attributes"></a>
- <h4 class="subsection">7.2.3 Keywords describing target attributes</h4>
-
- <p>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.
- </p>
- <p>Effective-target keywords are defined in <samp>lib/target-supports.exp</samp> in
- the GCC testsuite, with the exception of those that are documented as
- being local to a particular test directory.
- </p>
- <p>The ‘<samp>effective target</samp>’ takes into account all of the compiler options
- with which the test will be compiled, including the multilib options.
- By convention, keywords ending in <code>_nocache</code> can also include options
- specified for the particular test in an earlier <code>dg-options</code> or
- <code>dg-add-options</code> directive.
- </p>
- <a name="Endianness"></a>
- <h4 class="subsubsection">7.2.3.1 Endianness</h4>
-
- <dl compact="compact">
- <dt><code>be</code></dt>
- <dd><p>Target uses big-endian memory order for multi-byte and multi-word data.
- </p>
- </dd>
- <dt><code>le</code></dt>
- <dd><p>Target uses little-endian memory order for multi-byte and multi-word data.
- </p></dd>
- </dl>
-
- <a name="Data-type-sizes"></a>
- <h4 class="subsubsection">7.2.3.2 Data type sizes</h4>
-
- <dl compact="compact">
- <dt><code>ilp32</code></dt>
- <dd><p>Target has 32-bit <code>int</code>, <code>long</code>, and pointers.
- </p>
- </dd>
- <dt><code>lp64</code></dt>
- <dd><p>Target has 32-bit <code>int</code>, 64-bit <code>long</code> and pointers.
- </p>
- </dd>
- <dt><code>llp64</code></dt>
- <dd><p>Target has 32-bit <code>int</code> and <code>long</code>, 64-bit <code>long long</code>
- and pointers.
- </p>
- </dd>
- <dt><code>double64</code></dt>
- <dd><p>Target has 64-bit <code>double</code>.
- </p>
- </dd>
- <dt><code>double64plus</code></dt>
- <dd><p>Target has <code>double</code> that is 64 bits or longer.
- </p>
- </dd>
- <dt><code>longdouble128</code></dt>
- <dd><p>Target has 128-bit <code>long double</code>.
- </p>
- </dd>
- <dt><code>int32plus</code></dt>
- <dd><p>Target has <code>int</code> that is at 32 bits or longer.
- </p>
- </dd>
- <dt><code>int16</code></dt>
- <dd><p>Target has <code>int</code> that is 16 bits or shorter.
- </p>
- </dd>
- <dt><code>longlong64</code></dt>
- <dd><p>Target has 64-bit <code>long long</code>.
- </p>
- </dd>
- <dt><code>long_neq_int</code></dt>
- <dd><p>Target has <code>int</code> and <code>long</code> with different sizes.
- </p>
- </dd>
- <dt><code>int_eq_float</code></dt>
- <dd><p>Target has <code>int</code> and <code>float</code> with the same size.
- </p>
- </dd>
- <dt><code>ptr_eq_long</code></dt>
- <dd><p>Target has pointers (<code>void *</code>) and <code>long</code> with the same size.
- </p>
- </dd>
- <dt><code>large_double</code></dt>
- <dd><p>Target supports <code>double</code> that is longer than <code>float</code>.
- </p>
- </dd>
- <dt><code>large_long_double</code></dt>
- <dd><p>Target supports <code>long double</code> that is longer than <code>double</code>.
- </p>
- </dd>
- <dt><code>ptr32plus</code></dt>
- <dd><p>Target has pointers that are 32 bits or longer.
- </p>
- </dd>
- <dt><code>size20plus</code></dt>
- <dd><p>Target has a 20-bit or larger address space, so at least supports
- 16-bit array and structure sizes.
- </p>
- </dd>
- <dt><code>size32plus</code></dt>
- <dd><p>Target has a 32-bit or larger address space, so at least supports
- 24-bit array and structure sizes.
- </p>
- </dd>
- <dt><code>4byte_wchar_t</code></dt>
- <dd><p>Target has <code>wchar_t</code> that is at least 4 bytes.
- </p>
- </dd>
- <dt><code>float<var>n</var></code></dt>
- <dd><p>Target has the <code>_Float<var>n</var></code> type.
- </p>
- </dd>
- <dt><code>float<var>n</var>x</code></dt>
- <dd><p>Target has the <code>_Float<var>n</var>x</code> type.
- </p>
- </dd>
- <dt><code>float<var>n</var>_runtime</code></dt>
- <dd><p>Target has the <code>_Float<var>n</var></code> type, including runtime support
- for any options added with <code>dg-add-options</code>.
- </p>
- </dd>
- <dt><code>float<var>n</var>x_runtime</code></dt>
- <dd><p>Target has the <code>_Float<var>n</var>x</code> type, including runtime support
- for any options added with <code>dg-add-options</code>.
- </p>
- </dd>
- <dt><code>floatn_nx_runtime</code></dt>
- <dd><p>Target has runtime support for any options added with
- <code>dg-add-options</code> for any <code>_Float<var>n</var></code> or
- <code>_Float<var>n</var>x</code> type.
- </p>
- </dd>
- <dt><code>inf</code></dt>
- <dd><p>Target supports floating point infinite (<code>inf</code>) for type
- <code>double</code>.
- </p></dd>
- </dl>
- <a name="Fortran_002dspecific-attributes"></a>
- <h4 class="subsubsection">7.2.3.3 Fortran-specific attributes</h4>
-
- <dl compact="compact">
- <dt><code>fortran_integer_16</code></dt>
- <dd><p>Target supports Fortran <code>integer</code> that is 16 bytes or longer.
- </p>
- </dd>
- <dt><code>fortran_real_10</code></dt>
- <dd><p>Target supports Fortran <code>real</code> that is 10 bytes or longer.
- </p>
- </dd>
- <dt><code>fortran_real_16</code></dt>
- <dd><p>Target supports Fortran <code>real</code> that is 16 bytes or longer.
- </p>
- </dd>
- <dt><code>fortran_large_int</code></dt>
- <dd><p>Target supports Fortran <code>integer</code> kinds larger than <code>integer(8)</code>.
- </p>
- </dd>
- <dt><code>fortran_large_real</code></dt>
- <dd><p>Target supports Fortran <code>real</code> kinds larger than <code>real(8)</code>.
- </p></dd>
- </dl>
-
- <a name="Vector_002dspecific-attributes"></a>
- <h4 class="subsubsection">7.2.3.4 Vector-specific attributes</h4>
-
- <dl compact="compact">
- <dt><code>vect_align_stack_vars</code></dt>
- <dd><p>The target’s ABI allows stack variables to be aligned to the preferred
- vector alignment.
- </p>
- </dd>
- <dt><code>vect_avg_qi</code></dt>
- <dd><p>Target supports both signed and unsigned averaging operations on vectors
- of bytes.
- </p>
- </dd>
- <dt><code>vect_mulhrs_hi</code></dt>
- <dd><p>Target supports both signed and unsigned multiply-high-with-round-and-scale
- operations on vectors of half-words.
- </p>
- </dd>
- <dt><code>vect_sdiv_pow2_si</code></dt>
- <dd><p>Target supports signed division by constant power-of-2 operations
- on vectors of 4-byte integers.
- </p>
- </dd>
- <dt><code>vect_condition</code></dt>
- <dd><p>Target supports vector conditional operations.
- </p>
- </dd>
- <dt><code>vect_cond_mixed</code></dt>
- <dd><p>Target supports vector conditional operations where comparison operands
- have different type from the value operands.
- </p>
- </dd>
- <dt><code>vect_double</code></dt>
- <dd><p>Target supports hardware vectors of <code>double</code>.
- </p>
- </dd>
- <dt><code>vect_double_cond_arith</code></dt>
- <dd><p>Target supports conditional addition, subtraction, multiplication,
- division, minimum and maximum on vectors of <code>double</code>, via the
- <code>cond_</code> optabs.
- </p>
- </dd>
- <dt><code>vect_element_align_preferred</code></dt>
- <dd><p>The target’s preferred vector alignment is the same as the element
- alignment.
- </p>
- </dd>
- <dt><code>vect_float</code></dt>
- <dd><p>Target supports hardware vectors of <code>float</code> when
- <samp>-funsafe-math-optimizations</samp> is in effect.
- </p>
- </dd>
- <dt><code>vect_float_strict</code></dt>
- <dd><p>Target supports hardware vectors of <code>float</code> when
- <samp>-funsafe-math-optimizations</samp> is not in effect.
- This implies <code>vect_float</code>.
- </p>
- </dd>
- <dt><code>vect_int</code></dt>
- <dd><p>Target supports hardware vectors of <code>int</code>.
- </p>
- </dd>
- <dt><code>vect_long</code></dt>
- <dd><p>Target supports hardware vectors of <code>long</code>.
- </p>
- </dd>
- <dt><code>vect_long_long</code></dt>
- <dd><p>Target supports hardware vectors of <code>long long</code>.
- </p>
- </dd>
- <dt><code>vect_check_ptrs</code></dt>
- <dd><p>Target supports the <code>check_raw_ptrs</code> and <code>check_war_ptrs</code>
- optabs on vectors.
- </p>
- </dd>
- <dt><code>vect_fully_masked</code></dt>
- <dd><p>Target supports fully-masked (also known as fully-predicated) loops,
- so that vector loops can handle partial as well as full vectors.
- </p>
- </dd>
- <dt><code>vect_masked_store</code></dt>
- <dd><p>Target supports vector masked stores.
- </p>
- </dd>
- <dt><code>vect_scatter_store</code></dt>
- <dd><p>Target supports vector scatter stores.
- </p>
- </dd>
- <dt><code>vect_aligned_arrays</code></dt>
- <dd><p>Target aligns arrays to vector alignment boundary.
- </p>
- </dd>
- <dt><code>vect_hw_misalign</code></dt>
- <dd><p>Target supports a vector misalign access.
- </p>
- </dd>
- <dt><code>vect_no_align</code></dt>
- <dd><p>Target does not support a vector alignment mechanism.
- </p>
- </dd>
- <dt><code>vect_peeling_profitable</code></dt>
- <dd><p>Target might require to peel loops for alignment purposes.
- </p>
- </dd>
- <dt><code>vect_no_int_min_max</code></dt>
- <dd><p>Target does not support a vector min and max instruction on <code>int</code>.
- </p>
- </dd>
- <dt><code>vect_no_int_add</code></dt>
- <dd><p>Target does not support a vector add instruction on <code>int</code>.
- </p>
- </dd>
- <dt><code>vect_no_bitwise</code></dt>
- <dd><p>Target does not support vector bitwise instructions.
- </p>
- </dd>
- <dt><code>vect_bool_cmp</code></dt>
- <dd><p>Target supports comparison of <code>bool</code> vectors for at least one
- vector length.
- </p>
- </dd>
- <dt><code>vect_char_add</code></dt>
- <dd><p>Target supports addition of <code>char</code> vectors for at least one
- vector length.
- </p>
- </dd>
- <dt><code>vect_char_mult</code></dt>
- <dd><p>Target supports <code>vector char</code> multiplication.
- </p>
- </dd>
- <dt><code>vect_short_mult</code></dt>
- <dd><p>Target supports <code>vector short</code> multiplication.
- </p>
- </dd>
- <dt><code>vect_int_mult</code></dt>
- <dd><p>Target supports <code>vector int</code> multiplication.
- </p>
- </dd>
- <dt><code>vect_long_mult</code></dt>
- <dd><p>Target supports 64 bit <code>vector long</code> multiplication.
- </p>
- </dd>
- <dt><code>vect_extract_even_odd</code></dt>
- <dd><p>Target supports vector even/odd element extraction.
- </p>
- </dd>
- <dt><code>vect_extract_even_odd_wide</code></dt>
- <dd><p>Target supports vector even/odd element extraction of vectors with elements
- <code>SImode</code> or larger.
- </p>
- </dd>
- <dt><code>vect_interleave</code></dt>
- <dd><p>Target supports vector interleaving.
- </p>
- </dd>
- <dt><code>vect_strided</code></dt>
- <dd><p>Target supports vector interleaving and extract even/odd.
- </p>
- </dd>
- <dt><code>vect_strided_wide</code></dt>
- <dd><p>Target supports vector interleaving and extract even/odd for wide
- element types.
- </p>
- </dd>
- <dt><code>vect_perm</code></dt>
- <dd><p>Target supports vector permutation.
- </p>
- </dd>
- <dt><code>vect_perm_byte</code></dt>
- <dd><p>Target supports permutation of vectors with 8-bit elements.
- </p>
- </dd>
- <dt><code>vect_perm_short</code></dt>
- <dd><p>Target supports permutation of vectors with 16-bit elements.
- </p>
- </dd>
- <dt><code>vect_perm3_byte</code></dt>
- <dd><p>Target supports permutation of vectors with 8-bit elements, and for the
- default vector length it is possible to permute:
- </p><div class="example">
- <pre class="example">{ a0, a1, a2, b0, b1, b2, … }
- </pre></div>
- <p>to:
- </p><div class="example">
- <pre class="example">{ a0, a0, a0, b0, b0, b0, … }
- { a1, a1, a1, b1, b1, b1, … }
- { a2, a2, a2, b2, b2, b2, … }
- </pre></div>
- <p>using only two-vector permutes, regardless of how long the sequence is.
- </p>
- </dd>
- <dt><code>vect_perm3_int</code></dt>
- <dd><p>Like <code>vect_perm3_byte</code>, but for 32-bit elements.
- </p>
- </dd>
- <dt><code>vect_perm3_short</code></dt>
- <dd><p>Like <code>vect_perm3_byte</code>, but for 16-bit elements.
- </p>
- </dd>
- <dt><code>vect_shift</code></dt>
- <dd><p>Target supports a hardware vector shift operation.
- </p>
- </dd>
- <dt><code>vect_unaligned_possible</code></dt>
- <dd><p>Target prefers vectors to have an alignment greater than element
- alignment, but also allows unaligned vector accesses in some
- circumstances.
- </p>
- </dd>
- <dt><code>vect_variable_length</code></dt>
- <dd><p>Target has variable-length vectors.
- </p>
- </dd>
- <dt><code>vect_widen_sum_hi_to_si</code></dt>
- <dd><p>Target supports a vector widening summation of <code>short</code> operands
- into <code>int</code> results, or can promote (unpack) from <code>short</code>
- to <code>int</code>.
- </p>
- </dd>
- <dt><code>vect_widen_sum_qi_to_hi</code></dt>
- <dd><p>Target supports a vector widening summation of <code>char</code> operands
- into <code>short</code> results, or can promote (unpack) from <code>char</code>
- to <code>short</code>.
- </p>
- </dd>
- <dt><code>vect_widen_sum_qi_to_si</code></dt>
- <dd><p>Target supports a vector widening summation of <code>char</code> operands
- into <code>int</code> results.
- </p>
- </dd>
- <dt><code>vect_widen_mult_qi_to_hi</code></dt>
- <dd><p>Target supports a vector widening multiplication of <code>char</code> operands
- into <code>short</code> results, or can promote (unpack) from <code>char</code> to
- <code>short</code> and perform non-widening multiplication of <code>short</code>.
- </p>
- </dd>
- <dt><code>vect_widen_mult_hi_to_si</code></dt>
- <dd><p>Target supports a vector widening multiplication of <code>short</code> operands
- into <code>int</code> results, or can promote (unpack) from <code>short</code> to
- <code>int</code> and perform non-widening multiplication of <code>int</code>.
- </p>
- </dd>
- <dt><code>vect_widen_mult_si_to_di_pattern</code></dt>
- <dd><p>Target supports a vector widening multiplication of <code>int</code> operands
- into <code>long</code> results.
- </p>
- </dd>
- <dt><code>vect_sdot_qi</code></dt>
- <dd><p>Target supports a vector dot-product of <code>signed char</code>.
- </p>
- </dd>
- <dt><code>vect_udot_qi</code></dt>
- <dd><p>Target supports a vector dot-product of <code>unsigned char</code>.
- </p>
- </dd>
- <dt><code>vect_sdot_hi</code></dt>
- <dd><p>Target supports a vector dot-product of <code>signed short</code>.
- </p>
- </dd>
- <dt><code>vect_udot_hi</code></dt>
- <dd><p>Target supports a vector dot-product of <code>unsigned short</code>.
- </p>
- </dd>
- <dt><code>vect_pack_trunc</code></dt>
- <dd><p>Target supports a vector demotion (packing) of <code>short</code> to <code>char</code>
- and from <code>int</code> to <code>short</code> using modulo arithmetic.
- </p>
- </dd>
- <dt><code>vect_unpack</code></dt>
- <dd><p>Target supports a vector promotion (unpacking) of <code>char</code> to <code>short</code>
- and from <code>char</code> to <code>int</code>.
- </p>
- </dd>
- <dt><code>vect_intfloat_cvt</code></dt>
- <dd><p>Target supports conversion from <code>signed int</code> to <code>float</code>.
- </p>
- </dd>
- <dt><code>vect_uintfloat_cvt</code></dt>
- <dd><p>Target supports conversion from <code>unsigned int</code> to <code>float</code>.
- </p>
- </dd>
- <dt><code>vect_floatint_cvt</code></dt>
- <dd><p>Target supports conversion from <code>float</code> to <code>signed int</code>.
- </p>
- </dd>
- <dt><code>vect_floatuint_cvt</code></dt>
- <dd><p>Target supports conversion from <code>float</code> to <code>unsigned int</code>.
- </p>
- </dd>
- <dt><code>vect_intdouble_cvt</code></dt>
- <dd><p>Target supports conversion from <code>signed int</code> to <code>double</code>.
- </p>
- </dd>
- <dt><code>vect_doubleint_cvt</code></dt>
- <dd><p>Target supports conversion from <code>double</code> to <code>signed int</code>.
- </p>
- </dd>
- <dt><code>vect_max_reduc</code></dt>
- <dd><p>Target supports max reduction for vectors.
- </p>
- </dd>
- <dt><code>vect_sizes_16B_8B</code></dt>
- <dd><p>Target supports 16- and 8-bytes vectors.
- </p>
- </dd>
- <dt><code>vect_sizes_32B_16B</code></dt>
- <dd><p>Target supports 32- and 16-bytes vectors.
- </p>
- </dd>
- <dt><code>vect_logical_reduc</code></dt>
- <dd><p>Target supports AND, IOR and XOR reduction on vectors.
- </p>
- </dd>
- <dt><code>vect_fold_extract_last</code></dt>
- <dd><p>Target supports the <code>fold_extract_last</code> optab.
- </p></dd>
- </dl>
-
- <a name="Thread-Local-Storage-attributes"></a>
- <h4 class="subsubsection">7.2.3.5 Thread Local Storage attributes</h4>
-
- <dl compact="compact">
- <dt><code>tls</code></dt>
- <dd><p>Target supports thread-local storage.
- </p>
- </dd>
- <dt><code>tls_native</code></dt>
- <dd><p>Target supports native (rather than emulated) thread-local storage.
- </p>
- </dd>
- <dt><code>tls_runtime</code></dt>
- <dd><p>Test system supports executing TLS executables.
- </p></dd>
- </dl>
-
- <a name="Decimal-floating-point-attributes"></a>
- <h4 class="subsubsection">7.2.3.6 Decimal floating point attributes</h4>
-
- <dl compact="compact">
- <dt><code>dfp</code></dt>
- <dd><p>Targets supports compiling decimal floating point extension to C.
- </p>
- </dd>
- <dt><code>dfp_nocache</code></dt>
- <dd><p>Including the options used to compile this particular test, the
- target supports compiling decimal floating point extension to C.
- </p>
- </dd>
- <dt><code>dfprt</code></dt>
- <dd><p>Test system can execute decimal floating point tests.
- </p>
- </dd>
- <dt><code>dfprt_nocache</code></dt>
- <dd><p>Including the options used to compile this particular test, the
- test system can execute decimal floating point tests.
- </p>
- </dd>
- <dt><code>hard_dfp</code></dt>
- <dd><p>Target generates decimal floating point instructions with current options.
- </p></dd>
- </dl>
-
- <a name="ARM_002dspecific-attributes"></a>
- <h4 class="subsubsection">7.2.3.7 ARM-specific attributes</h4>
-
- <dl compact="compact">
- <dt><code>arm32</code></dt>
- <dd><p>ARM target generates 32-bit code.
- </p>
- </dd>
- <dt><code>arm_little_endian</code></dt>
- <dd><p>ARM target that generates little-endian code.
- </p>
- </dd>
- <dt><code>arm_eabi</code></dt>
- <dd><p>ARM target adheres to the ABI for the ARM Architecture.
- </p>
- </dd>
- <dt><code>arm_fp_ok</code></dt>
- <dd><a name="arm_005ffp_005fok"></a><p>ARM target defines <code>__ARM_FP</code> using <code>-mfloat-abi=softfp</code> or
- equivalent options. Some multilibs may be incompatible with these
- options.
- </p>
- </dd>
- <dt><code>arm_fp_dp_ok</code></dt>
- <dd><a name="arm_005ffp_005fdp_005fok"></a><p>ARM target defines <code>__ARM_FP</code> with double-precision support using
- <code>-mfloat-abi=softfp</code> or equivalent options. Some multilibs may
- be incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_hf_eabi</code></dt>
- <dd><p>ARM target adheres to the VFP and Advanced SIMD Register Arguments
- variant of the ABI for the ARM Architecture (as selected with
- <code>-mfloat-abi=hard</code>).
- </p>
- </dd>
- <dt><code>arm_softfloat</code></dt>
- <dd><p>ARM target uses the soft-float ABI with no floating-point instructions
- used whatsoever (as selected with <code>-mfloat-abi=soft</code>).
- </p>
- </dd>
- <dt><code>arm_hard_vfp_ok</code></dt>
- <dd><p>ARM target supports <code>-mfpu=vfp -mfloat-abi=hard</code>.
- Some multilibs may be incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_iwmmxt_ok</code></dt>
- <dd><p>ARM target supports <code>-mcpu=iwmmxt</code>.
- Some multilibs may be incompatible with this option.
- </p>
- </dd>
- <dt><code>arm_neon</code></dt>
- <dd><p>ARM target supports generating NEON instructions.
- </p>
- </dd>
- <dt><code>arm_tune_string_ops_prefer_neon</code></dt>
- <dd><p>Test CPU tune supports inlining string operations with NEON instructions.
- </p>
- </dd>
- <dt><code>arm_neon_hw</code></dt>
- <dd><p>Test system supports executing NEON instructions.
- </p>
- </dd>
- <dt><code>arm_neonv2_hw</code></dt>
- <dd><p>Test system supports executing NEON v2 instructions.
- </p>
- </dd>
- <dt><code>arm_neon_ok</code></dt>
- <dd><a name="arm_005fneon_005fok"></a><p>ARM Target supports <code>-mfpu=neon -mfloat-abi=softfp</code> or compatible
- options. Some multilibs may be incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_neon_ok_no_float_abi</code></dt>
- <dd><a name="arm_005fneon_005fok_005fno_005ffloat_005fabi"></a><p>ARM Target supports NEON with <code>-mfpu=neon</code>, but without any
- -mfloat-abi= option. Some multilibs may be incompatible with this
- option.
- </p>
- </dd>
- <dt><code>arm_neonv2_ok</code></dt>
- <dd><a name="arm_005fneonv2_005fok"></a><p>ARM Target supports <code>-mfpu=neon-vfpv4 -mfloat-abi=softfp</code> or compatible
- options. Some multilibs may be incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_fp16_ok</code></dt>
- <dd><a name="arm_005ffp16_005fok"></a><p>Target 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.
- </p>
- </dd>
- <dt><code>arm_fp16_hw</code></dt>
- <dd><p>Target supports executing VFP half-precision floating-point
- instructions. This test is valid for ARM only.
- </p>
- </dd>
- <dt><code>arm_neon_fp16_ok</code></dt>
- <dd><a name="arm_005fneon_005ffp16_005fok"></a><p>ARM Target supports <code>-mfpu=neon-fp16 -mfloat-abi=softfp</code> or compatible
- options, including <code>-mfp16-format=ieee</code> if necessary to obtain the
- <code>__fp16</code> type. Some multilibs may be incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_neon_fp16_hw</code></dt>
- <dd><p>Test system supports executing Neon half-precision float instructions.
- (Implies previous.)
- </p>
- </dd>
- <dt><code>arm_fp16_alternative_ok</code></dt>
- <dd><p>ARM target supports the ARM FP16 alternative format. Some multilibs
- may be incompatible with the options needed.
- </p>
- </dd>
- <dt><code>arm_fp16_none_ok</code></dt>
- <dd><p>ARM target supports specifying none as the ARM FP16 format.
- </p>
- </dd>
- <dt><code>arm_thumb1_ok</code></dt>
- <dd><p>ARM target generates Thumb-1 code for <code>-mthumb</code>.
- </p>
- </dd>
- <dt><code>arm_thumb2_ok</code></dt>
- <dd><p>ARM target generates Thumb-2 code for <code>-mthumb</code>.
- </p>
- </dd>
- <dt><code>arm_nothumb</code></dt>
- <dd><p>ARM target that is not using Thumb.
- </p>
- </dd>
- <dt><code>arm_vfp_ok</code></dt>
- <dd><p>ARM target supports <code>-mfpu=vfp -mfloat-abi=softfp</code>.
- Some multilibs may be incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_vfp3_ok</code></dt>
- <dd><a name="arm_005fvfp3_005fok"></a><p>ARM target supports <code>-mfpu=vfp3 -mfloat-abi=softfp</code>.
- Some multilibs may be incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_arch_v8a_hard_ok</code></dt>
- <dd><a name="arm_005farch_005fv8a_005fhard_005fok"></a><p>The compiler is targeting <code>arm*-*-*</code> and can compile and assemble code
- using the options <code>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard</code>.
- This is not enough to guarantee that linking works.
- </p>
- </dd>
- <dt><code>arm_arch_v8a_hard_multilib</code></dt>
- <dd><p>The compiler is targeting <code>arm*-*-*</code> and can build programs using
- the options <code>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard</code>.
- The target can also run the resulting binaries.
- </p>
- </dd>
- <dt><code>arm_v8_vfp_ok</code></dt>
- <dd><p>ARM target supports <code>-mfpu=fp-armv8 -mfloat-abi=softfp</code>.
- Some multilibs may be incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_v8_neon_ok</code></dt>
- <dd><p>ARM target supports <code>-mfpu=neon-fp-armv8 -mfloat-abi=softfp</code>.
- Some multilibs may be incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_v8_1a_neon_ok</code></dt>
- <dd><a name="arm_005fv8_005f1a_005fneon_005fok"></a><p>ARM target supports options to generate ARMv8.1-A Adv.SIMD instructions.
- Some multilibs may be incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_v8_1a_neon_hw</code></dt>
- <dd><p>ARM target supports executing ARMv8.1-A Adv.SIMD instructions. Some
- multilibs may be incompatible with the options needed. Implies
- arm_v8_1a_neon_ok.
- </p>
- </dd>
- <dt><code>arm_acq_rel</code></dt>
- <dd><p>ARM target supports acquire-release instructions.
- </p>
- </dd>
- <dt><code>arm_v8_2a_fp16_scalar_ok</code></dt>
- <dd><a name="arm_005fv8_005f2a_005ffp16_005fscalar_005fok"></a><p>ARM target supports options to generate instructions for ARMv8.2-A and
- scalar instructions from the FP16 extension. Some multilibs may be
- incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_v8_2a_fp16_scalar_hw</code></dt>
- <dd><p>ARM target supports executing instructions for ARMv8.2-A and scalar
- instructions from the FP16 extension. Some multilibs may be
- incompatible with these options. Implies arm_v8_2a_fp16_neon_ok.
- </p>
- </dd>
- <dt><code>arm_v8_2a_fp16_neon_ok</code></dt>
- <dd><a name="arm_005fv8_005f2a_005ffp16_005fneon_005fok"></a><p>ARM target supports options to generate instructions from ARMv8.2-A with
- the FP16 extension. Some multilibs may be incompatible with these
- options. Implies arm_v8_2a_fp16_scalar_ok.
- </p>
- </dd>
- <dt><code>arm_v8_2a_fp16_neon_hw</code></dt>
- <dd><p>ARM target supports executing instructions from ARMv8.2-A 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.
- </p>
- </dd>
- <dt><code>arm_v8_2a_dotprod_neon_ok</code></dt>
- <dd><a name="arm_005fv8_005f2a_005fdotprod_005fneon_005fok"></a><p>ARM target supports options to generate instructions from ARMv8.2-A with
- the Dot Product extension. Some multilibs may be incompatible with these
- options.
- </p>
- </dd>
- <dt><code>arm_v8_2a_dotprod_neon_hw</code></dt>
- <dd><p>ARM target supports executing instructions from ARMv8.2-A with the Dot
- Product extension. Some multilibs may be incompatible with these options.
- Implies arm_v8_2a_dotprod_neon_ok.
- </p>
- </dd>
- <dt><code>arm_fp16fml_neon_ok</code></dt>
- <dd><a name="arm_005ffp16fml_005fneon_005fok"></a><p>ARM target supports extensions to generate the <code>VFMAL</code> and <code>VFMLS</code>
- half-precision floating-point instructions available from ARMv8.2-A and
- onwards. Some multilibs may be incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_v8_2a_bf16_neon_ok</code></dt>
- <dd><p>ARM target supports options to generate instructions from ARMv8.2-A with
- the BFloat16 extension (bf16). Some multilibs may be incompatible with these
- options.
- </p>
- </dd>
- <dt><code>arm_v8_2a_i8mm_ok</code></dt>
- <dd><p>ARM target supports options to generate instructions from ARMv8.2-A with
- the 8-Bit Integer Matrix Multiply extension (i8mm). Some multilibs may be
- incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_v8_1m_mve_ok</code></dt>
- <dd><p>ARM target supports options to generate instructions from ARMv8.1-M with
- the M-Profile Vector Extension (MVE). Some multilibs may be incompatible
- with these options.
- </p>
- </dd>
- <dt><code>arm_v8_1m_mve_fp_ok</code></dt>
- <dd><p>ARM target supports options to generate instructions from ARMv8.1-M with
- the Half-precision floating-point instructions (HP), Floating-point Extension
- (FP) along with M-Profile Vector Extension (MVE). Some multilibs may be
- incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_mve_hw</code></dt>
- <dd><p>Test system supports executing MVE instructions.
- </p>
- </dd>
- <dt><code>arm_v8m_main_cde</code></dt>
- <dd><p>ARM target supports options to generate instructions from ARMv8-M with
- the Custom Datapath Extension (CDE). Some multilibs may be incompatible
- with these options.
- </p>
- </dd>
- <dt><code>arm_v8m_main_cde_fp</code></dt>
- <dd><p>ARM target supports options to generate instructions from ARMv8-M with
- the Custom Datapath Extension (CDE) and floating-point (VFP).
- Some multilibs may be incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_v8_1m_main_cde_mve</code></dt>
- <dd><p>ARM target supports options to generate instructions from ARMv8.1-M with
- the Custom Datapath Extension (CDE) and M-Profile Vector Extension (MVE).
- Some multilibs may be incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_prefer_ldrd_strd</code></dt>
- <dd><p>ARM target prefers <code>LDRD</code> and <code>STRD</code> instructions over
- <code>LDM</code> and <code>STM</code> instructions.
- </p>
- </dd>
- <dt><code>arm_thumb1_movt_ok</code></dt>
- <dd><p>ARM target generates Thumb-1 code for <code>-mthumb</code> with <code>MOVW</code>
- and <code>MOVT</code> instructions available.
- </p>
- </dd>
- <dt><code>arm_thumb1_cbz_ok</code></dt>
- <dd><p>ARM target generates Thumb-1 code for <code>-mthumb</code> with
- <code>CBZ</code> and <code>CBNZ</code> instructions available.
- </p>
- </dd>
- <dt><code>arm_divmod_simode</code></dt>
- <dd><p>ARM target for which divmod transform is disabled, if it supports hardware
- div instruction.
- </p>
- </dd>
- <dt><code>arm_cmse_ok</code></dt>
- <dd><p>ARM target supports ARMv8-M Security Extensions, enabled by the <code>-mcmse</code>
- option.
- </p>
- </dd>
- <dt><code>arm_coproc1_ok</code></dt>
- <dd><a name="arm_005fcoproc1_005fok"></a><p>ARM target supports the following coprocessor instructions: <code>CDP</code>,
- <code>LDC</code>, <code>STC</code>, <code>MCR</code> and <code>MRC</code>.
- </p>
- </dd>
- <dt><code>arm_coproc2_ok</code></dt>
- <dd><a name="arm_005fcoproc2_005fok"></a><p>ARM target supports all the coprocessor instructions also listed as supported
- in <a href="#arm_005fcoproc1_005fok">arm_coproc1_ok</a> in addition to the following: <code>CDP2</code>, <code>LDC2</code>,
- <code>LDC2l</code>, <code>STC2</code>, <code>STC2l</code>, <code>MCR2</code> and <code>MRC2</code>.
- </p>
- </dd>
- <dt><code>arm_coproc3_ok</code></dt>
- <dd><a name="arm_005fcoproc3_005fok"></a><p>ARM target supports all the coprocessor instructions also listed as supported
- in <a href="#arm_005fcoproc2_005fok">arm_coproc2_ok</a> in addition the following: <code>MCRR</code> and <code>MRRC</code>.
- </p>
- </dd>
- <dt><code>arm_coproc4_ok</code></dt>
- <dd><p>ARM target supports all the coprocessor instructions also listed as supported
- in <a href="#arm_005fcoproc3_005fok">arm_coproc3_ok</a> in addition the following: <code>MCRR2</code> and <code>MRRC2</code>.
- </p>
- </dd>
- <dt><code>arm_simd32_ok</code></dt>
- <dd><a name="arm_005fsimd32_005fok"></a><p>ARM Target supports options suitable for accessing the SIMD32 intrinsics from
- <code>arm_acle.h</code>.
- Some multilibs may be incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_qbit_ok</code></dt>
- <dd><a name="arm_005fqbit_005fok"></a><p>ARM Target supports options suitable for accessing the Q-bit manipulation
- intrinsics from <code>arm_acle.h</code>.
- Some multilibs may be incompatible with these options.
- </p>
- </dd>
- <dt><code>arm_softfp_ok</code></dt>
- <dd><a name="arm_005fsoftfp_005fok"></a><p>ARM target supports the <code>-mfloat-abi=softfp</code> option.
- </p>
- </dd>
- <dt><code>arm_hard_ok</code></dt>
- <dd><a name="arm_005fhard_005fok"></a><p>ARM target supports the <code>-mfloat-abi=hard</code> option.
- </p>
- </dd>
- </dl>
-
- <a name="AArch64_002dspecific-attributes"></a>
- <h4 class="subsubsection">7.2.3.8 AArch64-specific attributes</h4>
-
- <dl compact="compact">
- <dt><code>aarch64_asm_<ext>_ok</code></dt>
- <dd><p>AArch64 assembler supports the architecture extension <code>ext</code> via the
- <code>.arch_extension</code> pseudo-op.
- </p></dd>
- <dt><code>aarch64_tiny</code></dt>
- <dd><p>AArch64 target which generates instruction sequences for tiny memory model.
- </p></dd>
- <dt><code>aarch64_small</code></dt>
- <dd><p>AArch64 target which generates instruction sequences for small memory model.
- </p></dd>
- <dt><code>aarch64_large</code></dt>
- <dd><p>AArch64 target which generates instruction sequences for large memory model.
- </p></dd>
- <dt><code>aarch64_little_endian</code></dt>
- <dd><p>AArch64 target which generates instruction sequences for little endian.
- </p></dd>
- <dt><code>aarch64_big_endian</code></dt>
- <dd><p>AArch64 target which generates instruction sequences for big endian.
- </p></dd>
- <dt><code>aarch64_small_fpic</code></dt>
- <dd><p>Binutils installed on test system supports relocation types required by -fpic
- for AArch64 small memory model.
- </p></dd>
- <dt><code>aarch64_sve_hw</code></dt>
- <dd><p>AArch64 target that is able to generate and execute SVE code (regardless of
- whether it does so by default).
- </p></dd>
- <dt><code>aarch64_sve128_hw</code></dt>
- <dt><code>aarch64_sve256_hw</code></dt>
- <dt><code>aarch64_sve512_hw</code></dt>
- <dt><code>aarch64_sve1024_hw</code></dt>
- <dt><code>aarch64_sve2048_hw</code></dt>
- <dd><p>Like <code>aarch64_sve_hw</code>, but also test for an exact hardware vector length.
- </p>
- </dd>
- <dt><code>aarch64_fjcvtzs_hw</code></dt>
- <dd><p>AArch64 target that is able to generate and execute armv8.3-a FJCVTZS
- instruction.
- </p></dd>
- </dl>
-
- <a name="MIPS_002dspecific-attributes"></a>
- <h4 class="subsubsection">7.2.3.9 MIPS-specific attributes</h4>
-
- <dl compact="compact">
- <dt><code>mips64</code></dt>
- <dd><p>MIPS target supports 64-bit instructions.
- </p>
- </dd>
- <dt><code>nomips16</code></dt>
- <dd><p>MIPS target does not produce MIPS16 code.
- </p>
- </dd>
- <dt><code>mips16_attribute</code></dt>
- <dd><p>MIPS target can generate MIPS16 code.
- </p>
- </dd>
- <dt><code>mips_loongson</code></dt>
- <dd><p>MIPS target is a Loongson-2E or -2F target using an ABI that supports
- the Loongson vector modes.
- </p>
- </dd>
- <dt><code>mips_msa</code></dt>
- <dd><p>MIPS target supports <code>-mmsa</code>, MIPS SIMD Architecture (MSA).
- </p>
- </dd>
- <dt><code>mips_newabi_large_long_double</code></dt>
- <dd><p>MIPS target supports <code>long double</code> larger than <code>double</code>
- when using the new ABI.
- </p>
- </dd>
- <dt><code>mpaired_single</code></dt>
- <dd><p>MIPS target supports <code>-mpaired-single</code>.
- </p></dd>
- </dl>
-
- <a name="PowerPC_002dspecific-attributes"></a>
- <h4 class="subsubsection">7.2.3.10 PowerPC-specific attributes</h4>
-
- <dl compact="compact">
- <dt><code>dfp_hw</code></dt>
- <dd><p>PowerPC target supports executing hardware DFP instructions.
- </p>
- </dd>
- <dt><code>p8vector_hw</code></dt>
- <dd><p>PowerPC target supports executing VSX instructions (ISA 2.07).
- </p>
- </dd>
- <dt><code>powerpc64</code></dt>
- <dd><p>Test system supports executing 64-bit instructions.
- </p>
- </dd>
- <dt><code>powerpc_altivec</code></dt>
- <dd><p>PowerPC target supports AltiVec.
- </p>
- </dd>
- <dt><code>powerpc_altivec_ok</code></dt>
- <dd><p>PowerPC target supports <code>-maltivec</code>.
- </p>
- </dd>
- <dt><code>powerpc_eabi_ok</code></dt>
- <dd><p>PowerPC target supports <code>-meabi</code>.
- </p>
- </dd>
- <dt><code>powerpc_elfv2</code></dt>
- <dd><p>PowerPC target supports <code>-mabi=elfv2</code>.
- </p>
- </dd>
- <dt><code>powerpc_fprs</code></dt>
- <dd><p>PowerPC target supports floating-point registers.
- </p>
- </dd>
- <dt><code>powerpc_hard_double</code></dt>
- <dd><p>PowerPC target supports hardware double-precision floating-point.
- </p>
- </dd>
- <dt><code>powerpc_htm_ok</code></dt>
- <dd><p>PowerPC target supports <code>-mhtm</code>
- </p>
- </dd>
- <dt><code>powerpc_p8vector_ok</code></dt>
- <dd><p>PowerPC target supports <code>-mpower8-vector</code>
- </p>
- </dd>
- <dt><code>powerpc_popcntb_ok</code></dt>
- <dd><p>PowerPC target supports the <code>popcntb</code> instruction, indicating
- that this target supports <code>-mcpu=power5</code>.
- </p>
- </dd>
- <dt><code>powerpc_ppu_ok</code></dt>
- <dd><p>PowerPC target supports <code>-mcpu=cell</code>.
- </p>
- </dd>
- <dt><code>powerpc_spe</code></dt>
- <dd><p>PowerPC target supports PowerPC SPE.
- </p>
- </dd>
- <dt><code>powerpc_spe_nocache</code></dt>
- <dd><p>Including the options used to compile this particular test, the
- PowerPC target supports PowerPC SPE.
- </p>
- </dd>
- <dt><code>powerpc_spu</code></dt>
- <dd><p>PowerPC target supports PowerPC SPU.
- </p>
- </dd>
- <dt><code>powerpc_vsx_ok</code></dt>
- <dd><p>PowerPC target supports <code>-mvsx</code>.
- </p>
- </dd>
- <dt><code>powerpc_405_nocache</code></dt>
- <dd><p>Including the options used to compile this particular test, the
- PowerPC target supports PowerPC 405.
- </p>
- </dd>
- <dt><code>ppc_recip_hw</code></dt>
- <dd><p>PowerPC target supports executing reciprocal estimate instructions.
- </p>
- </dd>
- <dt><code>vmx_hw</code></dt>
- <dd><p>PowerPC target supports executing AltiVec instructions.
- </p>
- </dd>
- <dt><code>vsx_hw</code></dt>
- <dd><p>PowerPC target supports executing VSX instructions (ISA 2.06).
- </p></dd>
- </dl>
-
- <a name="Other-hardware-attributes"></a>
- <h4 class="subsubsection">7.2.3.11 Other hardware attributes</h4>
-
- <dl compact="compact">
- <dt><code>autoincdec</code></dt>
- <dd><p>Target supports autoincrement/decrement addressing.
- </p>
- </dd>
- <dt><code>avx</code></dt>
- <dd><p>Target supports compiling <code>avx</code> instructions.
- </p>
- </dd>
- <dt><code>avx_runtime</code></dt>
- <dd><p>Target supports the execution of <code>avx</code> instructions.
- </p>
- </dd>
- <dt><code>avx2</code></dt>
- <dd><p>Target supports compiling <code>avx2</code> instructions.
- </p>
- </dd>
- <dt><code>avx2_runtime</code></dt>
- <dd><p>Target supports the execution of <code>avx2</code> instructions.
- </p>
- </dd>
- <dt><code>avx512f</code></dt>
- <dd><p>Target supports compiling <code>avx512f</code> instructions.
- </p>
- </dd>
- <dt><code>avx512f_runtime</code></dt>
- <dd><p>Target supports the execution of <code>avx512f</code> instructions.
- </p>
- </dd>
- <dt><code>avx512vp2intersect</code></dt>
- <dd><p>Target supports the execution of <code>avx512vp2intersect</code> instructions.
- </p>
- </dd>
- <dt><code>cell_hw</code></dt>
- <dd><p>Test system can execute AltiVec and Cell PPU instructions.
- </p>
- </dd>
- <dt><code>coldfire_fpu</code></dt>
- <dd><p>Target uses a ColdFire FPU.
- </p>
- </dd>
- <dt><code>divmod</code></dt>
- <dd><p>Target supporting hardware divmod insn or divmod libcall.
- </p>
- </dd>
- <dt><code>divmod_simode</code></dt>
- <dd><p>Target supporting hardware divmod insn or divmod libcall for SImode.
- </p>
- </dd>
- <dt><code>hard_float</code></dt>
- <dd><p>Target supports FPU instructions.
- </p>
- </dd>
- <dt><code>non_strict_align</code></dt>
- <dd><p>Target does not require strict alignment.
- </p>
- </dd>
- <dt><code>pie_copyreloc</code></dt>
- <dd><p>The x86-64 target linker supports PIE with copy reloc.
- </p>
- </dd>
- <dt><code>rdrand</code></dt>
- <dd><p>Target supports x86 <code>rdrand</code> instruction.
- </p>
- </dd>
- <dt><code>sqrt_insn</code></dt>
- <dd><p>Target has a square root instruction that the compiler can generate.
- </p>
- </dd>
- <dt><code>sse</code></dt>
- <dd><p>Target supports compiling <code>sse</code> instructions.
- </p>
- </dd>
- <dt><code>sse_runtime</code></dt>
- <dd><p>Target supports the execution of <code>sse</code> instructions.
- </p>
- </dd>
- <dt><code>sse2</code></dt>
- <dd><p>Target supports compiling <code>sse2</code> instructions.
- </p>
- </dd>
- <dt><code>sse2_runtime</code></dt>
- <dd><p>Target supports the execution of <code>sse2</code> instructions.
- </p>
- </dd>
- <dt><code>sync_char_short</code></dt>
- <dd><p>Target supports atomic operations on <code>char</code> and <code>short</code>.
- </p>
- </dd>
- <dt><code>sync_int_long</code></dt>
- <dd><p>Target supports atomic operations on <code>int</code> and <code>long</code>.
- </p>
- </dd>
- <dt><code>ultrasparc_hw</code></dt>
- <dd><p>Test environment appears to run executables on a simulator that
- accepts only <code>EM_SPARC</code> executables and chokes on <code>EM_SPARC32PLUS</code>
- or <code>EM_SPARCV9</code> executables.
- </p>
- </dd>
- <dt><code>vect_cmdline_needed</code></dt>
- <dd><p>Target requires a command line argument to enable a SIMD instruction set.
- </p>
- </dd>
- <dt><code>xorsign</code></dt>
- <dd><p>Target supports the xorsign optab expansion.
- </p>
- </dd>
- </dl>
-
- <a name="Environment-attributes"></a>
- <h4 class="subsubsection">7.2.3.12 Environment attributes</h4>
-
- <dl compact="compact">
- <dt><code>c</code></dt>
- <dd><p>The language for the compiler under test is C.
- </p>
- </dd>
- <dt><code>c++</code></dt>
- <dd><p>The language for the compiler under test is C++.
- </p>
- </dd>
- <dt><code>c99_runtime</code></dt>
- <dd><p>Target provides a full C99 runtime.
- </p>
- </dd>
- <dt><code>correct_iso_cpp_string_wchar_protos</code></dt>
- <dd><p>Target <code>string.h</code> and <code>wchar.h</code> headers provide C++ required
- overloads for <code>strchr</code> etc. functions.
- </p>
- </dd>
- <dt><code>d_runtime</code></dt>
- <dd><p>Target provides the D runtime.
- </p>
- </dd>
- <dt><code>d_runtime_has_std_library</code></dt>
- <dd><p>Target provides the D standard library (Phobos).
- </p>
- </dd>
- <dt><code>dummy_wcsftime</code></dt>
- <dd><p>Target uses a dummy <code>wcsftime</code> function that always returns zero.
- </p>
- </dd>
- <dt><code>fd_truncate</code></dt>
- <dd><p>Target can truncate a file from a file descriptor, as used by
- <samp>libgfortran/io/unix.c:fd_truncate</samp>; i.e. <code>ftruncate</code> or
- <code>chsize</code>.
- </p>
- </dd>
- <dt><code>fenv</code></dt>
- <dd><p>Target provides <samp>fenv.h</samp> include file.
- </p>
- </dd>
- <dt><code>fenv_exceptions</code></dt>
- <dd><p>Target supports <samp>fenv.h</samp> with all the standard IEEE exceptions
- and floating-point exceptions are raised by arithmetic operations.
- </p>
- </dd>
- <dt><code>fileio</code></dt>
- <dd><p>Target offers such file I/O library functions as <code>fopen</code>,
- <code>fclose</code>, <code>tmpnam</code>, and <code>remove</code>. This is a link-time
- requirement for the presence of the functions in the library; even if
- they fail at runtime, the requirement is still regarded as satisfied.
- </p>
- </dd>
- <dt><code>freestanding</code></dt>
- <dd><p>Target is ‘<samp>freestanding</samp>’ 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.
- </p>
- </dd>
- <dt><code>gettimeofday</code></dt>
- <dd><p>Target supports <code>gettimeofday</code>.
- </p>
- </dd>
- <dt><code>init_priority</code></dt>
- <dd><p>Target supports constructors with initialization priority arguments.
- </p>
- </dd>
- <dt><code>inttypes_types</code></dt>
- <dd><p>Target has the basic signed and unsigned types in <code>inttypes.h</code>.
- This is for tests that GCC’s notions of these types agree with those
- in the header, as some systems have only <code>inttypes.h</code>.
- </p>
- </dd>
- <dt><code>lax_strtofp</code></dt>
- <dd><p>Target might have errors of a few ULP in string to floating-point
- conversion functions and overflow is not always detected correctly by
- those functions.
- </p>
- </dd>
- <dt><code>mempcpy</code></dt>
- <dd><p>Target provides <code>mempcpy</code> function.
- </p>
- </dd>
- <dt><code>mmap</code></dt>
- <dd><p>Target supports <code>mmap</code>.
- </p>
- </dd>
- <dt><code>newlib</code></dt>
- <dd><p>Target supports Newlib.
- </p>
- </dd>
- <dt><code>newlib_nano_io</code></dt>
- <dd><p>GCC was configured with <code>--enable-newlib-nano-formatted-io</code>, which reduces
- the code size of Newlib formatted I/O functions.
- </p>
- </dd>
- <dt><code>pow10</code></dt>
- <dd><p>Target provides <code>pow10</code> function.
- </p>
- </dd>
- <dt><code>pthread</code></dt>
- <dd><p>Target can compile using <code>pthread.h</code> with no errors or warnings.
- </p>
- </dd>
- <dt><code>pthread_h</code></dt>
- <dd><p>Target has <code>pthread.h</code>.
- </p>
- </dd>
- <dt><code>run_expensive_tests</code></dt>
- <dd><p>Expensive testcases (usually those that consume excessive amounts of CPU
- time) should be run on this target. This can be enabled by setting the
- <code>GCC_TEST_RUN_EXPENSIVE</code> environment variable to a non-empty string.
- </p>
- </dd>
- <dt><code>simulator</code></dt>
- <dd><p>Test system runs executables on a simulator (i.e. slowly) rather than
- hardware (i.e. fast).
- </p>
- </dd>
- <dt><code>signal</code></dt>
- <dd><p>Target has <code>signal.h</code>.
- </p>
- </dd>
- <dt><code>stabs</code></dt>
- <dd><p>Target supports the stabs debugging format.
- </p>
- </dd>
- <dt><code>stdint_types</code></dt>
- <dd><p>Target has the basic signed and unsigned C types in <code>stdint.h</code>.
- This will be obsolete when GCC ensures a working <code>stdint.h</code> for
- all targets.
- </p>
- </dd>
- <dt><code>stpcpy</code></dt>
- <dd><p>Target provides <code>stpcpy</code> function.
- </p>
- </dd>
- <dt><code>trampolines</code></dt>
- <dd><p>Target supports trampolines.
- </p>
- </dd>
- <dt><code>uclibc</code></dt>
- <dd><p>Target supports uClibc.
- </p>
- </dd>
- <dt><code>unwrapped</code></dt>
- <dd><p>Target does not use a status wrapper.
- </p>
- </dd>
- <dt><code>vxworks_kernel</code></dt>
- <dd><p>Target is a VxWorks kernel.
- </p>
- </dd>
- <dt><code>vxworks_rtp</code></dt>
- <dd><p>Target is a VxWorks RTP.
- </p>
- </dd>
- <dt><code>wchar</code></dt>
- <dd><p>Target supports wide characters.
- </p></dd>
- </dl>
-
- <a name="Other-attributes"></a>
- <h4 class="subsubsection">7.2.3.13 Other attributes</h4>
-
- <dl compact="compact">
- <dt><code>automatic_stack_alignment</code></dt>
- <dd><p>Target supports automatic stack alignment.
- </p>
- </dd>
- <dt><code>branch_cost</code></dt>
- <dd><p>Target supports <samp>-branch-cost=N</samp>.
- </p>
- </dd>
- <dt><code>cxa_atexit</code></dt>
- <dd><p>Target uses <code>__cxa_atexit</code>.
- </p>
- </dd>
- <dt><code>default_packed</code></dt>
- <dd><p>Target has packed layout of structure members by default.
- </p>
- </dd>
- <dt><code>exceptions</code></dt>
- <dd><p>Target supports exceptions.
- </p>
- </dd>
- <dt><code>exceptions_enabled</code></dt>
- <dd><p>Target supports exceptions and they are enabled in the current
- testing configuration.
- </p>
- </dd>
- <dt><code>fgraphite</code></dt>
- <dd><p>Target supports Graphite optimizations.
- </p>
- </dd>
- <dt><code>fixed_point</code></dt>
- <dd><p>Target supports fixed-point extension to C.
- </p>
- </dd>
- <dt><code>fopenacc</code></dt>
- <dd><p>Target supports OpenACC via <samp>-fopenacc</samp>.
- </p>
- </dd>
- <dt><code>fopenmp</code></dt>
- <dd><p>Target supports OpenMP via <samp>-fopenmp</samp>.
- </p>
- </dd>
- <dt><code>fpic</code></dt>
- <dd><p>Target supports <samp>-fpic</samp> and <samp>-fPIC</samp>.
- </p>
- </dd>
- <dt><code>freorder</code></dt>
- <dd><p>Target supports <samp>-freorder-blocks-and-partition</samp>.
- </p>
- </dd>
- <dt><code>fstack_protector</code></dt>
- <dd><p>Target supports <samp>-fstack-protector</samp>.
- </p>
- </dd>
- <dt><code>gas</code></dt>
- <dd><p>Target uses GNU <code>as</code>.
- </p>
- </dd>
- <dt><code>gc_sections</code></dt>
- <dd><p>Target supports <samp>--gc-sections</samp>.
- </p>
- </dd>
- <dt><code>gld</code></dt>
- <dd><p>Target uses GNU <code>ld</code>.
- </p>
- </dd>
- <dt><code>keeps_null_pointer_checks</code></dt>
- <dd><p>Target keeps null pointer checks, either due to the use of
- <samp>-fno-delete-null-pointer-checks</samp> or hardwired into the target.
- </p>
- </dd>
- <dt><code>llvm_binutils</code></dt>
- <dd><p>Target is using an LLVM assembler and/or linker, instead of GNU Binutils.
- </p>
- </dd>
- <dt><code>lto</code></dt>
- <dd><p>Compiler has been configured to support link-time optimization (LTO).
- </p>
- </dd>
- <dt><code>lto_incremental</code></dt>
- <dd><p>Compiler and linker support link-time optimization relocatable linking
- with <samp>-r</samp> and <samp>-flto</samp> options.
- </p>
- </dd>
- <dt><code>naked_functions</code></dt>
- <dd><p>Target supports the <code>naked</code> function attribute.
- </p>
- </dd>
- <dt><code>named_sections</code></dt>
- <dd><p>Target supports named sections.
- </p>
- </dd>
- <dt><code>natural_alignment_32</code></dt>
- <dd><p>Target uses natural alignment (aligned to type size) for types of
- 32 bits or less.
- </p>
- </dd>
- <dt><code>target_natural_alignment_64</code></dt>
- <dd><p>Target uses natural alignment (aligned to type size) for types of
- 64 bits or less.
- </p>
- </dd>
- <dt><code>noinit</code></dt>
- <dd><p>Target supports the <code>noinit</code> variable attribute.
- </p>
- </dd>
- <dt><code>nonpic</code></dt>
- <dd><p>Target does not generate PIC by default.
- </p>
- </dd>
- <dt><code>offload_gcn</code></dt>
- <dd><p>Target has been configured for OpenACC/OpenMP offloading on AMD GCN.
- </p>
- </dd>
- <dt><code>pie_enabled</code></dt>
- <dd><p>Target generates PIE by default.
- </p>
- </dd>
- <dt><code>pcc_bitfield_type_matters</code></dt>
- <dd><p>Target defines <code>PCC_BITFIELD_TYPE_MATTERS</code>.
- </p>
- </dd>
- <dt><code>pe_aligned_commons</code></dt>
- <dd><p>Target supports <samp>-mpe-aligned-commons</samp>.
- </p>
- </dd>
- <dt><code>pie</code></dt>
- <dd><p>Target supports <samp>-pie</samp>, <samp>-fpie</samp> and <samp>-fPIE</samp>.
- </p>
- </dd>
- <dt><code>rdynamic</code></dt>
- <dd><p>Target supports <samp>-rdynamic</samp>.
- </p>
- </dd>
- <dt><code>scalar_all_fma</code></dt>
- <dd><p>Target supports all four fused multiply-add optabs for both <code>float</code>
- and <code>double</code>. These optabs are: <code>fma_optab</code>, <code>fms_optab</code>,
- <code>fnma_optab</code> and <code>fnms_optab</code>.
- </p>
- </dd>
- <dt><code>section_anchors</code></dt>
- <dd><p>Target supports section anchors.
- </p>
- </dd>
- <dt><code>short_enums</code></dt>
- <dd><p>Target defaults to short enums.
- </p>
- </dd>
- <dt><code>stack_size</code></dt>
- <dd><a name="stack_005fsize_005fet"></a><p>Target has limited stack size. The stack size limit can be obtained using the
- STACK_SIZE macro defined by <a href="Add-Options.html#stack_005fsize_005fao"><code>dg-add-options</code> feature
- <code>stack_size</code></a>.
- </p>
- </dd>
- <dt><code>static</code></dt>
- <dd><p>Target supports <samp>-static</samp>.
- </p>
- </dd>
- <dt><code>static_libgfortran</code></dt>
- <dd><p>Target supports statically linking ‘<samp>libgfortran</samp>’.
- </p>
- </dd>
- <dt><code>string_merging</code></dt>
- <dd><p>Target supports merging string constants at link time.
- </p>
- </dd>
- <dt><code>ucn</code></dt>
- <dd><p>Target supports compiling and assembling UCN.
- </p>
- </dd>
- <dt><code>ucn_nocache</code></dt>
- <dd><p>Including the options used to compile this particular test, the
- target supports compiling and assembling UCN.
- </p>
- </dd>
- <dt><code>unaligned_stack</code></dt>
- <dd><p>Target does not guarantee that its <code>STACK_BOUNDARY</code> is greater than
- or equal to the required vector alignment.
- </p>
- </dd>
- <dt><code>vector_alignment_reachable</code></dt>
- <dd><p>Vector alignment is reachable for types of 32 bits or less.
- </p>
- </dd>
- <dt><code>vector_alignment_reachable_for_64bit</code></dt>
- <dd><p>Vector alignment is reachable for types of 64 bits or less.
- </p>
- </dd>
- <dt><code>wchar_t_char16_t_compatible</code></dt>
- <dd><p>Target supports <code>wchar_t</code> that is compatible with <code>char16_t</code>.
- </p>
- </dd>
- <dt><code>wchar_t_char32_t_compatible</code></dt>
- <dd><p>Target supports <code>wchar_t</code> that is compatible with <code>char32_t</code>.
- </p>
- </dd>
- <dt><code>comdat_group</code></dt>
- <dd><p>Target uses comdat groups.
- </p>
- </dd>
- <dt><code>indirect_calls</code></dt>
- <dd><p>Target supports indirect calls, i.e. calls where the target is not
- constant.
- </p></dd>
- </dl>
-
- <a name="Local-to-tests-in-gcc_002etarget_002fi386"></a>
- <h4 class="subsubsection">7.2.3.14 Local to tests in <code>gcc.target/i386</code></h4>
-
- <dl compact="compact">
- <dt><code>3dnow</code></dt>
- <dd><p>Target supports compiling <code>3dnow</code> instructions.
- </p>
- </dd>
- <dt><code>aes</code></dt>
- <dd><p>Target supports compiling <code>aes</code> instructions.
- </p>
- </dd>
- <dt><code>fma4</code></dt>
- <dd><p>Target supports compiling <code>fma4</code> instructions.
- </p>
- </dd>
- <dt><code>mfentry</code></dt>
- <dd><p>Target supports the <code>-mfentry</code> option that alters the
- position of profiling calls such that they precede the prologue.
- </p>
- </dd>
- <dt><code>ms_hook_prologue</code></dt>
- <dd><p>Target supports attribute <code>ms_hook_prologue</code>.
- </p>
- </dd>
- <dt><code>pclmul</code></dt>
- <dd><p>Target supports compiling <code>pclmul</code> instructions.
- </p>
- </dd>
- <dt><code>sse3</code></dt>
- <dd><p>Target supports compiling <code>sse3</code> instructions.
- </p>
- </dd>
- <dt><code>sse4</code></dt>
- <dd><p>Target supports compiling <code>sse4</code> instructions.
- </p>
- </dd>
- <dt><code>sse4a</code></dt>
- <dd><p>Target supports compiling <code>sse4a</code> instructions.
- </p>
- </dd>
- <dt><code>ssse3</code></dt>
- <dd><p>Target supports compiling <code>ssse3</code> instructions.
- </p>
- </dd>
- <dt><code>vaes</code></dt>
- <dd><p>Target supports compiling <code>vaes</code> instructions.
- </p>
- </dd>
- <dt><code>vpclmul</code></dt>
- <dd><p>Target supports compiling <code>vpclmul</code> instructions.
- </p>
- </dd>
- <dt><code>xop</code></dt>
- <dd><p>Target supports compiling <code>xop</code> instructions.
- </p></dd>
- </dl>
-
- <a name="Local-to-tests-in-gcc_002etest_002dframework"></a>
- <h4 class="subsubsection">7.2.3.15 Local to tests in <code>gcc.test-framework</code></h4>
-
- <dl compact="compact">
- <dt><code>no</code></dt>
- <dd><p>Always returns 0.
- </p>
- </dd>
- <dt><code>yes</code></dt>
- <dd><p>Always returns 1.
- </p></dd>
- </dl>
-
- <hr>
- <div class="header">
- <p>
- Next: <a href="Add-Options.html#Add-Options" accesskey="n" rel="next">Add Options</a>, Previous: <a href="Selectors.html#Selectors" accesskey="p" rel="prev">Selectors</a>, Up: <a href="Test-Directives.html#Test-Directives" accesskey="u" rel="up">Test Directives</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
- </div>
-
-
-
- </body>
- </html>
|