@@ -4581,59 +4581,14 @@ implicitly included in later levels.
45814581- ``-march=x86-64-v3 ``: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE
45824582- ``-march=x86-64-v4 ``: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL
45834583
4584- `Intel AVX10 ISA <https://cdrdv2.intel.com/v1/dl/getContent/784267 >`_ is
4584+ `Intel AVX10 ISA <https://cdrdv2.intel.com/v1/dl/getContent/784343 >`_ is
45854585a major new vector ISA incorporating the modern vectorization aspects of
45864586Intel AVX-512. This ISA will be supported on all future Intel processors.
4587- Users are supposed to use the new options ``-mavx10.N `` and ``-mavx10.N-512 ``
4588- on these processors and should not use traditional AVX512 options anymore.
4589-
4590- The ``N `` in ``-mavx10.N `` represents a continuous integer number starting
4591- from ``1 ``. ``-mavx10.N `` is an alias of ``-mavx10.N-256 ``, which means to
4592- enable all instructions within AVX10 version N at a maximum vector length of
4593- 256 bits. ``-mavx10.N-512 `` enables all instructions at a maximum vector
4594- length of 512 bits, which is a superset of instructions ``-mavx10.N `` enabled.
4595-
4596- Current binaries built with AVX512 features can run on Intel AVX10/512 capable
4597- processors without re-compile, but cannot run on AVX10/256 capable processors.
4598- Users need to re-compile their code with ``-mavx10.N ``, and maybe update some
4599- code that calling to 512-bit X86 specific intrinsics and passing or returning
4600- 512-bit vector types in function call, if they want to run on AVX10/256 capable
4601- processors. Binaries built with ``-mavx10.N `` can run on both AVX10/256 and
4602- AVX10/512 capable processors.
4603-
4604- Users can add a ``-mno-evex512 `` in the command line with AVX512 options if
4605- they want to run the binary on both legacy AVX512 and new AVX10/256 capable
4606- processors. The option has the same constraints as ``-mavx10.N ``, i.e.,
4607- cannot call to 512-bit X86 specific intrinsics and pass or return 512-bit vector
4608- types in function call.
4609-
4610- Users should avoid using AVX512 features in function target attributes when
4611- developing code for AVX10. If they have to do so, they need to add an explicit
4612- ``evex512 `` or ``no-evex512 `` together with AVX512 features for 512-bit or
4613- non-512-bit functions respectively to avoid unexpected code generation. Both
4614- command line option and target attribute of EVEX512 feature can only be used
4615- with AVX512. They don't affect vector size of AVX10.
4616-
4617- User should not mix the use AVX10 and AVX512 options together at any time,
4618- because the option combinations are conflicting sometimes. For example, a
4619- combination of ``-mavx512f -mavx10.1-256 `` doesn't show a clear intention to
4620- compiler, since instructions in AVX512F and AVX10.1/256 intersect but do not
4621- overlap. In this case, compiler will emit warning for it, but the behavior
4622- is determined. It will generate the same code as option ``-mavx10.1-512 ``.
4623- A similar case is ``-mavx512f -mavx10.2-256 ``, which equals to
4624- ``-mavx10.1-512 -mavx10.2-256 ``, because ``avx10.2-256 `` implies ``avx10.1-256 ``
4625- and ``-mavx512f -mavx10.1-256 `` equals to ``-mavx10.1-512 ``.
4626-
4627- There are some new macros introduced with AVX10 support. ``-mavx10.1-256 `` will
4628- enable ``__AVX10_1__ `` and ``__EVEX256__ ``, while ``-mavx10.1-512 `` enables
4629- ``__AVX10_1__ ``, ``__EVEX256__ ``, ``__EVEX512__ `` and ``__AVX10_1_512__ ``.
4630- Besides, both ``-mavx10.1-256 `` and ``-mavx10.1-512 `` will enable all AVX512
4631- feature specific macros. A AVX512 feature will enable both ``__EVEX256__ ``,
4632- ``__EVEX512__ `` and its own macro. So ``__EVEX512__ `` can be used to guard code
4633- that can run on both legacy AVX512 and AVX10/512 capable processors but cannot
4634- run on AVX10/256, while a AVX512 macro like ``__AVX512F__ `` cannot tell the
4635- difference among the three options. Users need to check additional macros
4636- ``__AVX10_1__ `` and ``__EVEX512__ `` if they want to make distinction.
4587+ Users are supposed to use the new options ``-mavx10.N `` on these processors
4588+ and should not use traditional AVX512 options anymore. The ``N `` in
4589+ ``-mavx10.N `` represents a continuous integer number starting
4590+ from ``1 ``. Current binaries built with AVX512 features can run on Intel AVX10
4591+ capable processors without re-compile.
46374592
46384593ARM
46394594^^^
0 commit comments