Effective_002dTarget-Keywords.html 41 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280
  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-2017 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 5.2, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <title>GNU Compiler Collection (GCC) Internals: Effective-Target Keywords</title>
  20. <meta name="description" content="GNU Compiler Collection (GCC) Internals: Effective-Target Keywords">
  21. <meta name="keywords" content="GNU Compiler Collection (GCC) Internals: Effective-Target Keywords">
  22. <meta name="resource-type" content="document">
  23. <meta name="distribution" content="global">
  24. <meta name="Generator" content="makeinfo">
  25. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  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.smallquotation {font-size: smaller}
  36. div.display {margin-left: 3.2em}
  37. div.example {margin-left: 3.2em}
  38. div.indentedblock {margin-left: 3.2em}
  39. div.lisp {margin-left: 3.2em}
  40. div.smalldisplay {margin-left: 3.2em}
  41. div.smallexample {margin-left: 3.2em}
  42. div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
  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.nocodebreak {white-space:nowrap}
  54. span.nolinebreak {white-space:nowrap}
  55. span.roman {font-family:serif; font-weight:normal}
  56. span.sansserif {font-family:sans-serif; font-weight:normal}
  57. ul.no-bullet {list-style: none}
  58. -->
  59. </style>
  60. </head>
  61. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  62. <a name="Effective_002dTarget-Keywords"></a>
  63. <div class="header">
  64. <p>
  65. 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>
  66. </div>
  67. <hr>
  68. <a name="Keywords-describing-target-attributes"></a>
  69. <h4 class="subsection">7.2.3 Keywords describing target attributes</h4>
  70. <p>Effective-target keywords identify sets of targets that support
  71. particular functionality. They are used to limit tests to be run only
  72. for particular targets, or to specify that particular sets of targets
  73. are expected to fail some tests.
  74. </p>
  75. <p>Effective-target keywords are defined in <samp>lib/target-supports.exp</samp> in
  76. the GCC testsuite, with the exception of those that are documented as
  77. being local to a particular test directory.
  78. </p>
  79. <p>The &lsquo;<samp>effective target</samp>&rsquo; takes into account all of the compiler options
  80. with which the test will be compiled, including the multilib options.
  81. By convention, keywords ending in <code>_nocache</code> can also include options
  82. specified for the particular test in an earlier <code>dg-options</code> or
  83. <code>dg-add-options</code> directive.
  84. </p>
  85. <a name="Endianness"></a>
  86. <h4 class="subsubsection">7.2.3.1 Endianness</h4>
  87. <dl compact="compact">
  88. <dt><code>be</code></dt>
  89. <dd><p>Target uses big-endian memory order for multi-byte and multi-word data.
  90. </p>
  91. </dd>
  92. <dt><code>le</code></dt>
  93. <dd><p>Target uses little-endian memory order for multi-byte and multi-word data.
  94. </p></dd>
  95. </dl>
  96. <a name="Data-type-sizes"></a>
  97. <h4 class="subsubsection">7.2.3.2 Data type sizes</h4>
  98. <dl compact="compact">
  99. <dt><code>ilp32</code></dt>
  100. <dd><p>Target has 32-bit <code>int</code>, <code>long</code>, and pointers.
  101. </p>
  102. </dd>
  103. <dt><code>lp64</code></dt>
  104. <dd><p>Target has 32-bit <code>int</code>, 64-bit <code>long</code> and pointers.
  105. </p>
  106. </dd>
  107. <dt><code>llp64</code></dt>
  108. <dd><p>Target has 32-bit <code>int</code> and <code>long</code>, 64-bit <code>long long</code>
  109. and pointers.
  110. </p>
  111. </dd>
  112. <dt><code>double64</code></dt>
  113. <dd><p>Target has 64-bit <code>double</code>.
  114. </p>
  115. </dd>
  116. <dt><code>double64plus</code></dt>
  117. <dd><p>Target has <code>double</code> that is 64 bits or longer.
  118. </p>
  119. </dd>
  120. <dt><code>longdouble128</code></dt>
  121. <dd><p>Target has 128-bit <code>long double</code>.
  122. </p>
  123. </dd>
  124. <dt><code>int32plus</code></dt>
  125. <dd><p>Target has <code>int</code> that is at 32 bits or longer.
  126. </p>
  127. </dd>
  128. <dt><code>int16</code></dt>
  129. <dd><p>Target has <code>int</code> that is 16 bits or shorter.
  130. </p>
  131. </dd>
  132. <dt><code>long_neq_int</code></dt>
  133. <dd><p>Target has <code>int</code> and <code>long</code> with different sizes.
  134. </p>
  135. </dd>
  136. <dt><code>large_double</code></dt>
  137. <dd><p>Target supports <code>double</code> that is longer than <code>float</code>.
  138. </p>
  139. </dd>
  140. <dt><code>large_long_double</code></dt>
  141. <dd><p>Target supports <code>long double</code> that is longer than <code>double</code>.
  142. </p>
  143. </dd>
  144. <dt><code>ptr32plus</code></dt>
  145. <dd><p>Target has pointers that are 32 bits or longer.
  146. </p>
  147. </dd>
  148. <dt><code>size32plus</code></dt>
  149. <dd><p>Target supports array and structure sizes that are 32 bits or longer.
  150. </p>
  151. </dd>
  152. <dt><code>4byte_wchar_t</code></dt>
  153. <dd><p>Target has <code>wchar_t</code> that is at least 4 bytes.
  154. </p>
  155. </dd>
  156. <dt><code>float<var>n</var></code></dt>
  157. <dd><p>Target has the <code>_Float<var>n</var></code> type.
  158. </p>
  159. </dd>
  160. <dt><code>float<var>n</var>x</code></dt>
  161. <dd><p>Target has the <code>_Float<var>n</var>x</code> type.
  162. </p>
  163. </dd>
  164. <dt><code>float<var>n</var>_runtime</code></dt>
  165. <dd><p>Target has the <code>_Float<var>n</var></code> type, including runtime support
  166. for any options added with <code>dg-add-options</code>.
  167. </p>
  168. </dd>
  169. <dt><code>float<var>n</var>x_runtime</code></dt>
  170. <dd><p>Target has the <code>_Float<var>n</var>x</code> type, including runtime support
  171. for any options added with <code>dg-add-options</code>.
  172. </p>
  173. </dd>
  174. <dt><code>floatn_nx_runtime</code></dt>
  175. <dd><p>Target has runtime support for any options added with
  176. <code>dg-add-options</code> for any <code>_Float<var>n</var></code> or
  177. <code>_Float<var>n</var>x</code> type.
  178. </p></dd>
  179. </dl>
  180. <a name="Fortran_002dspecific-attributes"></a>
  181. <h4 class="subsubsection">7.2.3.3 Fortran-specific attributes</h4>
  182. <dl compact="compact">
  183. <dt><code>fortran_integer_16</code></dt>
  184. <dd><p>Target supports Fortran <code>integer</code> that is 16 bytes or longer.
  185. </p>
  186. </dd>
  187. <dt><code>fortran_large_int</code></dt>
  188. <dd><p>Target supports Fortran <code>integer</code> kinds larger than <code>integer(8)</code>.
  189. </p>
  190. </dd>
  191. <dt><code>fortran_large_real</code></dt>
  192. <dd><p>Target supports Fortran <code>real</code> kinds larger than <code>real(8)</code>.
  193. </p></dd>
  194. </dl>
  195. <a name="Vector_002dspecific-attributes"></a>
  196. <h4 class="subsubsection">7.2.3.4 Vector-specific attributes</h4>
  197. <dl compact="compact">
  198. <dt><code>vect_condition</code></dt>
  199. <dd><p>Target supports vector conditional operations.
  200. </p>
  201. </dd>
  202. <dt><code>vect_cond_mixed</code></dt>
  203. <dd><p>Target supports vector conditional operations where comparison operands
  204. have different type from the value operands.
  205. </p>
  206. </dd>
  207. <dt><code>vect_double</code></dt>
  208. <dd><p>Target supports hardware vectors of <code>double</code>.
  209. </p>
  210. </dd>
  211. <dt><code>vect_float</code></dt>
  212. <dd><p>Target supports hardware vectors of <code>float</code>.
  213. </p>
  214. </dd>
  215. <dt><code>vect_int</code></dt>
  216. <dd><p>Target supports hardware vectors of <code>int</code>.
  217. </p>
  218. </dd>
  219. <dt><code>vect_long</code></dt>
  220. <dd><p>Target supports hardware vectors of <code>long</code>.
  221. </p>
  222. </dd>
  223. <dt><code>vect_long_long</code></dt>
  224. <dd><p>Target supports hardware vectors of <code>long long</code>.
  225. </p>
  226. </dd>
  227. <dt><code>vect_aligned_arrays</code></dt>
  228. <dd><p>Target aligns arrays to vector alignment boundary.
  229. </p>
  230. </dd>
  231. <dt><code>vect_hw_misalign</code></dt>
  232. <dd><p>Target supports a vector misalign access.
  233. </p>
  234. </dd>
  235. <dt><code>vect_no_align</code></dt>
  236. <dd><p>Target does not support a vector alignment mechanism.
  237. </p>
  238. </dd>
  239. <dt><code>vect_no_int_min_max</code></dt>
  240. <dd><p>Target does not support a vector min and max instruction on <code>int</code>.
  241. </p>
  242. </dd>
  243. <dt><code>vect_no_int_add</code></dt>
  244. <dd><p>Target does not support a vector add instruction on <code>int</code>.
  245. </p>
  246. </dd>
  247. <dt><code>vect_no_bitwise</code></dt>
  248. <dd><p>Target does not support vector bitwise instructions.
  249. </p>
  250. </dd>
  251. <dt><code>vect_char_mult</code></dt>
  252. <dd><p>Target supports <code>vector char</code> multiplication.
  253. </p>
  254. </dd>
  255. <dt><code>vect_short_mult</code></dt>
  256. <dd><p>Target supports <code>vector short</code> multiplication.
  257. </p>
  258. </dd>
  259. <dt><code>vect_int_mult</code></dt>
  260. <dd><p>Target supports <code>vector int</code> multiplication.
  261. </p>
  262. </dd>
  263. <dt><code>vect_extract_even_odd</code></dt>
  264. <dd><p>Target supports vector even/odd element extraction.
  265. </p>
  266. </dd>
  267. <dt><code>vect_extract_even_odd_wide</code></dt>
  268. <dd><p>Target supports vector even/odd element extraction of vectors with elements
  269. <code>SImode</code> or larger.
  270. </p>
  271. </dd>
  272. <dt><code>vect_interleave</code></dt>
  273. <dd><p>Target supports vector interleaving.
  274. </p>
  275. </dd>
  276. <dt><code>vect_strided</code></dt>
  277. <dd><p>Target supports vector interleaving and extract even/odd.
  278. </p>
  279. </dd>
  280. <dt><code>vect_strided_wide</code></dt>
  281. <dd><p>Target supports vector interleaving and extract even/odd for wide
  282. element types.
  283. </p>
  284. </dd>
  285. <dt><code>vect_perm</code></dt>
  286. <dd><p>Target supports vector permutation.
  287. </p>
  288. </dd>
  289. <dt><code>vect_shift</code></dt>
  290. <dd><p>Target supports a hardware vector shift operation.
  291. </p>
  292. </dd>
  293. <dt><code>vect_widen_sum_hi_to_si</code></dt>
  294. <dd><p>Target supports a vector widening summation of <code>short</code> operands
  295. into <code>int</code> results, or can promote (unpack) from <code>short</code>
  296. to <code>int</code>.
  297. </p>
  298. </dd>
  299. <dt><code>vect_widen_sum_qi_to_hi</code></dt>
  300. <dd><p>Target supports a vector widening summation of <code>char</code> operands
  301. into <code>short</code> results, or can promote (unpack) from <code>char</code>
  302. to <code>short</code>.
  303. </p>
  304. </dd>
  305. <dt><code>vect_widen_sum_qi_to_si</code></dt>
  306. <dd><p>Target supports a vector widening summation of <code>char</code> operands
  307. into <code>int</code> results.
  308. </p>
  309. </dd>
  310. <dt><code>vect_widen_mult_qi_to_hi</code></dt>
  311. <dd><p>Target supports a vector widening multiplication of <code>char</code> operands
  312. into <code>short</code> results, or can promote (unpack) from <code>char</code> to
  313. <code>short</code> and perform non-widening multiplication of <code>short</code>.
  314. </p>
  315. </dd>
  316. <dt><code>vect_widen_mult_hi_to_si</code></dt>
  317. <dd><p>Target supports a vector widening multiplication of <code>short</code> operands
  318. into <code>int</code> results, or can promote (unpack) from <code>short</code> to
  319. <code>int</code> and perform non-widening multiplication of <code>int</code>.
  320. </p>
  321. </dd>
  322. <dt><code>vect_widen_mult_si_to_di_pattern</code></dt>
  323. <dd><p>Target supports a vector widening multiplication of <code>int</code> operands
  324. into <code>long</code> results.
  325. </p>
  326. </dd>
  327. <dt><code>vect_sdot_qi</code></dt>
  328. <dd><p>Target supports a vector dot-product of <code>signed char</code>.
  329. </p>
  330. </dd>
  331. <dt><code>vect_udot_qi</code></dt>
  332. <dd><p>Target supports a vector dot-product of <code>unsigned char</code>.
  333. </p>
  334. </dd>
  335. <dt><code>vect_sdot_hi</code></dt>
  336. <dd><p>Target supports a vector dot-product of <code>signed short</code>.
  337. </p>
  338. </dd>
  339. <dt><code>vect_udot_hi</code></dt>
  340. <dd><p>Target supports a vector dot-product of <code>unsigned short</code>.
  341. </p>
  342. </dd>
  343. <dt><code>vect_pack_trunc</code></dt>
  344. <dd><p>Target supports a vector demotion (packing) of <code>short</code> to <code>char</code>
  345. and from <code>int</code> to <code>short</code> using modulo arithmetic.
  346. </p>
  347. </dd>
  348. <dt><code>vect_unpack</code></dt>
  349. <dd><p>Target supports a vector promotion (unpacking) of <code>char</code> to <code>short</code>
  350. and from <code>char</code> to <code>int</code>.
  351. </p>
  352. </dd>
  353. <dt><code>vect_intfloat_cvt</code></dt>
  354. <dd><p>Target supports conversion from <code>signed int</code> to <code>float</code>.
  355. </p>
  356. </dd>
  357. <dt><code>vect_uintfloat_cvt</code></dt>
  358. <dd><p>Target supports conversion from <code>unsigned int</code> to <code>float</code>.
  359. </p>
  360. </dd>
  361. <dt><code>vect_floatint_cvt</code></dt>
  362. <dd><p>Target supports conversion from <code>float</code> to <code>signed int</code>.
  363. </p>
  364. </dd>
  365. <dt><code>vect_floatuint_cvt</code></dt>
  366. <dd><p>Target supports conversion from <code>float</code> to <code>unsigned int</code>.
  367. </p>
  368. </dd>
  369. <dt><code>vect_max_reduc</code></dt>
  370. <dd><p>Target supports max reduction for vectors.
  371. </p></dd>
  372. </dl>
  373. <a name="Thread-Local-Storage-attributes"></a>
  374. <h4 class="subsubsection">7.2.3.5 Thread Local Storage attributes</h4>
  375. <dl compact="compact">
  376. <dt><code>tls</code></dt>
  377. <dd><p>Target supports thread-local storage.
  378. </p>
  379. </dd>
  380. <dt><code>tls_native</code></dt>
  381. <dd><p>Target supports native (rather than emulated) thread-local storage.
  382. </p>
  383. </dd>
  384. <dt><code>tls_runtime</code></dt>
  385. <dd><p>Test system supports executing TLS executables.
  386. </p></dd>
  387. </dl>
  388. <a name="Decimal-floating-point-attributes"></a>
  389. <h4 class="subsubsection">7.2.3.6 Decimal floating point attributes</h4>
  390. <dl compact="compact">
  391. <dt><code>dfp</code></dt>
  392. <dd><p>Targets supports compiling decimal floating point extension to C.
  393. </p>
  394. </dd>
  395. <dt><code>dfp_nocache</code></dt>
  396. <dd><p>Including the options used to compile this particular test, the
  397. target supports compiling decimal floating point extension to C.
  398. </p>
  399. </dd>
  400. <dt><code>dfprt</code></dt>
  401. <dd><p>Test system can execute decimal floating point tests.
  402. </p>
  403. </dd>
  404. <dt><code>dfprt_nocache</code></dt>
  405. <dd><p>Including the options used to compile this particular test, the
  406. test system can execute decimal floating point tests.
  407. </p>
  408. </dd>
  409. <dt><code>hard_dfp</code></dt>
  410. <dd><p>Target generates decimal floating point instructions with current options.
  411. </p></dd>
  412. </dl>
  413. <a name="ARM_002dspecific-attributes"></a>
  414. <h4 class="subsubsection">7.2.3.7 ARM-specific attributes</h4>
  415. <dl compact="compact">
  416. <dt><code>arm32</code></dt>
  417. <dd><p>ARM target generates 32-bit code.
  418. </p>
  419. </dd>
  420. <dt><code>arm_eabi</code></dt>
  421. <dd><p>ARM target adheres to the ABI for the ARM Architecture.
  422. </p>
  423. </dd>
  424. <dt><code>arm_fp_ok</code></dt>
  425. <dd><a name="arm_005ffp_005fok"></a><p>ARM target defines <code>__ARM_FP</code> using <code>-mfloat-abi=softfp</code> or
  426. equivalent options. Some multilibs may be incompatible with these
  427. options.
  428. </p>
  429. </dd>
  430. <dt><code>arm_hf_eabi</code></dt>
  431. <dd><p>ARM target adheres to the VFP and Advanced SIMD Register Arguments
  432. variant of the ABI for the ARM Architecture (as selected with
  433. <code>-mfloat-abi=hard</code>).
  434. </p>
  435. </dd>
  436. <dt><code>arm_hard_vfp_ok</code></dt>
  437. <dd><p>ARM target supports <code>-mfpu=vfp -mfloat-abi=hard</code>.
  438. Some multilibs may be incompatible with these options.
  439. </p>
  440. </dd>
  441. <dt><code>arm_iwmmxt_ok</code></dt>
  442. <dd><p>ARM target supports <code>-mcpu=iwmmxt</code>.
  443. Some multilibs may be incompatible with this option.
  444. </p>
  445. </dd>
  446. <dt><code>arm_neon</code></dt>
  447. <dd><p>ARM target supports generating NEON instructions.
  448. </p>
  449. </dd>
  450. <dt><code>arm_tune_string_ops_prefer_neon</code></dt>
  451. <dd><p>Test CPU tune supports inlining string operations with NEON instructions.
  452. </p>
  453. </dd>
  454. <dt><code>arm_neon_hw</code></dt>
  455. <dd><p>Test system supports executing NEON instructions.
  456. </p>
  457. </dd>
  458. <dt><code>arm_neonv2_hw</code></dt>
  459. <dd><p>Test system supports executing NEON v2 instructions.
  460. </p>
  461. </dd>
  462. <dt><code>arm_neon_ok</code></dt>
  463. <dd><a name="arm_005fneon_005fok"></a><p>ARM Target supports <code>-mfpu=neon -mfloat-abi=softfp</code> or compatible
  464. options. Some multilibs may be incompatible with these options.
  465. </p>
  466. </dd>
  467. <dt><code>arm_neon_ok_no_float_abi</code></dt>
  468. <dd><a name="arm_005fneon_005fok_005fno_005ffloat_005fabi"></a><p>ARM Target supports NEON with <code>-mfpu=neon</code>, but without any
  469. -mfloat-abi= option. Some multilibs may be incompatible with this
  470. option.
  471. </p>
  472. </dd>
  473. <dt><code>arm_neonv2_ok</code></dt>
  474. <dd><a name="arm_005fneonv2_005fok"></a><p>ARM Target supports <code>-mfpu=neon-vfpv4 -mfloat-abi=softfp</code> or compatible
  475. options. Some multilibs may be incompatible with these options.
  476. </p>
  477. </dd>
  478. <dt><code>arm_fp16_ok</code></dt>
  479. <dd><a name="arm_005ffp16_005fok"></a><p>Target supports options to generate VFP half-precision floating-point
  480. instructions. Some multilibs may be incompatible with these
  481. options. This test is valid for ARM only.
  482. </p>
  483. </dd>
  484. <dt><code>arm_fp16_hw</code></dt>
  485. <dd><p>Target supports executing VFP half-precision floating-point
  486. instructions. This test is valid for ARM only.
  487. </p>
  488. </dd>
  489. <dt><code>arm_neon_fp16_ok</code></dt>
  490. <dd><a name="arm_005fneon_005ffp16_005fok"></a><p>ARM Target supports <code>-mfpu=neon-fp16 -mfloat-abi=softfp</code> or compatible
  491. options, including <code>-mfp16-format=ieee</code> if necessary to obtain the
  492. <code>__fp16</code> type. Some multilibs may be incompatible with these options.
  493. </p>
  494. </dd>
  495. <dt><code>arm_neon_fp16_hw</code></dt>
  496. <dd><p>Test system supports executing Neon half-precision float instructions.
  497. (Implies previous.)
  498. </p>
  499. </dd>
  500. <dt><code>arm_fp16_alternative_ok</code></dt>
  501. <dd><p>ARM target supports the ARM FP16 alternative format. Some multilibs
  502. may be incompatible with the options needed.
  503. </p>
  504. </dd>
  505. <dt><code>arm_fp16_none_ok</code></dt>
  506. <dd><p>ARM target supports specifying none as the ARM FP16 format.
  507. </p>
  508. </dd>
  509. <dt><code>arm_thumb1_ok</code></dt>
  510. <dd><p>ARM target generates Thumb-1 code for <code>-mthumb</code>.
  511. </p>
  512. </dd>
  513. <dt><code>arm_thumb2_ok</code></dt>
  514. <dd><p>ARM target generates Thumb-2 code for <code>-mthumb</code>.
  515. </p>
  516. </dd>
  517. <dt><code>arm_vfp_ok</code></dt>
  518. <dd><p>ARM target supports <code>-mfpu=vfp -mfloat-abi=softfp</code>.
  519. Some multilibs may be incompatible with these options.
  520. </p>
  521. </dd>
  522. <dt><code>arm_vfp3_ok</code></dt>
  523. <dd><a name="arm_005fvfp3_005fok"></a><p>ARM target supports <code>-mfpu=vfp3 -mfloat-abi=softfp</code>.
  524. Some multilibs may be incompatible with these options.
  525. </p>
  526. </dd>
  527. <dt><code>arm_v8_vfp_ok</code></dt>
  528. <dd><p>ARM target supports <code>-mfpu=fp-armv8 -mfloat-abi=softfp</code>.
  529. Some multilibs may be incompatible with these options.
  530. </p>
  531. </dd>
  532. <dt><code>arm_v8_neon_ok</code></dt>
  533. <dd><p>ARM target supports <code>-mfpu=neon-fp-armv8 -mfloat-abi=softfp</code>.
  534. Some multilibs may be incompatible with these options.
  535. </p>
  536. </dd>
  537. <dt><code>arm_v8_1a_neon_ok</code></dt>
  538. <dd><a name="arm_005fv8_005f1a_005fneon_005fok"></a><p>ARM target supports options to generate ARMv8.1 Adv.SIMD instructions.
  539. Some multilibs may be incompatible with these options.
  540. </p>
  541. </dd>
  542. <dt><code>arm_v8_1a_neon_hw</code></dt>
  543. <dd><p>ARM target supports executing ARMv8.1 Adv.SIMD instructions. Some
  544. multilibs may be incompatible with the options needed. Implies
  545. arm_v8_1a_neon_ok.
  546. </p>
  547. </dd>
  548. <dt><code>arm_acq_rel</code></dt>
  549. <dd><p>ARM target supports acquire-release instructions.
  550. </p>
  551. </dd>
  552. <dt><code>arm_v8_2a_fp16_scalar_ok</code></dt>
  553. <dd><a name="arm_005fv8_005f2a_005ffp16_005fscalar_005fok"></a><p>ARM target supports options to generate instructions for ARMv8.2 and
  554. scalar instructions from the FP16 extension. Some multilibs may be
  555. incompatible with these options.
  556. </p>
  557. </dd>
  558. <dt><code>arm_v8_2a_fp16_scalar_hw</code></dt>
  559. <dd><p>ARM target supports executing instructions for ARMv8.2 and scalar
  560. instructions from the FP16 extension. Some multilibs may be
  561. incompatible with these options. Implies arm_v8_2a_fp16_neon_ok.
  562. </p>
  563. </dd>
  564. <dt><code>arm_v8_2a_fp16_neon_ok</code></dt>
  565. <dd><a name="arm_005fv8_005f2a_005ffp16_005fneon_005fok"></a><p>ARM target supports options to generate instructions from ARMv8.2 with
  566. the FP16 extension. Some multilibs may be incompatible with these
  567. options. Implies arm_v8_2a_fp16_scalar_ok.
  568. </p>
  569. </dd>
  570. <dt><code>arm_v8_2a_fp16_neon_hw</code></dt>
  571. <dd><p>ARM target supports executing instructions from ARMv8.2 with the FP16
  572. extension. Some multilibs may be incompatible with these options.
  573. Implies arm_v8_2a_fp16_neon_ok and arm_v8_2a_fp16_scalar_hw.
  574. </p>
  575. </dd>
  576. <dt><code>arm_v8_2a_dotprod_neon_ok</code></dt>
  577. <dd><a name="arm_005fv8_005f2a_005fdotprod_005fneon_005fok"></a><p>ARM target supports options to generate instructions from ARMv8.2 with
  578. the Dot Product extension. Some multilibs may be incompatible with these
  579. options.
  580. </p>
  581. </dd>
  582. <dt><code>arm_v8_2a_dotprod_neon_hw</code></dt>
  583. <dd><p>ARM target supports executing instructions from ARMv8.2 with the Dot
  584. Product extension. Some multilibs may be incompatible with these options.
  585. Implies arm_v8_2a_dotprod_neon_ok.
  586. </p>
  587. </dd>
  588. <dt><code>arm_prefer_ldrd_strd</code></dt>
  589. <dd><p>ARM target prefers <code>LDRD</code> and <code>STRD</code> instructions over
  590. <code>LDM</code> and <code>STM</code> instructions.
  591. </p>
  592. </dd>
  593. <dt><code>arm_thumb1_movt_ok</code></dt>
  594. <dd><p>ARM target generates Thumb-1 code for <code>-mthumb</code> with <code>MOVW</code>
  595. and <code>MOVT</code> instructions available.
  596. </p>
  597. </dd>
  598. <dt><code>arm_thumb1_cbz_ok</code></dt>
  599. <dd><p>ARM target generates Thumb-1 code for <code>-mthumb</code> with
  600. <code>CBZ</code> and <code>CBNZ</code> instructions available.
  601. </p>
  602. </dd>
  603. <dt><code>arm_divmod_simode</code></dt>
  604. <dd><p>ARM target for which divmod transform is disabled, if it supports hardware
  605. div instruction.
  606. </p>
  607. </dd>
  608. <dt><code>arm_cmse_ok</code></dt>
  609. <dd><p>ARM target supports ARMv8-M Security Extensions, enabled by the <code>-mcmse</code>
  610. option.
  611. </p>
  612. </dd>
  613. <dt><code>arm_coproc1_ok</code></dt>
  614. <dd><a name="arm_005fcoproc1_005fok"></a><p>ARM target supports the following coprocessor instructions: <code>CDP</code>,
  615. <code>LDC</code>, <code>STC</code>, <code>MCR</code> and <code>MRC</code>.
  616. </p>
  617. </dd>
  618. <dt><code>arm_coproc2_ok</code></dt>
  619. <dd><a name="arm_005fcoproc2_005fok"></a><p>ARM target supports all the coprocessor instructions also listed as supported
  620. in <a href="#arm_005fcoproc1_005fok">arm_coproc1_ok</a> in addition to the following: <code>CDP2</code>, <code>LDC2</code>,
  621. <code>LDC2l</code>, <code>STC2</code>, <code>STC2l</code>, <code>MCR2</code> and <code>MRC2</code>.
  622. </p>
  623. </dd>
  624. <dt><code>arm_coproc3_ok</code></dt>
  625. <dd><a name="arm_005fcoproc3_005fok"></a><p>ARM target supports all the coprocessor instructions also listed as supported
  626. in <a href="#arm_005fcoproc2_005fok">arm_coproc2_ok</a> in addition the following: <code>MCRR</code> and <code>MRRC</code>.
  627. </p>
  628. </dd>
  629. <dt><code>arm_coproc4_ok</code></dt>
  630. <dd><p>ARM target supports all the coprocessor instructions also listed as supported
  631. in <a href="#arm_005fcoproc3_005fok">arm_coproc3_ok</a> in addition the following: <code>MCRR2</code> and <code>MRRC2</code>.
  632. </p></dd>
  633. </dl>
  634. <a name="AArch64_002dspecific-attributes"></a>
  635. <h4 class="subsubsection">7.2.3.8 AArch64-specific attributes</h4>
  636. <dl compact="compact">
  637. <dt><code>aarch64_asm_&lt;ext&gt;_ok</code></dt>
  638. <dd><p>AArch64 assembler supports the architecture extension <code>ext</code> via the
  639. <code>.arch_extension</code> pseudo-op.
  640. </p></dd>
  641. <dt><code>aarch64_tiny</code></dt>
  642. <dd><p>AArch64 target which generates instruction sequences for tiny memory model.
  643. </p></dd>
  644. <dt><code>aarch64_small</code></dt>
  645. <dd><p>AArch64 target which generates instruction sequences for small memory model.
  646. </p></dd>
  647. <dt><code>aarch64_large</code></dt>
  648. <dd><p>AArch64 target which generates instruction sequences for large memory model.
  649. </p></dd>
  650. <dt><code>aarch64_little_endian</code></dt>
  651. <dd><p>AArch64 target which generates instruction sequences for little endian.
  652. </p></dd>
  653. <dt><code>aarch64_big_endian</code></dt>
  654. <dd><p>AArch64 target which generates instruction sequences for big endian.
  655. </p></dd>
  656. <dt><code>aarch64_small_fpic</code></dt>
  657. <dd><p>Binutils installed on test system supports relocation types required by -fpic
  658. for AArch64 small memory model.
  659. </p>
  660. </dd>
  661. </dl>
  662. <a name="MIPS_002dspecific-attributes"></a>
  663. <h4 class="subsubsection">7.2.3.9 MIPS-specific attributes</h4>
  664. <dl compact="compact">
  665. <dt><code>mips64</code></dt>
  666. <dd><p>MIPS target supports 64-bit instructions.
  667. </p>
  668. </dd>
  669. <dt><code>nomips16</code></dt>
  670. <dd><p>MIPS target does not produce MIPS16 code.
  671. </p>
  672. </dd>
  673. <dt><code>mips16_attribute</code></dt>
  674. <dd><p>MIPS target can generate MIPS16 code.
  675. </p>
  676. </dd>
  677. <dt><code>mips_loongson</code></dt>
  678. <dd><p>MIPS target is a Loongson-2E or -2F target using an ABI that supports
  679. the Loongson vector modes.
  680. </p>
  681. </dd>
  682. <dt><code>mips_msa</code></dt>
  683. <dd><p>MIPS target supports <code>-mmsa</code>, MIPS SIMD Architecture (MSA).
  684. </p>
  685. </dd>
  686. <dt><code>mips_newabi_large_long_double</code></dt>
  687. <dd><p>MIPS target supports <code>long double</code> larger than <code>double</code>
  688. when using the new ABI.
  689. </p>
  690. </dd>
  691. <dt><code>mpaired_single</code></dt>
  692. <dd><p>MIPS target supports <code>-mpaired-single</code>.
  693. </p></dd>
  694. </dl>
  695. <a name="PowerPC_002dspecific-attributes"></a>
  696. <h4 class="subsubsection">7.2.3.10 PowerPC-specific attributes</h4>
  697. <dl compact="compact">
  698. <dt><code>dfp_hw</code></dt>
  699. <dd><p>PowerPC target supports executing hardware DFP instructions.
  700. </p>
  701. </dd>
  702. <dt><code>p8vector_hw</code></dt>
  703. <dd><p>PowerPC target supports executing VSX instructions (ISA 2.07).
  704. </p>
  705. </dd>
  706. <dt><code>powerpc64</code></dt>
  707. <dd><p>Test system supports executing 64-bit instructions.
  708. </p>
  709. </dd>
  710. <dt><code>powerpc_altivec</code></dt>
  711. <dd><p>PowerPC target supports AltiVec.
  712. </p>
  713. </dd>
  714. <dt><code>powerpc_altivec_ok</code></dt>
  715. <dd><p>PowerPC target supports <code>-maltivec</code>.
  716. </p>
  717. </dd>
  718. <dt><code>powerpc_eabi_ok</code></dt>
  719. <dd><p>PowerPC target supports <code>-meabi</code>.
  720. </p>
  721. </dd>
  722. <dt><code>powerpc_elfv2</code></dt>
  723. <dd><p>PowerPC target supports <code>-mabi=elfv2</code>.
  724. </p>
  725. </dd>
  726. <dt><code>powerpc_fprs</code></dt>
  727. <dd><p>PowerPC target supports floating-point registers.
  728. </p>
  729. </dd>
  730. <dt><code>powerpc_hard_double</code></dt>
  731. <dd><p>PowerPC target supports hardware double-precision floating-point.
  732. </p>
  733. </dd>
  734. <dt><code>powerpc_htm_ok</code></dt>
  735. <dd><p>PowerPC target supports <code>-mhtm</code>
  736. </p>
  737. </dd>
  738. <dt><code>powerpc_p8vector_ok</code></dt>
  739. <dd><p>PowerPC target supports <code>-mpower8-vector</code>
  740. </p>
  741. </dd>
  742. <dt><code>powerpc_popcntb_ok</code></dt>
  743. <dd><p>PowerPC target supports the <code>popcntb</code> instruction, indicating
  744. that this target supports <code>-mcpu=power5</code>.
  745. </p>
  746. </dd>
  747. <dt><code>powerpc_ppu_ok</code></dt>
  748. <dd><p>PowerPC target supports <code>-mcpu=cell</code>.
  749. </p>
  750. </dd>
  751. <dt><code>powerpc_spe</code></dt>
  752. <dd><p>PowerPC target supports PowerPC SPE.
  753. </p>
  754. </dd>
  755. <dt><code>powerpc_spe_nocache</code></dt>
  756. <dd><p>Including the options used to compile this particular test, the
  757. PowerPC target supports PowerPC SPE.
  758. </p>
  759. </dd>
  760. <dt><code>powerpc_spu</code></dt>
  761. <dd><p>PowerPC target supports PowerPC SPU.
  762. </p>
  763. </dd>
  764. <dt><code>powerpc_vsx_ok</code></dt>
  765. <dd><p>PowerPC target supports <code>-mvsx</code>.
  766. </p>
  767. </dd>
  768. <dt><code>powerpc_405_nocache</code></dt>
  769. <dd><p>Including the options used to compile this particular test, the
  770. PowerPC target supports PowerPC 405.
  771. </p>
  772. </dd>
  773. <dt><code>ppc_recip_hw</code></dt>
  774. <dd><p>PowerPC target supports executing reciprocal estimate instructions.
  775. </p>
  776. </dd>
  777. <dt><code>spu_auto_overlay</code></dt>
  778. <dd><p>SPU target has toolchain that supports automatic overlay generation.
  779. </p>
  780. </dd>
  781. <dt><code>vmx_hw</code></dt>
  782. <dd><p>PowerPC target supports executing AltiVec instructions.
  783. </p>
  784. </dd>
  785. <dt><code>vsx_hw</code></dt>
  786. <dd><p>PowerPC target supports executing VSX instructions (ISA 2.06).
  787. </p></dd>
  788. </dl>
  789. <a name="Other-hardware-attributes"></a>
  790. <h4 class="subsubsection">7.2.3.11 Other hardware attributes</h4>
  791. <dl compact="compact">
  792. <dt><code>avx</code></dt>
  793. <dd><p>Target supports compiling <code>avx</code> instructions.
  794. </p>
  795. </dd>
  796. <dt><code>avx_runtime</code></dt>
  797. <dd><p>Target supports the execution of <code>avx</code> instructions.
  798. </p>
  799. </dd>
  800. <dt><code>cell_hw</code></dt>
  801. <dd><p>Test system can execute AltiVec and Cell PPU instructions.
  802. </p>
  803. </dd>
  804. <dt><code>coldfire_fpu</code></dt>
  805. <dd><p>Target uses a ColdFire FPU.
  806. </p>
  807. </dd>
  808. <dt><code>hard_float</code></dt>
  809. <dd><p>Target supports FPU instructions.
  810. </p>
  811. </dd>
  812. <dt><code>non_strict_align</code></dt>
  813. <dd><p>Target does not require strict alignment.
  814. </p>
  815. </dd>
  816. <dt><code>sqrt_insn</code></dt>
  817. <dd><p>Target has a square root instruction that the compiler can generate.
  818. </p>
  819. </dd>
  820. <dt><code>sse</code></dt>
  821. <dd><p>Target supports compiling <code>sse</code> instructions.
  822. </p>
  823. </dd>
  824. <dt><code>sse_runtime</code></dt>
  825. <dd><p>Target supports the execution of <code>sse</code> instructions.
  826. </p>
  827. </dd>
  828. <dt><code>sse2</code></dt>
  829. <dd><p>Target supports compiling <code>sse2</code> instructions.
  830. </p>
  831. </dd>
  832. <dt><code>sse2_runtime</code></dt>
  833. <dd><p>Target supports the execution of <code>sse2</code> instructions.
  834. </p>
  835. </dd>
  836. <dt><code>sync_char_short</code></dt>
  837. <dd><p>Target supports atomic operations on <code>char</code> and <code>short</code>.
  838. </p>
  839. </dd>
  840. <dt><code>sync_int_long</code></dt>
  841. <dd><p>Target supports atomic operations on <code>int</code> and <code>long</code>.
  842. </p>
  843. </dd>
  844. <dt><code>ultrasparc_hw</code></dt>
  845. <dd><p>Test environment appears to run executables on a simulator that
  846. accepts only <code>EM_SPARC</code> executables and chokes on <code>EM_SPARC32PLUS</code>
  847. or <code>EM_SPARCV9</code> executables.
  848. </p>
  849. </dd>
  850. <dt><code>vect_cmdline_needed</code></dt>
  851. <dd><p>Target requires a command line argument to enable a SIMD instruction set.
  852. </p>
  853. </dd>
  854. <dt><code>pie_copyreloc</code></dt>
  855. <dd><p>The x86-64 target linker supports PIE with copy reloc.
  856. </p>
  857. </dd>
  858. <dt><code>divmod</code></dt>
  859. <dd><p>Target supporting hardware divmod insn or divmod libcall.
  860. </p>
  861. </dd>
  862. <dt><code>divmod_simode</code></dt>
  863. <dd><p>Target supporting hardware divmod insn or divmod libcall for SImode.
  864. </p>
  865. </dd>
  866. </dl>
  867. <a name="Environment-attributes"></a>
  868. <h4 class="subsubsection">7.2.3.12 Environment attributes</h4>
  869. <dl compact="compact">
  870. <dt><code>c</code></dt>
  871. <dd><p>The language for the compiler under test is C.
  872. </p>
  873. </dd>
  874. <dt><code>c++</code></dt>
  875. <dd><p>The language for the compiler under test is C++.
  876. </p>
  877. </dd>
  878. <dt><code>c99_runtime</code></dt>
  879. <dd><p>Target provides a full C99 runtime.
  880. </p>
  881. </dd>
  882. <dt><code>correct_iso_cpp_string_wchar_protos</code></dt>
  883. <dd><p>Target <code>string.h</code> and <code>wchar.h</code> headers provide C++ required
  884. overloads for <code>strchr</code> etc. functions.
  885. </p>
  886. </dd>
  887. <dt><code>dummy_wcsftime</code></dt>
  888. <dd><p>Target uses a dummy <code>wcsftime</code> function that always returns zero.
  889. </p>
  890. </dd>
  891. <dt><code>fd_truncate</code></dt>
  892. <dd><p>Target can truncate a file from a file descriptor, as used by
  893. <samp>libgfortran/io/unix.c:fd_truncate</samp>; i.e. <code>ftruncate</code> or
  894. <code>chsize</code>.
  895. </p>
  896. </dd>
  897. <dt><code>freestanding</code></dt>
  898. <dd><p>Target is &lsquo;<samp>freestanding</samp>&rsquo; as defined in section 4 of the C99 standard.
  899. Effectively, it is a target which supports no extra headers or libraries
  900. other than what is considered essential.
  901. </p>
  902. </dd>
  903. <dt><code>gettimeofday</code></dt>
  904. <dd><p>Target supports <code>gettimeofday</code>.
  905. </p>
  906. </dd>
  907. <dt><code>init_priority</code></dt>
  908. <dd><p>Target supports constructors with initialization priority arguments.
  909. </p>
  910. </dd>
  911. <dt><code>inttypes_types</code></dt>
  912. <dd><p>Target has the basic signed and unsigned types in <code>inttypes.h</code>.
  913. This is for tests that GCC&rsquo;s notions of these types agree with those
  914. in the header, as some systems have only <code>inttypes.h</code>.
  915. </p>
  916. </dd>
  917. <dt><code>lax_strtofp</code></dt>
  918. <dd><p>Target might have errors of a few ULP in string to floating-point
  919. conversion functions and overflow is not always detected correctly by
  920. those functions.
  921. </p>
  922. </dd>
  923. <dt><code>mempcpy</code></dt>
  924. <dd><p>Target provides <code>mempcpy</code> function.
  925. </p>
  926. </dd>
  927. <dt><code>mmap</code></dt>
  928. <dd><p>Target supports <code>mmap</code>.
  929. </p>
  930. </dd>
  931. <dt><code>newlib</code></dt>
  932. <dd><p>Target supports Newlib.
  933. </p>
  934. </dd>
  935. <dt><code>pow10</code></dt>
  936. <dd><p>Target provides <code>pow10</code> function.
  937. </p>
  938. </dd>
  939. <dt><code>pthread</code></dt>
  940. <dd><p>Target can compile using <code>pthread.h</code> with no errors or warnings.
  941. </p>
  942. </dd>
  943. <dt><code>pthread_h</code></dt>
  944. <dd><p>Target has <code>pthread.h</code>.
  945. </p>
  946. </dd>
  947. <dt><code>run_expensive_tests</code></dt>
  948. <dd><p>Expensive testcases (usually those that consume excessive amounts of CPU
  949. time) should be run on this target. This can be enabled by setting the
  950. <code>GCC_TEST_RUN_EXPENSIVE</code> environment variable to a non-empty string.
  951. </p>
  952. </dd>
  953. <dt><code>simulator</code></dt>
  954. <dd><p>Test system runs executables on a simulator (i.e. slowly) rather than
  955. hardware (i.e. fast).
  956. </p>
  957. </dd>
  958. <dt><code>stabs</code></dt>
  959. <dd><p>Target supports the stabs debugging format.
  960. </p>
  961. </dd>
  962. <dt><code>stdint_types</code></dt>
  963. <dd><p>Target has the basic signed and unsigned C types in <code>stdint.h</code>.
  964. This will be obsolete when GCC ensures a working <code>stdint.h</code> for
  965. all targets.
  966. </p>
  967. </dd>
  968. <dt><code>stpcpy</code></dt>
  969. <dd><p>Target provides <code>stpcpy</code> function.
  970. </p>
  971. </dd>
  972. <dt><code>trampolines</code></dt>
  973. <dd><p>Target supports trampolines.
  974. </p>
  975. </dd>
  976. <dt><code>uclibc</code></dt>
  977. <dd><p>Target supports uClibc.
  978. </p>
  979. </dd>
  980. <dt><code>unwrapped</code></dt>
  981. <dd><p>Target does not use a status wrapper.
  982. </p>
  983. </dd>
  984. <dt><code>vxworks_kernel</code></dt>
  985. <dd><p>Target is a VxWorks kernel.
  986. </p>
  987. </dd>
  988. <dt><code>vxworks_rtp</code></dt>
  989. <dd><p>Target is a VxWorks RTP.
  990. </p>
  991. </dd>
  992. <dt><code>wchar</code></dt>
  993. <dd><p>Target supports wide characters.
  994. </p></dd>
  995. </dl>
  996. <a name="Other-attributes"></a>
  997. <h4 class="subsubsection">7.2.3.13 Other attributes</h4>
  998. <dl compact="compact">
  999. <dt><code>automatic_stack_alignment</code></dt>
  1000. <dd><p>Target supports automatic stack alignment.
  1001. </p>
  1002. </dd>
  1003. <dt><code>cilkplus_runtime</code></dt>
  1004. <dd><p>Target supports the Cilk Plus runtime library.
  1005. </p>
  1006. </dd>
  1007. <dt><code>cxa_atexit</code></dt>
  1008. <dd><p>Target uses <code>__cxa_atexit</code>.
  1009. </p>
  1010. </dd>
  1011. <dt><code>default_packed</code></dt>
  1012. <dd><p>Target has packed layout of structure members by default.
  1013. </p>
  1014. </dd>
  1015. <dt><code>fgraphite</code></dt>
  1016. <dd><p>Target supports Graphite optimizations.
  1017. </p>
  1018. </dd>
  1019. <dt><code>fixed_point</code></dt>
  1020. <dd><p>Target supports fixed-point extension to C.
  1021. </p>
  1022. </dd>
  1023. <dt><code>fopenacc</code></dt>
  1024. <dd><p>Target supports OpenACC via <samp>-fopenacc</samp>.
  1025. </p>
  1026. </dd>
  1027. <dt><code>fopenmp</code></dt>
  1028. <dd><p>Target supports OpenMP via <samp>-fopenmp</samp>.
  1029. </p>
  1030. </dd>
  1031. <dt><code>fpic</code></dt>
  1032. <dd><p>Target supports <samp>-fpic</samp> and <samp>-fPIC</samp>.
  1033. </p>
  1034. </dd>
  1035. <dt><code>freorder</code></dt>
  1036. <dd><p>Target supports <samp>-freorder-blocks-and-partition</samp>.
  1037. </p>
  1038. </dd>
  1039. <dt><code>fstack_protector</code></dt>
  1040. <dd><p>Target supports <samp>-fstack-protector</samp>.
  1041. </p>
  1042. </dd>
  1043. <dt><code>gas</code></dt>
  1044. <dd><p>Target uses GNU <code>as</code>.
  1045. </p>
  1046. </dd>
  1047. <dt><code>gc_sections</code></dt>
  1048. <dd><p>Target supports <samp>--gc-sections</samp>.
  1049. </p>
  1050. </dd>
  1051. <dt><code>gld</code></dt>
  1052. <dd><p>Target uses GNU <code>ld</code>.
  1053. </p>
  1054. </dd>
  1055. <dt><code>keeps_null_pointer_checks</code></dt>
  1056. <dd><p>Target keeps null pointer checks, either due to the use of
  1057. <samp>-fno-delete-null-pointer-checks</samp> or hardwired into the target.
  1058. </p>
  1059. </dd>
  1060. <dt><code>lto</code></dt>
  1061. <dd><p>Compiler has been configured to support link-time optimization (LTO).
  1062. </p>
  1063. </dd>
  1064. <dt><code>naked_functions</code></dt>
  1065. <dd><p>Target supports the <code>naked</code> function attribute.
  1066. </p>
  1067. </dd>
  1068. <dt><code>named_sections</code></dt>
  1069. <dd><p>Target supports named sections.
  1070. </p>
  1071. </dd>
  1072. <dt><code>natural_alignment_32</code></dt>
  1073. <dd><p>Target uses natural alignment (aligned to type size) for types of
  1074. 32 bits or less.
  1075. </p>
  1076. </dd>
  1077. <dt><code>target_natural_alignment_64</code></dt>
  1078. <dd><p>Target uses natural alignment (aligned to type size) for types of
  1079. 64 bits or less.
  1080. </p>
  1081. </dd>
  1082. <dt><code>nonpic</code></dt>
  1083. <dd><p>Target does not generate PIC by default.
  1084. </p>
  1085. </dd>
  1086. <dt><code>pie_enabled</code></dt>
  1087. <dd><p>Target generates PIE by default.
  1088. </p>
  1089. </dd>
  1090. <dt><code>pcc_bitfield_type_matters</code></dt>
  1091. <dd><p>Target defines <code>PCC_BITFIELD_TYPE_MATTERS</code>.
  1092. </p>
  1093. </dd>
  1094. <dt><code>pe_aligned_commons</code></dt>
  1095. <dd><p>Target supports <samp>-mpe-aligned-commons</samp>.
  1096. </p>
  1097. </dd>
  1098. <dt><code>pie</code></dt>
  1099. <dd><p>Target supports <samp>-pie</samp>, <samp>-fpie</samp> and <samp>-fPIE</samp>.
  1100. </p>
  1101. </dd>
  1102. <dt><code>rdynamic</code></dt>
  1103. <dd><p>Target supports <samp>-rdynamic</samp>.
  1104. </p>
  1105. </dd>
  1106. <dt><code>section_anchors</code></dt>
  1107. <dd><p>Target supports section anchors.
  1108. </p>
  1109. </dd>
  1110. <dt><code>short_enums</code></dt>
  1111. <dd><p>Target defaults to short enums.
  1112. </p>
  1113. </dd>
  1114. <dt><code>static</code></dt>
  1115. <dd><p>Target supports <samp>-static</samp>.
  1116. </p>
  1117. </dd>
  1118. <dt><code>static_libgfortran</code></dt>
  1119. <dd><p>Target supports statically linking &lsquo;<samp>libgfortran</samp>&rsquo;.
  1120. </p>
  1121. </dd>
  1122. <dt><code>string_merging</code></dt>
  1123. <dd><p>Target supports merging string constants at link time.
  1124. </p>
  1125. </dd>
  1126. <dt><code>ucn</code></dt>
  1127. <dd><p>Target supports compiling and assembling UCN.
  1128. </p>
  1129. </dd>
  1130. <dt><code>ucn_nocache</code></dt>
  1131. <dd><p>Including the options used to compile this particular test, the
  1132. target supports compiling and assembling UCN.
  1133. </p>
  1134. </dd>
  1135. <dt><code>unaligned_stack</code></dt>
  1136. <dd><p>Target does not guarantee that its <code>STACK_BOUNDARY</code> is greater than
  1137. or equal to the required vector alignment.
  1138. </p>
  1139. </dd>
  1140. <dt><code>vector_alignment_reachable</code></dt>
  1141. <dd><p>Vector alignment is reachable for types of 32 bits or less.
  1142. </p>
  1143. </dd>
  1144. <dt><code>vector_alignment_reachable_for_64bit</code></dt>
  1145. <dd><p>Vector alignment is reachable for types of 64 bits or less.
  1146. </p>
  1147. </dd>
  1148. <dt><code>wchar_t_char16_t_compatible</code></dt>
  1149. <dd><p>Target supports <code>wchar_t</code> that is compatible with <code>char16_t</code>.
  1150. </p>
  1151. </dd>
  1152. <dt><code>wchar_t_char32_t_compatible</code></dt>
  1153. <dd><p>Target supports <code>wchar_t</code> that is compatible with <code>char32_t</code>.
  1154. </p>
  1155. </dd>
  1156. <dt><code>comdat_group</code></dt>
  1157. <dd><p>Target uses comdat groups.
  1158. </p></dd>
  1159. </dl>
  1160. <a name="Local-to-tests-in-gcc_002etarget_002fi386"></a>
  1161. <h4 class="subsubsection">7.2.3.14 Local to tests in <code>gcc.target/i386</code></h4>
  1162. <dl compact="compact">
  1163. <dt><code>3dnow</code></dt>
  1164. <dd><p>Target supports compiling <code>3dnow</code> instructions.
  1165. </p>
  1166. </dd>
  1167. <dt><code>aes</code></dt>
  1168. <dd><p>Target supports compiling <code>aes</code> instructions.
  1169. </p>
  1170. </dd>
  1171. <dt><code>fma4</code></dt>
  1172. <dd><p>Target supports compiling <code>fma4</code> instructions.
  1173. </p>
  1174. </dd>
  1175. <dt><code>ms_hook_prologue</code></dt>
  1176. <dd><p>Target supports attribute <code>ms_hook_prologue</code>.
  1177. </p>
  1178. </dd>
  1179. <dt><code>pclmul</code></dt>
  1180. <dd><p>Target supports compiling <code>pclmul</code> instructions.
  1181. </p>
  1182. </dd>
  1183. <dt><code>sse3</code></dt>
  1184. <dd><p>Target supports compiling <code>sse3</code> instructions.
  1185. </p>
  1186. </dd>
  1187. <dt><code>sse4</code></dt>
  1188. <dd><p>Target supports compiling <code>sse4</code> instructions.
  1189. </p>
  1190. </dd>
  1191. <dt><code>sse4a</code></dt>
  1192. <dd><p>Target supports compiling <code>sse4a</code> instructions.
  1193. </p>
  1194. </dd>
  1195. <dt><code>ssse3</code></dt>
  1196. <dd><p>Target supports compiling <code>ssse3</code> instructions.
  1197. </p>
  1198. </dd>
  1199. <dt><code>vaes</code></dt>
  1200. <dd><p>Target supports compiling <code>vaes</code> instructions.
  1201. </p>
  1202. </dd>
  1203. <dt><code>vpclmul</code></dt>
  1204. <dd><p>Target supports compiling <code>vpclmul</code> instructions.
  1205. </p>
  1206. </dd>
  1207. <dt><code>xop</code></dt>
  1208. <dd><p>Target supports compiling <code>xop</code> instructions.
  1209. </p></dd>
  1210. </dl>
  1211. <a name="Local-to-tests-in-gcc_002etarget_002fspu_002fea"></a>
  1212. <h4 class="subsubsection">7.2.3.15 Local to tests in <code>gcc.target/spu/ea</code></h4>
  1213. <dl compact="compact">
  1214. <dt><code>ealib</code></dt>
  1215. <dd><p>Target <code>__ea</code> library functions are available.
  1216. </p></dd>
  1217. </dl>
  1218. <a name="Local-to-tests-in-gcc_002etest_002dframework"></a>
  1219. <h4 class="subsubsection">7.2.3.16 Local to tests in <code>gcc.test-framework</code></h4>
  1220. <dl compact="compact">
  1221. <dt><code>no</code></dt>
  1222. <dd><p>Always returns 0.
  1223. </p>
  1224. </dd>
  1225. <dt><code>yes</code></dt>
  1226. <dd><p>Always returns 1.
  1227. </p></dd>
  1228. </dl>
  1229. <hr>
  1230. <div class="header">
  1231. <p>
  1232. 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>
  1233. </div>
  1234. </body>
  1235. </html>