blob: 75319f9a0636593d9d32d482fc385134726f7c6a [file] [log] [blame]
Tom Finegan85ac13e2017-02-22 15:09:20 -08001##
2## Copyright (c) 2017, Alliance for Open Media. All rights reserved
3##
4## This source code is subject to the terms of the BSD 2 Clause License and
5## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6## was not distributed with this source code in the LICENSE file, you can
7## obtain it at www.aomedia.org/license/software. If the Alliance for Open
8## Media Patent License 1.0 was not distributed with this source code in the
9## PATENTS file, you can obtain it at www.aomedia.org/license/patent.
10##
11set(AOM_DSP_COMMON_SOURCES
12 "${AOM_ROOT}/aom_dsp/aom_convolve.c"
13 "${AOM_ROOT}/aom_dsp/aom_convolve.h"
14 "${AOM_ROOT}/aom_dsp/aom_dsp_common.h"
15 "${AOM_ROOT}/aom_dsp/aom_filter.h"
16 "${AOM_ROOT}/aom_dsp/aom_simd.h"
17 "${AOM_ROOT}/aom_dsp/aom_simd_inline.h"
18 "${AOM_ROOT}/aom_dsp/blend.h"
19 "${AOM_ROOT}/aom_dsp/blend_a64_hmask.c"
20 "${AOM_ROOT}/aom_dsp/blend_a64_mask.c"
21 "${AOM_ROOT}/aom_dsp/blend_a64_vmask.c"
22 "${AOM_ROOT}/aom_dsp/intrapred.c"
23 "${AOM_ROOT}/aom_dsp/loopfilter.c"
24 "${AOM_ROOT}/aom_dsp/prob.c"
25 "${AOM_ROOT}/aom_dsp/prob.h"
26 "${AOM_ROOT}/aom_dsp/sad.c"
27 "${AOM_ROOT}/aom_dsp/simd/v128_intrinsics.h"
28 "${AOM_ROOT}/aom_dsp/simd/v128_intrinsics_c.h"
29 "${AOM_ROOT}/aom_dsp/simd/v256_intrinsics.h"
30 "${AOM_ROOT}/aom_dsp/simd/v256_intrinsics_c.h"
31 "${AOM_ROOT}/aom_dsp/simd/v64_intrinsics.h"
32 "${AOM_ROOT}/aom_dsp/simd/v64_intrinsics_c.h"
33 "${AOM_ROOT}/aom_dsp/subtract.c"
34 "${AOM_ROOT}/aom_dsp/txfm_common.h"
35 "${AOM_ROOT}/aom_dsp/x86/txfm_common_intrin.h")
36
37set(AOM_DSP_COMMON_ASM_SSE2
38 "${AOM_ROOT}/aom_dsp/x86/aom_convolve_copy_sse2.asm"
39 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_sse2.asm"
40 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_bilinear_sse2.asm"
41 "${AOM_ROOT}/aom_dsp/x86/intrapred_sse2.asm")
42
43set(AOM_DSP_COMMON_INTRIN_SSE2
44 "${AOM_ROOT}/aom_dsp/x86/aom_asm_stubs.c"
45 "${AOM_ROOT}/aom_dsp/x86/convolve.h"
46 "${AOM_ROOT}/aom_dsp/x86/txfm_common_sse2.h"
47 "${AOM_ROOT}/aom_dsp/x86/loopfilter_sse2.c")
48
49set(AOM_DSP_COMMON_ASM_SSSE3
50 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_ssse3.asm"
51 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_bilinear_ssse3.asm"
52 "${AOM_ROOT}/aom_dsp/x86/intrapred_ssse3.asm")
53
54set(AOM_DSP_COMMON_INTRIN_SSSE3
55 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_intrin_ssse3.c")
56
57set(AOM_DSP_COMMON_INTRIN_SSE4_1
58 "${AOM_ROOT}/aom_dsp/x86/blend_a64_hmask_sse4.c"
59 "${AOM_ROOT}/aom_dsp/x86/blend_a64_mask_sse4.c"
60 "${AOM_ROOT}/aom_dsp/x86/blend_a64_vmask_sse4.c")
61
Tom Finegan919caad2017-03-01 10:26:02 -080062set(AOM_DSP_COMMON_INTRIN_AVX2
Tom Finegan85ac13e2017-02-22 15:09:20 -080063 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_intrin_avx2.c"
64 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_avx2.c"
65 "${AOM_ROOT}/aom_dsp/x86/loopfilter_avx2.c")
66
Tom Finegan97d29ea2017-03-16 18:34:17 -070067set(AOM_DSP_COMMON_ASM_NEON
68 "${AOM_ROOT}/aom_dsp/arm/aom_convolve8_avg_neon_asm.asm"
69 "${AOM_ROOT}/aom_dsp/arm/aom_convolve8_neon_asm.asm"
70 "${AOM_ROOT}/aom_dsp/arm/aom_convolve_avg_neon_asm.asm"
71 "${AOM_ROOT}/aom_dsp/arm/aom_convolve_copy_neon_asm.asm"
72 "${AOM_ROOT}/aom_dsp/arm/idct16x16_1_add_neon.asm"
73 "${AOM_ROOT}/aom_dsp/arm/idct16x16_add_neon.asm"
74 "${AOM_ROOT}/aom_dsp/arm/idct32x32_1_add_neon.asm"
75 "${AOM_ROOT}/aom_dsp/arm/idct32x32_add_neon.asm"
76 "${AOM_ROOT}/aom_dsp/arm/idct4x4_1_add_neon.asm"
77 "${AOM_ROOT}/aom_dsp/arm/idct4x4_add_neon.asm"
78 "${AOM_ROOT}/aom_dsp/arm/idct8x8_1_add_neon.asm"
79 "${AOM_ROOT}/aom_dsp/arm/idct8x8_add_neon.asm"
80 "${AOM_ROOT}/aom_dsp/arm/intrapred_neon_asm.asm"
81 "${AOM_ROOT}/aom_dsp/arm/loopfilter_16_neon.asm"
82 "${AOM_ROOT}/aom_dsp/arm/loopfilter_4_neon.asm"
83 "${AOM_ROOT}/aom_dsp/arm/loopfilter_8_neon.asm"
84 "${AOM_ROOT}/aom_dsp/arm/loopfilter_mb_neon.asm"
85 "${AOM_ROOT}/aom_dsp/arm/save_reg_neon.asm")
86
87set(AOM_DSP_COMMON_INTRIN_NEON
88 "${AOM_ROOT}/aom_dsp/arm/aom_convolve_neon.c"
89 "${AOM_ROOT}/aom_dsp/arm/avg_neon.c"
90 "${AOM_ROOT}/aom_dsp/arm/fwd_txfm_neon.c"
91 "${AOM_ROOT}/aom_dsp/arm/hadamard_neon.c"
92 "${AOM_ROOT}/aom_dsp/arm/idct16x16_neon.c"
93 "${AOM_ROOT}/aom_dsp/arm/intrapred_neon.c"
94 "${AOM_ROOT}/aom_dsp/arm/loopfilter_neon.c"
95 "${AOM_ROOT}/aom_dsp/arm/sad4d_neon.c"
96 "${AOM_ROOT}/aom_dsp/arm/sad_neon.c"
97 "${AOM_ROOT}/aom_dsp/arm/subpel_variance_neon.c"
98 "${AOM_ROOT}/aom_dsp/arm/subtract_neon.c"
99 "${AOM_ROOT}/aom_dsp/arm/variance_neon.c")
100
Tom Finegan85ac13e2017-02-22 15:09:20 -0800101if (CONFIG_AOM_HIGHBITDEPTH)
102 set(AOM_DSP_COMMON_ASM_SSE2
103 ${AOM_DSP_COMMON_ASM_SSE2}
104 "${AOM_ROOT}/aom_dsp/x86/highbd_intrapred_sse2.asm")
105
106 set(AOM_DSP_COMMON_INTRIN_SSE2
107 ${AOM_DSP_COMMON_INTRIN_SSE2}
108 "${AOM_ROOT}/aom_dsp/x86/highbd_loopfilter_sse2.c")
109endif ()
110
111if (CONFIG_ANS)
112 set(AOM_DSP_COMMON_SOURCES
113 ${AOM_DSP_COMMON_SOURCES}
114 "${AOM_ROOT}/aom_dsp/ans.h")
115elseif (CONFIG_DAALA_EC)
116 set(AOM_DSP_COMMON_SOURCES
117 ${AOM_DSP_COMMON_SOURCES}
118 "${AOM_ROOT}/aom_dsp/entcode.c"
119 "${AOM_ROOT}/aom_dsp/entcode.h")
120endif ()
121
122if (CONFIG_AV1)
123 set(AOM_DSP_COMMON_SOURCES
124 ${AOM_DSP_COMMON_SOURCES}
125 "${AOM_ROOT}/aom_dsp/inv_txfm.c"
126 "${AOM_ROOT}/aom_dsp/inv_txfm.h")
127
128 set(AOM_DSP_COMMON_ASM_SSE2
129 ${AOM_DSP_COMMON_ASM_SSE2}
130 "${AOM_ROOT}/aom_dsp/x86/inv_wht_sse2.asm")
131
132 set(AOM_DSP_COMMON_INTRIN_SSE2
133 ${AOM_DSP_COMMON_INTRIN_SSE2}
134 "${AOM_ROOT}/aom_dsp/x86/inv_txfm_sse2.c"
135 "${AOM_ROOT}/aom_dsp/x86/inv_txfm_sse2.h")
136
137 set(AOM_DSP_COMMON_ASM_SSSE3_X86_64
138 ${AOM_DSP_COMMON_ASM_SSSE3_X86_64}
139 "${AOM_ROOT}/aom_dsp/x86/inv_txfm_ssse3_x86_64.asm")
140endif ()
141
142if (CONFIG_DECODERS)
143 set(AOM_DSP_DECODER_SOURCES
144 "${AOM_ROOT}/aom_dsp/bitreader.h"
145 "${AOM_ROOT}/aom_dsp/bitreader_buffer.c"
146 "${AOM_ROOT}/aom_dsp/bitreader_buffer.h")
147
148 if (CONFIG_ANS)
149 set(AOM_DSP_DECODER_SOURCES
150 ${AOM_DSP_DECODER_SOURCES}
151 "${AOM_ROOT}/aom_dsp/ansreader.h")
152 elseif (CONFIG_DAALA_EC)
153 set(AOM_DSP_DECODER_SOURCES
154 ${AOM_DSP_DECODER_SOURCES}
155 "${AOM_ROOT}/aom_dsp/daalaboolreader.c"
156 "${AOM_ROOT}/aom_dsp/daalaboolreader.h"
157 "${AOM_ROOT}/aom_dsp/entdec.c"
158 "${AOM_ROOT}/aom_dsp/entdec.h")
159 else ()
160 set(AOM_DSP_DECODER_SOURCES
161 ${AOM_DSP_DECODER_SOURCES}
162 "${AOM_ROOT}/aom_dsp/dkboolreader.c"
163 "${AOM_ROOT}/aom_dsp/dkboolreader.h")
164 endif ()
165endif ()
166
167if (CONFIG_ENCODERS)
168 set(AOM_DSP_ENCODER_SOURCES
169 "${AOM_ROOT}/aom_dsp/bitwriter.h"
170 "${AOM_ROOT}/aom_dsp/bitwriter_buffer.c"
171 "${AOM_ROOT}/aom_dsp/bitwriter_buffer.h"
172 "${AOM_ROOT}/aom_dsp/psnr.c"
173 "${AOM_ROOT}/aom_dsp/psnr.h"
174 "${AOM_ROOT}/aom_dsp/variance.c"
175 "${AOM_ROOT}/aom_dsp/variance.h")
176
177 set(AOM_DSP_ENCODER_ASM_SSE2
178 ${AOM_DSP_ENCODER_ASM_SSE2}
179 "${AOM_ROOT}/aom_dsp/x86/halfpix_variance_impl_sse2.asm"
180 "${AOM_ROOT}/aom_dsp/x86/sad4d_sse2.asm"
181 "${AOM_ROOT}/aom_dsp/x86/sad_sse2.asm"
182 "${AOM_ROOT}/aom_dsp/x86/subtract_sse2.asm"
183 "${AOM_ROOT}/aom_dsp/x86/subpel_variance_sse2.asm")
184
185 set(AOM_DSP_ENCODER_INTRIN_SSE2
186 "${AOM_ROOT}/aom_dsp/x86/quantize_sse2.c")
187
188 set(AOM_DSP_ENCODER_ASM_SSSE3
189 "${AOM_ROOT}/aom_dsp/x86/sad_ssse3.asm")
190
191 set(AOM_DSP_ENCODER_ASM_SSSE3_X86_64
192 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_ssse3_x86_64.asm"
193 "${AOM_ROOT}/aom_dsp/x86/ssim_opt_x86_64.asm")
194
195 set(AOM_DSP_ENCODER_INTRIN_SSE3 "${AOM_ROOT}/aom_dsp/x86/sad_sse3.asm")
196 set(AOM_DSP_ENCODER_ASM_SSE4_1 "${AOM_ROOT}/aom_dsp/x86/sad_sse4.asm")
197
Tom Finegan919caad2017-03-01 10:26:02 -0800198 set(AOM_DSP_ENCODER_INTRIN_AVX2
Tom Finegan85ac13e2017-02-22 15:09:20 -0800199 "${AOM_ROOT}/aom_dsp/x86/sad4d_avx2.c"
200 "${AOM_ROOT}/aom_dsp/x86/sad_avx2.c"
201 "${AOM_ROOT}/aom_dsp/x86/sad_impl_avx2.c"
202 "${AOM_ROOT}/aom_dsp/x86/variance_avx2.c"
203 "${AOM_ROOT}/aom_dsp/x86/variance_impl_avx2.c")
204
205 if (CONFIG_AV1_ENCODER)
206 set(AOM_DSP_ENCODER_SOURCES
207 ${AOM_DSP_ENCODER_SOURCES}
208 "${AOM_ROOT}/aom_dsp/avg.c"
209 "${AOM_ROOT}/aom_dsp/fwd_txfm.c"
210 "${AOM_ROOT}/aom_dsp/fwd_txfm.h"
211 "${AOM_ROOT}/aom_dsp/quantize.c"
212 "${AOM_ROOT}/aom_dsp/quantize.h"
213 "${AOM_ROOT}/aom_dsp/sum_squares.c")
214
215 set(AOM_DSP_ENCODER_INTRIN_SSE2
216 ${AOM_DSP_ENCODER_INTRIN_SSE2}
217 "${AOM_ROOT}/aom_dsp/x86/avg_intrin_sse2.c"
218 "${AOM_ROOT}/aom_dsp/x86/fwd_dct32_8cols_sse2.c"
219 "${AOM_ROOT}/aom_dsp/x86/fwd_dct32x32_impl_sse2.h"
220 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_impl_sse2.h"
221 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_sse2.c"
222 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_sse2.h"
223 "${AOM_ROOT}/aom_dsp/x86/halfpix_variance_sse2.c"
224 "${AOM_ROOT}/aom_dsp/x86/variance_sse2.c"
225 "${AOM_ROOT}/aom_dsp/x86/sum_squares_sse2.c")
226
227 set(AOM_DSP_ENCODER_INTRIN_SSSE3
228 ${AOM_DSP_ENCODER_INTRIN_SSSE3}
229 "${AOM_ROOT}/aom_dsp/x86/masked_sad_intrin_ssse3.c"
230 "${AOM_ROOT}/aom_dsp/x86/masked_variance_intrin_ssse3.c")
231
232 set(AOM_DSP_ENCODER_ASM_SSSE3_X86_64
233 ${AOM_DSP_ENCODER_ASM_SSSE3_X86_64}
234 "${AOM_ROOT}/aom_dsp/x86/avg_ssse3_x86_64.asm"
235 "${AOM_ROOT}/aom_dsp/x86/quantize_ssse3_x86_64.asm")
236
237 set(AOM_DSP_ENCODER_AVX_ASM_X86_64
238 ${AOM_DSP_ENCODER_AVX_ASM_X86_64}
239 "${AOM_ROOT}/aom_dsp/x86/quantize_avx_x86_64.asm")
240
241 if (CONFIG_AOM_HIGHBITDEPTH)
242 set(AOM_DSP_ENCODER_INTRIN_SSE2
243 ${AOM_DSP_ENCODER_INTRIN_SSE2}
244 "${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_sse2.c"
245 "${AOM_ROOT}/aom_dsp/x86/highbd_subtract_sse2.c")
246 endif ()
247 endif ()
248
249 if (CONFIG_AOM_HIGHBITDEPTH)
250 set(AOM_DSP_ENCODER_ASM_SSE2
251 ${AOM_DSP_ENCODER_ASM_SSE2}
252 "${AOM_ROOT}/aom_dsp/x86/highbd_sad4d_sse2.asm"
253 "${AOM_ROOT}/aom_dsp/x86/highbd_sad_sse2.asm"
254 "${AOM_ROOT}/aom_dsp/x86/highbd_subpel_variance_impl_sse2.asm"
255 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_impl_sse2.asm"
256 "${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_8t_sse2.asm"
257 "${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_bilinear_sse2.asm")
258
259 set(AOM_DSP_ENCODER_INTRIN_SSE2
260 ${AOM_DSP_ENCODER_INTRIN_SSE2}
261 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse2.c")
262
263 set(AOM_DSP_ENCODER_INTRIN_SSE4_1
264 ${AOM_DSP_ENCODER_INTRIN_SSE4_1}
265 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse4.c")
266
Tom Finegan919caad2017-03-01 10:26:02 -0800267 set(AOM_DSP_ENCODER_INTRIN_AVX2
268 ${AOM_DSP_ENCODER_INTRIN_AVX2}
Tom Finegan85ac13e2017-02-22 15:09:20 -0800269 "${AOM_ROOT}/aom_dsp/x86/sad_highbd_avx2.c")
270 endif ()
271
272 if (CONFIG_ANS)
273 set(AOM_DSP_ENCODER_SOURCES
274 ${AOM_DSP_ENCODER_SOURCES}
275 "${AOM_ROOT}/aom_dsp/answriter.h"
276 "${AOM_ROOT}/aom_dsp/buf_ans.c"
277 "${AOM_ROOT}/aom_dsp/buf_ans.h")
278 elseif (CONFIG_DAALA_EC)
279 set(AOM_DSP_ENCODER_SOURCES
280 ${AOM_DSP_ENCODER_SOURCES}
281 "${AOM_ROOT}/aom_dsp/daalaboolwriter.c"
282 "${AOM_ROOT}/aom_dsp/daalaboolwriter.h"
283 "${AOM_ROOT}/aom_dsp/entenc.c"
284 "${AOM_ROOT}/aom_dsp/entenc.h")
285 else ()
286 set(AOM_DSP_ENCODER_SOURCES
287 ${AOM_DSP_ENCODER_SOURCES}
288 "${AOM_ROOT}/aom_dsp/dkboolwriter.c"
289 "${AOM_ROOT}/aom_dsp/dkboolwriter.h")
290 endif ()
291
292 if (CONFIG_INTERNAL_STATS)
293 set(AOM_DSP_ENCODER_SOURCES
294 ${AOM_DSP_ENCODER_SOURCES}
295 "${AOM_ROOT}/aom_dsp/fastssim.c"
296 "${AOM_ROOT}/aom_dsp/psnrhvs.c"
297 "${AOM_ROOT}/aom_dsp/ssim.c"
298 "${AOM_ROOT}/aom_dsp/ssim.h")
299 endif ()
300endif ()
301
302if (CONFIG_MOTION_VAR)
303 set(AOM_DSP_ENCODER_INTRIN_SSE4_1
304 ${AOM_DSP_ENCODER_INTRIN_SSE4_1}
305 "${AOM_ROOT}/aom_dsp/x86/obmc_sad_sse4.c"
306 "${AOM_ROOT}/aom_dsp/x86/obmc_variance_sse4.c")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800307endif ()
308
Tom Finegan85ac13e2017-02-22 15:09:20 -0800309# Creates aom_dsp build targets. Must not be called until after libaom target
310# has been created.
311function (setup_aom_dsp_targets)
312 add_library(aom_dsp_common OBJECT ${AOM_DSP_COMMON_SOURCES})
Tom Finegan5abae0a2017-02-27 14:03:03 -0800313 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_dsp_common)
Tom Finegan85ac13e2017-02-22 15:09:20 -0800314 target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_dsp_common>)
315
316 if (CONFIG_DECODERS)
317 add_library(aom_dsp_decoder OBJECT ${AOM_DSP_DECODER_SOURCES})
Tom Finegan5abae0a2017-02-27 14:03:03 -0800318 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_dsp_decoder)
Tom Finegan85ac13e2017-02-22 15:09:20 -0800319 target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_dsp_decoder>)
320 endif ()
321
322 if (CONFIG_ENCODERS)
323 add_library(aom_dsp_encoder OBJECT ${AOM_DSP_ENCODER_SOURCES})
Tom Finegan5abae0a2017-02-27 14:03:03 -0800324 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_dsp_encoder)
Tom Finegan85ac13e2017-02-22 15:09:20 -0800325 target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_dsp_encoder>)
326 endif ()
327
328 if (HAVE_SSE2)
329 add_asm_library("aom_dsp_common_sse2" "AOM_DSP_COMMON_ASM_SSE2" "aom")
330 add_intrinsics_object_library("-msse2" "sse2" "aom_dsp_common"
331 "AOM_DSP_COMMON_INTRIN_SSE2")
332 if (CONFIG_ENCODERS)
333 add_asm_library("aom_dsp_encoder_sse2" "AOM_DSP_ENCODER_ASM_SSE2" "aom")
334 add_intrinsics_object_library("-msse2" "sse2" "aom_dsp_encoder"
335 "AOM_DSP_ENCODER_INTRIN_SSE2")
336 endif()
337 endif ()
338
339 if (HAVE_SSE3 AND CONFIG_ENCODERS)
340 add_asm_library("aom_dsp_encoder_sse3" "AOM_DSP_ENCODER_INTRIN_SSE3" "aom")
341 endif ()
342
343 if (HAVE_SSSE3)
344 if ("${AOM_TARGET_CPU}" STREQUAL "x86_64")
345 list(APPEND AOM_DSP_COMMON_ASM_SSSE3
346 ${AOM_DSP_COMMON_ASM_SSSE3_X86_64})
347 endif ()
348
349 add_asm_library("aom_dsp_common_ssse3" "AOM_DSP_COMMON_ASM_SSSE3" "aom")
350 add_intrinsics_object_library("-mssse3" "ssse3" "aom_dsp_common"
351 "AOM_DSP_COMMON_INTRIN_SSSE3")
352
353 if (CONFIG_ENCODERS)
354 if ("${AOM_TARGET_CPU}" STREQUAL "x86_64")
355 list(APPEND AOM_DSP_ENCODER_ASM_SSSE3
356 ${AOM_DSP_ENCODER_ASM_SSSE3_X86_64})
357 endif ()
358 add_asm_library("aom_dsp_encoder_ssse3" "AOM_DSP_ENCODER_ASM_SSSE3" "aom")
359 add_intrinsics_object_library("-mssse3" "ssse3" "aom_dsp_encoder"
360 "AOM_DSP_ENCODER_INTRIN_SSSE3")
361 endif ()
362 endif ()
363
364 if (HAVE_SSE4_1)
365 add_intrinsics_object_library("-msse4.1" "sse4_1" "aom_dsp_common"
366 "AOM_DSP_COMMON_INTRIN_SSE4_1")
367 if (CONFIG_ENCODERS)
368 if (AOM_DSP_ENCODER_INTRIN_SSE4_1)
369 add_intrinsics_object_library("-msse4.1" "sse4_1" "aom_dsp_encoder"
370 "AOM_DSP_ENCODER_INTRIN_SSE4_1")
371 endif ()
372 add_asm_library("aom_dsp_encoder_sse4_1" "AOM_DSP_ENCODER_ASM_SSE4_1"
373 "aom")
374 endif ()
375 endif ()
376
377 if (HAVE_AVX AND "${AOM_TARGET_CPU}" STREQUAL "x86_64")
378 add_asm_library("aom_dsp_encoder_avx" "AOM_DSP_ENCODER_AVX_ASM_X86_64"
379 "aom")
380 endif ()
381
382 if (HAVE_AVX2)
383 add_intrinsics_object_library("-mavx2" "avx2" "aom_dsp_common"
Tom Finegan919caad2017-03-01 10:26:02 -0800384 "AOM_DSP_COMMON_INTRIN_AVX2")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800385 if (CONFIG_ENCODERS)
386 add_intrinsics_object_library("-mavx2" "avx2" "aom_dsp_encoder"
Tom Finegan919caad2017-03-01 10:26:02 -0800387 "AOM_DSP_ENCODER_INTRIN_AVX2")
Tom Finegan85ac13e2017-02-22 15:09:20 -0800388 endif ()
389 endif ()
390
Tom Finegan97d29ea2017-03-16 18:34:17 -0700391 if (HAVE_NEON_ASM)
392 if (AOM_ADS2GAS_REQUIRED)
393 add_gas_asm_library("aom_dsp_common_neon" "AOM_DSP_COMMON_ASM_NEON" "aom")
394 else ()
395 add_asm_library("aom_dsp_common_neon" "AOM_DSP_COMMON_ASM_NEON" "aom")
396 endif ()
397 endif ()
398
399 if (HAVE_NEON)
400 add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}" "neon"
401 "aom_dsp_common" "AOM_DSP_COMMON_INTRIN_NEON")
402 endif ()
Tom Finegan85ac13e2017-02-22 15:09:20 -0800403 # Pass the new lib targets up to the parent scope instance of
404 # $AOM_LIB_TARGETS.
405 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} PARENT_SCOPE)
406endfunction ()