summaryrefslogtreecommitdiff
path: root/doc/source/reference/simd/simd-optimizations-tables.inc
blob: d5b82ee0c6fea53925ffbd1af536aeaacfd25527 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
.. generated via source/reference/simd/simd-optimizations.py

``X86`` - CPU feature names
~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. table::
    :align: left

    ======== =================================================================================================================
    Name     Implies                                                                                                          
    ======== =================================================================================================================
    SSE      ``SSE`` ``SSE2``                                                                                                 
    SSE2     ``SSE`` ``SSE2``                                                                                                 
    SSE3     ``SSE`` ``SSE2``                                                                                                 
    SSSE3    ``SSE`` ``SSE2`` ``SSE3``                                                                                        
    SSE41    ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3``                                                                              
    POPCNT   ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41``                                                                    
    SSE42    ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT``                                                         
    AVX      ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42``                                               
    XOP      ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX``                                       
    FMA4     ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX``                                       
    F16C     ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX``                                       
    FMA3     ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C``                              
    AVX2     ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C``                              
    AVX512F  ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C`` ``FMA3`` ``AVX2``            
    AVX512CD ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C`` ``FMA3`` ``AVX2`` ``AVX512F``
    ======== =================================================================================================================

``X86`` - Group names
~~~~~~~~~~~~~~~~~~~~~

.. table::
    :align: left

    ========== ===================================================== ===========================================================================================================================================================================
    Name       Gather                                                Implies                                                                                                                                                                    
    ========== ===================================================== ===========================================================================================================================================================================
    AVX512_KNL ``AVX512ER`` ``AVX512PF``                             ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C`` ``FMA3`` ``AVX2`` ``AVX512F`` ``AVX512CD``                                             
    AVX512_KNM ``AVX5124FMAPS`` ``AVX5124VNNIW`` ``AVX512VPOPCNTDQ`` ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C`` ``FMA3`` ``AVX2`` ``AVX512F`` ``AVX512CD`` ``AVX512_KNL``                              
    AVX512_SKX ``AVX512VL`` ``AVX512BW`` ``AVX512DQ``                ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C`` ``FMA3`` ``AVX2`` ``AVX512F`` ``AVX512CD``                                             
    AVX512_CLX ``AVX512VNNI``                                        ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C`` ``FMA3`` ``AVX2`` ``AVX512F`` ``AVX512CD`` ``AVX512_SKX``                              
    AVX512_CNL ``AVX512IFMA`` ``AVX512VBMI``                         ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C`` ``FMA3`` ``AVX2`` ``AVX512F`` ``AVX512CD`` ``AVX512_SKX``                              
    AVX512_ICL ``AVX512VBMI2`` ``AVX512BITALG`` ``AVX512VPOPCNTDQ``  ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C`` ``FMA3`` ``AVX2`` ``AVX512F`` ``AVX512CD`` ``AVX512_SKX`` ``AVX512_CLX`` ``AVX512_CNL``
    ========== ===================================================== ===========================================================================================================================================================================

``IBM/POWER`` ``big-endian`` - CPU feature names
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. table::
    :align: left

    ==== ================
    Name Implies         
    ==== ================
    VSX                  
    VSX2 ``VSX``         
    VSX3 ``VSX`` ``VSX2``
    ==== ================

``IBM/POWER`` ``little-endian mode`` - CPU feature names
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. table::
    :align: left

    ==== ================
    Name Implies         
    ==== ================
    VSX  ``VSX`` ``VSX2``
    VSX2 ``VSX`` ``VSX2``
    VSX3 ``VSX`` ``VSX2``
    ==== ================

``ARMHF`` - CPU feature names
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. table::
    :align: left

    ========== ===========================================================
    Name       Implies                                                    
    ========== ===========================================================
    NEON                                                                  
    NEON_FP16  ``NEON``                                                   
    NEON_VFPV4 ``NEON`` ``NEON_FP16``                                     
    ASIMD      ``NEON`` ``NEON_FP16`` ``NEON_VFPV4``                      
    ASIMDHP    ``NEON`` ``NEON_FP16`` ``NEON_VFPV4`` ``ASIMD``            
    ASIMDDP    ``NEON`` ``NEON_FP16`` ``NEON_VFPV4`` ``ASIMD``            
    ASIMDFHM   ``NEON`` ``NEON_FP16`` ``NEON_VFPV4`` ``ASIMD`` ``ASIMDHP``
    ========== ===========================================================

``ARM64`` ``AARCH64`` - CPU feature names
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. table::
    :align: left

    ========== ===========================================================
    Name       Implies                                                    
    ========== ===========================================================
    NEON       ``NEON`` ``NEON_FP16`` ``NEON_VFPV4`` ``ASIMD``            
    NEON_FP16  ``NEON`` ``NEON_FP16`` ``NEON_VFPV4`` ``ASIMD``            
    NEON_VFPV4 ``NEON`` ``NEON_FP16`` ``NEON_VFPV4`` ``ASIMD``            
    ASIMD      ``NEON`` ``NEON_FP16`` ``NEON_VFPV4`` ``ASIMD``            
    ASIMDHP    ``NEON`` ``NEON_FP16`` ``NEON_VFPV4`` ``ASIMD``            
    ASIMDDP    ``NEON`` ``NEON_FP16`` ``NEON_VFPV4`` ``ASIMD``            
    ASIMDFHM   ``NEON`` ``NEON_FP16`` ``NEON_VFPV4`` ``ASIMD`` ``ASIMDHP``
    ========== ===========================================================