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

Side by Side Diff: src/core/SkUtilsArm.h

Issue 1020963002: Specialize Sk2d for ARM64 (Closed) Base URL: https://skia.googlesource.com/skia@master
Patch Set: Avoid use of vset[q]_lane, instead intializing vectors directly. Created 5 years, 9 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 | « src/core/SkPMFloat.h ('k') | src/opts/Sk2x_neon.h » ('j') | 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 /* 2 /*
3 * Copyright 2012 The Android Open Source Project 3 * Copyright 2012 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #ifndef SkUtilsArm_DEFINED 9 #ifndef SkUtilsArm_DEFINED
10 #define SkUtilsArm_DEFINED 10 #define SkUtilsArm_DEFINED
11 11
12 #include "SkUtils.h" 12 #include "SkUtils.h"
13 13
14 // Define SK_ARM_NEON_MODE to one of the following values 14 // Define SK_ARM_NEON_MODE to one of the following values
15 // corresponding respectively to: 15 // corresponding respectively to:
16 // - No ARM Neon support at all (not targetting ARMv7-A, or don't have NEON) 16 // - No ARM Neon support at all (not targetting ARMv7-A, or don't have NEON)
17 // - Full ARM Neon support (i.e. assume the CPU always supports it) 17 // - Full ARM Neon support (i.e. assume the CPU always supports it)
18 // - Optional ARM Neon support (i.e. probe CPU at runtime) 18 // - Optional ARM Neon support (i.e. probe CPU at runtime)
19 // 19 //
20 #define SK_ARM_NEON_MODE_NONE 0 20 #define SK_ARM_NEON_MODE_NONE 0
21 #define SK_ARM_NEON_MODE_ALWAYS 1 21 #define SK_ARM_NEON_MODE_ALWAYS 1
22 #define SK_ARM_NEON_MODE_DYNAMIC 2 22 #define SK_ARM_NEON_MODE_DYNAMIC 2
23 23
24 #if defined(SK_CPU_ARM32) && defined(SK_ARM_HAS_OPTIONAL_NEON) 24 #if defined(SK_ARM_HAS_OPTIONAL_NEON)
25 # define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_DYNAMIC 25 # define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_DYNAMIC
26 #elif defined(SK_CPU_ARM32) && defined(SK_ARM_HAS_NEON) || defined(SK_CPU_ARM64) 26 #elif defined(SK_ARM_HAS_NEON)
27 # define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_ALWAYS 27 # define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_ALWAYS
28 #else 28 #else
29 # define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_NONE 29 # define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_NONE
30 #endif 30 #endif
31 31
32 // Convenience test macros, always defined as 0 or 1 32 // Convenience test macros, always defined as 0 or 1
33 #define SK_ARM_NEON_IS_NONE (SK_ARM_NEON_MODE == SK_ARM_NEON_MODE_NONE) 33 #define SK_ARM_NEON_IS_NONE (SK_ARM_NEON_MODE == SK_ARM_NEON_MODE_NONE)
34 #define SK_ARM_NEON_IS_ALWAYS (SK_ARM_NEON_MODE == SK_ARM_NEON_MODE_ALWAYS) 34 #define SK_ARM_NEON_IS_ALWAYS (SK_ARM_NEON_MODE == SK_ARM_NEON_MODE_ALWAYS)
35 #define SK_ARM_NEON_IS_DYNAMIC (SK_ARM_NEON_MODE == SK_ARM_NEON_MODE_DYNAMIC) 35 #define SK_ARM_NEON_IS_DYNAMIC (SK_ARM_NEON_MODE == SK_ARM_NEON_MODE_DYNAMIC)
36 36
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 // 78 //
79 #if SK_ARM_NEON_IS_NONE 79 #if SK_ARM_NEON_IS_NONE
80 # define SK_ARM_NEON_WRAP(x) (x) 80 # define SK_ARM_NEON_WRAP(x) (x)
81 #elif SK_ARM_NEON_IS_ALWAYS 81 #elif SK_ARM_NEON_IS_ALWAYS
82 # define SK_ARM_NEON_WRAP(x) (x ## _neon) 82 # define SK_ARM_NEON_WRAP(x) (x ## _neon)
83 #elif SK_ARM_NEON_IS_DYNAMIC 83 #elif SK_ARM_NEON_IS_DYNAMIC
84 # define SK_ARM_NEON_WRAP(x) (sk_cpu_arm_has_neon() ? x ## _neon : x) 84 # define SK_ARM_NEON_WRAP(x) (sk_cpu_arm_has_neon() ? x ## _neon : x)
85 #endif 85 #endif
86 86
87 #endif // SkUtilsArm_DEFINED 87 #endif // SkUtilsArm_DEFINED
OLDNEW
« no previous file with comments | « src/core/SkPMFloat.h ('k') | src/opts/Sk2x_neon.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698