@@ -4581,59 +4581,14 @@ implicitly included in later levels.
4581
4581
- ``-march=x86-64-v3 ``: (close to Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE
4582
4582
- ``-march=x86-64-v4 ``: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL
4583
4583
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
4585
4585
a major new vector ISA incorporating the modern vectorization aspects of
4586
4586
Intel 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.
4637
4592
4638
4593
ARM
4639
4594
^^^
0 commit comments