rs6000.opt 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603
  1. ; Options for the rs6000 port of the compiler
  2. ;
  3. ; Copyright (C) 2005-2015 Free Software Foundation, Inc.
  4. ; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
  5. ;
  6. ; This file is part of GCC.
  7. ;
  8. ; GCC is free software; you can redistribute it and/or modify it under
  9. ; the terms of the GNU General Public License as published by the Free
  10. ; Software Foundation; either version 3, or (at your option) any later
  11. ; version.
  12. ;
  13. ; GCC is distributed in the hope that it will be useful, but WITHOUT
  14. ; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  15. ; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
  16. ; License for more details.
  17. ;
  18. ; You should have received a copy of the GNU General Public License
  19. ; along with GCC; see the file COPYING3. If not see
  20. ; <http://www.gnu.org/licenses/>.
  21. HeaderInclude
  22. config/rs6000/rs6000-opts.h
  23. ;; ISA flag bits (on/off)
  24. Variable
  25. HOST_WIDE_INT rs6000_isa_flags = TARGET_DEFAULT
  26. TargetSave
  27. HOST_WIDE_INT x_rs6000_isa_flags
  28. ;; Miscellaneous flag bits that were set explicitly by the user
  29. Variable
  30. HOST_WIDE_INT rs6000_isa_flags_explicit
  31. TargetSave
  32. HOST_WIDE_INT x_rs6000_isa_flags_explicit
  33. ;; Current processor
  34. TargetVariable
  35. enum processor_type rs6000_cpu = PROCESSOR_PPC603
  36. ;; Always emit branch hint bits.
  37. TargetVariable
  38. unsigned char rs6000_always_hint
  39. ;; Schedule instructions for group formation.
  40. TargetVariable
  41. unsigned char rs6000_sched_groups
  42. ;; Align branch targets.
  43. TargetVariable
  44. unsigned char rs6000_align_branch_targets
  45. ;; Support for -msched-costly-dep option.
  46. TargetVariable
  47. enum rs6000_dependence_cost rs6000_sched_costly_dep = no_dep_costly
  48. ;; Support for -minsert-sched-nops option.
  49. TargetVariable
  50. enum rs6000_nop_insertion rs6000_sched_insert_nops = sched_finish_none
  51. ;; Non-zero to allow overriding loop alignment.
  52. TargetVariable
  53. unsigned char can_override_loop_align
  54. ;; Which small data model to use (for System V targets only)
  55. TargetVariable
  56. enum rs6000_sdata_type rs6000_sdata = SDATA_DATA
  57. ;; Bit size of immediate TLS offsets and string from which it is decoded.
  58. TargetVariable
  59. int rs6000_tls_size = 32
  60. ;; ABI enumeration available for subtarget to use.
  61. TargetVariable
  62. enum rs6000_abi rs6000_current_abi = ABI_NONE
  63. ;; Type of traceback to use.
  64. TargetVariable
  65. enum rs6000_traceback_type rs6000_traceback = traceback_default
  66. ;; Control alignment for fields within structures.
  67. TargetVariable
  68. unsigned char rs6000_alignment_flags
  69. ;; Code model for 64-bit linux.
  70. TargetVariable
  71. enum rs6000_cmodel rs6000_current_cmodel = CMODEL_SMALL
  72. ;; What type of reciprocal estimation instructions to generate
  73. TargetVariable
  74. unsigned int rs6000_recip_control
  75. ;; Mask of what builtin functions are allowed
  76. TargetVariable
  77. HOST_WIDE_INT rs6000_builtin_mask
  78. ;; Debug flags
  79. TargetVariable
  80. unsigned int rs6000_debug
  81. ;; This option existed in the past, but now is always on.
  82. mpowerpc
  83. Target RejectNegative Undocumented Ignore
  84. mpowerpc64
  85. Target Report Mask(POWERPC64) Var(rs6000_isa_flags)
  86. Use PowerPC-64 instruction set
  87. mpowerpc-gpopt
  88. Target Report Mask(PPC_GPOPT) Var(rs6000_isa_flags)
  89. Use PowerPC General Purpose group optional instructions
  90. mpowerpc-gfxopt
  91. Target Report Mask(PPC_GFXOPT) Var(rs6000_isa_flags)
  92. Use PowerPC Graphics group optional instructions
  93. mmfcrf
  94. Target Report Mask(MFCRF) Var(rs6000_isa_flags)
  95. Use PowerPC V2.01 single field mfcr instruction
  96. mpopcntb
  97. Target Report Mask(POPCNTB) Var(rs6000_isa_flags)
  98. Use PowerPC V2.02 popcntb instruction
  99. mfprnd
  100. Target Report Mask(FPRND) Var(rs6000_isa_flags)
  101. Use PowerPC V2.02 floating point rounding instructions
  102. mcmpb
  103. Target Report Mask(CMPB) Var(rs6000_isa_flags)
  104. Use PowerPC V2.05 compare bytes instruction
  105. mmfpgpr
  106. Target Report Mask(MFPGPR) Var(rs6000_isa_flags)
  107. Use extended PowerPC V2.05 move floating point to/from GPR instructions
  108. maltivec
  109. Target Report Mask(ALTIVEC) Var(rs6000_isa_flags)
  110. Use AltiVec instructions
  111. maltivec=le
  112. Target Report RejectNegative Var(rs6000_altivec_element_order, 1) Save
  113. Generate Altivec instructions using little-endian element order
  114. maltivec=be
  115. Target Report RejectNegative Var(rs6000_altivec_element_order, 2)
  116. Generate Altivec instructions using big-endian element order
  117. mhard-dfp
  118. Target Report Mask(DFP) Var(rs6000_isa_flags)
  119. Use decimal floating point instructions
  120. mmulhw
  121. Target Report Mask(MULHW) Var(rs6000_isa_flags)
  122. Use 4xx half-word multiply instructions
  123. mdlmzb
  124. Target Report Mask(DLMZB) Var(rs6000_isa_flags)
  125. Use 4xx string-search dlmzb instruction
  126. mmultiple
  127. Target Report Mask(MULTIPLE) Var(rs6000_isa_flags)
  128. Generate load/store multiple instructions
  129. mstring
  130. Target Report Mask(STRING) Var(rs6000_isa_flags)
  131. Generate string instructions for block moves
  132. msoft-float
  133. Target Report RejectNegative Mask(SOFT_FLOAT) Var(rs6000_isa_flags)
  134. Do not use hardware floating point
  135. mhard-float
  136. Target Report RejectNegative InverseMask(SOFT_FLOAT, HARD_FLOAT) Var(rs6000_isa_flags)
  137. Use hardware floating point
  138. mpopcntd
  139. Target Report Mask(POPCNTD) Var(rs6000_isa_flags)
  140. Use PowerPC V2.06 popcntd instruction
  141. mfriz
  142. Target Report Var(TARGET_FRIZ) Init(-1) Save
  143. Under -ffast-math, generate a FRIZ instruction for (double)(long long) conversions
  144. mveclibabi=
  145. Target RejectNegative Joined Var(rs6000_veclibabi_name)
  146. Vector library ABI to use
  147. mvsx
  148. Target Report Mask(VSX) Var(rs6000_isa_flags)
  149. Use vector/scalar (VSX) instructions
  150. mvsx-scalar-float
  151. Target Undocumented Report Var(TARGET_VSX_SCALAR_FLOAT) Init(1)
  152. ; If -mpower8-vector, use VSX arithmetic instructions for SFmode (on by default)
  153. mvsx-scalar-double
  154. Target Undocumented Report Var(TARGET_VSX_SCALAR_DOUBLE) Init(1)
  155. ; If -mvsx, use VSX arithmetic instructions for DFmode (on by default)
  156. mvsx-scalar-memory
  157. Target Undocumented Report Alias(mupper-regs-df)
  158. mvsx-align-128
  159. Target Undocumented Report Var(TARGET_VSX_ALIGN_128) Save
  160. ; If -mvsx, set alignment to 128 bits instead of 32/64
  161. mallow-movmisalign
  162. Target Undocumented Var(TARGET_ALLOW_MOVMISALIGN) Init(-1) Save
  163. ; Allow/disallow the movmisalign in DF/DI vectors
  164. mefficient-unaligned-vector
  165. Target Undocumented Report Var(TARGET_EFFICIENT_UNALIGNED_VSX) Init(-1) Save
  166. ; Consider unaligned VSX accesses to be efficient/inefficient
  167. mallow-df-permute
  168. Target Undocumented Var(TARGET_ALLOW_DF_PERMUTE) Save
  169. ; Allow/disallow permutation of DF/DI vectors
  170. msched-groups
  171. Target Undocumented Report Var(TARGET_SCHED_GROUPS) Init(-1) Save
  172. ; Explicitly set/unset whether rs6000_sched_groups is set
  173. malways-hint
  174. Target Undocumented Report Var(TARGET_ALWAYS_HINT) Init(-1) Save
  175. ; Explicitly set/unset whether rs6000_always_hint is set
  176. malign-branch-targets
  177. Target Undocumented Report Var(TARGET_ALIGN_BRANCH_TARGETS) Init(-1) Save
  178. ; Explicitly set/unset whether rs6000_align_branch_targets is set
  179. mvectorize-builtins
  180. Target Undocumented Report Var(TARGET_VECTORIZE_BUILTINS) Init(-1) Save
  181. ; Explicitly control whether we vectorize the builtins or not.
  182. mno-update
  183. Target Report RejectNegative Mask(NO_UPDATE) Var(rs6000_isa_flags)
  184. Do not generate load/store with update instructions
  185. mupdate
  186. Target Report RejectNegative InverseMask(NO_UPDATE, UPDATE) Var(rs6000_isa_flags)
  187. Generate load/store with update instructions
  188. msingle-pic-base
  189. Target Report Var(TARGET_SINGLE_PIC_BASE) Init(0)
  190. Do not load the PIC register in function prologues
  191. mavoid-indexed-addresses
  192. Target Report Var(TARGET_AVOID_XFORM) Init(-1) Save
  193. Avoid generation of indexed load/store instructions when possible
  194. mtls-markers
  195. Target Report Var(tls_markers) Init(1) Save
  196. Mark __tls_get_addr calls with argument info
  197. msched-epilog
  198. Target Undocumented Var(TARGET_SCHED_PROLOG) Init(1) Save
  199. msched-prolog
  200. Target Report Var(TARGET_SCHED_PROLOG) Save
  201. Schedule the start and end of the procedure
  202. maix-struct-return
  203. Target Report RejectNegative Var(aix_struct_return) Save
  204. Return all structures in memory (AIX default)
  205. msvr4-struct-return
  206. Target Report RejectNegative Var(aix_struct_return,0) Save
  207. Return small structures in registers (SVR4 default)
  208. mxl-compat
  209. Target Report Var(TARGET_XL_COMPAT) Save
  210. Conform more closely to IBM XLC semantics
  211. mrecip
  212. Target Report
  213. Generate software reciprocal divide and square root for better throughput.
  214. mrecip=
  215. Target Report RejectNegative Joined Var(rs6000_recip_name)
  216. Generate software reciprocal divide and square root for better throughput.
  217. mrecip-precision
  218. Target Report Mask(RECIP_PRECISION) Var(rs6000_isa_flags)
  219. Assume that the reciprocal estimate instructions provide more accuracy.
  220. mno-fp-in-toc
  221. Target Report RejectNegative Var(TARGET_NO_FP_IN_TOC) Save
  222. Do not place floating point constants in TOC
  223. mfp-in-toc
  224. Target Report RejectNegative Var(TARGET_NO_FP_IN_TOC,0) Save
  225. Place floating point constants in TOC
  226. mno-sum-in-toc
  227. Target RejectNegative Var(TARGET_NO_SUM_IN_TOC) Save
  228. Do not place symbol+offset constants in TOC
  229. msum-in-toc
  230. Target RejectNegative Var(TARGET_NO_SUM_IN_TOC,0) Save
  231. Place symbol+offset constants in TOC
  232. ; Output only one TOC entry per module. Normally linking fails if
  233. ; there are more than 16K unique variables/constants in an executable. With
  234. ; this option, linking fails only if there are more than 16K modules, or
  235. ; if there are more than 16K unique variables/constant in a single module.
  236. ;
  237. ; This is at the cost of having 2 extra loads and one extra store per
  238. ; function, and one less allocable register.
  239. mminimal-toc
  240. Target Report Mask(MINIMAL_TOC) Var(rs6000_isa_flags)
  241. Use only one TOC entry per procedure
  242. mfull-toc
  243. Target Report
  244. Put everything in the regular TOC
  245. mvrsave
  246. Target Report Var(TARGET_ALTIVEC_VRSAVE) Save
  247. Generate VRSAVE instructions when generating AltiVec code
  248. mvrsave=no
  249. Target RejectNegative Alias(mvrsave) NegativeAlias
  250. Deprecated option. Use -mno-vrsave instead
  251. mvrsave=yes
  252. Target RejectNegative Alias(mvrsave)
  253. Deprecated option. Use -mvrsave instead
  254. mblock-move-inline-limit=
  255. Target Report Var(rs6000_block_move_inline_limit) Init(0) RejectNegative Joined UInteger Save
  256. Specify how many bytes should be moved inline before calling out to memcpy/memmove
  257. misel
  258. Target Report Mask(ISEL) Var(rs6000_isa_flags)
  259. Generate isel instructions
  260. misel=no
  261. Target RejectNegative Alias(misel) NegativeAlias
  262. Deprecated option. Use -mno-isel instead
  263. misel=yes
  264. Target RejectNegative Alias(misel)
  265. Deprecated option. Use -misel instead
  266. mspe
  267. Target Var(rs6000_spe) Save
  268. Generate SPE SIMD instructions on E500
  269. mpaired
  270. Target Var(rs6000_paired_float) Save
  271. Generate PPC750CL paired-single instructions
  272. mspe=no
  273. Target RejectNegative Alias(mspe) NegativeAlias
  274. Deprecated option. Use -mno-spe instead
  275. mspe=yes
  276. Target RejectNegative Alias(mspe)
  277. Deprecated option. Use -mspe instead
  278. mdebug=
  279. Target RejectNegative Joined
  280. -mdebug= Enable debug output
  281. mabi=altivec
  282. Target RejectNegative Var(rs6000_altivec_abi) Save
  283. Use the AltiVec ABI extensions
  284. mabi=no-altivec
  285. Target RejectNegative Var(rs6000_altivec_abi, 0)
  286. Do not use the AltiVec ABI extensions
  287. mabi=spe
  288. Target RejectNegative Var(rs6000_spe_abi) Save
  289. Use the SPE ABI extensions
  290. mabi=no-spe
  291. Target RejectNegative Var(rs6000_spe_abi, 0)
  292. Do not use the SPE ABI extensions
  293. mabi=elfv1
  294. Target RejectNegative Var(rs6000_elf_abi, 1) Save
  295. Use the ELFv1 ABI
  296. mabi=elfv2
  297. Target RejectNegative Var(rs6000_elf_abi, 2)
  298. Use the ELFv2 ABI
  299. ; These are here for testing during development only, do not document
  300. ; in the manual please.
  301. ; If we want Darwin's struct-by-value-in-regs ABI.
  302. mabi=d64
  303. Target RejectNegative Undocumented Warn(using darwin64 ABI) Var(rs6000_darwin64_abi) Save
  304. mabi=d32
  305. Target RejectNegative Undocumented Warn(using old darwin ABI) Var(rs6000_darwin64_abi, 0)
  306. mabi=ieeelongdouble
  307. Target RejectNegative Undocumented Warn(using IEEE extended precision long double) Var(rs6000_ieeequad) Save
  308. mabi=ibmlongdouble
  309. Target RejectNegative Undocumented Warn(using IBM extended precision long double) Var(rs6000_ieeequad, 0)
  310. mcpu=
  311. Target RejectNegative Joined Var(rs6000_cpu_index) Init(-1) Enum(rs6000_cpu_opt_value) Save
  312. -mcpu= Use features of and schedule code for given CPU
  313. mtune=
  314. Target RejectNegative Joined Var(rs6000_tune_index) Init(-1) Enum(rs6000_cpu_opt_value) Save
  315. -mtune= Schedule code for given CPU
  316. mtraceback=
  317. Target RejectNegative Joined Enum(rs6000_traceback_type) Var(rs6000_traceback)
  318. -mtraceback= Select full, part, or no traceback table
  319. Enum
  320. Name(rs6000_traceback_type) Type(enum rs6000_traceback_type)
  321. EnumValue
  322. Enum(rs6000_traceback_type) String(full) Value(traceback_full)
  323. EnumValue
  324. Enum(rs6000_traceback_type) String(part) Value(traceback_part)
  325. EnumValue
  326. Enum(rs6000_traceback_type) String(no) Value(traceback_none)
  327. mlongcall
  328. Target Report Var(rs6000_default_long_calls) Save
  329. Avoid all range limits on call instructions
  330. mgen-cell-microcode
  331. Target Report Var(rs6000_gen_cell_microcode) Init(-1) Save
  332. Generate Cell microcode
  333. mwarn-cell-microcode
  334. Target Var(rs6000_warn_cell_microcode) Init(0) Warning Save
  335. Warn when a Cell microcoded instruction is emitted
  336. mwarn-altivec-long
  337. Target Var(rs6000_warn_altivec_long) Init(1) Save
  338. Warn about deprecated 'vector long ...' AltiVec type usage
  339. mfloat-gprs=
  340. Target RejectNegative Joined Enum(rs6000_float_gprs) Var(rs6000_float_gprs) Save
  341. -mfloat-gprs= Select GPR floating point method
  342. Enum
  343. Name(rs6000_float_gprs) Type(unsigned char)
  344. Valid arguments to -mfloat-gprs=:
  345. EnumValue
  346. Enum(rs6000_float_gprs) String(yes) Value(1)
  347. EnumValue
  348. Enum(rs6000_float_gprs) String(single) Value(1)
  349. EnumValue
  350. Enum(rs6000_float_gprs) String(double) Value(2)
  351. EnumValue
  352. Enum(rs6000_float_gprs) String(no) Value(0)
  353. mlong-double-
  354. Target RejectNegative Joined UInteger Var(rs6000_long_double_type_size) Save
  355. -mlong-double-<n> Specify size of long double (64 or 128 bits)
  356. mlra
  357. Target Report Var(rs6000_lra_flag) Init(0) Save
  358. Use LRA instead of reload
  359. msched-costly-dep=
  360. Target RejectNegative Joined Var(rs6000_sched_costly_dep_str)
  361. Determine which dependences between insns are considered costly
  362. minsert-sched-nops=
  363. Target RejectNegative Joined Var(rs6000_sched_insert_nops_str)
  364. Specify which post scheduling nop insertion scheme to apply
  365. malign-
  366. Target RejectNegative Joined Enum(rs6000_alignment_flags) Var(rs6000_alignment_flags)
  367. Specify alignment of structure fields default/natural
  368. Enum
  369. Name(rs6000_alignment_flags) Type(unsigned char)
  370. Valid arguments to -malign-:
  371. EnumValue
  372. Enum(rs6000_alignment_flags) String(power) Value(MASK_ALIGN_POWER)
  373. EnumValue
  374. Enum(rs6000_alignment_flags) String(natural) Value(MASK_ALIGN_NATURAL)
  375. mprioritize-restricted-insns=
  376. Target RejectNegative Joined UInteger Var(rs6000_sched_restricted_insns_priority) Save
  377. Specify scheduling priority for dispatch slot restricted insns
  378. msingle-float
  379. Target RejectNegative Var(rs6000_single_float) Save
  380. Single-precision floating point unit
  381. mdouble-float
  382. Target RejectNegative Var(rs6000_double_float) Save
  383. Double-precision floating point unit
  384. msimple-fpu
  385. Target RejectNegative Var(rs6000_simple_fpu) Save
  386. Floating point unit does not support divide & sqrt
  387. mfpu=
  388. Target RejectNegative Joined Enum(fpu_type_t) Var(rs6000_fpu_type) Init(FPU_NONE)
  389. -mfpu= Specify FP (sp, dp, sp-lite, dp-lite) (implies -mxilinx-fpu)
  390. Enum
  391. Name(fpu_type_t) Type(enum fpu_type_t)
  392. EnumValue
  393. Enum(fpu_type_t) String(none) Value(FPU_NONE)
  394. EnumValue
  395. Enum(fpu_type_t) String(sp_lite) Value(FPU_SF_LITE)
  396. EnumValue
  397. Enum(fpu_type_t) String(dp_lite) Value(FPU_DF_LITE)
  398. EnumValue
  399. Enum(fpu_type_t) String(sp_full) Value(FPU_SF_FULL)
  400. EnumValue
  401. Enum(fpu_type_t) String(dp_full) Value(FPU_DF_FULL)
  402. mxilinx-fpu
  403. Target Var(rs6000_xilinx_fpu) Save
  404. Specify Xilinx FPU.
  405. mpointers-to-nested-functions
  406. Target Report Var(TARGET_POINTERS_TO_NESTED_FUNCTIONS) Init(1) Save
  407. Use/do not use r11 to hold the static link in calls to functions via pointers.
  408. msave-toc-indirect
  409. Target Report Mask(SAVE_TOC_INDIRECT) Var(rs6000_isa_flags)
  410. Control whether we save the TOC in the prologue for indirect calls or generate the save inline
  411. mvsx-timode
  412. Target Undocumented Mask(VSX_TIMODE) Var(rs6000_isa_flags)
  413. Allow 128-bit integers in VSX registers
  414. mpower8-fusion
  415. Target Report Mask(P8_FUSION) Var(rs6000_isa_flags)
  416. Fuse certain integer operations together for better performance on power8
  417. mpower8-fusion-sign
  418. Target Undocumented Mask(P8_FUSION_SIGN) Var(rs6000_isa_flags)
  419. Allow sign extension in fusion operations
  420. mpower8-vector
  421. Target Report Mask(P8_VECTOR) Var(rs6000_isa_flags)
  422. Use/do not use vector and scalar instructions added in ISA 2.07.
  423. mcrypto
  424. Target Report Mask(CRYPTO) Var(rs6000_isa_flags)
  425. Use ISA 2.07 Category:Vector.AES and Category:Vector.SHA2 instructions
  426. mdirect-move
  427. Target Report Mask(DIRECT_MOVE) Var(rs6000_isa_flags)
  428. Use ISA 2.07 direct move between GPR & VSX register instructions
  429. mhtm
  430. Target Report Mask(HTM) Var(rs6000_isa_flags)
  431. Use ISA 2.07 transactional memory (HTM) instructions
  432. mquad-memory
  433. Target Report Mask(QUAD_MEMORY) Var(rs6000_isa_flags)
  434. Generate the quad word memory instructions (lq/stq).
  435. mquad-memory-atomic
  436. Target Report Mask(QUAD_MEMORY_ATOMIC) Var(rs6000_isa_flags)
  437. Generate the quad word memory atomic instructions (lqarx/stqcx).
  438. mcompat-align-parm
  439. Target Report Var(rs6000_compat_align_parm) Init(0) Save
  440. Generate aggregate parameter passing code with at most 64-bit alignment.
  441. mupper-regs-df
  442. Target Report Mask(UPPER_REGS_DF) Var(rs6000_isa_flags)
  443. Allow double variables in upper registers with -mcpu=power7 or -mvsx
  444. mupper-regs-sf
  445. Target Report Mask(UPPER_REGS_SF) Var(rs6000_isa_flags)
  446. Allow float variables in upper registers with -mcpu=power8 or -mpower8-vector
  447. mupper-regs
  448. Target Report Var(TARGET_UPPER_REGS) Init(-1) Save
  449. Allow float/double variables in upper registers if cpu allows it
  450. moptimize-swaps
  451. Target Undocumented Var(rs6000_optimize_swaps) Init(1) Save
  452. Analyze and remove doubleword swaps from VSX computations.