On Mon, Jan 28, 2019 at 10:48 AM Jakub Jelinek <ja...@redhat.com> wrote:
>
> Hi!
>
> The documentation has several lists of x86 ISA options and various options
> were missing from them.  The PR was mainly about missing options in x86
> target attribute section, which missed a lot of the options, but for each
> of the missing ones I've also double checked invoke.texi - some options were
> missing there, one had missing @opindex and some of them were listed in the
> list, but in the description weren't actually listed or were listed in
> different order.
>
> Tested on x86_64-linux with make doc, ok for trunk?

OK.

Richard.

> 2019-01-28  Jakub Jelinek  <ja...@redhat.com>
>
>         PR target/89073
>         * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
>         -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
>         x86 ISA options.
>         (bmi2): Add missing @opindex.
>         * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
>         options alphabetically.  Add missing 3dnow, 3dnowa, adx, avx, avx2,
>         avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
>         avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
>         avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
>         cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
>         fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
>         pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
>         sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
>         xsavec, xsaveopt and xsaves options.
>
> --- gcc/doc/invoke.texi.jj      2019-01-23 09:34:35.954725873 +0100
> +++ gcc/doc/invoke.texi 2019-01-28 10:18:41.017990421 +0100
> @@ -1266,12 +1266,14 @@ See RS/6000 and PowerPC Options.
>  -mavx2  -mavx512f  -mavx512pf  -mavx512er  -mavx512cd  -mavx512vl @gol
>  -mavx512bw  -mavx512dq  -mavx512ifma  -mavx512vbmi  -msha  -maes @gol
>  -mpclmul  -mfsgsbase  -mrdrnd  -mf16c  -mfma  -mpconfig  -mwbnoinvd  @gol
> --mptwrite  -mprefetchwt1  -mclflushopt  -mxsavec  -mxsaves @gol
> +-mptwrite  -mprefetchwt1  -mclflushopt  -mclwb  -mxsavec  -mxsaves @gol
>  -msse4a  -m3dnow  -m3dnowa  -mpopcnt  -mabm  -mbmi  -mtbm  -mfma4  -mxop @gol
> --mlzcnt  -mbmi2  -mfxsr  -mxsave  -mxsaveopt  -mrtm  -mlwp @gol
> +-madx  -mlzcnt  -mbmi2  -mfxsr  -mxsave  -mxsaveopt  -mrtm  -mhle  -mlwp @gol
>  -mmwaitx  -mclzero  -mpku  -mthreads  -mgfni  -mvaes  -mwaitpkg @gol
>  -mshstk -mmanual-endbr -mforce-indirect-call  -mavx512vbmi2 @gol
>  -mvpclmulqdq  -mavx512bitalg  -mmovdiri  -mmovdir64b  -mavx512vpopcntdq @gol
> +-mavx5124fmaps  -mavx512vnni  -mavx5124vnniw  -mprfchw  -mrdpid @gol
> +-mrdseed  -msgx @gol
>  -mcldemote  -mms-bitfields  -mno-align-stringops  -minline-all-stringops @gol
>  -minline-stringops-dynamically  -mstringop-strategy=@var{alg} @gol
>  -mmemcpy-strategy=@var{strategy}  -mmemset-strategy=@var{strategy} @gol
> @@ -27877,6 +27879,9 @@ preferred alignment to @option{-mpreferr
>  @itemx -mclflushopt
>  @opindex mclflushopt
>  @need 200
> +@itemx -mclwb
> +@opindex mclwb
> +@need 200
>  @itemx -mfsgsbase
>  @opindex mfsgsbase
>  @need 200
> @@ -27901,9 +27906,21 @@ preferred alignment to @option{-mpreferr
>  @itemx -mfma4
>  @opindex mfma4
>  @need 200
> +@itemx -mprfchw
> +@opindex mprfchw
> +@need 200
> +@itemx -mrdpid
> +@opindex mrdpid
> +@need 200
>  @itemx -mprefetchwt1
>  @opindex mprefetchwt1
>  @need 200
> +@itemx -mrdseed
> +@opindex mrdseed
> +@need 200
> +@itemx -msgx
> +@opindex msgx
> +@need 200
>  @itemx -mxop
>  @opindex mxop
>  @need 200
> @@ -27922,10 +27939,14 @@ preferred alignment to @option{-mpreferr
>  @itemx -mabm
>  @opindex mabm
>  @need 200
> +@itemx -madx
> +@opindex madx
> +@need 200
>  @itemx -mbmi
>  @opindex mbmi
>  @need 200
>  @itemx -mbmi2
> +@opindex mbmi2
>  @need 200
>  @itemx -mlzcnt
>  @opindex mlzcnt
> @@ -27948,6 +27969,9 @@ preferred alignment to @option{-mpreferr
>  @itemx -mrtm
>  @opindex mrtm
>  @need 200
> +@itemx -mhle
> +@opindex mhle
> +@need 200
>  @itemx -mtbm
>  @opindex mtbm
>  @need 200
> @@ -27987,17 +28011,28 @@ preferred alignment to @option{-mpreferr
>  @itemx -mavx512vpopcntdq
>  @opindex mavx512vpopcntdq
>  @need 200
> +@itemx -mavx5124fmaps
> +@opindex mavx5124fmaps
> +@need 200
> +@itemx -mavx512vnni
> +@opindex mavx512vnni
> +@need 200
> +@itemx -mavx5124vnniw
> +@opindex mavx5124vnniw
> +@need 200
>  @itemx -mcldemote
>  @opindex mcldemote
>  These switches enable the use of instructions in the MMX, SSE,
> -SSE2, SSE3, SSSE3, SSE4.1, AVX, AVX2, AVX512F, AVX512PF, AVX512ER, AVX512CD,
> -SHA, AES, PCLMUL, FSGSBASE, PTWRITE, RDRND, F16C, FMA, SSE4A, FMA4, XOP, 
> LWP, ABM,
> -AVX512VL, AVX512BW, AVX512DQ, AVX512IFMA, AVX512VBMI, BMI, BMI2, VAES, 
> WAITPKG,
> -FXSR, XSAVE, XSAVEOPT, LZCNT, RTM, MWAITX, PKU, IBT, SHSTK, AVX512VBMI2,
> -GFNI, VPCLMULQDQ, AVX512BITALG, MOVDIRI, MOVDIR64B,
> -AVX512VPOPCNTDQ, CLDEMOTE, 3DNow!@: or enhanced 3DNow!@: extended instruction
> -sets. Each has a corresponding @option{-mno-} option to disable use of these
> -instructions.
> +SSE2, SSE3, SSSE3, SSE4, SSE4A, SSE4.1, SSE4.2, AVX, AVX2, AVX512F, AVX512PF,
> +AVX512ER, AVX512CD, AVX512VL, AVX512BW, AVX512DQ, AVX512IFMA, AVX512VBMI, 
> SHA,
> +AES, PCLMUL, CLFLUSHOPT, CLWB, FSGSBASE, PTWRITE, RDRND, F16C, FMA, PCONFIG,
> +WBNOINVD, FMA4, PREFETCHW, RDPID, PREFETCHWT1, RDSEED, SGX, XOP, LWP,
> +3DNow!@:, enhanced 3DNow!@:, POPCNT, ABM, ADX, BMI, BMI2, LZCNT, FXSR, XSAVE,
> +XSAVEOPT, XSAVEC, XSAVES, RTM, HLE, TBM, MWAITX, CLZERO, PKU, AVX512VBMI2,
> +GFNI, VAES, WAITPKG, VPCLMULQDQ, AVX512BITALG, MOVDIRI, MOVDIR64B,
> +AVX512VPOPCNTDQ, AVX5124FMAPS, AVX512VNNI, AVX5124VNNIW, or CLDEMOTE
> +extended instruction sets.  Each has a corresponding @option{-mno-} option to
> +disable use of these instructions.
>
>  These extensions are also available as built-in functions: see
>  @ref{x86 Built-in Functions}, for details of the functions enabled and
> --- gcc/doc/extend.texi.jj      2019-01-23 15:40:11.992518007 +0100
> +++ gcc/doc/extend.texi 2019-01-28 10:04:23.583251998 +0100
> @@ -6021,36 +6021,306 @@ allows specification of target-specific
>
>  On the x86, the following options are allowed:
>  @table @samp
> +@item 3dnow
> +@itemx no-3dnow
> +@cindex @code{target("3dnow")} function attribute, x86
> +Enable/disable the generation of the 3DNow!@: instructions.
> +
> +@item 3dnowa
> +@itemx no-3dnowa
> +@cindex @code{target("3dnowa")} function attribute, x86
> +Enable/disable the generation of the enhanced 3DNow!@: instructions.
> +
>  @item abm
>  @itemx no-abm
>  @cindex @code{target("abm")} function attribute, x86
>  Enable/disable the generation of the advanced bit instructions.
>
> +@item adx
> +@itemx no-adx
> +@cindex @code{target("adx")} function attribute, x86
> +Enable/disable the generation of the ADX instructions.
> +
>  @item aes
>  @itemx no-aes
>  @cindex @code{target("aes")} function attribute, x86
>  Enable/disable the generation of the AES instructions.
>
> +@item avx
> +@itemx no-avx
> +@cindex @code{target("avx")} function attribute, x86
> +Enable/disable the generation of the AVX instructions.
> +
> +@item avx2
> +@itemx no-avx2
> +@cindex @code{target("avx2")} function attribute, x86
> +Enable/disable the generation of the AVX2 instructions.
> +
> +@item avx5124fmaps
> +@itemx no-avx5124fmaps
> +@cindex @code{target("avx5124fmaps")} function attribute, x86
> +Enable/disable the generation of the AVX5124FMAPS instructions.
> +
> +@item avx5124vnniw
> +@itemx no-avx5124vnniw
> +@cindex @code{target("avx5124vnniw")} function attribute, x86
> +Enable/disable the generation of the AVX5124VNNIW instructions.
> +
> +@item avx512bitalg
> +@itemx no-avx512bitalg
> +@cindex @code{target("avx512bitalg")} function attribute, x86
> +Enable/disable the generation of the AVX512BITALG instructions.
> +
> +@item avx512bw
> +@itemx no-avx512bw
> +@cindex @code{target("avx512bw")} function attribute, x86
> +Enable/disable the generation of the AVX512BW instructions.
> +
> +@item avx512cd
> +@itemx no-avx512cd
> +@cindex @code{target("avx512cd")} function attribute, x86
> +Enable/disable the generation of the AVX512CD instructions.
> +
> +@item avx512dq
> +@itemx no-avx512dq
> +@cindex @code{target("avx512dq")} function attribute, x86
> +Enable/disable the generation of the AVX512DQ instructions.
> +
> +@item avx512er
> +@itemx no-avx512er
> +@cindex @code{target("avx512er")} function attribute, x86
> +Enable/disable the generation of the AVX512ER instructions.
> +
> +@item avx512f
> +@itemx no-avx512f
> +@cindex @code{target("avx512f")} function attribute, x86
> +Enable/disable the generation of the AVX512F instructions.
> +
> +@item avx512ifma
> +@itemx no-avx512ifma
> +@cindex @code{target("avx512ifma")} function attribute, x86
> +Enable/disable the generation of the AVX512IFMA instructions.
> +
> +@item avx512pf
> +@itemx no-avx512pf
> +@cindex @code{target("avx512pf")} function attribute, x86
> +Enable/disable the generation of the AVX512PF instructions.
> +
> +@item avx512vbmi
> +@itemx no-avx512vbmi
> +@cindex @code{target("avx512vbmi")} function attribute, x86
> +Enable/disable the generation of the AVX512VBMI instructions.
> +
> +@item avx512vbmi2
> +@itemx no-avx512vbmi2
> +@cindex @code{target("avx512vbmi2")} function attribute, x86
> +Enable/disable the generation of the AVX512VBMI2 instructions.
> +
> +@item avx512vl
> +@itemx no-avx512vl
> +@cindex @code{target("avx512vl")} function attribute, x86
> +Enable/disable the generation of the AVX512VL instructions.
> +
> +@item avx512vnni
> +@itemx no-avx512vnni
> +@cindex @code{target("avx512vnni")} function attribute, x86
> +Enable/disable the generation of the AVX512VNNI instructions.
> +
> +@item avx512vpopcntdq
> +@itemx no-avx512vpopcntdq
> +@cindex @code{target("avx512vpopcntdq")} function attribute, x86
> +Enable/disable the generation of the AVX512VPOPCNTDQ instructions.
> +
> +@item bmi
> +@itemx no-bmi
> +@cindex @code{target("bmi")} function attribute, x86
> +Enable/disable the generation of the BMI instructions.
> +
> +@item bmi2
> +@itemx no-bmi2
> +@cindex @code{target("bmi2")} function attribute, x86
> +Enable/disable the generation of the BMI2 instructions.
> +
> +@item cldemote
> +@itemx no-cldemote
> +@cindex @code{target("cldemote")} function attribute, x86
> +Enable/disable the generation of the CLDEMOTE instructions.
> +
> +@item clflushopt
> +@itemx no-clflushopt
> +@cindex @code{target("clflushopt")} function attribute, x86
> +Enable/disable the generation of the CLFLUSHOPT instructions.
> +
> +@item clwb
> +@itemx no-clwb
> +@cindex @code{target("clwb")} function attribute, x86
> +Enable/disable the generation of the CLWB instructions.
> +
> +@item clzero
> +@itemx no-clzero
> +@cindex @code{target("clzero")} function attribute, x86
> +Enable/disable the generation of the CLZERO instructions.
> +
> +@item crc32
> +@itemx no-crc32
> +@cindex @code{target("crc32")} function attribute, x86
> +Enable/disable the generation of the CRC32 instructions.
> +
> +@item cx16
> +@itemx no-cx16
> +@cindex @code{target("cx16")} function attribute, x86
> +Enable/disable the generation of the CMPXCHG16B instructions.
> +
>  @item default
>  @cindex @code{target("default")} function attribute, x86
>  @xref{Function Multiversioning}, where it is used to specify the
>  default function version.
>
> +@item f16c
> +@itemx no-f16c
> +@cindex @code{target("f16c")} function attribute, x86
> +Enable/disable the generation of the F16C instructions.
> +
> +@item fma
> +@itemx no-fma
> +@cindex @code{target("fma")} function attribute, x86
> +Enable/disable the generation of the FMA instructions.
> +
> +@item fma4
> +@itemx no-fma4
> +@cindex @code{target("fma4")} function attribute, x86
> +Enable/disable the generation of the FMA4 instructions.
> +
> +@item fsgsbase
> +@itemx no-fsgsbase
> +@cindex @code{target("fsgsbase")} function attribute, x86
> +Enable/disable the generation of the FSGSBASE instructions.
> +
> +@item fxsr
> +@itemx no-fxsr
> +@cindex @code{target("fxsr")} function attribute, x86
> +Enable/disable the generation of the FXSR instructions.
> +
> +@item gfni
> +@itemx no-gfni
> +@cindex @code{target("gfni")} function attribute, x86
> +Enable/disable the generation of the GFNI instructions.
> +
> +@item hle
> +@itemx no-hle
> +@cindex @code{target("hle")} function attribute, x86
> +Enable/disable the generation of the HLE instruction prefixes.
> +
> +@item lwp
> +@itemx no-lwp
> +@cindex @code{target("lwp")} function attribute, x86
> +Enable/disable the generation of the LWP instructions.
> +
> +@item lzcnt
> +@itemx no-lzcnt
> +@cindex @code{target("lzcnt")} function attribute, x86
> +Enable/disable the generation of the LZCNT instructions.
> +
>  @item mmx
>  @itemx no-mmx
>  @cindex @code{target("mmx")} function attribute, x86
>  Enable/disable the generation of the MMX instructions.
>
> +@item movbe
> +@itemx no-movbe
> +@cindex @code{target("movbe")} function attribute, x86
> +Enable/disable the generation of the MOVBE instructions.
> +
> +@item movdir64b
> +@itemx no-movdir64b
> +@cindex @code{target("movdir64b")} function attribute, x86
> +Enable/disable the generation of the MOVDIR64B instructions.
> +
> +@item movdiri
> +@itemx no-movdiri
> +@cindex @code{target("movdiri")} function attribute, x86
> +Enable/disable the generation of the MOVDIRI instructions.
> +
> +@item mwaitx
> +@itemx no-mwaitx
> +@cindex @code{target("mwaitx")} function attribute, x86
> +Enable/disable the generation of the MWAITX instructions.
> +
>  @item pclmul
>  @itemx no-pclmul
>  @cindex @code{target("pclmul")} function attribute, x86
>  Enable/disable the generation of the PCLMUL instructions.
>
> +@item pconfig
> +@itemx no-pconfig
> +@cindex @code{target("pconfig")} function attribute, x86
> +Enable/disable the generation of the PCONFIG instructions.
> +
> +@item pku
> +@itemx no-pku
> +@cindex @code{target("pku")} function attribute, x86
> +Enable/disable the generation of the PKU instructions.
> +
>  @item popcnt
>  @itemx no-popcnt
>  @cindex @code{target("popcnt")} function attribute, x86
>  Enable/disable the generation of the POPCNT instruction.
>
> +@item prefetchwt1
> +@itemx no-prefetchwt1
> +@cindex @code{target("prefetchwt1")} function attribute, x86
> +Enable/disable the generation of the PREFETCHWT1 instructions.
> +
> +@item prfchw
> +@itemx no-prfchw
> +@cindex @code{target("prfchw")} function attribute, x86
> +Enable/disable the generation of the PREFETCHW instruction.
> +
> +@item ptwrite
> +@itemx no-ptwrite
> +@cindex @code{target("ptwrite")} function attribute, x86
> +Enable/disable the generation of the PTWRITE instructions.
> +
> +@item rdpid
> +@itemx no-rdpid
> +@cindex @code{target("rdpid")} function attribute, x86
> +Enable/disable the generation of the RDPID instructions.
> +
> +@item rdrnd
> +@itemx no-rdrnd
> +@cindex @code{target("rdrnd")} function attribute, x86
> +Enable/disable the generation of the RDRND instructions.
> +
> +@item rdseed
> +@itemx no-rdseed
> +@cindex @code{target("rdseed")} function attribute, x86
> +Enable/disable the generation of the RDSEED instructions.
> +
> +@item rtm
> +@itemx no-rtm
> +@cindex @code{target("rtm")} function attribute, x86
> +Enable/disable the generation of the RTM instructions.
> +
> +@item sahf
> +@itemx no-sahf
> +@cindex @code{target("sahf")} function attribute, x86
> +Enable/disable the generation of the SAHF instructions.
> +
> +@item sgx
> +@itemx no-sgx
> +@cindex @code{target("sgx")} function attribute, x86
> +Enable/disable the generation of the SGX instructions.
> +
> +@item sha
> +@itemx no-sha
> +@cindex @code{target("sha")} function attribute, x86
> +Enable/disable the generation of the SHA instructions.
> +
> +@item shstk
> +@itemx no-shstk
> +@cindex @code{target("shstk")} function attribute, x86
> +Enable/disable the shadow stack built-in functions from CET.
> +
>  @item sse
>  @itemx no-sse
>  @cindex @code{target("sse")} function attribute, x86
> @@ -6087,25 +6357,60 @@ Enable/disable the generation of the sse
>  @cindex @code{target("sse4a")} function attribute, x86
>  Enable/disable the generation of the SSE4A instructions.
>
> -@item fma4
> -@itemx no-fma4
> -@cindex @code{target("fma4")} function attribute, x86
> -Enable/disable the generation of the FMA4 instructions.
> +@item ssse3
> +@itemx no-ssse3
> +@cindex @code{target("ssse3")} function attribute, x86
> +Enable/disable the generation of the SSSE3 instructions.
> +
> +@item tbm
> +@itemx no-tbm
> +@cindex @code{target("tbm")} function attribute, x86
> +Enable/disable the generation of the TBM instructions.
> +
> +@item vaes
> +@itemx no-vaes
> +@cindex @code{target("vaes")} function attribute, x86
> +Enable/disable the generation of the VAES instructions.
> +
> +@item vpclmulqdq
> +@itemx no-vpclmulqdq
> +@cindex @code{target("vpclmulqdq")} function attribute, x86
> +Enable/disable the generation of the VPCLMULQDQ instructions.
> +
> +@item waitpkg
> +@itemx no-waitpkg
> +@cindex @code{target("waitpkg")} function attribute, x86
> +Enable/disable the generation of the WAITPKG instructions.
> +
> +@item wbnoinvd
> +@itemx no-wbnoinvd
> +@cindex @code{target("wbnoinvd")} function attribute, x86
> +Enable/disable the generation of the WBNOINVD instructions.
>
>  @item xop
>  @itemx no-xop
>  @cindex @code{target("xop")} function attribute, x86
>  Enable/disable the generation of the XOP instructions.
>
> -@item lwp
> -@itemx no-lwp
> -@cindex @code{target("lwp")} function attribute, x86
> -Enable/disable the generation of the LWP instructions.
> -
> -@item ssse3
> -@itemx no-ssse3
> -@cindex @code{target("ssse3")} function attribute, x86
> -Enable/disable the generation of the SSSE3 instructions.
> +@item xsave
> +@itemx no-xsave
> +@cindex @code{target("xsave")} function attribute, x86
> +Enable/disable the generation of the XSAVE instructions.
> +
> +@item xsavec
> +@itemx no-xsavec
> +@cindex @code{target("xsavec")} function attribute, x86
> +Enable/disable the generation of the XSAVEC instructions.
> +
> +@item xsaveopt
> +@itemx no-xsaveopt
> +@cindex @code{target("xsaveopt")} function attribute, x86
> +Enable/disable the generation of the XSAVEOPT instructions.
> +
> +@item xsaves
> +@itemx no-xsaves
> +@cindex @code{target("xsaves")} function attribute, x86
> +Enable/disable the generation of the XSAVES instructions.
>
>  @item cld
>  @itemx no-cld
>
>         Jakub

Reply via email to