xref: /aosp_15_r20/external/skia/src/core/SkMemset_opts_avx.cpp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
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