|
12 | 12 | "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=native" |
13 | 13 | } |
14 | 14 | }, |
| 15 | + { |
| 16 | + "name": "portable-base", |
| 17 | + "hidden": true, |
| 18 | + "cacheVariables": { |
| 19 | + "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -mno-sse4a -mno-mmx -mno-xop -mno-tbm -mno-3dnow" |
| 20 | + } |
| 21 | + }, |
| 22 | + { |
| 23 | + "name": "sse-base", |
| 24 | + "hidden": true, |
| 25 | + "inherits": ["portable-base"], |
| 26 | + "cacheVariables": { |
| 27 | + "CMAKE_CXX_FLAGS": "-march=x86-64" |
| 28 | + } |
| 29 | + }, |
15 | 30 | { |
16 | 31 | "name": "sse2", |
| 32 | + "inherits": ["sse-base"], |
17 | 33 | "cacheVariables": { |
18 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -msse2 -mno-sse3" |
| 34 | + "CMAKE_CXX_FLAGS": "-msse2 -mno-sse3" |
19 | 35 | } |
20 | 36 | }, |
21 | 37 | { |
22 | 38 | "name": "sse3", |
| 39 | + "inherits": ["sse-base"], |
23 | 40 | "cacheVariables": { |
24 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -msse3 -mno-ssse3" |
| 41 | + "CMAKE_CXX_FLAGS": "-msse3 -mno-ssse3" |
25 | 42 | } |
26 | 43 | }, |
27 | 44 | { |
28 | 45 | "name": "ssse3", |
| 46 | + "inherits": ["sse-base"], |
29 | 47 | "cacheVariables": { |
30 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mssse3 -mno-sse4.1" |
| 48 | + "CMAKE_CXX_FLAGS": "-mssse3 -mno-sse4.1" |
31 | 49 | } |
32 | 50 | }, |
33 | 51 | { |
34 | 52 | "name": "sse4.1", |
| 53 | + "inherits": ["sse-base"], |
35 | 54 | "cacheVariables": { |
36 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -msse4.1 -mno-sse4.2" |
| 55 | + "CMAKE_CXX_FLAGS": "-msse4.1 -mno-sse4.2" |
37 | 56 | } |
38 | 57 | }, |
39 | 58 | { |
40 | 59 | "name": "sse4.2", |
| 60 | + "inherits": ["sse-base"], |
41 | 61 | "cacheVariables": { |
42 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -msse4.2 -mno-avx" |
| 62 | + "CMAKE_CXX_FLAGS": "-msse4.2 -mno-avx" |
| 63 | + } |
| 64 | + }, |
| 65 | + { |
| 66 | + "name": "avx-base", |
| 67 | + "hidden": true, |
| 68 | + "inherits": ["portable-base"], |
| 69 | + "cacheVariables": { |
| 70 | + "CMAKE_CXX_FLAGS": "-march=x86-64-v2" |
43 | 71 | } |
44 | 72 | }, |
45 | 73 | { |
46 | 74 | "name": "avx", |
| 75 | + "inherits": ["avx-base"], |
47 | 76 | "cacheVariables": { |
48 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mavx -mno-avx2" |
| 77 | + "CMAKE_CXX_FLAGS": "-mavx -mno-avx2" |
49 | 78 | } |
50 | 79 | }, |
51 | 80 | { |
52 | 81 | "name": "avx_128", |
| 82 | + "inherits": ["avx-base"], |
53 | 83 | "cacheVariables": { |
54 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mavx -mno-avx2 -DXSIMD_DEFAULT_ARCH=avx_128" |
| 84 | + "CMAKE_CXX_FLAGS": "-mavx -mno-avx2 -DXSIMD_DEFAULT_ARCH=avx_128" |
55 | 85 | } |
56 | 86 | }, |
57 | 87 | { |
58 | 88 | "name": "avx2", |
| 89 | + "inherits": ["avx-base"], |
59 | 90 | "cacheVariables": { |
60 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mavx2 -mno-avx512f" |
| 91 | + "CMAKE_CXX_FLAGS": "-mavx2 -mno-avx512f" |
61 | 92 | } |
62 | 93 | }, |
63 | 94 | { |
64 | 95 | "name": "avx2_128", |
| 96 | + "inherits": ["avx-base"], |
| 97 | + "cacheVariables": { |
| 98 | + "CMAKE_CXX_FLAGS": "-mavx2 -mno-avx512f -DXSIMD_DEFAULT_ARCH=avx2_128" |
| 99 | + } |
| 100 | + }, |
| 101 | + { |
| 102 | + "name": "avx512-base", |
| 103 | + "hidden": true, |
| 104 | + "inherits": ["portable-base"], |
65 | 105 | "cacheVariables": { |
66 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mavx2 -mno-avx512f -DXSIMD_DEFAULT_ARCH=avx2_128" |
| 106 | + "CMAKE_CXX_FLAGS": "-march=x86-64-v2 -mavx -mavx2" |
67 | 107 | } |
68 | 108 | }, |
69 | 109 | { |
70 | 110 | "name": "avx512f", |
| 111 | + "inherits": ["avx512-base"], |
71 | 112 | "cacheVariables": { |
72 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mavx512f -mno-avx512cd -mno-avx512dq -mno-avx512bw -mno-avx512er -mno-avx512pf -mno-avx512ifma -mno-avx512vbmi -mno-avx512vnni" |
| 113 | + "CMAKE_CXX_FLAGS": "-mavx512f -mno-avx512cd -mno-avx512dq -mno-avx512bw -mno-avx512er -mno-avx512pf -mno-avx512ifma -mno-avx512vbmi -mno-avx512vnni" |
73 | 114 | } |
74 | 115 | }, |
75 | 116 | { |
76 | 117 | "name": "avx512cd", |
| 118 | + "inherits": ["avx512-base"], |
77 | 119 | "cacheVariables": { |
78 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mavx512f -mavx512cd -mno-avx512dq -mno-avx512bw -mno-avx512er -mno-avx512pf -mno-avx512ifma -mno-avx512vbmi -mno-avx512vnni" |
| 120 | + "CMAKE_CXX_FLAGS": "-mavx512f -mavx512cd -mno-avx512dq -mno-avx512bw -mno-avx512er -mno-avx512pf -mno-avx512ifma -mno-avx512vbmi -mno-avx512vnni" |
79 | 121 | } |
80 | 122 | }, |
81 | 123 | { |
82 | 124 | "name": "avx512dq", |
| 125 | + "inherits": ["avx512-base"], |
83 | 126 | "cacheVariables": { |
84 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mavx512f -mavx512cd -mavx512dq -mno-avx512bw -mno-avx512er -mno-avx512pf -mno-avx512ifma -mno-avx512vbmi -mno-avx512vnni" |
| 127 | + "CMAKE_CXX_FLAGS": "-mavx512f -mavx512cd -mavx512dq -mno-avx512bw -mno-avx512er -mno-avx512pf -mno-avx512ifma -mno-avx512vbmi -mno-avx512vnni" |
85 | 128 | } |
86 | 129 | }, |
87 | 130 | { |
88 | 131 | "name": "avx512bw", |
| 132 | + "inherits": ["avx512-base"], |
89 | 133 | "cacheVariables": { |
90 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mavx512f -mavx512cd -mavx512dq -mavx512bw -mno-avx512er -mno-avx512pf -mno-avx512ifma -mno-avx512vbmi -mno-avx512vnni" |
| 134 | + "CMAKE_CXX_FLAGS": "-mavx512f -mavx512cd -mavx512dq -mavx512bw -mno-avx512er -mno-avx512pf -mno-avx512ifma -mno-avx512vbmi -mno-avx512vnni" |
91 | 135 | } |
92 | 136 | }, |
93 | 137 | { |
94 | 138 | "name": "avx512er", |
| 139 | + "inherits": ["avx512-base"], |
95 | 140 | "cacheVariables": { |
96 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mavx512f -mavx512cd -mavx512dq -mno-avx512bw -mavx512er -mno-avx512pf -mno-avx512ifma -mno-avx512vbmi -mno-avx512vnni" |
| 141 | + "CMAKE_CXX_FLAGS": "-mavx512f -mavx512cd -mavx512dq -mno-avx512bw -mavx512er -mno-avx512pf -mno-avx512ifma -mno-avx512vbmi -mno-avx512vnni" |
97 | 142 | } |
98 | 143 | }, |
99 | 144 | { |
100 | 145 | "name": "avx512pf", |
| 146 | + "inherits": ["avx512-base"], |
101 | 147 | "cacheVariables": { |
102 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mavx512f -mavx512cd -mavx512dq -mno-avx512bw -mavx512er -mavx512pf -mno-avx512ifma -mno-avx512vbmi -mno-avx512vnni" |
| 148 | + "CMAKE_CXX_FLAGS": "-mavx512f -mavx512cd -mavx512dq -mno-avx512bw -mavx512er -mavx512pf -mno-avx512ifma -mno-avx512vbmi -mno-avx512vnni" |
103 | 149 | } |
104 | 150 | }, |
105 | 151 | { |
106 | 152 | "name": "avx512ifma", |
| 153 | + "inherits": ["avx512-base"], |
107 | 154 | "cacheVariables": { |
108 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mavx512f -mavx512cd -mavx512dq -mavx512bw -mno-avx512er -mno-avx512pf -mavx512ifma -mno-avx512vbmi -mno-avx512vnni" |
| 155 | + "CMAKE_CXX_FLAGS": "-mavx512f -mavx512cd -mavx512dq -mavx512bw -mno-avx512er -mno-avx512pf -mavx512ifma -mno-avx512vbmi -mno-avx512vnni" |
109 | 156 | } |
110 | 157 | }, |
111 | 158 | { |
112 | 159 | "name": "avx512vbmi", |
| 160 | + "inherits": ["avx512-base"], |
113 | 161 | "cacheVariables": { |
114 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mavx512f -mavx512cd -mavx512dq -mavx512bw -mno-avx512er -mno-avx512pf -mavx512ifma -mavx512vbmi -mno-avx512vbmi2 -mno-avx512vnni" |
| 162 | + "CMAKE_CXX_FLAGS": "-mavx512f -mavx512cd -mavx512dq -mavx512bw -mno-avx512er -mno-avx512pf -mavx512ifma -mavx512vbmi -mno-avx512vbmi2 -mno-avx512vnni" |
115 | 163 | } |
116 | 164 | }, |
117 | 165 | { |
118 | 166 | "name": "avx512vbmi2", |
| 167 | + "inherits": ["avx512-base"], |
119 | 168 | "cacheVariables": { |
120 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mavx512f -mavx512cd -mavx512dq -mavx512bw -mno-avx512er -mno-avx512pf -mavx512ifma -mavx512vbmi -mavx512vbmi2 -mno-avx512vnni" |
| 169 | + "CMAKE_CXX_FLAGS": "-mavx512f -mavx512cd -mavx512dq -mavx512bw -mno-avx512er -mno-avx512pf -mavx512ifma -mavx512vbmi -mavx512vbmi2 -mno-avx512vnni" |
121 | 170 | } |
122 | 171 | }, |
123 | 172 | { |
124 | 173 | "name": "avx512vnni_avx512bw", |
| 174 | + "inherits": ["avx512-base"], |
125 | 175 | "cacheVariables": { |
126 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mavx512f -mavx512cd -mavx512dq -mavx512bw -mno-avx512er -mno-avx512pf -mno-avx512ifma -mno-avx512vbmi -mavx512vnni" |
| 176 | + "CMAKE_CXX_FLAGS": "-mavx512f -mavx512cd -mavx512dq -mavx512bw -mno-avx512er -mno-avx512pf -mno-avx512ifma -mno-avx512vbmi -mavx512vnni" |
127 | 177 | } |
128 | 178 | }, |
129 | 179 | { |
130 | 180 | "name": "avx512vnni_avx512vbmi2", |
| 181 | + "inherits": ["avx512-base"], |
131 | 182 | "cacheVariables": { |
132 | | - "CMAKE_CXX_FLAGS": "$env{CXXFLAGS} -march=x86-64 -mavx512f -mavx512cd -mavx512dq -mavx512bw -mno-avx512er -mno-avx512pf -mavx512ifma -mavx512vbmi -mavx512vbmi2 -mavx512vnni" |
| 183 | + "CMAKE_CXX_FLAGS": "-mavx512f -mavx512cd -mavx512dq -mavx512bw -mno-avx512er -mno-avx512pf -mavx512ifma -mavx512vbmi -mavx512vbmi2 -mavx512vnni" |
133 | 184 | } |
134 | 185 | }, |
135 | 186 | { |
|
0 commit comments