]>
Commit | Line | Data |
---|---|---|
c63539ff ML |
1 | .. |
2 | Copyright 1988-2022 Free Software Foundation, Inc. | |
3 | This is part of the GCC manual. | |
4 | For copying conditions, see the copyright.rst file. | |
5 | ||
6 | .. _add-options: | |
7 | ||
8 | Features for dg-add-options | |
9 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
10 | ||
11 | The supported values of :samp:`{feature}` for directive ``dg-add-options`` | |
12 | are: | |
13 | ||
14 | ``arm_fp`` | |
15 | ``__ARM_FP`` definition. Only ARM targets support this feature, and only then | |
16 | in certain modes; see the :ref:`arm_fp_ok <arm_fp_ok>`. | |
17 | ||
18 | ``arm_fp_dp`` | |
19 | ``__ARM_FP`` definition with double-precision support. Only ARM | |
20 | targets support this feature, and only then in certain modes; see the | |
21 | :ref:`arm_fp_dp_ok <arm_fp_dp_ok>`. | |
22 | ||
23 | ``arm_neon`` | |
24 | NEON support. Only ARM targets support this feature, and only then | |
25 | in certain modes; see the :ref:`arm_neon_ok <arm_neon_ok>`. | |
26 | ||
27 | ``arm_fp16`` | |
28 | VFP half-precision floating point support. This does not select the | |
29 | FP16 format; for that, use :ref:`arm_fp16_ieee <arm_fp16_ieee>` or | |
30 | :ref:`arm_fp16_alternative <arm_fp16_alternative>` instead. This | |
31 | feature is only supported by ARM targets and then only in certain | |
32 | modes; see the :ref:`arm_fp16_ok <arm_fp16_ok>`. | |
33 | ||
34 | .. _arm_fp16_ieee: | |
35 | ||
36 | ``arm_fp16_ieee`` | |
37 | ARM IEEE 754-2008 format VFP half-precision floating point support. | |
38 | This feature is only supported by ARM targets and then only in certain | |
39 | modes; see the :ref:`arm_fp16_ok <arm_fp16_ok>`. | |
40 | ||
41 | .. _arm_fp16_alternative: | |
42 | ||
43 | ``arm_fp16_alternative`` | |
44 | ARM Alternative format VFP half-precision floating point support. | |
45 | This feature is only supported by ARM targets and then only in certain | |
46 | modes; see the :ref:`arm_fp16_ok <arm_fp16_ok>`. | |
47 | ||
48 | ``arm_neon_fp16`` | |
49 | NEON and half-precision floating point support. Only ARM targets | |
50 | support this feature, and only then in certain modes; see | |
51 | the :ref:`arm_neon_fp16_ok <arm_neon_fp16_ok>`. | |
52 | ||
53 | ``arm_vfp3`` | |
54 | arm vfp3 floating point support; see | |
55 | the :ref:`arm_vfp3_ok <arm_vfp3_ok>`. | |
56 | ||
57 | ``arm_arch_v8a_hard`` | |
58 | Add options for ARMv8-A and the hard-float variant of the AAPCS, | |
59 | if this is supported by the compiler; see the | |
60 | :ref:`arm_arch_v8a_hard_ok <arm_arch_v8a_hard_ok>` effective target keyword. | |
61 | ||
62 | ``arm_v8_1a_neon`` | |
63 | Add options for ARMv8.1-A with Adv.SIMD support, if this is supported | |
64 | by the target; see the :ref:`arm_v8_1a_neon_ok <arm_v8_1a_neon_ok>` | |
65 | effective target keyword. | |
66 | ||
67 | ``arm_v8_2a_fp16_scalar`` | |
68 | Add options for ARMv8.2-A with scalar FP16 support, if this is | |
69 | supported by the target; see the | |
70 | :ref:`arm_v8_2a_fp16_scalar_ok <arm_v8_2a_fp16_scalar_ok>` effective | |
71 | target keyword. | |
72 | ||
73 | ``arm_v8_2a_fp16_neon`` | |
74 | Add options for ARMv8.2-A with Adv.SIMD FP16 support, if this is | |
75 | supported by the target; see the | |
76 | :ref:`arm_v8_2a_fp16_neon_ok <arm_v8_2a_fp16_neon_ok>` effective target | |
77 | keyword. | |
78 | ||
79 | ``arm_v8_2a_dotprod_neon`` | |
80 | Add options for ARMv8.2-A with Adv.SIMD Dot Product support, if this is | |
81 | supported by the target; see the | |
82 | :ref:`arm_v8_2a_dotprod_neon_ok <arm_v8_2a_dotprod_neon_ok>` effective target keyword. | |
83 | ||
84 | ``arm_fp16fml_neon`` | |
85 | Add options to enable generation of the ``VFMAL`` and ``VFMSL`` | |
86 | instructions, if this is supported by the target; see the | |
87 | :ref:`arm_fp16fml_neon_ok <arm_fp16fml_neon_ok>` effective target keyword. | |
88 | ||
89 | ``arm_dsp`` | |
90 | Add options for ARM DSP intrinsics support, if this is supported by | |
91 | the target; see the :ref:`arm_dsp_ok <arm_dsp_ok>`. | |
92 | ||
93 | ``bind_pic_locally`` | |
94 | Add the target-specific flags needed to enable functions to bind | |
95 | locally when using pic/PIC passes in the testsuite. | |
96 | ||
97 | :samp:`float{n}` | |
98 | Add the target-specific flags needed to use the ``_Floatn`` type. | |
99 | ||
100 | :samp:`float{n}x` | |
101 | Add the target-specific flags needed to use the ``_Floatnx`` type. | |
102 | ||
103 | ``ieee`` | |
104 | Add the target-specific flags needed to enable full IEEE | |
105 | compliance mode. | |
106 | ||
107 | ``mips16_attribute`` | |
108 | ``mips16`` function attributes. | |
109 | Only MIPS targets support this feature, and only then in certain modes. | |
110 | ||
111 | .. _stack_size_ao: | |
112 | ||
113 | ``stack_size`` | |
114 | Add the flags needed to define macro STACK_SIZE and set it to the stack size | |
115 | limit associated with the :ref:`stack_size_et <stack_size_et>`. | |
116 | ||
117 | ``sqrt_insn`` | |
118 | Add the target-specific flags needed to enable hardware square root | |
119 | instructions, if any. | |
120 | ||
121 | ``tls`` | |
3ed1b4ce | 122 | Add the target-specific flags needed to use thread-local storage. |