1 /* 2 * Copyright 2023 Google LLC 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #include "include/private/base/SkFeatures.h" 9 #include "src/core/SkMemset.h" 10 #include "src/core/SkOptsTargets.h" 11 12 #if defined(SK_CPU_X86) && !defined(SK_ENABLE_OPTIMIZE_SIZE) 13 14 // The order of these includes is important: 15 // 1) Select the target CPU architecture by defining SK_OPTS_TARGET and including SkOpts_SetTarget 16 // 2) Include the code to compile, typically in a _opts.h file. 17 // 3) Include SkOpts_RestoreTarget to switch back to the default CPU architecture 18 19 #define SK_OPTS_TARGET SK_OPTS_TARGET_AVX 20 #include "src/opts/SkOpts_SetTarget.h" 21 22 #include "src/opts/SkMemset_opts.h" 23 24 #include "src/opts/SkOpts_RestoreTarget.h" 25 26 namespace SkOpts { Init_Memset_avx()27 void Init_Memset_avx() { 28 memset16 = avx::memset16; 29 memset32 = avx::memset32; 30 memset64 = avx::memset64; 31 32 rect_memset16 = avx::rect_memset16; 33 rect_memset32 = avx::rect_memset32; 34 rect_memset64 = avx::rect_memset64; 35 } 36 } // namespace SkOpts 37 38 #endif // SK_CPU_X86 && !SK_ENABLE_OPTIMIZE_SIZE 39