You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1669 lines
54KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1988-2020 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation; with the
  7. Invariant Sections being "Funding Free Software", the Front-Cover
  8. Texts being (a) (see below), and with the Back-Cover Texts being (b)
  9. (see below). A copy of the license is included in the section entitled
  10. "GNU Free Documentation License".
  11. (a) The FSF's Front-Cover Text is:
  12. A GNU Manual
  13. (b) The FSF's Back-Cover Text is:
  14. You have freedom to copy and modify this GNU Manual, like GNU
  15. software. Copies published by the Free Software Foundation raise
  16. funds for GNU development. -->
  17. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <title>Effective-Target Keywords (GNU Compiler Collection (GCC) Internals)</title>
  21. <meta name="description" content="Effective-Target Keywords (GNU Compiler Collection (GCC) Internals)">
  22. <meta name="keywords" content="Effective-Target Keywords (GNU Compiler Collection (GCC) Internals)">
  23. <meta name="resource-type" content="document">
  24. <meta name="distribution" content="global">
  25. <meta name="Generator" content="makeinfo">
  26. <link href="index.html#Top" rel="start" title="Top">
  27. <link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
  28. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  29. <link href="Test-Directives.html#Test-Directives" rel="up" title="Test Directives">
  30. <link href="Add-Options.html#Add-Options" rel="next" title="Add Options">
  31. <link href="Selectors.html#Selectors" rel="prev" title="Selectors">
  32. <style type="text/css">
  33. <!--
  34. a.summary-letter {text-decoration: none}
  35. blockquote.indentedblock {margin-right: 0em}
  36. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  37. blockquote.smallquotation {font-size: smaller}
  38. div.display {margin-left: 3.2em}
  39. div.example {margin-left: 3.2em}
  40. div.lisp {margin-left: 3.2em}
  41. div.smalldisplay {margin-left: 3.2em}
  42. div.smallexample {margin-left: 3.2em}
  43. div.smalllisp {margin-left: 3.2em}
  44. kbd {font-style: oblique}
  45. pre.display {font-family: inherit}
  46. pre.format {font-family: inherit}
  47. pre.menu-comment {font-family: serif}
  48. pre.menu-preformatted {font-family: serif}
  49. pre.smalldisplay {font-family: inherit; font-size: smaller}
  50. pre.smallexample {font-size: smaller}
  51. pre.smallformat {font-family: inherit; font-size: smaller}
  52. pre.smalllisp {font-size: smaller}
  53. span.nolinebreak {white-space: nowrap}
  54. span.roman {font-family: initial; font-weight: normal}
  55. span.sansserif {font-family: sans-serif; font-weight: normal}
  56. ul.no-bullet {list-style: none}
  57. -->
  58. </style>
  59. </head>
  60. <body lang="en">
  61. <a name="Effective_002dTarget-Keywords"></a>
  62. <div class="header">
  63. <p>
  64. 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> &nbsp; [<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>
  65. </div>
  66. <hr>
  67. <a name="Keywords-describing-target-attributes"></a>
  68. <h4 class="subsection">7.2.3 Keywords describing target attributes</h4>
  69. <p>Effective-target keywords identify sets of targets that support
  70. particular functionality. They are used to limit tests to be run only
  71. for particular targets, or to specify that particular sets of targets
  72. are expected to fail some tests.
  73. </p>
  74. <p>Effective-target keywords are defined in <samp>lib/target-supports.exp</samp> in
  75. the GCC testsuite, with the exception of those that are documented as
  76. being local to a particular test directory.
  77. </p>
  78. <p>The &lsquo;<samp>effective target</samp>&rsquo; takes into account all of the compiler options
  79. with which the test will be compiled, including the multilib options.
  80. By convention, keywords ending in <code>_nocache</code> can also include options
  81. specified for the particular test in an earlier <code>dg-options</code> or
  82. <code>dg-add-options</code> directive.
  83. </p>
  84. <a name="Endianness"></a>
  85. <h4 class="subsubsection">7.2.3.1 Endianness</h4>
  86. <dl compact="compact">
  87. <dt><code>be</code></dt>
  88. <dd><p>Target uses big-endian memory order for multi-byte and multi-word data.
  89. </p>
  90. </dd>
  91. <dt><code>le</code></dt>
  92. <dd><p>Target uses little-endian memory order for multi-byte and multi-word data.
  93. </p></dd>
  94. </dl>
  95. <a name="Data-type-sizes"></a>
  96. <h4 class="subsubsection">7.2.3.2 Data type sizes</h4>
  97. <dl compact="compact">
  98. <dt><code>ilp32</code></dt>
  99. <dd><p>Target has 32-bit <code>int</code>, <code>long</code>, and pointers.
  100. </p>
  101. </dd>
  102. <dt><code>lp64</code></dt>
  103. <dd><p>Target has 32-bit <code>int</code>, 64-bit <code>long</code> and pointers.
  104. </p>
  105. </dd>
  106. <dt><code>llp64</code></dt>
  107. <dd><p>Target has 32-bit <code>int</code> and <code>long</code>, 64-bit <code>long long</code>
  108. and pointers.
  109. </p>
  110. </dd>
  111. <dt><code>double64</code></dt>
  112. <dd><p>Target has 64-bit <code>double</code>.
  113. </p>
  114. </dd>
  115. <dt><code>double64plus</code></dt>
  116. <dd><p>Target has <code>double</code> that is 64 bits or longer.
  117. </p>
  118. </dd>
  119. <dt><code>longdouble128</code></dt>
  120. <dd><p>Target has 128-bit <code>long double</code>.
  121. </p>
  122. </dd>
  123. <dt><code>int32plus</code></dt>
  124. <dd><p>Target has <code>int</code> that is at 32 bits or longer.
  125. </p>
  126. </dd>
  127. <dt><code>int16</code></dt>
  128. <dd><p>Target has <code>int</code> that is 16 bits or shorter.
  129. </p>
  130. </dd>
  131. <dt><code>longlong64</code></dt>
  132. <dd><p>Target has 64-bit <code>long long</code>.
  133. </p>
  134. </dd>
  135. <dt><code>long_neq_int</code></dt>
  136. <dd><p>Target has <code>int</code> and <code>long</code> with different sizes.
  137. </p>
  138. </dd>
  139. <dt><code>int_eq_float</code></dt>
  140. <dd><p>Target has <code>int</code> and <code>float</code> with the same size.
  141. </p>
  142. </dd>
  143. <dt><code>ptr_eq_long</code></dt>
  144. <dd><p>Target has pointers (<code>void *</code>) and <code>long</code> with the same size.
  145. </p>
  146. </dd>
  147. <dt><code>large_double</code></dt>
  148. <dd><p>Target supports <code>double</code> that is longer than <code>float</code>.
  149. </p>
  150. </dd>
  151. <dt><code>large_long_double</code></dt>
  152. <dd><p>Target supports <code>long double</code> that is longer than <code>double</code>.
  153. </p>
  154. </dd>
  155. <dt><code>ptr32plus</code></dt>
  156. <dd><p>Target has pointers that are 32 bits or longer.
  157. </p>
  158. </dd>
  159. <dt><code>size20plus</code></dt>
  160. <dd><p>Target has a 20-bit or larger address space, so at least supports
  161. 16-bit array and structure sizes.
  162. </p>
  163. </dd>
  164. <dt><code>size32plus</code></dt>
  165. <dd><p>Target has a 32-bit or larger address space, so at least supports
  166. 24-bit array and structure sizes.
  167. </p>
  168. </dd>
  169. <dt><code>4byte_wchar_t</code></dt>
  170. <dd><p>Target has <code>wchar_t</code> that is at least 4 bytes.
  171. </p>
  172. </dd>
  173. <dt><code>float<var>n</var></code></dt>
  174. <dd><p>Target has the <code>_Float<var>n</var></code> type.
  175. </p>
  176. </dd>
  177. <dt><code>float<var>n</var>x</code></dt>
  178. <dd><p>Target has the <code>_Float<var>n</var>x</code> type.
  179. </p>
  180. </dd>
  181. <dt><code>float<var>n</var>_runtime</code></dt>
  182. <dd><p>Target has the <code>_Float<var>n</var></code> type, including runtime support
  183. for any options added with <code>dg-add-options</code>.
  184. </p>
  185. </dd>
  186. <dt><code>float<var>n</var>x_runtime</code></dt>
  187. <dd><p>Target has the <code>_Float<var>n</var>x</code> type, including runtime support
  188. for any options added with <code>dg-add-options</code>.
  189. </p>
  190. </dd>
  191. <dt><code>floatn_nx_runtime</code></dt>
  192. <dd><p>Target has runtime support for any options added with
  193. <code>dg-add-options</code> for any <code>_Float<var>n</var></code> or
  194. <code>_Float<var>n</var>x</code> type.
  195. </p>
  196. </dd>
  197. <dt><code>inf</code></dt>
  198. <dd><p>Target supports floating point infinite (<code>inf</code>) for type
  199. <code>double</code>.
  200. </p></dd>
  201. </dl>
  202. <a name="Fortran_002dspecific-attributes"></a>
  203. <h4 class="subsubsection">7.2.3.3 Fortran-specific attributes</h4>
  204. <dl compact="compact">
  205. <dt><code>fortran_integer_16</code></dt>
  206. <dd><p>Target supports Fortran <code>integer</code> that is 16 bytes or longer.
  207. </p>
  208. </dd>
  209. <dt><code>fortran_real_10</code></dt>
  210. <dd><p>Target supports Fortran <code>real</code> that is 10 bytes or longer.
  211. </p>
  212. </dd>
  213. <dt><code>fortran_real_16</code></dt>
  214. <dd><p>Target supports Fortran <code>real</code> that is 16 bytes or longer.
  215. </p>
  216. </dd>
  217. <dt><code>fortran_large_int</code></dt>
  218. <dd><p>Target supports Fortran <code>integer</code> kinds larger than <code>integer(8)</code>.
  219. </p>
  220. </dd>
  221. <dt><code>fortran_large_real</code></dt>
  222. <dd><p>Target supports Fortran <code>real</code> kinds larger than <code>real(8)</code>.
  223. </p></dd>
  224. </dl>
  225. <a name="Vector_002dspecific-attributes"></a>
  226. <h4 class="subsubsection">7.2.3.4 Vector-specific attributes</h4>
  227. <dl compact="compact">
  228. <dt><code>vect_align_stack_vars</code></dt>
  229. <dd><p>The target&rsquo;s ABI allows stack variables to be aligned to the preferred
  230. vector alignment.
  231. </p>
  232. </dd>
  233. <dt><code>vect_avg_qi</code></dt>
  234. <dd><p>Target supports both signed and unsigned averaging operations on vectors
  235. of bytes.
  236. </p>
  237. </dd>
  238. <dt><code>vect_mulhrs_hi</code></dt>
  239. <dd><p>Target supports both signed and unsigned multiply-high-with-round-and-scale
  240. operations on vectors of half-words.
  241. </p>
  242. </dd>
  243. <dt><code>vect_sdiv_pow2_si</code></dt>
  244. <dd><p>Target supports signed division by constant power-of-2 operations
  245. on vectors of 4-byte integers.
  246. </p>
  247. </dd>
  248. <dt><code>vect_condition</code></dt>
  249. <dd><p>Target supports vector conditional operations.
  250. </p>
  251. </dd>
  252. <dt><code>vect_cond_mixed</code></dt>
  253. <dd><p>Target supports vector conditional operations where comparison operands
  254. have different type from the value operands.
  255. </p>
  256. </dd>
  257. <dt><code>vect_double</code></dt>
  258. <dd><p>Target supports hardware vectors of <code>double</code>.
  259. </p>
  260. </dd>
  261. <dt><code>vect_double_cond_arith</code></dt>
  262. <dd><p>Target supports conditional addition, subtraction, multiplication,
  263. division, minimum and maximum on vectors of <code>double</code>, via the
  264. <code>cond_</code> optabs.
  265. </p>
  266. </dd>
  267. <dt><code>vect_element_align_preferred</code></dt>
  268. <dd><p>The target&rsquo;s preferred vector alignment is the same as the element
  269. alignment.
  270. </p>
  271. </dd>
  272. <dt><code>vect_float</code></dt>
  273. <dd><p>Target supports hardware vectors of <code>float</code> when
  274. <samp>-funsafe-math-optimizations</samp> is in effect.
  275. </p>
  276. </dd>
  277. <dt><code>vect_float_strict</code></dt>
  278. <dd><p>Target supports hardware vectors of <code>float</code> when
  279. <samp>-funsafe-math-optimizations</samp> is not in effect.
  280. This implies <code>vect_float</code>.
  281. </p>
  282. </dd>
  283. <dt><code>vect_int</code></dt>
  284. <dd><p>Target supports hardware vectors of <code>int</code>.
  285. </p>
  286. </dd>
  287. <dt><code>vect_long</code></dt>
  288. <dd><p>Target supports hardware vectors of <code>long</code>.
  289. </p>
  290. </dd>
  291. <dt><code>vect_long_long</code></dt>
  292. <dd><p>Target supports hardware vectors of <code>long long</code>.
  293. </p>
  294. </dd>
  295. <dt><code>vect_check_ptrs</code></dt>
  296. <dd><p>Target supports the <code>check_raw_ptrs</code> and <code>check_war_ptrs</code>
  297. optabs on vectors.
  298. </p>
  299. </dd>
  300. <dt><code>vect_fully_masked</code></dt>
  301. <dd><p>Target supports fully-masked (also known as fully-predicated) loops,
  302. so that vector loops can handle partial as well as full vectors.
  303. </p>
  304. </dd>
  305. <dt><code>vect_masked_store</code></dt>
  306. <dd><p>Target supports vector masked stores.
  307. </p>
  308. </dd>
  309. <dt><code>vect_scatter_store</code></dt>
  310. <dd><p>Target supports vector scatter stores.
  311. </p>
  312. </dd>
  313. <dt><code>vect_aligned_arrays</code></dt>
  314. <dd><p>Target aligns arrays to vector alignment boundary.
  315. </p>
  316. </dd>
  317. <dt><code>vect_hw_misalign</code></dt>
  318. <dd><p>Target supports a vector misalign access.
  319. </p>
  320. </dd>
  321. <dt><code>vect_no_align</code></dt>
  322. <dd><p>Target does not support a vector alignment mechanism.
  323. </p>
  324. </dd>
  325. <dt><code>vect_peeling_profitable</code></dt>
  326. <dd><p>Target might require to peel loops for alignment purposes.
  327. </p>
  328. </dd>
  329. <dt><code>vect_no_int_min_max</code></dt>
  330. <dd><p>Target does not support a vector min and max instruction on <code>int</code>.
  331. </p>
  332. </dd>
  333. <dt><code>vect_no_int_add</code></dt>
  334. <dd><p>Target does not support a vector add instruction on <code>int</code>.
  335. </p>
  336. </dd>
  337. <dt><code>vect_no_bitwise</code></dt>
  338. <dd><p>Target does not support vector bitwise instructions.
  339. </p>
  340. </dd>
  341. <dt><code>vect_bool_cmp</code></dt>
  342. <dd><p>Target supports comparison of <code>bool</code> vectors for at least one
  343. vector length.
  344. </p>
  345. </dd>
  346. <dt><code>vect_char_add</code></dt>
  347. <dd><p>Target supports addition of <code>char</code> vectors for at least one
  348. vector length.
  349. </p>
  350. </dd>
  351. <dt><code>vect_char_mult</code></dt>
  352. <dd><p>Target supports <code>vector char</code> multiplication.
  353. </p>
  354. </dd>
  355. <dt><code>vect_short_mult</code></dt>
  356. <dd><p>Target supports <code>vector short</code> multiplication.
  357. </p>
  358. </dd>
  359. <dt><code>vect_int_mult</code></dt>
  360. <dd><p>Target supports <code>vector int</code> multiplication.
  361. </p>
  362. </dd>
  363. <dt><code>vect_long_mult</code></dt>
  364. <dd><p>Target supports 64 bit <code>vector long</code> multiplication.
  365. </p>
  366. </dd>
  367. <dt><code>vect_extract_even_odd</code></dt>
  368. <dd><p>Target supports vector even/odd element extraction.
  369. </p>
  370. </dd>
  371. <dt><code>vect_extract_even_odd_wide</code></dt>
  372. <dd><p>Target supports vector even/odd element extraction of vectors with elements
  373. <code>SImode</code> or larger.
  374. </p>
  375. </dd>
  376. <dt><code>vect_interleave</code></dt>
  377. <dd><p>Target supports vector interleaving.
  378. </p>
  379. </dd>
  380. <dt><code>vect_strided</code></dt>
  381. <dd><p>Target supports vector interleaving and extract even/odd.
  382. </p>
  383. </dd>
  384. <dt><code>vect_strided_wide</code></dt>
  385. <dd><p>Target supports vector interleaving and extract even/odd for wide
  386. element types.
  387. </p>
  388. </dd>
  389. <dt><code>vect_perm</code></dt>
  390. <dd><p>Target supports vector permutation.
  391. </p>
  392. </dd>
  393. <dt><code>vect_perm_byte</code></dt>
  394. <dd><p>Target supports permutation of vectors with 8-bit elements.
  395. </p>
  396. </dd>
  397. <dt><code>vect_perm_short</code></dt>
  398. <dd><p>Target supports permutation of vectors with 16-bit elements.
  399. </p>
  400. </dd>
  401. <dt><code>vect_perm3_byte</code></dt>
  402. <dd><p>Target supports permutation of vectors with 8-bit elements, and for the
  403. default vector length it is possible to permute:
  404. </p><div class="example">
  405. <pre class="example">{ a0, a1, a2, b0, b1, b2, &hellip; }
  406. </pre></div>
  407. <p>to:
  408. </p><div class="example">
  409. <pre class="example">{ a0, a0, a0, b0, b0, b0, &hellip; }
  410. { a1, a1, a1, b1, b1, b1, &hellip; }
  411. { a2, a2, a2, b2, b2, b2, &hellip; }
  412. </pre></div>
  413. <p>using only two-vector permutes, regardless of how long the sequence is.
  414. </p>
  415. </dd>
  416. <dt><code>vect_perm3_int</code></dt>
  417. <dd><p>Like <code>vect_perm3_byte</code>, but for 32-bit elements.
  418. </p>
  419. </dd>
  420. <dt><code>vect_perm3_short</code></dt>
  421. <dd><p>Like <code>vect_perm3_byte</code>, but for 16-bit elements.
  422. </p>
  423. </dd>
  424. <dt><code>vect_shift</code></dt>
  425. <dd><p>Target supports a hardware vector shift operation.
  426. </p>
  427. </dd>
  428. <dt><code>vect_unaligned_possible</code></dt>
  429. <dd><p>Target prefers vectors to have an alignment greater than element
  430. alignment, but also allows unaligned vector accesses in some
  431. circumstances.
  432. </p>
  433. </dd>
  434. <dt><code>vect_variable_length</code></dt>
  435. <dd><p>Target has variable-length vectors.
  436. </p>
  437. </dd>
  438. <dt><code>vect_widen_sum_hi_to_si</code></dt>
  439. <dd><p>Target supports a vector widening summation of <code>short</code> operands
  440. into <code>int</code> results, or can promote (unpack) from <code>short</code>
  441. to <code>int</code>.
  442. </p>
  443. </dd>
  444. <dt><code>vect_widen_sum_qi_to_hi</code></dt>
  445. <dd><p>Target supports a vector widening summation of <code>char</code> operands
  446. into <code>short</code> results, or can promote (unpack) from <code>char</code>
  447. to <code>short</code>.
  448. </p>
  449. </dd>
  450. <dt><code>vect_widen_sum_qi_to_si</code></dt>
  451. <dd><p>Target supports a vector widening summation of <code>char</code> operands
  452. into <code>int</code> results.
  453. </p>
  454. </dd>
  455. <dt><code>vect_widen_mult_qi_to_hi</code></dt>
  456. <dd><p>Target supports a vector widening multiplication of <code>char</code> operands
  457. into <code>short</code> results, or can promote (unpack) from <code>char</code> to
  458. <code>short</code> and perform non-widening multiplication of <code>short</code>.
  459. </p>
  460. </dd>
  461. <dt><code>vect_widen_mult_hi_to_si</code></dt>
  462. <dd><p>Target supports a vector widening multiplication of <code>short</code> operands
  463. into <code>int</code> results, or can promote (unpack) from <code>short</code> to
  464. <code>int</code> and perform non-widening multiplication of <code>int</code>.
  465. </p>
  466. </dd>
  467. <dt><code>vect_widen_mult_si_to_di_pattern</code></dt>
  468. <dd><p>Target supports a vector widening multiplication of <code>int</code> operands
  469. into <code>long</code> results.
  470. </p>
  471. </dd>
  472. <dt><code>vect_sdot_qi</code></dt>
  473. <dd><p>Target supports a vector dot-product of <code>signed char</code>.
  474. </p>
  475. </dd>
  476. <dt><code>vect_udot_qi</code></dt>
  477. <dd><p>Target supports a vector dot-product of <code>unsigned char</code>.
  478. </p>
  479. </dd>
  480. <dt><code>vect_sdot_hi</code></dt>
  481. <dd><p>Target supports a vector dot-product of <code>signed short</code>.
  482. </p>
  483. </dd>
  484. <dt><code>vect_udot_hi</code></dt>
  485. <dd><p>Target supports a vector dot-product of <code>unsigned short</code>.
  486. </p>
  487. </dd>
  488. <dt><code>vect_pack_trunc</code></dt>
  489. <dd><p>Target supports a vector demotion (packing) of <code>short</code> to <code>char</code>
  490. and from <code>int</code> to <code>short</code> using modulo arithmetic.
  491. </p>
  492. </dd>
  493. <dt><code>vect_unpack</code></dt>
  494. <dd><p>Target supports a vector promotion (unpacking) of <code>char</code> to <code>short</code>
  495. and from <code>char</code> to <code>int</code>.
  496. </p>
  497. </dd>
  498. <dt><code>vect_intfloat_cvt</code></dt>
  499. <dd><p>Target supports conversion from <code>signed int</code> to <code>float</code>.
  500. </p>
  501. </dd>
  502. <dt><code>vect_uintfloat_cvt</code></dt>
  503. <dd><p>Target supports conversion from <code>unsigned int</code> to <code>float</code>.
  504. </p>
  505. </dd>
  506. <dt><code>vect_floatint_cvt</code></dt>
  507. <dd><p>Target supports conversion from <code>float</code> to <code>signed int</code>.
  508. </p>
  509. </dd>
  510. <dt><code>vect_floatuint_cvt</code></dt>
  511. <dd><p>Target supports conversion from <code>float</code> to <code>unsigned int</code>.
  512. </p>
  513. </dd>
  514. <dt><code>vect_intdouble_cvt</code></dt>
  515. <dd><p>Target supports conversion from <code>signed int</code> to <code>double</code>.
  516. </p>
  517. </dd>
  518. <dt><code>vect_doubleint_cvt</code></dt>
  519. <dd><p>Target supports conversion from <code>double</code> to <code>signed int</code>.
  520. </p>
  521. </dd>
  522. <dt><code>vect_max_reduc</code></dt>
  523. <dd><p>Target supports max reduction for vectors.
  524. </p>
  525. </dd>
  526. <dt><code>vect_sizes_16B_8B</code></dt>
  527. <dd><p>Target supports 16- and 8-bytes vectors.
  528. </p>
  529. </dd>
  530. <dt><code>vect_sizes_32B_16B</code></dt>
  531. <dd><p>Target supports 32- and 16-bytes vectors.
  532. </p>
  533. </dd>
  534. <dt><code>vect_logical_reduc</code></dt>
  535. <dd><p>Target supports AND, IOR and XOR reduction on vectors.
  536. </p>
  537. </dd>
  538. <dt><code>vect_fold_extract_last</code></dt>
  539. <dd><p>Target supports the <code>fold_extract_last</code> optab.
  540. </p></dd>
  541. </dl>
  542. <a name="Thread-Local-Storage-attributes"></a>
  543. <h4 class="subsubsection">7.2.3.5 Thread Local Storage attributes</h4>
  544. <dl compact="compact">
  545. <dt><code>tls</code></dt>
  546. <dd><p>Target supports thread-local storage.
  547. </p>
  548. </dd>
  549. <dt><code>tls_native</code></dt>
  550. <dd><p>Target supports native (rather than emulated) thread-local storage.
  551. </p>
  552. </dd>
  553. <dt><code>tls_runtime</code></dt>
  554. <dd><p>Test system supports executing TLS executables.
  555. </p></dd>
  556. </dl>
  557. <a name="Decimal-floating-point-attributes"></a>
  558. <h4 class="subsubsection">7.2.3.6 Decimal floating point attributes</h4>
  559. <dl compact="compact">
  560. <dt><code>dfp</code></dt>
  561. <dd><p>Targets supports compiling decimal floating point extension to C.
  562. </p>
  563. </dd>
  564. <dt><code>dfp_nocache</code></dt>
  565. <dd><p>Including the options used to compile this particular test, the
  566. target supports compiling decimal floating point extension to C.
  567. </p>
  568. </dd>
  569. <dt><code>dfprt</code></dt>
  570. <dd><p>Test system can execute decimal floating point tests.
  571. </p>
  572. </dd>
  573. <dt><code>dfprt_nocache</code></dt>
  574. <dd><p>Including the options used to compile this particular test, the
  575. test system can execute decimal floating point tests.
  576. </p>
  577. </dd>
  578. <dt><code>hard_dfp</code></dt>
  579. <dd><p>Target generates decimal floating point instructions with current options.
  580. </p></dd>
  581. </dl>
  582. <a name="ARM_002dspecific-attributes"></a>
  583. <h4 class="subsubsection">7.2.3.7 ARM-specific attributes</h4>
  584. <dl compact="compact">
  585. <dt><code>arm32</code></dt>
  586. <dd><p>ARM target generates 32-bit code.
  587. </p>
  588. </dd>
  589. <dt><code>arm_little_endian</code></dt>
  590. <dd><p>ARM target that generates little-endian code.
  591. </p>
  592. </dd>
  593. <dt><code>arm_eabi</code></dt>
  594. <dd><p>ARM target adheres to the ABI for the ARM Architecture.
  595. </p>
  596. </dd>
  597. <dt><code>arm_fp_ok</code></dt>
  598. <dd><a name="arm_005ffp_005fok"></a><p>ARM target defines <code>__ARM_FP</code> using <code>-mfloat-abi=softfp</code> or
  599. equivalent options. Some multilibs may be incompatible with these
  600. options.
  601. </p>
  602. </dd>
  603. <dt><code>arm_fp_dp_ok</code></dt>
  604. <dd><a name="arm_005ffp_005fdp_005fok"></a><p>ARM target defines <code>__ARM_FP</code> with double-precision support using
  605. <code>-mfloat-abi=softfp</code> or equivalent options. Some multilibs may
  606. be incompatible with these options.
  607. </p>
  608. </dd>
  609. <dt><code>arm_hf_eabi</code></dt>
  610. <dd><p>ARM target adheres to the VFP and Advanced SIMD Register Arguments
  611. variant of the ABI for the ARM Architecture (as selected with
  612. <code>-mfloat-abi=hard</code>).
  613. </p>
  614. </dd>
  615. <dt><code>arm_softfloat</code></dt>
  616. <dd><p>ARM target uses the soft-float ABI with no floating-point instructions
  617. used whatsoever (as selected with <code>-mfloat-abi=soft</code>).
  618. </p>
  619. </dd>
  620. <dt><code>arm_hard_vfp_ok</code></dt>
  621. <dd><p>ARM target supports <code>-mfpu=vfp -mfloat-abi=hard</code>.
  622. Some multilibs may be incompatible with these options.
  623. </p>
  624. </dd>
  625. <dt><code>arm_iwmmxt_ok</code></dt>
  626. <dd><p>ARM target supports <code>-mcpu=iwmmxt</code>.
  627. Some multilibs may be incompatible with this option.
  628. </p>
  629. </dd>
  630. <dt><code>arm_neon</code></dt>
  631. <dd><p>ARM target supports generating NEON instructions.
  632. </p>
  633. </dd>
  634. <dt><code>arm_tune_string_ops_prefer_neon</code></dt>
  635. <dd><p>Test CPU tune supports inlining string operations with NEON instructions.
  636. </p>
  637. </dd>
  638. <dt><code>arm_neon_hw</code></dt>
  639. <dd><p>Test system supports executing NEON instructions.
  640. </p>
  641. </dd>
  642. <dt><code>arm_neonv2_hw</code></dt>
  643. <dd><p>Test system supports executing NEON v2 instructions.
  644. </p>
  645. </dd>
  646. <dt><code>arm_neon_ok</code></dt>
  647. <dd><a name="arm_005fneon_005fok"></a><p>ARM Target supports <code>-mfpu=neon -mfloat-abi=softfp</code> or compatible
  648. options. Some multilibs may be incompatible with these options.
  649. </p>
  650. </dd>
  651. <dt><code>arm_neon_ok_no_float_abi</code></dt>
  652. <dd><a name="arm_005fneon_005fok_005fno_005ffloat_005fabi"></a><p>ARM Target supports NEON with <code>-mfpu=neon</code>, but without any
  653. -mfloat-abi= option. Some multilibs may be incompatible with this
  654. option.
  655. </p>
  656. </dd>
  657. <dt><code>arm_neonv2_ok</code></dt>
  658. <dd><a name="arm_005fneonv2_005fok"></a><p>ARM Target supports <code>-mfpu=neon-vfpv4 -mfloat-abi=softfp</code> or compatible
  659. options. Some multilibs may be incompatible with these options.
  660. </p>
  661. </dd>
  662. <dt><code>arm_fp16_ok</code></dt>
  663. <dd><a name="arm_005ffp16_005fok"></a><p>Target supports options to generate VFP half-precision floating-point
  664. instructions. Some multilibs may be incompatible with these
  665. options. This test is valid for ARM only.
  666. </p>
  667. </dd>
  668. <dt><code>arm_fp16_hw</code></dt>
  669. <dd><p>Target supports executing VFP half-precision floating-point
  670. instructions. This test is valid for ARM only.
  671. </p>
  672. </dd>
  673. <dt><code>arm_neon_fp16_ok</code></dt>
  674. <dd><a name="arm_005fneon_005ffp16_005fok"></a><p>ARM Target supports <code>-mfpu=neon-fp16 -mfloat-abi=softfp</code> or compatible
  675. options, including <code>-mfp16-format=ieee</code> if necessary to obtain the
  676. <code>__fp16</code> type. Some multilibs may be incompatible with these options.
  677. </p>
  678. </dd>
  679. <dt><code>arm_neon_fp16_hw</code></dt>
  680. <dd><p>Test system supports executing Neon half-precision float instructions.
  681. (Implies previous.)
  682. </p>
  683. </dd>
  684. <dt><code>arm_fp16_alternative_ok</code></dt>
  685. <dd><p>ARM target supports the ARM FP16 alternative format. Some multilibs
  686. may be incompatible with the options needed.
  687. </p>
  688. </dd>
  689. <dt><code>arm_fp16_none_ok</code></dt>
  690. <dd><p>ARM target supports specifying none as the ARM FP16 format.
  691. </p>
  692. </dd>
  693. <dt><code>arm_thumb1_ok</code></dt>
  694. <dd><p>ARM target generates Thumb-1 code for <code>-mthumb</code>.
  695. </p>
  696. </dd>
  697. <dt><code>arm_thumb2_ok</code></dt>
  698. <dd><p>ARM target generates Thumb-2 code for <code>-mthumb</code>.
  699. </p>
  700. </dd>
  701. <dt><code>arm_nothumb</code></dt>
  702. <dd><p>ARM target that is not using Thumb.
  703. </p>
  704. </dd>
  705. <dt><code>arm_vfp_ok</code></dt>
  706. <dd><p>ARM target supports <code>-mfpu=vfp -mfloat-abi=softfp</code>.
  707. Some multilibs may be incompatible with these options.
  708. </p>
  709. </dd>
  710. <dt><code>arm_vfp3_ok</code></dt>
  711. <dd><a name="arm_005fvfp3_005fok"></a><p>ARM target supports <code>-mfpu=vfp3 -mfloat-abi=softfp</code>.
  712. Some multilibs may be incompatible with these options.
  713. </p>
  714. </dd>
  715. <dt><code>arm_arch_v8a_hard_ok</code></dt>
  716. <dd><a name="arm_005farch_005fv8a_005fhard_005fok"></a><p>The compiler is targeting <code>arm*-*-*</code> and can compile and assemble code
  717. using the options <code>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard</code>.
  718. This is not enough to guarantee that linking works.
  719. </p>
  720. </dd>
  721. <dt><code>arm_arch_v8a_hard_multilib</code></dt>
  722. <dd><p>The compiler is targeting <code>arm*-*-*</code> and can build programs using
  723. the options <code>-march=armv8-a -mfpu=neon-fp-armv8 -mfloat-abi=hard</code>.
  724. The target can also run the resulting binaries.
  725. </p>
  726. </dd>
  727. <dt><code>arm_v8_vfp_ok</code></dt>
  728. <dd><p>ARM target supports <code>-mfpu=fp-armv8 -mfloat-abi=softfp</code>.
  729. Some multilibs may be incompatible with these options.
  730. </p>
  731. </dd>
  732. <dt><code>arm_v8_neon_ok</code></dt>
  733. <dd><p>ARM target supports <code>-mfpu=neon-fp-armv8 -mfloat-abi=softfp</code>.
  734. Some multilibs may be incompatible with these options.
  735. </p>
  736. </dd>
  737. <dt><code>arm_v8_1a_neon_ok</code></dt>
  738. <dd><a name="arm_005fv8_005f1a_005fneon_005fok"></a><p>ARM target supports options to generate ARMv8.1-A Adv.SIMD instructions.
  739. Some multilibs may be incompatible with these options.
  740. </p>
  741. </dd>
  742. <dt><code>arm_v8_1a_neon_hw</code></dt>
  743. <dd><p>ARM target supports executing ARMv8.1-A Adv.SIMD instructions. Some
  744. multilibs may be incompatible with the options needed. Implies
  745. arm_v8_1a_neon_ok.
  746. </p>
  747. </dd>
  748. <dt><code>arm_acq_rel</code></dt>
  749. <dd><p>ARM target supports acquire-release instructions.
  750. </p>
  751. </dd>
  752. <dt><code>arm_v8_2a_fp16_scalar_ok</code></dt>
  753. <dd><a name="arm_005fv8_005f2a_005ffp16_005fscalar_005fok"></a><p>ARM target supports options to generate instructions for ARMv8.2-A and
  754. scalar instructions from the FP16 extension. Some multilibs may be
  755. incompatible with these options.
  756. </p>
  757. </dd>
  758. <dt><code>arm_v8_2a_fp16_scalar_hw</code></dt>
  759. <dd><p>ARM target supports executing instructions for ARMv8.2-A and scalar
  760. instructions from the FP16 extension. Some multilibs may be
  761. incompatible with these options. Implies arm_v8_2a_fp16_neon_ok.
  762. </p>
  763. </dd>
  764. <dt><code>arm_v8_2a_fp16_neon_ok</code></dt>
  765. <dd><a name="arm_005fv8_005f2a_005ffp16_005fneon_005fok"></a><p>ARM target supports options to generate instructions from ARMv8.2-A with
  766. the FP16 extension. Some multilibs may be incompatible with these
  767. options. Implies arm_v8_2a_fp16_scalar_ok.
  768. </p>
  769. </dd>
  770. <dt><code>arm_v8_2a_fp16_neon_hw</code></dt>
  771. <dd><p>ARM target supports executing instructions from ARMv8.2-A with the FP16
  772. extension. Some multilibs may be incompatible with these options.
  773. Implies arm_v8_2a_fp16_neon_ok and arm_v8_2a_fp16_scalar_hw.
  774. </p>
  775. </dd>
  776. <dt><code>arm_v8_2a_dotprod_neon_ok</code></dt>
  777. <dd><a name="arm_005fv8_005f2a_005fdotprod_005fneon_005fok"></a><p>ARM target supports options to generate instructions from ARMv8.2-A with
  778. the Dot Product extension. Some multilibs may be incompatible with these
  779. options.
  780. </p>
  781. </dd>
  782. <dt><code>arm_v8_2a_dotprod_neon_hw</code></dt>
  783. <dd><p>ARM target supports executing instructions from ARMv8.2-A with the Dot
  784. Product extension. Some multilibs may be incompatible with these options.
  785. Implies arm_v8_2a_dotprod_neon_ok.
  786. </p>
  787. </dd>
  788. <dt><code>arm_fp16fml_neon_ok</code></dt>
  789. <dd><a name="arm_005ffp16fml_005fneon_005fok"></a><p>ARM target supports extensions to generate the <code>VFMAL</code> and <code>VFMLS</code>
  790. half-precision floating-point instructions available from ARMv8.2-A and
  791. onwards. Some multilibs may be incompatible with these options.
  792. </p>
  793. </dd>
  794. <dt><code>arm_v8_2a_bf16_neon_ok</code></dt>
  795. <dd><p>ARM target supports options to generate instructions from ARMv8.2-A with
  796. the BFloat16 extension (bf16). Some multilibs may be incompatible with these
  797. options.
  798. </p>
  799. </dd>
  800. <dt><code>arm_v8_2a_i8mm_ok</code></dt>
  801. <dd><p>ARM target supports options to generate instructions from ARMv8.2-A with
  802. the 8-Bit Integer Matrix Multiply extension (i8mm). Some multilibs may be
  803. incompatible with these options.
  804. </p>
  805. </dd>
  806. <dt><code>arm_v8_1m_mve_ok</code></dt>
  807. <dd><p>ARM target supports options to generate instructions from ARMv8.1-M with
  808. the M-Profile Vector Extension (MVE). Some multilibs may be incompatible
  809. with these options.
  810. </p>
  811. </dd>
  812. <dt><code>arm_v8_1m_mve_fp_ok</code></dt>
  813. <dd><p>ARM target supports options to generate instructions from ARMv8.1-M with
  814. the Half-precision floating-point instructions (HP), Floating-point Extension
  815. (FP) along with M-Profile Vector Extension (MVE). Some multilibs may be
  816. incompatible with these options.
  817. </p>
  818. </dd>
  819. <dt><code>arm_mve_hw</code></dt>
  820. <dd><p>Test system supports executing MVE instructions.
  821. </p>
  822. </dd>
  823. <dt><code>arm_v8m_main_cde</code></dt>
  824. <dd><p>ARM target supports options to generate instructions from ARMv8-M with
  825. the Custom Datapath Extension (CDE). Some multilibs may be incompatible
  826. with these options.
  827. </p>
  828. </dd>
  829. <dt><code>arm_v8m_main_cde_fp</code></dt>
  830. <dd><p>ARM target supports options to generate instructions from ARMv8-M with
  831. the Custom Datapath Extension (CDE) and floating-point (VFP).
  832. Some multilibs may be incompatible with these options.
  833. </p>
  834. </dd>
  835. <dt><code>arm_v8_1m_main_cde_mve</code></dt>
  836. <dd><p>ARM target supports options to generate instructions from ARMv8.1-M with
  837. the Custom Datapath Extension (CDE) and M-Profile Vector Extension (MVE).
  838. Some multilibs may be incompatible with these options.
  839. </p>
  840. </dd>
  841. <dt><code>arm_prefer_ldrd_strd</code></dt>
  842. <dd><p>ARM target prefers <code>LDRD</code> and <code>STRD</code> instructions over
  843. <code>LDM</code> and <code>STM</code> instructions.
  844. </p>
  845. </dd>
  846. <dt><code>arm_thumb1_movt_ok</code></dt>
  847. <dd><p>ARM target generates Thumb-1 code for <code>-mthumb</code> with <code>MOVW</code>
  848. and <code>MOVT</code> instructions available.
  849. </p>
  850. </dd>
  851. <dt><code>arm_thumb1_cbz_ok</code></dt>
  852. <dd><p>ARM target generates Thumb-1 code for <code>-mthumb</code> with
  853. <code>CBZ</code> and <code>CBNZ</code> instructions available.
  854. </p>
  855. </dd>
  856. <dt><code>arm_divmod_simode</code></dt>
  857. <dd><p>ARM target for which divmod transform is disabled, if it supports hardware
  858. div instruction.
  859. </p>
  860. </dd>
  861. <dt><code>arm_cmse_ok</code></dt>
  862. <dd><p>ARM target supports ARMv8-M Security Extensions, enabled by the <code>-mcmse</code>
  863. option.
  864. </p>
  865. </dd>
  866. <dt><code>arm_coproc1_ok</code></dt>
  867. <dd><a name="arm_005fcoproc1_005fok"></a><p>ARM target supports the following coprocessor instructions: <code>CDP</code>,
  868. <code>LDC</code>, <code>STC</code>, <code>MCR</code> and <code>MRC</code>.
  869. </p>
  870. </dd>
  871. <dt><code>arm_coproc2_ok</code></dt>
  872. <dd><a name="arm_005fcoproc2_005fok"></a><p>ARM target supports all the coprocessor instructions also listed as supported
  873. in <a href="#arm_005fcoproc1_005fok">arm_coproc1_ok</a> in addition to the following: <code>CDP2</code>, <code>LDC2</code>,
  874. <code>LDC2l</code>, <code>STC2</code>, <code>STC2l</code>, <code>MCR2</code> and <code>MRC2</code>.
  875. </p>
  876. </dd>
  877. <dt><code>arm_coproc3_ok</code></dt>
  878. <dd><a name="arm_005fcoproc3_005fok"></a><p>ARM target supports all the coprocessor instructions also listed as supported
  879. in <a href="#arm_005fcoproc2_005fok">arm_coproc2_ok</a> in addition the following: <code>MCRR</code> and <code>MRRC</code>.
  880. </p>
  881. </dd>
  882. <dt><code>arm_coproc4_ok</code></dt>
  883. <dd><p>ARM target supports all the coprocessor instructions also listed as supported
  884. in <a href="#arm_005fcoproc3_005fok">arm_coproc3_ok</a> in addition the following: <code>MCRR2</code> and <code>MRRC2</code>.
  885. </p>
  886. </dd>
  887. <dt><code>arm_simd32_ok</code></dt>
  888. <dd><a name="arm_005fsimd32_005fok"></a><p>ARM Target supports options suitable for accessing the SIMD32 intrinsics from
  889. <code>arm_acle.h</code>.
  890. Some multilibs may be incompatible with these options.
  891. </p>
  892. </dd>
  893. <dt><code>arm_qbit_ok</code></dt>
  894. <dd><a name="arm_005fqbit_005fok"></a><p>ARM Target supports options suitable for accessing the Q-bit manipulation
  895. intrinsics from <code>arm_acle.h</code>.
  896. Some multilibs may be incompatible with these options.
  897. </p>
  898. </dd>
  899. <dt><code>arm_softfp_ok</code></dt>
  900. <dd><a name="arm_005fsoftfp_005fok"></a><p>ARM target supports the <code>-mfloat-abi=softfp</code> option.
  901. </p>
  902. </dd>
  903. <dt><code>arm_hard_ok</code></dt>
  904. <dd><a name="arm_005fhard_005fok"></a><p>ARM target supports the <code>-mfloat-abi=hard</code> option.
  905. </p>
  906. </dd>
  907. </dl>
  908. <a name="AArch64_002dspecific-attributes"></a>
  909. <h4 class="subsubsection">7.2.3.8 AArch64-specific attributes</h4>
  910. <dl compact="compact">
  911. <dt><code>aarch64_asm_&lt;ext&gt;_ok</code></dt>
  912. <dd><p>AArch64 assembler supports the architecture extension <code>ext</code> via the
  913. <code>.arch_extension</code> pseudo-op.
  914. </p></dd>
  915. <dt><code>aarch64_tiny</code></dt>
  916. <dd><p>AArch64 target which generates instruction sequences for tiny memory model.
  917. </p></dd>
  918. <dt><code>aarch64_small</code></dt>
  919. <dd><p>AArch64 target which generates instruction sequences for small memory model.
  920. </p></dd>
  921. <dt><code>aarch64_large</code></dt>
  922. <dd><p>AArch64 target which generates instruction sequences for large memory model.
  923. </p></dd>
  924. <dt><code>aarch64_little_endian</code></dt>
  925. <dd><p>AArch64 target which generates instruction sequences for little endian.
  926. </p></dd>
  927. <dt><code>aarch64_big_endian</code></dt>
  928. <dd><p>AArch64 target which generates instruction sequences for big endian.
  929. </p></dd>
  930. <dt><code>aarch64_small_fpic</code></dt>
  931. <dd><p>Binutils installed on test system supports relocation types required by -fpic
  932. for AArch64 small memory model.
  933. </p></dd>
  934. <dt><code>aarch64_sve_hw</code></dt>
  935. <dd><p>AArch64 target that is able to generate and execute SVE code (regardless of
  936. whether it does so by default).
  937. </p></dd>
  938. <dt><code>aarch64_sve128_hw</code></dt>
  939. <dt><code>aarch64_sve256_hw</code></dt>
  940. <dt><code>aarch64_sve512_hw</code></dt>
  941. <dt><code>aarch64_sve1024_hw</code></dt>
  942. <dt><code>aarch64_sve2048_hw</code></dt>
  943. <dd><p>Like <code>aarch64_sve_hw</code>, but also test for an exact hardware vector length.
  944. </p>
  945. </dd>
  946. <dt><code>aarch64_fjcvtzs_hw</code></dt>
  947. <dd><p>AArch64 target that is able to generate and execute armv8.3-a FJCVTZS
  948. instruction.
  949. </p></dd>
  950. </dl>
  951. <a name="MIPS_002dspecific-attributes"></a>
  952. <h4 class="subsubsection">7.2.3.9 MIPS-specific attributes</h4>
  953. <dl compact="compact">
  954. <dt><code>mips64</code></dt>
  955. <dd><p>MIPS target supports 64-bit instructions.
  956. </p>
  957. </dd>
  958. <dt><code>nomips16</code></dt>
  959. <dd><p>MIPS target does not produce MIPS16 code.
  960. </p>
  961. </dd>
  962. <dt><code>mips16_attribute</code></dt>
  963. <dd><p>MIPS target can generate MIPS16 code.
  964. </p>
  965. </dd>
  966. <dt><code>mips_loongson</code></dt>
  967. <dd><p>MIPS target is a Loongson-2E or -2F target using an ABI that supports
  968. the Loongson vector modes.
  969. </p>
  970. </dd>
  971. <dt><code>mips_msa</code></dt>
  972. <dd><p>MIPS target supports <code>-mmsa</code>, MIPS SIMD Architecture (MSA).
  973. </p>
  974. </dd>
  975. <dt><code>mips_newabi_large_long_double</code></dt>
  976. <dd><p>MIPS target supports <code>long double</code> larger than <code>double</code>
  977. when using the new ABI.
  978. </p>
  979. </dd>
  980. <dt><code>mpaired_single</code></dt>
  981. <dd><p>MIPS target supports <code>-mpaired-single</code>.
  982. </p></dd>
  983. </dl>
  984. <a name="PowerPC_002dspecific-attributes"></a>
  985. <h4 class="subsubsection">7.2.3.10 PowerPC-specific attributes</h4>
  986. <dl compact="compact">
  987. <dt><code>dfp_hw</code></dt>
  988. <dd><p>PowerPC target supports executing hardware DFP instructions.
  989. </p>
  990. </dd>
  991. <dt><code>p8vector_hw</code></dt>
  992. <dd><p>PowerPC target supports executing VSX instructions (ISA 2.07).
  993. </p>
  994. </dd>
  995. <dt><code>powerpc64</code></dt>
  996. <dd><p>Test system supports executing 64-bit instructions.
  997. </p>
  998. </dd>
  999. <dt><code>powerpc_altivec</code></dt>
  1000. <dd><p>PowerPC target supports AltiVec.
  1001. </p>
  1002. </dd>
  1003. <dt><code>powerpc_altivec_ok</code></dt>
  1004. <dd><p>PowerPC target supports <code>-maltivec</code>.
  1005. </p>
  1006. </dd>
  1007. <dt><code>powerpc_eabi_ok</code></dt>
  1008. <dd><p>PowerPC target supports <code>-meabi</code>.
  1009. </p>
  1010. </dd>
  1011. <dt><code>powerpc_elfv2</code></dt>
  1012. <dd><p>PowerPC target supports <code>-mabi=elfv2</code>.
  1013. </p>
  1014. </dd>
  1015. <dt><code>powerpc_fprs</code></dt>
  1016. <dd><p>PowerPC target supports floating-point registers.
  1017. </p>
  1018. </dd>
  1019. <dt><code>powerpc_hard_double</code></dt>
  1020. <dd><p>PowerPC target supports hardware double-precision floating-point.
  1021. </p>
  1022. </dd>
  1023. <dt><code>powerpc_htm_ok</code></dt>
  1024. <dd><p>PowerPC target supports <code>-mhtm</code>
  1025. </p>
  1026. </dd>
  1027. <dt><code>powerpc_p8vector_ok</code></dt>
  1028. <dd><p>PowerPC target supports <code>-mpower8-vector</code>
  1029. </p>
  1030. </dd>
  1031. <dt><code>powerpc_popcntb_ok</code></dt>
  1032. <dd><p>PowerPC target supports the <code>popcntb</code> instruction, indicating
  1033. that this target supports <code>-mcpu=power5</code>.
  1034. </p>
  1035. </dd>
  1036. <dt><code>powerpc_ppu_ok</code></dt>
  1037. <dd><p>PowerPC target supports <code>-mcpu=cell</code>.
  1038. </p>
  1039. </dd>
  1040. <dt><code>powerpc_spe</code></dt>
  1041. <dd><p>PowerPC target supports PowerPC SPE.
  1042. </p>
  1043. </dd>
  1044. <dt><code>powerpc_spe_nocache</code></dt>
  1045. <dd><p>Including the options used to compile this particular test, the
  1046. PowerPC target supports PowerPC SPE.
  1047. </p>
  1048. </dd>
  1049. <dt><code>powerpc_spu</code></dt>
  1050. <dd><p>PowerPC target supports PowerPC SPU.
  1051. </p>
  1052. </dd>
  1053. <dt><code>powerpc_vsx_ok</code></dt>
  1054. <dd><p>PowerPC target supports <code>-mvsx</code>.
  1055. </p>
  1056. </dd>
  1057. <dt><code>powerpc_405_nocache</code></dt>
  1058. <dd><p>Including the options used to compile this particular test, the
  1059. PowerPC target supports PowerPC 405.
  1060. </p>
  1061. </dd>
  1062. <dt><code>ppc_recip_hw</code></dt>
  1063. <dd><p>PowerPC target supports executing reciprocal estimate instructions.
  1064. </p>
  1065. </dd>
  1066. <dt><code>vmx_hw</code></dt>
  1067. <dd><p>PowerPC target supports executing AltiVec instructions.
  1068. </p>
  1069. </dd>
  1070. <dt><code>vsx_hw</code></dt>
  1071. <dd><p>PowerPC target supports executing VSX instructions (ISA 2.06).
  1072. </p></dd>
  1073. </dl>
  1074. <a name="Other-hardware-attributes"></a>
  1075. <h4 class="subsubsection">7.2.3.11 Other hardware attributes</h4>
  1076. <dl compact="compact">
  1077. <dt><code>autoincdec</code></dt>
  1078. <dd><p>Target supports autoincrement/decrement addressing.
  1079. </p>
  1080. </dd>
  1081. <dt><code>avx</code></dt>
  1082. <dd><p>Target supports compiling <code>avx</code> instructions.
  1083. </p>
  1084. </dd>
  1085. <dt><code>avx_runtime</code></dt>
  1086. <dd><p>Target supports the execution of <code>avx</code> instructions.
  1087. </p>
  1088. </dd>
  1089. <dt><code>avx2</code></dt>
  1090. <dd><p>Target supports compiling <code>avx2</code> instructions.
  1091. </p>
  1092. </dd>
  1093. <dt><code>avx2_runtime</code></dt>
  1094. <dd><p>Target supports the execution of <code>avx2</code> instructions.
  1095. </p>
  1096. </dd>
  1097. <dt><code>avx512f</code></dt>
  1098. <dd><p>Target supports compiling <code>avx512f</code> instructions.
  1099. </p>
  1100. </dd>
  1101. <dt><code>avx512f_runtime</code></dt>
  1102. <dd><p>Target supports the execution of <code>avx512f</code> instructions.
  1103. </p>
  1104. </dd>
  1105. <dt><code>avx512vp2intersect</code></dt>
  1106. <dd><p>Target supports the execution of <code>avx512vp2intersect</code> instructions.
  1107. </p>
  1108. </dd>
  1109. <dt><code>cell_hw</code></dt>
  1110. <dd><p>Test system can execute AltiVec and Cell PPU instructions.
  1111. </p>
  1112. </dd>
  1113. <dt><code>coldfire_fpu</code></dt>
  1114. <dd><p>Target uses a ColdFire FPU.
  1115. </p>
  1116. </dd>
  1117. <dt><code>divmod</code></dt>
  1118. <dd><p>Target supporting hardware divmod insn or divmod libcall.
  1119. </p>
  1120. </dd>
  1121. <dt><code>divmod_simode</code></dt>
  1122. <dd><p>Target supporting hardware divmod insn or divmod libcall for SImode.
  1123. </p>
  1124. </dd>
  1125. <dt><code>hard_float</code></dt>
  1126. <dd><p>Target supports FPU instructions.
  1127. </p>
  1128. </dd>
  1129. <dt><code>non_strict_align</code></dt>
  1130. <dd><p>Target does not require strict alignment.
  1131. </p>
  1132. </dd>
  1133. <dt><code>pie_copyreloc</code></dt>
  1134. <dd><p>The x86-64 target linker supports PIE with copy reloc.
  1135. </p>
  1136. </dd>
  1137. <dt><code>rdrand</code></dt>
  1138. <dd><p>Target supports x86 <code>rdrand</code> instruction.
  1139. </p>
  1140. </dd>
  1141. <dt><code>sqrt_insn</code></dt>
  1142. <dd><p>Target has a square root instruction that the compiler can generate.
  1143. </p>
  1144. </dd>
  1145. <dt><code>sse</code></dt>
  1146. <dd><p>Target supports compiling <code>sse</code> instructions.
  1147. </p>
  1148. </dd>
  1149. <dt><code>sse_runtime</code></dt>
  1150. <dd><p>Target supports the execution of <code>sse</code> instructions.
  1151. </p>
  1152. </dd>
  1153. <dt><code>sse2</code></dt>
  1154. <dd><p>Target supports compiling <code>sse2</code> instructions.
  1155. </p>
  1156. </dd>
  1157. <dt><code>sse2_runtime</code></dt>
  1158. <dd><p>Target supports the execution of <code>sse2</code> instructions.
  1159. </p>
  1160. </dd>
  1161. <dt><code>sync_char_short</code></dt>
  1162. <dd><p>Target supports atomic operations on <code>char</code> and <code>short</code>.
  1163. </p>
  1164. </dd>
  1165. <dt><code>sync_int_long</code></dt>
  1166. <dd><p>Target supports atomic operations on <code>int</code> and <code>long</code>.
  1167. </p>
  1168. </dd>
  1169. <dt><code>ultrasparc_hw</code></dt>
  1170. <dd><p>Test environment appears to run executables on a simulator that
  1171. accepts only <code>EM_SPARC</code> executables and chokes on <code>EM_SPARC32PLUS</code>
  1172. or <code>EM_SPARCV9</code> executables.
  1173. </p>
  1174. </dd>
  1175. <dt><code>vect_cmdline_needed</code></dt>
  1176. <dd><p>Target requires a command line argument to enable a SIMD instruction set.
  1177. </p>
  1178. </dd>
  1179. <dt><code>xorsign</code></dt>
  1180. <dd><p>Target supports the xorsign optab expansion.
  1181. </p>
  1182. </dd>
  1183. </dl>
  1184. <a name="Environment-attributes"></a>
  1185. <h4 class="subsubsection">7.2.3.12 Environment attributes</h4>
  1186. <dl compact="compact">
  1187. <dt><code>c</code></dt>
  1188. <dd><p>The language for the compiler under test is C.
  1189. </p>
  1190. </dd>
  1191. <dt><code>c++</code></dt>
  1192. <dd><p>The language for the compiler under test is C++.
  1193. </p>
  1194. </dd>
  1195. <dt><code>c99_runtime</code></dt>
  1196. <dd><p>Target provides a full C99 runtime.
  1197. </p>
  1198. </dd>
  1199. <dt><code>correct_iso_cpp_string_wchar_protos</code></dt>
  1200. <dd><p>Target <code>string.h</code> and <code>wchar.h</code> headers provide C++ required
  1201. overloads for <code>strchr</code> etc. functions.
  1202. </p>
  1203. </dd>
  1204. <dt><code>d_runtime</code></dt>
  1205. <dd><p>Target provides the D runtime.
  1206. </p>
  1207. </dd>
  1208. <dt><code>d_runtime_has_std_library</code></dt>
  1209. <dd><p>Target provides the D standard library (Phobos).
  1210. </p>
  1211. </dd>
  1212. <dt><code>dummy_wcsftime</code></dt>
  1213. <dd><p>Target uses a dummy <code>wcsftime</code> function that always returns zero.
  1214. </p>
  1215. </dd>
  1216. <dt><code>fd_truncate</code></dt>
  1217. <dd><p>Target can truncate a file from a file descriptor, as used by
  1218. <samp>libgfortran/io/unix.c:fd_truncate</samp>; i.e. <code>ftruncate</code> or
  1219. <code>chsize</code>.
  1220. </p>
  1221. </dd>
  1222. <dt><code>fenv</code></dt>
  1223. <dd><p>Target provides <samp>fenv.h</samp> include file.
  1224. </p>
  1225. </dd>
  1226. <dt><code>fenv_exceptions</code></dt>
  1227. <dd><p>Target supports <samp>fenv.h</samp> with all the standard IEEE exceptions
  1228. and floating-point exceptions are raised by arithmetic operations.
  1229. </p>
  1230. </dd>
  1231. <dt><code>fileio</code></dt>
  1232. <dd><p>Target offers such file I/O library functions as <code>fopen</code>,
  1233. <code>fclose</code>, <code>tmpnam</code>, and <code>remove</code>. This is a link-time
  1234. requirement for the presence of the functions in the library; even if
  1235. they fail at runtime, the requirement is still regarded as satisfied.
  1236. </p>
  1237. </dd>
  1238. <dt><code>freestanding</code></dt>
  1239. <dd><p>Target is &lsquo;<samp>freestanding</samp>&rsquo; as defined in section 4 of the C99 standard.
  1240. Effectively, it is a target which supports no extra headers or libraries
  1241. other than what is considered essential.
  1242. </p>
  1243. </dd>
  1244. <dt><code>gettimeofday</code></dt>
  1245. <dd><p>Target supports <code>gettimeofday</code>.
  1246. </p>
  1247. </dd>
  1248. <dt><code>init_priority</code></dt>
  1249. <dd><p>Target supports constructors with initialization priority arguments.
  1250. </p>
  1251. </dd>
  1252. <dt><code>inttypes_types</code></dt>
  1253. <dd><p>Target has the basic signed and unsigned types in <code>inttypes.h</code>.
  1254. This is for tests that GCC&rsquo;s notions of these types agree with those
  1255. in the header, as some systems have only <code>inttypes.h</code>.
  1256. </p>
  1257. </dd>
  1258. <dt><code>lax_strtofp</code></dt>
  1259. <dd><p>Target might have errors of a few ULP in string to floating-point
  1260. conversion functions and overflow is not always detected correctly by
  1261. those functions.
  1262. </p>
  1263. </dd>
  1264. <dt><code>mempcpy</code></dt>
  1265. <dd><p>Target provides <code>mempcpy</code> function.
  1266. </p>
  1267. </dd>
  1268. <dt><code>mmap</code></dt>
  1269. <dd><p>Target supports <code>mmap</code>.
  1270. </p>
  1271. </dd>
  1272. <dt><code>newlib</code></dt>
  1273. <dd><p>Target supports Newlib.
  1274. </p>
  1275. </dd>
  1276. <dt><code>newlib_nano_io</code></dt>
  1277. <dd><p>GCC was configured with <code>--enable-newlib-nano-formatted-io</code>, which reduces
  1278. the code size of Newlib formatted I/O functions.
  1279. </p>
  1280. </dd>
  1281. <dt><code>pow10</code></dt>
  1282. <dd><p>Target provides <code>pow10</code> function.
  1283. </p>
  1284. </dd>
  1285. <dt><code>pthread</code></dt>
  1286. <dd><p>Target can compile using <code>pthread.h</code> with no errors or warnings.
  1287. </p>
  1288. </dd>
  1289. <dt><code>pthread_h</code></dt>
  1290. <dd><p>Target has <code>pthread.h</code>.
  1291. </p>
  1292. </dd>
  1293. <dt><code>run_expensive_tests</code></dt>
  1294. <dd><p>Expensive testcases (usually those that consume excessive amounts of CPU
  1295. time) should be run on this target. This can be enabled by setting the
  1296. <code>GCC_TEST_RUN_EXPENSIVE</code> environment variable to a non-empty string.
  1297. </p>
  1298. </dd>
  1299. <dt><code>simulator</code></dt>
  1300. <dd><p>Test system runs executables on a simulator (i.e. slowly) rather than
  1301. hardware (i.e. fast).
  1302. </p>
  1303. </dd>
  1304. <dt><code>signal</code></dt>
  1305. <dd><p>Target has <code>signal.h</code>.
  1306. </p>
  1307. </dd>
  1308. <dt><code>stabs</code></dt>
  1309. <dd><p>Target supports the stabs debugging format.
  1310. </p>
  1311. </dd>
  1312. <dt><code>stdint_types</code></dt>
  1313. <dd><p>Target has the basic signed and unsigned C types in <code>stdint.h</code>.
  1314. This will be obsolete when GCC ensures a working <code>stdint.h</code> for
  1315. all targets.
  1316. </p>
  1317. </dd>
  1318. <dt><code>stpcpy</code></dt>
  1319. <dd><p>Target provides <code>stpcpy</code> function.
  1320. </p>
  1321. </dd>
  1322. <dt><code>trampolines</code></dt>
  1323. <dd><p>Target supports trampolines.
  1324. </p>
  1325. </dd>
  1326. <dt><code>uclibc</code></dt>
  1327. <dd><p>Target supports uClibc.
  1328. </p>
  1329. </dd>
  1330. <dt><code>unwrapped</code></dt>
  1331. <dd><p>Target does not use a status wrapper.
  1332. </p>
  1333. </dd>
  1334. <dt><code>vxworks_kernel</code></dt>
  1335. <dd><p>Target is a VxWorks kernel.
  1336. </p>
  1337. </dd>
  1338. <dt><code>vxworks_rtp</code></dt>
  1339. <dd><p>Target is a VxWorks RTP.
  1340. </p>
  1341. </dd>
  1342. <dt><code>wchar</code></dt>
  1343. <dd><p>Target supports wide characters.
  1344. </p></dd>
  1345. </dl>
  1346. <a name="Other-attributes"></a>
  1347. <h4 class="subsubsection">7.2.3.13 Other attributes</h4>
  1348. <dl compact="compact">
  1349. <dt><code>automatic_stack_alignment</code></dt>
  1350. <dd><p>Target supports automatic stack alignment.
  1351. </p>
  1352. </dd>
  1353. <dt><code>branch_cost</code></dt>
  1354. <dd><p>Target supports <samp>-branch-cost=N</samp>.
  1355. </p>
  1356. </dd>
  1357. <dt><code>cxa_atexit</code></dt>
  1358. <dd><p>Target uses <code>__cxa_atexit</code>.
  1359. </p>
  1360. </dd>
  1361. <dt><code>default_packed</code></dt>
  1362. <dd><p>Target has packed layout of structure members by default.
  1363. </p>
  1364. </dd>
  1365. <dt><code>exceptions</code></dt>
  1366. <dd><p>Target supports exceptions.
  1367. </p>
  1368. </dd>
  1369. <dt><code>exceptions_enabled</code></dt>
  1370. <dd><p>Target supports exceptions and they are enabled in the current
  1371. testing configuration.
  1372. </p>
  1373. </dd>
  1374. <dt><code>fgraphite</code></dt>
  1375. <dd><p>Target supports Graphite optimizations.
  1376. </p>
  1377. </dd>
  1378. <dt><code>fixed_point</code></dt>
  1379. <dd><p>Target supports fixed-point extension to C.
  1380. </p>
  1381. </dd>
  1382. <dt><code>fopenacc</code></dt>
  1383. <dd><p>Target supports OpenACC via <samp>-fopenacc</samp>.
  1384. </p>
  1385. </dd>
  1386. <dt><code>fopenmp</code></dt>
  1387. <dd><p>Target supports OpenMP via <samp>-fopenmp</samp>.
  1388. </p>
  1389. </dd>
  1390. <dt><code>fpic</code></dt>
  1391. <dd><p>Target supports <samp>-fpic</samp> and <samp>-fPIC</samp>.
  1392. </p>
  1393. </dd>
  1394. <dt><code>freorder</code></dt>
  1395. <dd><p>Target supports <samp>-freorder-blocks-and-partition</samp>.
  1396. </p>
  1397. </dd>
  1398. <dt><code>fstack_protector</code></dt>
  1399. <dd><p>Target supports <samp>-fstack-protector</samp>.
  1400. </p>
  1401. </dd>
  1402. <dt><code>gas</code></dt>
  1403. <dd><p>Target uses GNU <code>as</code>.
  1404. </p>
  1405. </dd>
  1406. <dt><code>gc_sections</code></dt>
  1407. <dd><p>Target supports <samp>--gc-sections</samp>.
  1408. </p>
  1409. </dd>
  1410. <dt><code>gld</code></dt>
  1411. <dd><p>Target uses GNU <code>ld</code>.
  1412. </p>
  1413. </dd>
  1414. <dt><code>keeps_null_pointer_checks</code></dt>
  1415. <dd><p>Target keeps null pointer checks, either due to the use of
  1416. <samp>-fno-delete-null-pointer-checks</samp> or hardwired into the target.
  1417. </p>
  1418. </dd>
  1419. <dt><code>llvm_binutils</code></dt>
  1420. <dd><p>Target is using an LLVM assembler and/or linker, instead of GNU Binutils.
  1421. </p>
  1422. </dd>
  1423. <dt><code>lto</code></dt>
  1424. <dd><p>Compiler has been configured to support link-time optimization (LTO).
  1425. </p>
  1426. </dd>
  1427. <dt><code>lto_incremental</code></dt>
  1428. <dd><p>Compiler and linker support link-time optimization relocatable linking
  1429. with <samp>-r</samp> and <samp>-flto</samp> options.
  1430. </p>
  1431. </dd>
  1432. <dt><code>naked_functions</code></dt>
  1433. <dd><p>Target supports the <code>naked</code> function attribute.
  1434. </p>
  1435. </dd>
  1436. <dt><code>named_sections</code></dt>
  1437. <dd><p>Target supports named sections.
  1438. </p>
  1439. </dd>
  1440. <dt><code>natural_alignment_32</code></dt>
  1441. <dd><p>Target uses natural alignment (aligned to type size) for types of
  1442. 32 bits or less.
  1443. </p>
  1444. </dd>
  1445. <dt><code>target_natural_alignment_64</code></dt>
  1446. <dd><p>Target uses natural alignment (aligned to type size) for types of
  1447. 64 bits or less.
  1448. </p>
  1449. </dd>
  1450. <dt><code>noinit</code></dt>
  1451. <dd><p>Target supports the <code>noinit</code> variable attribute.
  1452. </p>
  1453. </dd>
  1454. <dt><code>nonpic</code></dt>
  1455. <dd><p>Target does not generate PIC by default.
  1456. </p>
  1457. </dd>
  1458. <dt><code>offload_gcn</code></dt>
  1459. <dd><p>Target has been configured for OpenACC/OpenMP offloading on AMD GCN.
  1460. </p>
  1461. </dd>
  1462. <dt><code>pie_enabled</code></dt>
  1463. <dd><p>Target generates PIE by default.
  1464. </p>
  1465. </dd>
  1466. <dt><code>pcc_bitfield_type_matters</code></dt>
  1467. <dd><p>Target defines <code>PCC_BITFIELD_TYPE_MATTERS</code>.
  1468. </p>
  1469. </dd>
  1470. <dt><code>pe_aligned_commons</code></dt>
  1471. <dd><p>Target supports <samp>-mpe-aligned-commons</samp>.
  1472. </p>
  1473. </dd>
  1474. <dt><code>pie</code></dt>
  1475. <dd><p>Target supports <samp>-pie</samp>, <samp>-fpie</samp> and <samp>-fPIE</samp>.
  1476. </p>
  1477. </dd>
  1478. <dt><code>rdynamic</code></dt>
  1479. <dd><p>Target supports <samp>-rdynamic</samp>.
  1480. </p>
  1481. </dd>
  1482. <dt><code>scalar_all_fma</code></dt>
  1483. <dd><p>Target supports all four fused multiply-add optabs for both <code>float</code>
  1484. and <code>double</code>. These optabs are: <code>fma_optab</code>, <code>fms_optab</code>,
  1485. <code>fnma_optab</code> and <code>fnms_optab</code>.
  1486. </p>
  1487. </dd>
  1488. <dt><code>section_anchors</code></dt>
  1489. <dd><p>Target supports section anchors.
  1490. </p>
  1491. </dd>
  1492. <dt><code>short_enums</code></dt>
  1493. <dd><p>Target defaults to short enums.
  1494. </p>
  1495. </dd>
  1496. <dt><code>stack_size</code></dt>
  1497. <dd><a name="stack_005fsize_005fet"></a><p>Target has limited stack size. The stack size limit can be obtained using the
  1498. STACK_SIZE macro defined by <a href="Add-Options.html#stack_005fsize_005fao"><code>dg-add-options</code> feature
  1499. <code>stack_size</code></a>.
  1500. </p>
  1501. </dd>
  1502. <dt><code>static</code></dt>
  1503. <dd><p>Target supports <samp>-static</samp>.
  1504. </p>
  1505. </dd>
  1506. <dt><code>static_libgfortran</code></dt>
  1507. <dd><p>Target supports statically linking &lsquo;<samp>libgfortran</samp>&rsquo;.
  1508. </p>
  1509. </dd>
  1510. <dt><code>string_merging</code></dt>
  1511. <dd><p>Target supports merging string constants at link time.
  1512. </p>
  1513. </dd>
  1514. <dt><code>ucn</code></dt>
  1515. <dd><p>Target supports compiling and assembling UCN.
  1516. </p>
  1517. </dd>
  1518. <dt><code>ucn_nocache</code></dt>
  1519. <dd><p>Including the options used to compile this particular test, the
  1520. target supports compiling and assembling UCN.
  1521. </p>
  1522. </dd>
  1523. <dt><code>unaligned_stack</code></dt>
  1524. <dd><p>Target does not guarantee that its <code>STACK_BOUNDARY</code> is greater than
  1525. or equal to the required vector alignment.
  1526. </p>
  1527. </dd>
  1528. <dt><code>vector_alignment_reachable</code></dt>
  1529. <dd><p>Vector alignment is reachable for types of 32 bits or less.
  1530. </p>
  1531. </dd>
  1532. <dt><code>vector_alignment_reachable_for_64bit</code></dt>
  1533. <dd><p>Vector alignment is reachable for types of 64 bits or less.
  1534. </p>
  1535. </dd>
  1536. <dt><code>wchar_t_char16_t_compatible</code></dt>
  1537. <dd><p>Target supports <code>wchar_t</code> that is compatible with <code>char16_t</code>.
  1538. </p>
  1539. </dd>
  1540. <dt><code>wchar_t_char32_t_compatible</code></dt>
  1541. <dd><p>Target supports <code>wchar_t</code> that is compatible with <code>char32_t</code>.
  1542. </p>
  1543. </dd>
  1544. <dt><code>comdat_group</code></dt>
  1545. <dd><p>Target uses comdat groups.
  1546. </p>
  1547. </dd>
  1548. <dt><code>indirect_calls</code></dt>
  1549. <dd><p>Target supports indirect calls, i.e. calls where the target is not
  1550. constant.
  1551. </p></dd>
  1552. </dl>
  1553. <a name="Local-to-tests-in-gcc_002etarget_002fi386"></a>
  1554. <h4 class="subsubsection">7.2.3.14 Local to tests in <code>gcc.target/i386</code></h4>
  1555. <dl compact="compact">
  1556. <dt><code>3dnow</code></dt>
  1557. <dd><p>Target supports compiling <code>3dnow</code> instructions.
  1558. </p>
  1559. </dd>
  1560. <dt><code>aes</code></dt>
  1561. <dd><p>Target supports compiling <code>aes</code> instructions.
  1562. </p>
  1563. </dd>
  1564. <dt><code>fma4</code></dt>
  1565. <dd><p>Target supports compiling <code>fma4</code> instructions.
  1566. </p>
  1567. </dd>
  1568. <dt><code>mfentry</code></dt>
  1569. <dd><p>Target supports the <code>-mfentry</code> option that alters the
  1570. position of profiling calls such that they precede the prologue.
  1571. </p>
  1572. </dd>
  1573. <dt><code>ms_hook_prologue</code></dt>
  1574. <dd><p>Target supports attribute <code>ms_hook_prologue</code>.
  1575. </p>
  1576. </dd>
  1577. <dt><code>pclmul</code></dt>
  1578. <dd><p>Target supports compiling <code>pclmul</code> instructions.
  1579. </p>
  1580. </dd>
  1581. <dt><code>sse3</code></dt>
  1582. <dd><p>Target supports compiling <code>sse3</code> instructions.
  1583. </p>
  1584. </dd>
  1585. <dt><code>sse4</code></dt>
  1586. <dd><p>Target supports compiling <code>sse4</code> instructions.
  1587. </p>
  1588. </dd>
  1589. <dt><code>sse4a</code></dt>
  1590. <dd><p>Target supports compiling <code>sse4a</code> instructions.
  1591. </p>
  1592. </dd>
  1593. <dt><code>ssse3</code></dt>
  1594. <dd><p>Target supports compiling <code>ssse3</code> instructions.
  1595. </p>
  1596. </dd>
  1597. <dt><code>vaes</code></dt>
  1598. <dd><p>Target supports compiling <code>vaes</code> instructions.
  1599. </p>
  1600. </dd>
  1601. <dt><code>vpclmul</code></dt>
  1602. <dd><p>Target supports compiling <code>vpclmul</code> instructions.
  1603. </p>
  1604. </dd>
  1605. <dt><code>xop</code></dt>
  1606. <dd><p>Target supports compiling <code>xop</code> instructions.
  1607. </p></dd>
  1608. </dl>
  1609. <a name="Local-to-tests-in-gcc_002etest_002dframework"></a>
  1610. <h4 class="subsubsection">7.2.3.15 Local to tests in <code>gcc.test-framework</code></h4>
  1611. <dl compact="compact">
  1612. <dt><code>no</code></dt>
  1613. <dd><p>Always returns 0.
  1614. </p>
  1615. </dd>
  1616. <dt><code>yes</code></dt>
  1617. <dd><p>Always returns 1.
  1618. </p></dd>
  1619. </dl>
  1620. <hr>
  1621. <div class="header">
  1622. <p>
  1623. 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> &nbsp; [<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>
  1624. </div>
  1625. </body>
  1626. </html>