Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(88)

Side by Side Diff: include/core/SkPreConfig.h

Issue 1290423007: Add build targets for advanced Intel instruction sets (1 of 3). (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: gyp,preconfig Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gyp/opts.gypi ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2006 The Android Open Source Project 2 * Copyright 2006 The Android Open Source Project
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 // IWYU pragma: private, include "SkTypes.h" 8 // IWYU pragma: private, include "SkTypes.h"
9 9
10 #ifndef SkPreConfig_DEFINED 10 #ifndef SkPreConfig_DEFINED
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 * If defined, SK_CPU_SSE_LEVEL should be set to the highest supported level. 107 * If defined, SK_CPU_SSE_LEVEL should be set to the highest supported level.
108 * On non-intel CPU this should be undefined. 108 * On non-intel CPU this should be undefined.
109 */ 109 */
110 110
111 #define SK_CPU_SSE_LEVEL_SSE1 10 111 #define SK_CPU_SSE_LEVEL_SSE1 10
112 #define SK_CPU_SSE_LEVEL_SSE2 20 112 #define SK_CPU_SSE_LEVEL_SSE2 20
113 #define SK_CPU_SSE_LEVEL_SSE3 30 113 #define SK_CPU_SSE_LEVEL_SSE3 30
114 #define SK_CPU_SSE_LEVEL_SSSE3 31 114 #define SK_CPU_SSE_LEVEL_SSSE3 31
115 #define SK_CPU_SSE_LEVEL_SSE41 41 115 #define SK_CPU_SSE_LEVEL_SSE41 41
116 #define SK_CPU_SSE_LEVEL_SSE42 42 116 #define SK_CPU_SSE_LEVEL_SSE42 42
117 #define SK_CPU_SSE_LEVEL_AVX 51
118 #define SK_CPU_SSE_LEVEL_AVX2 52
117 119
118 // Are we in GCC? 120 // Are we in GCC?
119 #ifndef SK_CPU_SSE_LEVEL 121 #ifndef SK_CPU_SSE_LEVEL
120 // These checks must be done in descending order to ensure we set the highes t 122 // These checks must be done in descending order to ensure we set the highes t
121 // available SSE level. 123 // available SSE level.
122 #if defined(__SSE4_2__) 124 #if defined(__AVX2__)
125 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_AVX2
126 #elif defined(__AVX__)
127 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_AVX
128 #elif defined(__SSE4_2__)
123 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE42 129 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE42
124 #elif defined(__SSE4_1__) 130 #elif defined(__SSE4_1__)
125 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE41 131 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE41
126 #elif defined(__SSSE3__) 132 #elif defined(__SSSE3__)
127 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSSE3 133 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSSE3
128 #elif defined(__SSE3__) 134 #elif defined(__SSE3__)
129 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE3 135 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE3
130 #elif defined(__SSE2__) 136 #elif defined(__SSE2__)
131 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE2 137 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE2
132 #endif 138 #endif
133 #endif 139 #endif
134 140
135 // Are we in VisualStudio? 141 // Are we in VisualStudio?
136 #ifndef SK_CPU_SSE_LEVEL 142 #ifndef SK_CPU_SSE_LEVEL
137 // These checks must be done in descending order to ensure we set the highes t 143 // These checks must be done in descending order to ensure we set the highes t
138 // available SSE level. 64-bit intel guarantees at least SSE2 support. 144 // available SSE level. 64-bit intel guarantees at least SSE2 support.
139 #if defined(_M_X64) || defined(_M_AMD64) 145 #if defined(__AVX2__)
140 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE2 146 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_AVX2
141 #elif defined (_M_IX86_FP) 147 #elif defined(__AVX__)
148 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_AVX
149 #elif defined(_M_X64) || defined(_M_AMD64)
150 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE2
151 #elif defined(_M_IX86_FP)
142 #if _M_IX86_FP >= 2 152 #if _M_IX86_FP >= 2
143 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE2 153 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE2
144 #elif _M_IX86_FP == 1 154 #elif _M_IX86_FP == 1
145 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE1 155 #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE1
146 #endif 156 #endif
147 #endif 157 #endif
148 #endif 158 #endif
149 159
150 ////////////////////////////////////////////////////////////////////// 160 //////////////////////////////////////////////////////////////////////
151 // ARM defines 161 // ARM defines
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 * 254 *
245 * NOTE: Clang/ARM (r161757) does not support the 'optimize' attribute. 255 * NOTE: Clang/ARM (r161757) does not support the 'optimize' attribute.
246 */ 256 */
247 #if SK_HAS_ATTRIBUTE(optimize) 257 #if SK_HAS_ATTRIBUTE(optimize)
248 # define SK_ATTRIBUTE_OPTIMIZE_O1 __attribute__((optimize("O1"))) 258 # define SK_ATTRIBUTE_OPTIMIZE_O1 __attribute__((optimize("O1")))
249 #else 259 #else
250 # define SK_ATTRIBUTE_OPTIMIZE_O1 /* nothing */ 260 # define SK_ATTRIBUTE_OPTIMIZE_O1 /* nothing */
251 #endif 261 #endif
252 262
253 #endif 263 #endif
OLDNEW
« no previous file with comments | « gyp/opts.gypi ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698