libstdc++: Add script to update docs for a new release branch
[official-gcc.git] / gcc / config / i386 / i386.opt
blob353fffb234307107ca40870d19355919ae46c19c
1 ; Options for the IA-32 and AMD64 ports of the compiler.
3 ; Copyright (C) 2005-2024 Free Software Foundation, Inc.
5 ; This file is part of GCC.
7 ; GCC is free software; you can redistribute it and/or modify it under
8 ; the terms of the GNU General Public License as published by the Free
9 ; Software Foundation; either version 3, or (at your option) any later
10 ; version.
12 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 ; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 ; for more details.
17 ; You should have received a copy of the GNU General Public License
18 ; along with GCC; see the file COPYING3.  If not see
19 ; <http://www.gnu.org/licenses/>.
21 HeaderInclude
22 config/i386/i386-opts.h
24 ; Bit flags that specify the ISA we are compiling for.
25 Variable
26 HOST_WIDE_INT ix86_isa_flags = TARGET_64BIT_DEFAULT | TARGET_SUBTARGET_ISA_DEFAULT
28 Variable
29 HOST_WIDE_INT ix86_isa_flags2 = 0
31 ; A mask of ix86_isa_flags that includes bit X if X was set or cleared
32 ; on the command line.
33 Variable
34 HOST_WIDE_INT ix86_isa_flags_explicit
36 Variable
37 HOST_WIDE_INT ix86_isa_flags2_explicit
39 ; Indicate if AVX512 and AVX10.1 are explicitly set no.
40 Variable
41 int ix86_no_avx512_explicit = 0
43 Variable
44 int ix86_no_avx10_1_explicit = 0
46 ; Additional target flags
47 Variable
48 int ix86_target_flags
50 TargetVariable
51 int recip_mask = RECIP_MASK_DEFAULT
53 Variable
54 int recip_mask_explicit
56 TargetSave
57 int x_recip_mask_explicit
59 ;; A copy of flag_excess_precision as a target variable that should
60 ;; force a different DECL_FUNCTION_SPECIFIC_TARGET upon
61 ;; flag_excess_precision changes.
62 TargetVariable
63 enum excess_precision ix86_excess_precision = EXCESS_PRECISION_DEFAULT
65 ;; Similarly for flag_unsafe_math_optimizations.
66 TargetVariable
67 bool ix86_unsafe_math_optimizations = false
69 ;; Definitions to add to the cl_target_option structure
70 ;; -march= processor
71 TargetSave
72 unsigned char arch
74 ;; -mtune= processor
75 TargetSave
76 unsigned char tune
78 ;; -march= processor-string
79 TargetSave
80 const char *x_ix86_arch_string
82 ;; -mtune= processor-string
83 TargetSave
84 const char *x_ix86_tune_string
86 ;; CPU schedule model
87 TargetSave
88 unsigned char schedule
90 ;; True if processor has SSE prefetch instruction.
91 TargetSave
92 unsigned char prefetch_sse
94 ;; branch cost
95 TargetSave
96 unsigned char branch_cost
98 ;; which flags were passed by the user
99 TargetSave
100 HOST_WIDE_INT x_ix86_isa_flags2_explicit
102 ;; which flags were passed by the user
103 TargetSave
104 HOST_WIDE_INT x_ix86_isa_flags_explicit
106 ;; which flags were passed by the user
107 TargetSave
108 HOST_WIDE_INT x_ix86_no_avx512_explicit
110 ;; which flags were passed by the user
111 TargetSave
112 HOST_WIDE_INT x_ix86_no_avx10_1_explicit
114 ;; whether -mtune was not specified
115 TargetSave
116 unsigned char tune_defaulted
118 ;; whether -march was specified
119 TargetSave
120 unsigned char arch_specified
122 ;; -mcmodel= model
123 TargetVariable
124 enum cmodel ix86_cmodel = CM_32
126 ;; -mabi=
127 TargetVariable
128 enum calling_abi ix86_abi = SYSV_ABI
130 ;; -masm=
131 TargetSave
132 enum asm_dialect x_ix86_asm_dialect
134 ;; -mbranch-cost=
135 TargetSave
136 int x_ix86_branch_cost
138 ;; -mdump-tune-features=
139 TargetSave
140 int x_ix86_dump_tunes
142 ;; -mstackrealign=
143 TargetSave
144 int x_ix86_force_align_arg_pointer
146 ;; -mforce-drap=
147 TargetSave
148 int x_ix86_force_drap
150 ;; -mincoming-stack-boundary=
151 TargetVariable
152 int ix86_incoming_stack_boundary_arg
154 ;; -maddress-mode=
155 TargetVariable
156 enum pmode ix86_pmode = PMODE_SI
158 ;; -mpreferred-stack-boundary=
159 TargetVariable
160 int ix86_preferred_stack_boundary_arg
162 ;; -mrecip=
163 TargetSave
164 const char *x_ix86_recip_name
166 ;; -mregparm=
167 TargetVariable
168 int ix86_regparm
170 ;; -mlarge-data-threshold=
171 TargetSave
172 int x_ix86_section_threshold
174 ;; -msse2avx=
175 TargetSave
176 int x_ix86_sse2avx
178 ;; -mstack-protector-guard=
179 TargetSave
180 enum stack_protector_guard x_ix86_stack_protector_guard
182 ;; -mstringop-strategy=
183 TargetSave
184 enum stringop_alg x_ix86_stringop_alg
186 ;; -mtls-dialect=
187 TargetSave
188 enum tls_dialect x_ix86_tls_dialect
190 ;; -mtune-ctrl=
191 TargetSave
192 const char *x_ix86_tune_ctrl_string
194 ;; -mmemcpy-strategy=
195 TargetSave
196 const char *x_ix86_tune_memcpy_strategy
198 ;; -mmemset-strategy=
199 TargetSave
200 const char *x_ix86_tune_memset_strategy
202 ;; -mno-default=
203 TargetSave
204 int x_ix86_tune_no_default
206 ;; -mveclibabi=
207 TargetVariable
208 enum ix86_veclibabi ix86_veclibabi_type = ix86_veclibabi_type_none
210 ;; x86 options
211 m128bit-long-double
212 Target RejectNegative Mask(128BIT_LONG_DOUBLE) Save
213 sizeof(long double) is 16.
215 m80387
216 Target Mask(80387) Save
217 Use hardware fp.
219 m96bit-long-double
220 Target RejectNegative InverseMask(128BIT_LONG_DOUBLE) Save
221 sizeof(long double) is 12.
223 mlong-double-80
224 Target RejectNegative Negative(mlong-double-64) InverseMask(LONG_DOUBLE_64) Save
225 Use 80-bit long double.
227 mlong-double-64
228 Target RejectNegative Negative(mlong-double-128) Mask(LONG_DOUBLE_64) InverseMask(LONG_DOUBLE_128) Save
229 Use 64-bit long double.
231 mlong-double-128
232 Target RejectNegative Negative(mlong-double-80) Mask(LONG_DOUBLE_128) InverseMask(LONG_DOUBLE_64) Save
233 Use 128-bit long double.
235 maccumulate-outgoing-args
236 Target Mask(ACCUMULATE_OUTGOING_ARGS) Save
237 Reserve space for outgoing arguments in the function prologue.
239 malign-double
240 Target Mask(ALIGN_DOUBLE) Save
241 Align some doubles on dword boundary.
243 malign-functions=
244 Target RejectNegative Joined UInteger
245 Function starts are aligned to this power of 2.
247 malign-jumps=
248 Target RejectNegative Joined UInteger
249 Jump targets are aligned to this power of 2.
251 malign-loops=
252 Target RejectNegative Joined UInteger
253 Loop code aligned to this power of 2.
255 malign-stringops
256 Target RejectNegative InverseMask(NO_ALIGN_STRINGOPS, ALIGN_STRINGOPS) Save
257 Align destination of the string operations.
259 malign-data=
260 Target RejectNegative Joined Var(ix86_align_data_type) Enum(ix86_align_data) Init(ix86_align_data_type_compat)
261 Use the given data alignment.
263 Enum
264 Name(ix86_align_data) Type(enum ix86_align_data)
265 Known data alignment choices (for use with the -malign-data= option):
267 EnumValue
268 Enum(ix86_align_data) String(compat) Value(ix86_align_data_type_compat)
270 EnumValue
271 Enum(ix86_align_data) String(abi) Value(ix86_align_data_type_abi)
273 EnumValue
274 Enum(ix86_align_data) String(cacheline) Value(ix86_align_data_type_cacheline)
276 march=
277 Target RejectNegative Negative(march=) Joined Var(ix86_arch_string)
278 Generate code for given CPU.
280 masm=
281 Target RejectNegative Joined Enum(asm_dialect) Var(ix86_asm_dialect) Init(ASM_ATT)
282 Use given assembler dialect.
284 Enum
285 Name(asm_dialect) Type(enum asm_dialect)
286 Known assembler dialects (for use with the -masm= option):
288 EnumValue
289 Enum(asm_dialect) String(intel) Value(ASM_INTEL)
291 EnumValue
292 Enum(asm_dialect) String(att) Value(ASM_ATT)
294 mbranch-cost=
295 Target RejectNegative Joined UInteger Var(ix86_branch_cost) IntegerRange(0, 5)
296 Branches are this expensive (arbitrary units).
298 mlarge-data-threshold=
299 Target RejectNegative Joined UInteger Var(ix86_section_threshold) Init(DEFAULT_LARGE_SECTION_THRESHOLD)
300 -mlarge-data-threshold=<number> Data greater than given threshold will go into a large data section in x86-64 medium and large code models.
302 mcmodel=
303 Target RejectNegative Joined Enum(cmodel) Var(ix86_cmodel) Init(CM_32)
304 Use given x86-64 code model.
306 Enum
307 Name(cmodel) Type(enum cmodel)
308 Known code models (for use with the -mcmodel= option):
310 EnumValue
311 Enum(cmodel) String(small) Value(CM_SMALL)
313 EnumValue
314 Enum(cmodel) String(medium) Value(CM_MEDIUM)
316 EnumValue
317 Enum(cmodel) String(large) Value(CM_LARGE)
319 EnumValue
320 Enum(cmodel) String(32) Value(CM_32)
322 EnumValue
323 Enum(cmodel) String(kernel) Value(CM_KERNEL)
325 maddress-mode=
326 Target RejectNegative Joined Enum(pmode) Var(ix86_pmode) Init(PMODE_SI)
327 Use given address mode.
329 Enum
330 Name(pmode) Type(enum pmode)
331 Known address mode (for use with the -maddress-mode= option):
333 EnumValue
334 Enum(pmode) String(short) Value(PMODE_SI)
336 EnumValue
337 Enum(pmode) String(long) Value(PMODE_DI)
339 mcpu=
340 Target RejectNegative Joined Undocumented Alias(mtune=) Warn(%<-mcpu=%> is deprecated; use %<-mtune=%> or %<-march=%> instead)
342 mfancy-math-387
343 Target RejectNegative InverseMask(NO_FANCY_MATH_387, USE_FANCY_MATH_387) Save
344 Generate sin, cos, sqrt for FPU.
346 mforce-drap
347 Target Var(ix86_force_drap)
348 Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack.
350 mfp-ret-in-387
351 Target Mask(FLOAT_RETURNS) Save
352 Return values of functions in FPU registers.
354 mfpmath=
355 Target RejectNegative Joined Var(ix86_fpmath) Enum(fpmath_unit) Init(FPMATH_387) Save
356 Generate floating point mathematics using given instruction set.
358 Enum
359 Name(fpmath_unit) Type(enum fpmath_unit)
360 Valid arguments to -mfpmath=:
362 EnumValue
363 Enum(fpmath_unit) String(387) Value(FPMATH_387)
365 EnumValue
366 Enum(fpmath_unit) String(sse) Value(FPMATH_SSE)
368 EnumValue
369 Enum(fpmath_unit) String(387,sse) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
371 EnumValue
372 Enum(fpmath_unit) String(387+sse) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
374 EnumValue
375 Enum(fpmath_unit) String(sse,387) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
377 EnumValue
378 Enum(fpmath_unit) String(sse+387) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
380 EnumValue
381 Enum(fpmath_unit) String(both) Value({(enum fpmath_unit) (FPMATH_SSE | FPMATH_387)})
383 mhard-float
384 Target RejectNegative Mask(80387) Save
385 Use hardware fp.
387 mieee-fp
388 Target Mask(IEEE_FP) Save
389 Use IEEE math for fp comparisons.
391 minline-all-stringops
392 Target Mask(INLINE_ALL_STRINGOPS) Save
393 Inline all known string operations.
395 minline-stringops-dynamically
396 Target Mask(INLINE_STRINGOPS_DYNAMICALLY) Save
397 Inline memset/memcpy string operations, but perform inline version only for small blocks.
399 mintel-syntax
400 Target Undocumented Alias(masm=, intel, att) Warn(%<-mintel-syntax%> and %<-mno-intel-syntax%> are deprecated; use %<-masm=intel%> and %<-masm=att%> instead)
402 mms-bitfields
403 Target Mask(MS_BITFIELD_LAYOUT) Save
404 Use native (MS) bitfield layout.
406 mno-align-stringops
407 Target RejectNegative Mask(NO_ALIGN_STRINGOPS) Undocumented Save
409 mno-fancy-math-387
410 Target RejectNegative Mask(NO_FANCY_MATH_387) Undocumented Save
412 mno-push-args
413 Target RejectNegative Mask(NO_PUSH_ARGS) Undocumented Save
415 mno-red-zone
416 Target RejectNegative Mask(NO_RED_ZONE) Undocumented Save
418 momit-leaf-frame-pointer
419 Target Mask(OMIT_LEAF_FRAME_POINTER) Save
420 Omit the frame pointer in leaf functions.
422 mrelax-cmpxchg-loop
423 Target Mask(RELAX_CMPXCHG_LOOP) Save
424 Relax cmpxchg loop for atomic_fetch_{or,xor,and,nand} by adding load and cmp before cmpxchg, execute pause and loop back to load and compare if load value is not expected.
426 mpc32
427 Target RejectNegative
428 Set 80387 floating-point precision to 32-bit.
430 mpc64
431 Target RejectNegative
432 Set 80387 floating-point precision to 64-bit.
434 mpc80
435 Target RejectNegative
436 Set 80387 floating-point precision to 80-bit.
438 mdaz-ftz
439 Target
440 Set the FTZ and DAZ Flags.
442 mpreferred-stack-boundary=
443 Target RejectNegative Joined UInteger Var(ix86_preferred_stack_boundary_arg)
444 Attempt to keep stack aligned to this power of 2.
446 mincoming-stack-boundary=
447 Target RejectNegative Joined UInteger Var(ix86_incoming_stack_boundary_arg)
448 Assume incoming stack aligned to this power of 2.
450 mpush-args
451 Target InverseMask(NO_PUSH_ARGS, PUSH_ARGS) Save
452 Use push instructions to save outgoing arguments.
454 mred-zone
455 Target RejectNegative InverseMask(NO_RED_ZONE, RED_ZONE) Save
456 Use red-zone in the x86-64 code.
458 mregparm=
459 Target RejectNegative Joined UInteger Var(ix86_regparm)
460 Number of registers used to pass integer arguments.
462 mrtd
463 Target Mask(RTD) Save
464 Alternate calling convention.
466 msoft-float
467 Target InverseMask(80387) Save
468 Do not use hardware fp.
470 msseregparm
471 Target RejectNegative Mask(SSEREGPARM) Save
472 Use SSE register passing conventions for SF and DF mode.
474 mstackrealign
475 Target Var(ix86_force_align_arg_pointer)
476 Realign stack in prologue.
478 mstack-arg-probe
479 Target Mask(STACK_PROBE) Save
480 Enable stack probing.
482 mmemcpy-strategy=
483 Target RejectNegative Joined Var(ix86_tune_memcpy_strategy)
484 Specify memcpy expansion strategy when expected size is known.
486 mmemset-strategy=
487 Target RejectNegative Joined Var(ix86_tune_memset_strategy)
488 Specify memset expansion strategy when expected size is known.
490 mstringop-strategy=
491 Target RejectNegative Joined Enum(stringop_alg) Var(ix86_stringop_alg) Init(no_stringop)
492 Chose strategy to generate stringop using.
494 Enum
495 Name(stringop_alg) Type(enum stringop_alg)
496 Valid arguments to -mstringop-strategy=:
498 EnumValue
499 Enum(stringop_alg) String(rep_byte) Value(rep_prefix_1_byte)
501 EnumValue
502 Enum(stringop_alg) String(libcall) Value(libcall)
504 EnumValue
505 Enum(stringop_alg) String(rep_4byte) Value(rep_prefix_4_byte)
507 EnumValue
508 Enum(stringop_alg) String(rep_8byte) Value(rep_prefix_8_byte)
510 EnumValue
511 Enum(stringop_alg) String(byte_loop) Value(loop_1_byte)
513 EnumValue
514 Enum(stringop_alg) String(loop) Value(loop)
516 EnumValue
517 Enum(stringop_alg) String(unrolled_loop) Value(unrolled_loop)
519 EnumValue
520 Enum(stringop_alg) String(vector_loop) Value(vector_loop)
522 mtls-dialect=
523 Target RejectNegative Joined Var(ix86_tls_dialect) Enum(tls_dialect) Init(TLS_DIALECT_GNU)
524 Use given thread-local storage dialect.
526 Enum
527 Name(tls_dialect) Type(enum tls_dialect)
528 Known TLS dialects (for use with the -mtls-dialect= option):
530 EnumValue
531 Enum(tls_dialect) String(gnu) Value(TLS_DIALECT_GNU)
533 EnumValue
534 Enum(tls_dialect) String(gnu2) Value(TLS_DIALECT_GNU2)
536 mtls-direct-seg-refs
537 Target Mask(TLS_DIRECT_SEG_REFS)
538 Use direct references against %gs when accessing tls data.
540 mtune=
541 Target RejectNegative Negative(mtune=) Joined Var(ix86_tune_string)
542 Schedule code for given CPU.
544 mtune-ctrl=
545 Target RejectNegative Joined Var(ix86_tune_ctrl_string)
546 Fine grain control of tune features.
548 mno-default
549 Target RejectNegative Var(ix86_tune_no_default)
550 Clear all tune features.
552 mdump-tune-features
553 Target RejectNegative Var(ix86_dump_tunes)
555 miamcu
556 Target Mask(IAMCU)
557 Generate code that conforms to Intel MCU psABI.
559 mabi=
560 Target RejectNegative Joined Var(ix86_abi) Enum(calling_abi) Init(SYSV_ABI)
561 Generate code that conforms to the given ABI.
563 Enum
564 Name(calling_abi) Type(enum calling_abi)
565 Known ABIs (for use with the -mabi= option):
567 EnumValue
568 Enum(calling_abi) String(sysv) Value(SYSV_ABI)
570 EnumValue
571 Enum(calling_abi) String(ms) Value(MS_ABI)
573 mcall-ms2sysv-xlogues
574 Target Mask(CALL_MS2SYSV_XLOGUES) Save
575 Use libgcc stubs to save and restore registers clobbered by 64-bit Microsoft to System V ABI calls.
577 mveclibabi=
578 Target RejectNegative Joined Var(ix86_veclibabi_type) Enum(ix86_veclibabi) Init(ix86_veclibabi_type_none)
579 Vector library ABI to use.
581 Enum
582 Name(ix86_veclibabi) Type(enum ix86_veclibabi)
583 Known vectorization library ABIs (for use with the -mveclibabi= option):
585 EnumValue
586 Enum(ix86_veclibabi) String(svml) Value(ix86_veclibabi_type_svml)
588 EnumValue
589 Enum(ix86_veclibabi) String(acml) Value(ix86_veclibabi_type_acml)
591 mvect8-ret-in-mem
592 Target Mask(VECT8_RETURNS) Save
593 Return 8-byte vectors in memory.
595 mrecip
596 Target Mask(RECIP) Save
597 Generate reciprocals instead of divss and sqrtss.
599 mrecip=
600 Target RejectNegative Joined Var(ix86_recip_name)
601 Control generation of reciprocal estimates.
603 mcld
604 Target Mask(CLD) Save
605 Generate cld instruction in the function prologue.
607 mvzeroupper
608 Target Mask(VZEROUPPER) Save
609 Generate vzeroupper instruction before a transfer of control flow out of
610 the function.
612 mstv
613 Target Mask(STV) Save
614 Disable Scalar to Vector optimization pass transforming 64-bit integer
615 computations into a vector ones.
617 -param=x86-stv-max-visits=
618 Target Joined UInteger Var(x86_stv_max_visits) Init(10000) IntegerRange(1, 1000000) Param
619 The maximum number of use and def visits when discovering a STV chain before the discovery is aborted.
621 mdispatch-scheduler
622 Target RejectNegative Var(flag_dispatch_scheduler)
623 Do dispatch scheduling if processor is bdver1, bdver2, bdver3, bdver4
624 or znver1 and Haifa scheduling is selected.
626 mprefer-avx128
627 Target Alias(mprefer-vector-width=, 128, 256)
628 Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-vectorizer.
630 mprefer-vector-width=
631 Target RejectNegative Joined Var(prefer_vector_width_type) Enum(prefer_vector_width) Init(PVW_NONE) Save
632 Use given register vector width instructions instead of maximum register width in the auto-vectorizer.
634 Enum
635 Name(prefer_vector_width) Type(enum prefer_vector_width)
636 Known preferred register vector length (to use with the -mprefer-vector-width= option):
638 EnumValue
639 Enum(prefer_vector_width) String(none) Value(PVW_NONE)
641 EnumValue
642 Enum(prefer_vector_width) String(128) Value(PVW_AVX128)
644 EnumValue
645 Enum(prefer_vector_width) String(256) Value(PVW_AVX256)
647 EnumValue
648 Enum(prefer_vector_width) String(512) Value(PVW_AVX512)
650 mpartial-vector-fp-math
651 Target Var(ix86_partial_vec_fp_math) Init(1)
652 Enable floating-point status flags setting SSE vector operations on partial vectors.
654 mmove-max=
655 Target RejectNegative Joined Var(ix86_move_max) Enum(prefer_vector_width) Init(PVW_NONE) Save
656 Maximum number of bits that can be moved from memory to memory efficiently.
658 mstore-max=
659 Target RejectNegative Joined Var(ix86_store_max) Enum(prefer_vector_width) Init(PVW_NONE) Save
660 Maximum number of bits that can be stored to memory efficiently.
662 mnoreturn-no-callee-saved-registers
663 Target Var(ix86_noreturn_no_callee_saved_registers)
664 Optimize noreturn functions by not saving callee-saved registers used in the function.
666 ;; ISA support
669 Target RejectNegative Negative(m64) InverseMask(ISA_64BIT) Var(ix86_isa_flags) Save
670 Generate 32bit i386 code.
673 Target RejectNegative Negative(mx32) Mask(ABI_64) Var(ix86_isa_flags) Save
674 Generate 64bit x86-64 code.
676 mx32
677 Target RejectNegative Negative(m16) Mask(ABI_X32) Var(ix86_isa_flags) Save
678 Generate 32bit x86-64 code.
681 Target RejectNegative Negative(m32) Mask(CODE16) InverseMask(ISA_64BIT) Var(ix86_isa_flags) Save
682 Generate 16bit i386 code.
684 mmmx
685 Target Mask(ISA_MMX) Var(ix86_isa_flags) Save
686 Support MMX built-in functions.
688 m3dnow
689 Target Mask(ISA_3DNOW) Var(ix86_isa_flags) Save
690 Support 3DNow! built-in functions.
692 m3dnowa
693 Target Mask(ISA_3DNOW_A) Var(ix86_isa_flags) Save
694 Support Athlon 3Dnow! built-in functions.
696 msse
697 Target Mask(ISA_SSE) Var(ix86_isa_flags) Save
698 Support MMX and SSE built-in functions and code generation.
700 msse2
701 Target Mask(ISA_SSE2) Var(ix86_isa_flags) Save
702 Support MMX, SSE and SSE2 built-in functions and code generation.
704 msse3
705 Target Mask(ISA_SSE3) Var(ix86_isa_flags) Save
706 Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation.
708 mssse3
709 Target Mask(ISA_SSSE3) Var(ix86_isa_flags) Save
710 Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation.
712 msse4.1
713 Target Mask(ISA_SSE4_1) Var(ix86_isa_flags) Save
714 Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation.
716 msse4.2
717 Target Mask(ISA_SSE4_2) Var(ix86_isa_flags) Save
718 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation.
720 msse4
721 Target RejectNegative Mask(ISA_SSE4_2) Var(ix86_isa_flags) Save
722 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation.
724 mno-sse4
725 Target RejectNegative InverseMask(ISA_SSE4_1) Var(ix86_isa_flags) Save
726 Do not support SSE4.1 and SSE4.2 built-in functions and code generation.
728 msse5
729 Target Undocumented Alias(mavx) Warn(%<-msse5%> was removed)
730 ;; Deprecated
732 mavx
733 Target Mask(ISA_AVX) Var(ix86_isa_flags) Save
734 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation.
736 mavx2
737 Target Mask(ISA_AVX2) Var(ix86_isa_flags) Save
738 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation.
740 mavx512f
741 Target Mask(ISA_AVX512F) Var(ix86_isa_flags) Save
742 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation.
744 mavx512cd
745 Target Mask(ISA_AVX512CD) Var(ix86_isa_flags) Save
746 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512CD built-in functions and code generation.
748 mavx512dq
749 Target Mask(ISA_AVX512DQ) Var(ix86_isa_flags) Save
750 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512DQ built-in functions and code generation.
752 mavx512bw
753 Target Mask(ISA_AVX512BW) Var(ix86_isa_flags) Save
754 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512BW built-in functions and code generation.
756 mavx512vl
757 Target Mask(ISA_AVX512VL) Var(ix86_isa_flags) Save
758 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VL built-in functions and code generation.
760 mavx512ifma
761 Target Mask(ISA_AVX512IFMA) Var(ix86_isa_flags) Save
762 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512IFMA built-in functions and code generation.
764 mavx512vbmi
765 Target Mask(ISA_AVX512VBMI) Var(ix86_isa_flags) Save
766 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VBMI built-in functions and code generation.
768 mavx512vpopcntdq
769 Target Mask(ISA_AVX512VPOPCNTDQ) Var(ix86_isa_flags) Save
770 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VPOPCNTDQ built-in functions and code generation.
772 mavx512vbmi2
773 Target Mask(ISA_AVX512VBMI2) Var(ix86_isa_flags) Save
774 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VBMI2 built-in functions and code generation.
776 mavx512vnni
777 Target Mask(ISA_AVX512VNNI) Var(ix86_isa_flags) Save
778 Support AVX512VNNI built-in functions and code generation.
780 mavx512bitalg
781 Target Mask(ISA_AVX512BITALG) Var(ix86_isa_flags) Save
782 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512BITALG built-in functions and code generation.
784 mavx512vp2intersect
785 Target Mask(ISA2_AVX512VP2INTERSECT) Var(ix86_isa_flags2) Save
786 Support AVX512VP2INTERSECT built-in functions and code generation.
788 mfma
789 Target Mask(ISA_FMA) Var(ix86_isa_flags) Save
790 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation.
792 msse4a
793 Target Mask(ISA_SSE4A) Var(ix86_isa_flags) Save
794 Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation.
796 mfma4
797 Target Mask(ISA_FMA4) Var(ix86_isa_flags) Save
798 Support FMA4 built-in functions and code generation.
800 mxop
801 Target Mask(ISA_XOP) Var(ix86_isa_flags) Save
802 Support XOP built-in functions and code generation.
804 mlwp
805 Target Mask(ISA_LWP) Var(ix86_isa_flags) Save
806 Support LWP built-in functions and code generation.
808 mabm
809 Target Mask(ISA_ABM) Var(ix86_isa_flags) Save
810 Support code generation of Advanced Bit Manipulation (ABM) instructions.
812 mpopcnt
813 Target Mask(ISA_POPCNT) Var(ix86_isa_flags) Save
814 Support code generation of popcnt instruction.
816 mpconfig
817 Target Mask(ISA2_PCONFIG) Var(ix86_isa_flags2) Save
818 Support PCONFIG built-in functions and code generation.
820 mwbnoinvd
821 Target Mask(ISA2_WBNOINVD) Var(ix86_isa_flags2) Save
822 Support WBNOINVD built-in functions and code generation.
824 mptwrite
825 Target Mask(ISA2_PTWRITE) Var(ix86_isa_flags2) Save
826 Support PTWRITE built-in functions and code generation.
828 muintr
829 Target Mask(ISA2_UINTR) Var(ix86_isa_flags2) Save
830 Support UINTR built-in functions and code generation.
832 msgx
833 Target Mask(ISA2_SGX) Var(ix86_isa_flags2) Save
834 Support SGX built-in functions and code generation.
836 mrdpid
837 Target Mask(ISA2_RDPID) Var(ix86_isa_flags2) Save
838 Support RDPID built-in functions and code generation.
840 mgfni
841 Target Mask(ISA_GFNI) Var(ix86_isa_flags) Save
842 Support GFNI built-in functions and code generation.
844 mvaes
845 Target Mask(ISA2_VAES) Var(ix86_isa_flags2) Save
846 Support VAES built-in functions and code generation.
848 mvpclmulqdq
849 Target Mask(ISA_VPCLMULQDQ) Var(ix86_isa_flags) Save
850 Support VPCLMULQDQ built-in functions and code generation.
852 mbmi
853 Target Mask(ISA_BMI) Var(ix86_isa_flags) Save
854 Support BMI built-in functions and code generation.
856 mbmi2
857 Target Mask(ISA_BMI2) Var(ix86_isa_flags) Save
858 Support BMI2 built-in functions and code generation.
860 mlzcnt
861 Target Mask(ISA_LZCNT) Var(ix86_isa_flags) Save
862 Support LZCNT built-in function and code generation.
864 mhle
865 Target Mask(ISA2_HLE) Var(ix86_isa_flags2) Save
866 Support Hardware Lock Elision prefixes.
868 mrdseed
869 Target Mask(ISA_RDSEED) Var(ix86_isa_flags) Save
870 Support RDSEED instruction.
872 mprfchw
873 Target Mask(ISA_PRFCHW) Var(ix86_isa_flags) Save
874 Support PREFETCHW instruction.
876 madx
877 Target Mask(ISA_ADX) Var(ix86_isa_flags) Save
878 Support flag-preserving add-carry instructions.
880 mclflushopt
881 Target Mask(ISA_CLFLUSHOPT) Var(ix86_isa_flags) Save
882 Support CLFLUSHOPT instructions.
884 mclwb
885 Target Mask(ISA_CLWB) Var(ix86_isa_flags) Save
886 Support CLWB instruction.
888 mpcommit
889 Target WarnRemoved
891 mfxsr
892 Target Mask(ISA_FXSR) Var(ix86_isa_flags) Save
893 Support FXSAVE and FXRSTOR instructions.
895 mxsave
896 Target Mask(ISA_XSAVE) Var(ix86_isa_flags) Save
897 Support XSAVE and XRSTOR instructions.
899 mxsaveopt
900 Target Mask(ISA_XSAVEOPT) Var(ix86_isa_flags) Save
901 Support XSAVEOPT instruction.
903 mxsavec
904 Target Mask(ISA_XSAVEC) Var(ix86_isa_flags) Save
905 Support XSAVEC instructions.
907 mxsaves
908 Target Mask(ISA_XSAVES) Var(ix86_isa_flags) Save
909 Support XSAVES and XRSTORS instructions.
911 mtbm
912 Target Mask(ISA_TBM) Var(ix86_isa_flags) Save
913 Support TBM built-in functions and code generation.
915 mcx16
916 Target Mask(ISA2_CX16) Var(ix86_isa_flags2) Save
917 Support code generation of cmpxchg16b instruction.
919 msahf
920 Target Mask(ISA_SAHF) Var(ix86_isa_flags) Save
921 Support code generation of sahf instruction in 64bit x86-64 code.
923 mmovbe
924 Target Mask(ISA2_MOVBE) Var(ix86_isa_flags2) Save
925 Support code generation of movbe instruction.
927 mcrc32
928 Target Mask(ISA_CRC32) Var(ix86_isa_flags) Save
929 Support code generation of crc32 instruction.
931 maes
932 Target Mask(ISA_AES) Var(ix86_isa_flags) Save
933 Support AES built-in functions and code generation.
935 msha
936 Target Mask(ISA_SHA) Var(ix86_isa_flags) Save
937 Support SHA1 and SHA256 built-in functions and code generation.
939 mpclmul
940 Target Mask(ISA_PCLMUL) Var(ix86_isa_flags) Save
941 Support PCLMUL built-in functions and code generation.
943 msse2avx
944 Target Var(ix86_sse2avx)
945 Encode SSE instructions with VEX prefix.
947 mfsgsbase
948 Target Mask(ISA_FSGSBASE) Var(ix86_isa_flags) Save
949 Support FSGSBASE built-in functions and code generation.
951 mrdrnd
952 Target Mask(ISA_RDRND) Var(ix86_isa_flags) Save
953 Support RDRND built-in functions and code generation.
955 mf16c
956 Target Mask(ISA_F16C) Var(ix86_isa_flags) Save
957 Support F16C built-in functions and code generation.
959 mfentry
960 Target Save Var(flag_fentry)
961 Emit profiling counter call at function entry before prologue.
963 mrecord-mcount
964 Target Var(flag_record_mcount)
965 Generate __mcount_loc section with all mcount or __fentry__ calls.
967 mnop-mcount
968 Target Var(flag_nop_mcount)
969 Generate mcount/__fentry__ calls as nops. To activate they need to be
970 patched in.
972 mfentry-name=
973 Target RejectNegative Joined Var(fentry_name)
974 Set name of __fentry__ symbol called at function entry.
976 mfentry-section=
977 Target RejectNegative Joined Var(fentry_section)
978 Set name of section to record mrecord-mcount calls.
980 mskip-rax-setup
981 Target Var(flag_skip_rax_setup)
982 Skip setting up RAX register when passing variable arguments.
984 m8bit-idiv
985 Target Mask(USE_8BIT_IDIV) Save
986 Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check.
988 mavx256-split-unaligned-load
989 Target Mask(AVX256_SPLIT_UNALIGNED_LOAD) Save
990 Split 32-byte AVX unaligned load.
992 mavx256-split-unaligned-store
993 Target Mask(AVX256_SPLIT_UNALIGNED_STORE) Save
994 Split 32-byte AVX unaligned store.
996 mrtm
997 Target Mask(ISA_RTM) Var(ix86_isa_flags) Save
998 Support RTM built-in functions and code generation.
1000 mmpx
1001 Target WarnRemoved
1002 Removed in GCC 9.  This switch has no effect.
1004 mmwaitx
1005 Target Mask(ISA2_MWAITX) Var(ix86_isa_flags2) Save
1006 Support MWAITX and MONITORX built-in functions and code generation.
1008 mclzero
1009 Target Mask(ISA2_CLZERO) Var(ix86_isa_flags2) Save
1010 Support CLZERO built-in functions and code generation.
1012 mpku
1013 Target Mask(ISA_PKU) Var(ix86_isa_flags) Save
1014 Support PKU built-in functions and code generation.
1016 mstack-protector-guard=
1017 Target RejectNegative Joined Enum(stack_protector_guard) Var(ix86_stack_protector_guard) Init(SSP_TLS)
1018 Use given stack-protector guard.
1020 Enum
1021 Name(stack_protector_guard) Type(enum stack_protector_guard)
1022 Known stack protector guard (for use with the -mstack-protector-guard= option):
1024 EnumValue
1025 Enum(stack_protector_guard) String(tls) Value(SSP_TLS)
1027 EnumValue
1028 Enum(stack_protector_guard) String(global) Value(SSP_GLOBAL)
1030 mstack-protector-guard-reg=
1031 Target Save RejectNegative Joined Var(ix86_stack_protector_guard_reg_str)
1032 Use the given base register for addressing the stack-protector guard.
1034 TargetVariable
1035 addr_space_t ix86_stack_protector_guard_reg = ADDR_SPACE_GENERIC
1037 mstack-protector-guard-offset=
1038 Target Save RejectNegative Joined Integer Var(ix86_stack_protector_guard_offset_str)
1039 Use the given offset for addressing the stack-protector guard.
1041 TargetVariable
1042 HOST_WIDE_INT ix86_stack_protector_guard_offset = 0
1044 mstack-protector-guard-symbol=
1045 Target Save RejectNegative Joined Integer Var(ix86_stack_protector_guard_symbol_str)
1046 Use the given symbol for addressing the stack-protector guard.
1048 mmitigate-rop
1049 Target WarnRemoved
1051 mgeneral-regs-only
1052 Target RejectNegative Mask(GENERAL_REGS_ONLY) Var(ix86_target_flags) Save
1053 Generate code which uses only the general registers.
1055 mshstk
1056 Target Mask(ISA_SHSTK) Var(ix86_isa_flags) Save
1057 Enable shadow stack built-in functions from Control-flow Enforcement
1058 Technology (CET).
1060 mcet-switch
1061 Target Var(flag_cet_switch) Init(0)
1062 Turn on CET instrumentation for switch statements that use a jump table and
1063 an indirect jump.
1065 mmanual-endbr
1066 Target Var(flag_manual_endbr) Init(0)
1067 Insert ENDBR instruction at function entry only via cf_check attribute
1068 for CET instrumentation.
1070 mforce-indirect-call
1071 Target Var(flag_force_indirect_call) Init(0)
1072 Make all function calls indirect.
1074 mindirect-branch=
1075 Target RejectNegative Joined Enum(indirect_branch) Var(ix86_indirect_branch) Init(indirect_branch_keep)
1076 Convert indirect call and jump to call and return thunks.
1078 mfunction-return=
1079 Target RejectNegative Joined Enum(indirect_branch) Var(ix86_function_return) Init(indirect_branch_keep)
1080 Convert function return to call and return thunk.
1082 Enum
1083 Name(indirect_branch) Type(enum indirect_branch)
1084 Known indirect branch choices (for use with the -mindirect-branch=/-mfunction-return= options):
1086 EnumValue
1087 Enum(indirect_branch) String(keep) Value(indirect_branch_keep)
1089 EnumValue
1090 Enum(indirect_branch) String(thunk) Value(indirect_branch_thunk)
1092 EnumValue
1093 Enum(indirect_branch) String(thunk-inline) Value(indirect_branch_thunk_inline)
1095 EnumValue
1096 Enum(indirect_branch) String(thunk-extern) Value(indirect_branch_thunk_extern)
1098 mindirect-branch-cs-prefix
1099 Target Var(ix86_indirect_branch_cs_prefix) Init(0)
1100 Add CS prefix to call and jmp to indirect thunk with branch target in r8-r15 registers.
1102 mindirect-branch-register
1103 Target Var(ix86_indirect_branch_register) Init(0)
1104 Force indirect call and jump via register.
1106 mmovdiri
1107 Target Mask(ISA_MOVDIRI) Var(ix86_isa_flags) Save
1108 Support MOVDIRI built-in functions and code generation.
1110 mmovdir64b
1111 Target Mask(ISA2_MOVDIR64B) Var(ix86_isa_flags2) Save
1112 Support MOVDIR64B built-in functions and code generation.
1114 mwaitpkg
1115 Target Mask(ISA2_WAITPKG) Var(ix86_isa_flags2) Save
1116 Support WAITPKG built-in functions and code generation.
1118 mcldemote
1119 Target Mask(ISA2_CLDEMOTE) Var(ix86_isa_flags2) Save
1120 Support CLDEMOTE built-in functions and code generation.
1122 minstrument-return=
1123 Target RejectNegative Joined Enum(instrument_return) Var(ix86_instrument_return) Init(instrument_return_none)
1124 Instrument function exit in instrumented functions with __fentry__.
1126 Enum
1127 Name(instrument_return) Type(enum instrument_return)
1128 Known choices for return instrumentation with -minstrument-return=:
1130 EnumValue
1131 Enum(instrument_return) String(none) Value(instrument_return_none)
1133 EnumValue
1134 Enum(instrument_return) String(call) Value(instrument_return_call)
1136 EnumValue
1137 Enum(instrument_return) String(nop5) Value(instrument_return_nop5)
1139 mrecord-return
1140 Target Var(ix86_flag_record_return) Init(0)
1141 Generate a __return_loc section pointing to all return instrumentation code.
1143 mharden-sls=
1144 Target RejectNegative Joined Enum(harden_sls) Var(ix86_harden_sls) Init(harden_sls_none)
1145 Generate code to mitigate against straight line speculation.
1147 Enum
1148 Name(harden_sls) Type(enum harden_sls)
1149 Known choices for mitigation against straight line speculation with -mharden-sls=:
1151 EnumValue
1152 Enum(harden_sls) String(none) Value(harden_sls_none)
1154 EnumValue
1155 Enum(harden_sls) String(return) Value(harden_sls_return)
1157 EnumValue
1158 Enum(harden_sls) String(indirect-jmp) Value(harden_sls_indirect_jmp)
1160 EnumValue
1161 Enum(harden_sls) String(all) Value(harden_sls_all)
1163 mavx512bf16
1164 Target Mask(ISA2_AVX512BF16) Var(ix86_isa_flags2) Save
1165 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and
1166 AVX512BF16 built-in functions and code generation.
1168 menqcmd
1169 Target Mask(ISA2_ENQCMD) Var(ix86_isa_flags2) Save
1170 Support ENQCMD built-in functions and code generation.
1172 mserialize
1173 Target Mask(ISA2_SERIALIZE) Var(ix86_isa_flags2) Save
1174 Support SERIALIZE built-in functions and code generation.
1176 mtsxldtrk
1177 Target Mask(ISA2_TSXLDTRK) Var(ix86_isa_flags2) Save
1178 Support TSXLDTRK built-in functions and code generation.
1180 mamx-tile
1181 Target Mask(ISA2_AMX_TILE) Var(ix86_isa_flags2) Save
1182 Support AMX-TILE built-in functions and code generation.
1184 mamx-int8
1185 Target Mask(ISA2_AMX_INT8) Var(ix86_isa_flags2) Save
1186 Support AMX-INT8 built-in functions and code generation.
1188 mamx-bf16
1189 Target Mask(ISA2_AMX_BF16) Var(ix86_isa_flags2) Save
1190 Support AMX-BF16 built-in functions and code generation.
1192 mhreset
1193 Target Mask(ISA2_HRESET) Var(ix86_isa_flags2) Save
1194 Support HRESET built-in functions and code generation.
1197 Target Mask(ISA2_KL) Var(ix86_isa_flags2) Save
1198 Support KL built-in functions and code generation.
1200 mwidekl
1201 Target Mask(ISA2_WIDEKL) Var(ix86_isa_flags2) Save
1202 Support WIDEKL built-in functions and code generation.
1204 mavxvnni
1205 Target Mask(ISA2_AVXVNNI) Var(ix86_isa_flags2) Save
1206 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and
1207 AVXVNNI built-in functions and code generation.
1209 mneeded
1210 Target Var(ix86_needed) Save
1211 Emit GNU_PROPERTY_X86_ISA_1_NEEDED GNU property.
1213 mmwait
1214 Target Mask(ISA2_MWAIT) Var(ix86_isa_flags2) Save
1215 Support MWAIT and MONITOR built-in functions and code generation.
1217 mavx512fp16
1218 Target Mask(ISA2_AVX512FP16) Var(ix86_isa_flags2) Save
1219 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512-FP16 built-in functions and code generation.
1221 mdirect-extern-access
1222 Target Var(ix86_direct_extern_access) Init(1)
1223 Do not use GOT to access external symbols.
1225 -param=x86-stlf-window-ninsns=
1226 Target Joined UInteger Var(x86_stlf_window_ninsns) Init(64) Param
1227 Instructions number above which STFL stall penalty can be compensated.
1229 mavxifma
1230 Target Mask(ISA2_AVXIFMA) Var(ix86_isa_flags2) Save
1231 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and
1232 AVXIFMA built-in functions and code generation.
1234 mavxvnniint8
1235 Target Mask(ISA2_AVXVNNIINT8) Var(ix86_isa_flags2) Save
1236 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and
1237 AVXVNNIINT8 built-in functions and code generation.
1239 mavxneconvert
1240 Target Mask(ISA2_AVXNECONVERT) Var(ix86_isa_flags2) Save
1241 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and
1242 AVXNECONVERT build-in functions and code generation.
1244 mcmpccxadd
1245 Target Mask(ISA2_CMPCCXADD) Var(ix86_isa_flags2) Save
1246 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and
1247 CMPCCXADD build-in functions and code generation.
1249 mamx-fp16
1250 Target Mask(ISA2_AMX_FP16) Var(ix86_isa_flags2) Save
1251 Support AMX-FP16 built-in functions and code generation.
1253 mprefetchi
1254 Target Mask(ISA2_PREFETCHI) Var(ix86_isa_flags2) Save
1255 Support PREFETCHI built-in functions and code generation.
1257 mraoint
1258 Target Mask(ISA2_RAOINT) Var(ix86_isa_flags2) Save
1259 Support RAOINT built-in functions and code generation.
1261 munroll-only-small-loops
1262 Target Var(ix86_unroll_only_small_loops) Init(0) Save
1263 Enable conservative small loop unrolling.
1265 mlam=
1266 Target RejectNegative Joined Enum(lam_type) Var(ix86_lam_type) Init(lam_none)
1267 -mlam=[none|u48|u57] Instrument meta data position in user data pointers.
1269 Enum
1270 Name(lam_type) Type(enum lam_type) UnknownError(unknown lam type %qs)
1272 EnumValue
1273 Enum(lam_type) String(none) Value(lam_none)
1275 EnumValue
1276 Enum(lam_type) String(u48) Value(lam_u48)
1278 EnumValue
1279 Enum(lam_type) String(u57) Value(lam_u57)
1281 mamx-complex
1282 Target Mask(ISA2_AMX_COMPLEX) Var(ix86_isa_flags2) Save
1283 Support AMX-COMPLEX built-in functions and code generation.
1285 mavxvnniint16
1286 Target Mask(ISA2_AVXVNNIINT16) Var(ix86_isa_flags2) Save
1287 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and
1288 AVXVNNIINT16 built-in functions and code generation.
1290 msm3
1291 Target Mask(ISA2_SM3) Var(ix86_isa_flags2) Save
1292 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and
1293 SM3 built-in functions and code generation.
1295 msha512
1296 Target Mask(ISA2_SHA512) Var(ix86_isa_flags2) Save
1297 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and
1298 SHA512 built-in functions and code generation.
1300 msm4
1301 Target Mask(ISA2_SM4) Var(ix86_isa_flags2) Save
1302 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and
1303 SM4 built-in functions and code generation.
1305 mgather
1306 Target Alias(mtune-ctrl=, use_gather, ^use_gather)
1307 Enable vectorization for gather instruction.
1309 mscatter
1310 Target Alias(mtune-ctrl=, use_scatter, ^use_scatter)
1311 Enable vectorization for scatter instruction.
1313 mapxf
1314 Target Mask(ISA2_APX_F) Var(ix86_isa_flags2) Save
1315 Support code generation for APX features, including EGPR, PUSH2POP2,
1316 NDD and PPX.
1318 mapx-features=
1319 Target Undocumented Joined Enum(apx_features) EnumSet Var(ix86_apx_features) Init(apx_none) Save
1321 Enum
1322 Name(apx_features) Type(int)
1324 EnumValue
1325 Enum(apx_features) String(none) Value(apx_none) Set(1)
1327 EnumValue
1328 Enum(apx_features) String(egpr) Value(apx_egpr) Set(2)
1330 EnumValue
1331 Enum(apx_features) String(push2pop2) Value(apx_push2pop2) Set(3)
1333 EnumValue
1334 Enum(apx_features) String(ndd) Value(apx_ndd) Set(4)
1336 EnumValue
1337 Enum(apx_features) String(ppx) Value(apx_ppx) Set(5)
1339 EnumValue
1340 Enum(apx_features) String(nf) Value(apx_nf) Set(6)
1342 EnumValue
1343 Enum(apx_features) String(ccmp) Value(apx_ccmp) Set(7)
1345 EnumValue
1346 Enum(apx_features) String(zu) Value(apx_zu) Set(8)
1348 EnumValue
1349 Enum(apx_features) String(all) Value(apx_all) Set(1)
1351 mapx-inline-asm-use-gpr32
1352 Target Var(ix86_apx_inline_asm_use_gpr32) Init(0)
1353 Enable GPR32 in inline asm when APX_F enabled.
1355 mevex512
1356 Target Mask(ISA2_EVEX512) Var(ix86_isa_flags2) Save
1357 Support 512 bit vector built-in functions and code generation.
1359 musermsr
1360 Target Mask(ISA2_USER_MSR) Var(ix86_isa_flags2) Save
1361 Support USER_MSR built-in functions and code generation.
1363 mavx10.1-256
1364 Target Mask(ISA2_AVX10_1_256) Var(ix86_isa_flags2) Save
1365 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2,
1366 and AVX10.1 built-in functions and code generation.
1368 mavx10.1-512
1369 Target Mask(ISA2_AVX10_1_512) Var(ix86_isa_flags2) Save
1370 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2,
1371 and AVX10.1-512 built-in functions and code generation.
1373 mavx10.1
1374 Target Alias(mavx10.1-256)
1375 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2,
1376 and AVX10.1 built-in functions and code generation.