summaryrefslogtreecommitdiff
path: root/doc/source/reference/simd/generated_tables/cpu_features.inc
blob: 603370e2154532213998bd2a72a3e3063444f2e2 (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
.. generated via /numpy/numpy/./doc/source/reference/simd/gen_features.py

On x86
~~~~~~
.. table::
    :align: left

    ============== ========================================================================================================================================================================================== =====================================================
    Name           Implies                                                                                                                                                                                    Gathers                                              
    ============== ========================================================================================================================================================================================== =====================================================
    ``SSE``        ``SSE2``                                                                                                                                                                                                                                        
    ``SSE2``       ``SSE``                                                                                                                                                                                                                                         
    ``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``                                                                                                                               
    ``AVX512_KNL`` ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C`` ``FMA3`` ``AVX2`` ``AVX512F`` ``AVX512CD``                                                             ``AVX512ER`` ``AVX512PF``                            
    ``AVX512_KNM`` ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C`` ``FMA3`` ``AVX2`` ``AVX512F`` ``AVX512CD`` ``AVX512_KNL``                                              ``AVX5124FMAPS`` ``AVX5124VNNIW`` ``AVX512VPOPCNTDQ``
    ``AVX512_SKX`` ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C`` ``FMA3`` ``AVX2`` ``AVX512F`` ``AVX512CD``                                                             ``AVX512VL`` ``AVX512BW`` ``AVX512DQ``               
    ``AVX512_CLX`` ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C`` ``FMA3`` ``AVX2`` ``AVX512F`` ``AVX512CD`` ``AVX512_SKX``                                              ``AVX512VNNI``                                       
    ``AVX512_CNL`` ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C`` ``FMA3`` ``AVX2`` ``AVX512F`` ``AVX512CD`` ``AVX512_SKX``                                              ``AVX512IFMA`` ``AVX512VBMI``                        
    ``AVX512_ICL`` ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C`` ``FMA3`` ``AVX2`` ``AVX512F`` ``AVX512CD`` ``AVX512_SKX`` ``AVX512_CLX`` ``AVX512_CNL``                ``AVX512VBMI2`` ``AVX512BITALG`` ``AVX512VPOPCNTDQ`` 
    ``AVX512_SPR`` ``SSE`` ``SSE2`` ``SSE3`` ``SSSE3`` ``SSE41`` ``POPCNT`` ``SSE42`` ``AVX`` ``F16C`` ``FMA3`` ``AVX2`` ``AVX512F`` ``AVX512CD`` ``AVX512_SKX`` ``AVX512_CLX`` ``AVX512_CNL`` ``AVX512_ICL`` ``AVX512FP16``                                       
    ============== ========================================================================================================================================================================================== =====================================================

On IBM/POWER big-endian
~~~~~~~~~~~~~~~~~~~~~~~
.. table::
    :align: left

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

On IBM/POWER little-endian
~~~~~~~~~~~~~~~~~~~~~~~~~~
.. table::
    :align: left

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

On ARMv7/A32
~~~~~~~~~~~~
.. 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``
    ============== ===========================================================

On ARMv8/A64
~~~~~~~~~~~~
.. table::
    :align: left

    ============== ===========================================================
    Name           Implies                                                    
    ============== ===========================================================
    ``NEON``       ``NEON_FP16`` ``NEON_VFPV4`` ``ASIMD``                     
    ``NEON_FP16``  ``NEON`` ``NEON_VFPV4`` ``ASIMD``                          
    ``NEON_VFPV4`` ``NEON`` ``NEON_FP16`` ``ASIMD``                           
    ``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``
    ============== ===========================================================

On IBM/ZSYSTEM(S390X)
~~~~~~~~~~~~~~~~~~~~~
.. table::
    :align: left

    ======== ==============
    Name     Implies       
    ======== ==============
    ``VX``                 
    ``VXE``  ``VX``        
    ``VXE2`` ``VX`` ``VXE``
    ======== ==============