/src/aom/aom_dsp/x86/synonyms.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2016, 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 | | */ |
11 | | |
12 | | #ifndef AOM_AOM_DSP_X86_SYNONYMS_H_ |
13 | | #define AOM_AOM_DSP_X86_SYNONYMS_H_ |
14 | | |
15 | | #include <emmintrin.h> |
16 | | #include <string.h> |
17 | | |
18 | | #include "config/aom_config.h" |
19 | | |
20 | | #include "aom/aom_integer.h" |
21 | | |
22 | | /** |
23 | | * Various reusable shorthands for x86 SIMD intrinsics. |
24 | | * |
25 | | * Intrinsics prefixed with xx_ operate on or return 128bit XMM registers. |
26 | | * Intrinsics prefixed with yy_ operate on or return 256bit YMM registers. |
27 | | */ |
28 | | |
29 | | // Loads and stores to do away with the tedium of casting the address |
30 | | // to the right type. |
31 | 62.7M | static inline __m128i xx_loadl_32(const void *a) { |
32 | 62.7M | int val; |
33 | 62.7M | memcpy(&val, a, sizeof(val)); |
34 | 62.7M | return _mm_cvtsi32_si128(val); |
35 | 62.7M | } loopfilter_sse2.c:xx_loadl_32 Line | Count | Source | 31 | 42.5M | static inline __m128i xx_loadl_32(const void *a) { | 32 | 42.5M | int val; | 33 | 42.5M | memcpy(&val, a, sizeof(val)); | 34 | 42.5M | return _mm_cvtsi32_si128(val); | 35 | 42.5M | } |
blend_a64_mask_sse4.c:xx_loadl_32 Line | Count | Source | 31 | 8.34M | static inline __m128i xx_loadl_32(const void *a) { | 32 | 8.34M | int val; | 33 | 8.34M | memcpy(&val, a, sizeof(val)); | 34 | 8.34M | return _mm_cvtsi32_si128(val); | 35 | 8.34M | } |
blend_a64_vmask_sse4.c:xx_loadl_32 Line | Count | Source | 31 | 307k | static inline __m128i xx_loadl_32(const void *a) { | 32 | 307k | int val; | 33 | 307k | memcpy(&val, a, sizeof(val)); | 34 | 307k | return _mm_cvtsi32_si128(val); | 35 | 307k | } |
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_loadl_32 blend_a64_mask_avx2.c:xx_loadl_32 Line | Count | Source | 31 | 703k | static inline __m128i xx_loadl_32(const void *a) { | 32 | 703k | int val; | 33 | 703k | memcpy(&val, a, sizeof(val)); | 34 | 703k | return _mm_cvtsi32_si128(val); | 35 | 703k | } |
Unexecuted instantiation: highbd_convolve_avx2.c:xx_loadl_32 Unexecuted instantiation: convolve_sse2.c:xx_loadl_32 Unexecuted instantiation: jnt_convolve_sse2.c:xx_loadl_32 Unexecuted instantiation: resize_sse2.c:xx_loadl_32 Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_loadl_32 Unexecuted instantiation: reconinter_ssse3.c:xx_loadl_32 Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:xx_loadl_32 filterintra_sse4.c:xx_loadl_32 Line | Count | Source | 31 | 10.8M | static inline __m128i xx_loadl_32(const void *a) { | 32 | 10.8M | int val; | 33 | 10.8M | memcpy(&val, a, sizeof(val)); | 34 | 10.8M | return _mm_cvtsi32_si128(val); | 35 | 10.8M | } |
Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_loadl_32 Unexecuted instantiation: selfguided_sse4.c:xx_loadl_32 Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_loadl_32 Unexecuted instantiation: convolve_2d_avx2.c:xx_loadl_32 Unexecuted instantiation: convolve_avx2.c:xx_loadl_32 Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_loadl_32 Unexecuted instantiation: jnt_convolve_avx2.c:xx_loadl_32 Unexecuted instantiation: reconinter_avx2.c:xx_loadl_32 Unexecuted instantiation: resize_avx2.c:xx_loadl_32 Unexecuted instantiation: selfguided_avx2.c:xx_loadl_32 Unexecuted instantiation: warp_plane_avx2.c:xx_loadl_32 Unexecuted instantiation: wiener_convolve_avx2.c:xx_loadl_32 Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_loadl_32 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_loadl_32 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_loadl_32 |
36 | | |
37 | 362M | static inline __m128i xx_loadl_64(const void *a) { |
38 | 362M | return _mm_loadl_epi64((const __m128i *)a); |
39 | 362M | } Unexecuted instantiation: loopfilter_sse2.c:xx_loadl_64 blend_a64_mask_sse4.c:xx_loadl_64 Line | Count | Source | 37 | 19.0M | static inline __m128i xx_loadl_64(const void *a) { | 38 | 19.0M | return _mm_loadl_epi64((const __m128i *)a); | 39 | 19.0M | } |
blend_a64_vmask_sse4.c:xx_loadl_64 Line | Count | Source | 37 | 6.26M | static inline __m128i xx_loadl_64(const void *a) { | 38 | 6.26M | return _mm_loadl_epi64((const __m128i *)a); | 39 | 6.26M | } |
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_loadl_64 blend_a64_mask_avx2.c:xx_loadl_64 Line | Count | Source | 37 | 4.76M | static inline __m128i xx_loadl_64(const void *a) { | 38 | 4.76M | return _mm_loadl_epi64((const __m128i *)a); | 39 | 4.76M | } |
Unexecuted instantiation: highbd_convolve_avx2.c:xx_loadl_64 Unexecuted instantiation: convolve_sse2.c:xx_loadl_64 Unexecuted instantiation: jnt_convolve_sse2.c:xx_loadl_64 Unexecuted instantiation: resize_sse2.c:xx_loadl_64 Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_loadl_64 Unexecuted instantiation: reconinter_ssse3.c:xx_loadl_64 av1_convolve_horiz_rs_sse4.c:xx_loadl_64 Line | Count | Source | 37 | 261M | static inline __m128i xx_loadl_64(const void *a) { | 38 | 261M | return _mm_loadl_epi64((const __m128i *)a); | 39 | 261M | } |
filterintra_sse4.c:xx_loadl_64 Line | Count | Source | 37 | 486k | static inline __m128i xx_loadl_64(const void *a) { | 38 | 486k | return _mm_loadl_epi64((const __m128i *)a); | 39 | 486k | } |
Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_loadl_64 Unexecuted instantiation: selfguided_sse4.c:xx_loadl_64 Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_loadl_64 Unexecuted instantiation: convolve_2d_avx2.c:xx_loadl_64 Unexecuted instantiation: convolve_avx2.c:xx_loadl_64 Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_loadl_64 Unexecuted instantiation: jnt_convolve_avx2.c:xx_loadl_64 Unexecuted instantiation: reconinter_avx2.c:xx_loadl_64 Unexecuted instantiation: resize_avx2.c:xx_loadl_64 selfguided_avx2.c:xx_loadl_64 Line | Count | Source | 37 | 71.3M | static inline __m128i xx_loadl_64(const void *a) { | 38 | 71.3M | return _mm_loadl_epi64((const __m128i *)a); | 39 | 71.3M | } |
Unexecuted instantiation: warp_plane_avx2.c:xx_loadl_64 Unexecuted instantiation: wiener_convolve_avx2.c:xx_loadl_64 Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_loadl_64 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_loadl_64 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_loadl_64 |
40 | | |
41 | 2.11M | static inline __m128i xx_load_128(const void *a) { |
42 | 2.11M | return _mm_load_si128((const __m128i *)a); |
43 | 2.11M | } Unexecuted instantiation: loopfilter_sse2.c:xx_load_128 Unexecuted instantiation: blend_a64_mask_sse4.c:xx_load_128 Unexecuted instantiation: blend_a64_vmask_sse4.c:xx_load_128 Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_load_128 Unexecuted instantiation: blend_a64_mask_avx2.c:xx_load_128 Unexecuted instantiation: highbd_convolve_avx2.c:xx_load_128 Unexecuted instantiation: convolve_sse2.c:xx_load_128 Unexecuted instantiation: jnt_convolve_sse2.c:xx_load_128 Unexecuted instantiation: resize_sse2.c:xx_load_128 Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_load_128 Unexecuted instantiation: reconinter_ssse3.c:xx_load_128 Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:xx_load_128 filterintra_sse4.c:xx_load_128 Line | Count | Source | 41 | 2.11M | static inline __m128i xx_load_128(const void *a) { | 42 | 2.11M | return _mm_load_si128((const __m128i *)a); | 43 | 2.11M | } |
Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_load_128 Unexecuted instantiation: selfguided_sse4.c:xx_load_128 Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_load_128 Unexecuted instantiation: convolve_2d_avx2.c:xx_load_128 Unexecuted instantiation: convolve_avx2.c:xx_load_128 Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_load_128 Unexecuted instantiation: jnt_convolve_avx2.c:xx_load_128 Unexecuted instantiation: reconinter_avx2.c:xx_load_128 Unexecuted instantiation: resize_avx2.c:xx_load_128 Unexecuted instantiation: selfguided_avx2.c:xx_load_128 Unexecuted instantiation: warp_plane_avx2.c:xx_load_128 Unexecuted instantiation: wiener_convolve_avx2.c:xx_load_128 Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_load_128 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_load_128 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_load_128 |
44 | | |
45 | 1.08G | static inline __m128i xx_loadu_128(const void *a) { |
46 | 1.08G | return _mm_loadu_si128((const __m128i *)a); |
47 | 1.08G | } Unexecuted instantiation: loopfilter_sse2.c:xx_loadu_128 blend_a64_mask_sse4.c:xx_loadu_128 Line | Count | Source | 45 | 19.9M | static inline __m128i xx_loadu_128(const void *a) { | 46 | 19.9M | return _mm_loadu_si128((const __m128i *)a); | 47 | 19.9M | } |
blend_a64_vmask_sse4.c:xx_loadu_128 Line | Count | Source | 45 | 8.23M | static inline __m128i xx_loadu_128(const void *a) { | 46 | 8.23M | return _mm_loadu_si128((const __m128i *)a); | 47 | 8.23M | } |
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_loadu_128 blend_a64_mask_avx2.c:xx_loadu_128 Line | Count | Source | 45 | 9.17M | static inline __m128i xx_loadu_128(const void *a) { | 46 | 9.17M | return _mm_loadu_si128((const __m128i *)a); | 47 | 9.17M | } |
Unexecuted instantiation: highbd_convolve_avx2.c:xx_loadu_128 Unexecuted instantiation: convolve_sse2.c:xx_loadu_128 Unexecuted instantiation: jnt_convolve_sse2.c:xx_loadu_128 Unexecuted instantiation: resize_sse2.c:xx_loadu_128 Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_loadu_128 Unexecuted instantiation: reconinter_ssse3.c:xx_loadu_128 av1_convolve_horiz_rs_sse4.c:xx_loadu_128 Line | Count | Source | 45 | 629M | static inline __m128i xx_loadu_128(const void *a) { | 46 | 629M | return _mm_loadu_si128((const __m128i *)a); | 47 | 629M | } |
Unexecuted instantiation: filterintra_sse4.c:xx_loadu_128 Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_loadu_128 Unexecuted instantiation: selfguided_sse4.c:xx_loadu_128 Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_loadu_128 Unexecuted instantiation: convolve_2d_avx2.c:xx_loadu_128 Unexecuted instantiation: convolve_avx2.c:xx_loadu_128 Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_loadu_128 Unexecuted instantiation: jnt_convolve_avx2.c:xx_loadu_128 Unexecuted instantiation: reconinter_avx2.c:xx_loadu_128 Unexecuted instantiation: resize_avx2.c:xx_loadu_128 selfguided_avx2.c:xx_loadu_128 Line | Count | Source | 45 | 417M | static inline __m128i xx_loadu_128(const void *a) { | 46 | 417M | return _mm_loadu_si128((const __m128i *)a); | 47 | 417M | } |
Unexecuted instantiation: warp_plane_avx2.c:xx_loadu_128 wiener_convolve_avx2.c:xx_loadu_128 Line | Count | Source | 45 | 242k | static inline __m128i xx_loadu_128(const void *a) { | 46 | 242k | return _mm_loadu_si128((const __m128i *)a); | 47 | 242k | } |
Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_loadu_128 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_loadu_128 highbd_wiener_convolve_avx2.c:xx_loadu_128 Line | Count | Source | 45 | 360k | static inline __m128i xx_loadu_128(const void *a) { | 46 | 360k | return _mm_loadu_si128((const __m128i *)a); | 47 | 360k | } |
|
48 | | |
49 | | // Load 64 bits from each of hi and low, and pack into an SSE register |
50 | | // Since directly loading as `int64_t`s and using _mm_set_epi64 may violate |
51 | | // the strict aliasing rule, this takes a different approach |
52 | 0 | static inline __m128i xx_loadu_2x64(const void *hi, const void *lo) { |
53 | 0 | return _mm_unpacklo_epi64(_mm_loadl_epi64((const __m128i *)lo), |
54 | 0 | _mm_loadl_epi64((const __m128i *)hi)); |
55 | 0 | } Unexecuted instantiation: loopfilter_sse2.c:xx_loadu_2x64 Unexecuted instantiation: blend_a64_mask_sse4.c:xx_loadu_2x64 Unexecuted instantiation: blend_a64_vmask_sse4.c:xx_loadu_2x64 Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_loadu_2x64 Unexecuted instantiation: blend_a64_mask_avx2.c:xx_loadu_2x64 Unexecuted instantiation: highbd_convolve_avx2.c:xx_loadu_2x64 Unexecuted instantiation: convolve_sse2.c:xx_loadu_2x64 Unexecuted instantiation: jnt_convolve_sse2.c:xx_loadu_2x64 Unexecuted instantiation: resize_sse2.c:xx_loadu_2x64 Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_loadu_2x64 Unexecuted instantiation: reconinter_ssse3.c:xx_loadu_2x64 Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:xx_loadu_2x64 Unexecuted instantiation: filterintra_sse4.c:xx_loadu_2x64 Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_loadu_2x64 Unexecuted instantiation: selfguided_sse4.c:xx_loadu_2x64 Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_loadu_2x64 Unexecuted instantiation: convolve_2d_avx2.c:xx_loadu_2x64 Unexecuted instantiation: convolve_avx2.c:xx_loadu_2x64 Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_loadu_2x64 Unexecuted instantiation: jnt_convolve_avx2.c:xx_loadu_2x64 Unexecuted instantiation: reconinter_avx2.c:xx_loadu_2x64 Unexecuted instantiation: resize_avx2.c:xx_loadu_2x64 Unexecuted instantiation: selfguided_avx2.c:xx_loadu_2x64 Unexecuted instantiation: warp_plane_avx2.c:xx_loadu_2x64 Unexecuted instantiation: wiener_convolve_avx2.c:xx_loadu_2x64 Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_loadu_2x64 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_loadu_2x64 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_loadu_2x64 |
56 | | |
57 | 18.6k | static inline void xx_storel_16(void *const a, const __m128i v) { |
58 | 18.6k | const uint16_t val = (uint16_t)_mm_cvtsi128_si32(v); |
59 | 18.6k | memcpy(a, &val, sizeof(val)); |
60 | 18.6k | } Unexecuted instantiation: loopfilter_sse2.c:xx_storel_16 Unexecuted instantiation: blend_a64_mask_sse4.c:xx_storel_16 Unexecuted instantiation: blend_a64_vmask_sse4.c:xx_storel_16 Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_storel_16 Unexecuted instantiation: blend_a64_mask_avx2.c:xx_storel_16 Unexecuted instantiation: highbd_convolve_avx2.c:xx_storel_16 Unexecuted instantiation: convolve_sse2.c:xx_storel_16 Unexecuted instantiation: jnt_convolve_sse2.c:xx_storel_16 Unexecuted instantiation: resize_sse2.c:xx_storel_16 Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_storel_16 Unexecuted instantiation: reconinter_ssse3.c:xx_storel_16 Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:xx_storel_16 Unexecuted instantiation: filterintra_sse4.c:xx_storel_16 Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_storel_16 Unexecuted instantiation: selfguided_sse4.c:xx_storel_16 Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_storel_16 Unexecuted instantiation: convolve_2d_avx2.c:xx_storel_16 convolve_avx2.c:xx_storel_16 Line | Count | Source | 57 | 18.6k | static inline void xx_storel_16(void *const a, const __m128i v) { | 58 | 18.6k | const uint16_t val = (uint16_t)_mm_cvtsi128_si32(v); | 59 | 18.6k | memcpy(a, &val, sizeof(val)); | 60 | 18.6k | } |
Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_storel_16 Unexecuted instantiation: jnt_convolve_avx2.c:xx_storel_16 Unexecuted instantiation: reconinter_avx2.c:xx_storel_16 Unexecuted instantiation: resize_avx2.c:xx_storel_16 Unexecuted instantiation: selfguided_avx2.c:xx_storel_16 Unexecuted instantiation: warp_plane_avx2.c:xx_storel_16 Unexecuted instantiation: wiener_convolve_avx2.c:xx_storel_16 Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_storel_16 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_storel_16 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_storel_16 |
61 | | |
62 | 138M | static inline void xx_storel_32(void *const a, const __m128i v) { |
63 | 138M | const int val = _mm_cvtsi128_si32(v); |
64 | 138M | memcpy(a, &val, sizeof(val)); |
65 | 138M | } loopfilter_sse2.c:xx_storel_32 Line | Count | Source | 62 | 43.6M | static inline void xx_storel_32(void *const a, const __m128i v) { | 63 | 43.6M | const int val = _mm_cvtsi128_si32(v); | 64 | 43.6M | memcpy(a, &val, sizeof(val)); | 65 | 43.6M | } |
blend_a64_mask_sse4.c:xx_storel_32 Line | Count | Source | 62 | 1.80M | static inline void xx_storel_32(void *const a, const __m128i v) { | 63 | 1.80M | const int val = _mm_cvtsi128_si32(v); | 64 | 1.80M | memcpy(a, &val, sizeof(val)); | 65 | 1.80M | } |
blend_a64_vmask_sse4.c:xx_storel_32 Line | Count | Source | 62 | 153k | static inline void xx_storel_32(void *const a, const __m128i v) { | 63 | 153k | const int val = _mm_cvtsi128_si32(v); | 64 | 153k | memcpy(a, &val, sizeof(val)); | 65 | 153k | } |
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_storel_32 blend_a64_mask_avx2.c:xx_storel_32 Line | Count | Source | 62 | 442k | static inline void xx_storel_32(void *const a, const __m128i v) { | 63 | 442k | const int val = _mm_cvtsi128_si32(v); | 64 | 442k | memcpy(a, &val, sizeof(val)); | 65 | 442k | } |
highbd_convolve_avx2.c:xx_storel_32 Line | Count | Source | 62 | 1.01M | static inline void xx_storel_32(void *const a, const __m128i v) { | 63 | 1.01M | const int val = _mm_cvtsi128_si32(v); | 64 | 1.01M | memcpy(a, &val, sizeof(val)); | 65 | 1.01M | } |
Unexecuted instantiation: convolve_sse2.c:xx_storel_32 Unexecuted instantiation: jnt_convolve_sse2.c:xx_storel_32 Unexecuted instantiation: resize_sse2.c:xx_storel_32 Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_storel_32 Unexecuted instantiation: reconinter_ssse3.c:xx_storel_32 av1_convolve_horiz_rs_sse4.c:xx_storel_32 Line | Count | Source | 62 | 65.2M | static inline void xx_storel_32(void *const a, const __m128i v) { | 63 | 65.2M | const int val = _mm_cvtsi128_si32(v); | 64 | 65.2M | memcpy(a, &val, sizeof(val)); | 65 | 65.2M | } |
filterintra_sse4.c:xx_storel_32 Line | Count | Source | 62 | 20.1M | static inline void xx_storel_32(void *const a, const __m128i v) { | 63 | 20.1M | const int val = _mm_cvtsi128_si32(v); | 64 | 20.1M | memcpy(a, &val, sizeof(val)); | 65 | 20.1M | } |
Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_storel_32 Unexecuted instantiation: selfguided_sse4.c:xx_storel_32 Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_storel_32 convolve_2d_avx2.c:xx_storel_32 Line | Count | Source | 62 | 2.99M | static inline void xx_storel_32(void *const a, const __m128i v) { | 63 | 2.99M | const int val = _mm_cvtsi128_si32(v); | 64 | 2.99M | memcpy(a, &val, sizeof(val)); | 65 | 2.99M | } |
convolve_avx2.c:xx_storel_32 Line | Count | Source | 62 | 1.10M | static inline void xx_storel_32(void *const a, const __m128i v) { | 63 | 1.10M | const int val = _mm_cvtsi128_si32(v); | 64 | 1.10M | memcpy(a, &val, sizeof(val)); | 65 | 1.10M | } |
Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_storel_32 Unexecuted instantiation: jnt_convolve_avx2.c:xx_storel_32 Unexecuted instantiation: reconinter_avx2.c:xx_storel_32 Unexecuted instantiation: resize_avx2.c:xx_storel_32 Unexecuted instantiation: selfguided_avx2.c:xx_storel_32 Unexecuted instantiation: warp_plane_avx2.c:xx_storel_32 Unexecuted instantiation: wiener_convolve_avx2.c:xx_storel_32 highbd_convolve_2d_avx2.c:xx_storel_32 Line | Count | Source | 62 | 2.08M | static inline void xx_storel_32(void *const a, const __m128i v) { | 63 | 2.08M | const int val = _mm_cvtsi128_si32(v); | 64 | 2.08M | memcpy(a, &val, sizeof(val)); | 65 | 2.08M | } |
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_storel_32 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_storel_32 |
66 | | |
67 | 161M | static inline void xx_storel_64(void *const a, const __m128i v) { |
68 | 161M | _mm_storel_epi64((__m128i *)a, v); |
69 | 161M | } Unexecuted instantiation: loopfilter_sse2.c:xx_storel_64 blend_a64_mask_sse4.c:xx_storel_64 Line | Count | Source | 67 | 4.41M | static inline void xx_storel_64(void *const a, const __m128i v) { | 68 | 4.41M | _mm_storel_epi64((__m128i *)a, v); | 69 | 4.41M | } |
blend_a64_vmask_sse4.c:xx_storel_64 Line | Count | Source | 67 | 1.17M | static inline void xx_storel_64(void *const a, const __m128i v) { | 68 | 1.17M | _mm_storel_epi64((__m128i *)a, v); | 69 | 1.17M | } |
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_storel_64 blend_a64_mask_avx2.c:xx_storel_64 Line | Count | Source | 67 | 1.66M | static inline void xx_storel_64(void *const a, const __m128i v) { | 68 | 1.66M | _mm_storel_epi64((__m128i *)a, v); | 69 | 1.66M | } |
Unexecuted instantiation: highbd_convolve_avx2.c:xx_storel_64 Unexecuted instantiation: convolve_sse2.c:xx_storel_64 Unexecuted instantiation: jnt_convolve_sse2.c:xx_storel_64 Unexecuted instantiation: resize_sse2.c:xx_storel_64 Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_storel_64 Unexecuted instantiation: reconinter_ssse3.c:xx_storel_64 av1_convolve_horiz_rs_sse4.c:xx_storel_64 Line | Count | Source | 67 | 154M | static inline void xx_storel_64(void *const a, const __m128i v) { | 68 | 154M | _mm_storel_epi64((__m128i *)a, v); | 69 | 154M | } |
Unexecuted instantiation: filterintra_sse4.c:xx_storel_64 Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_storel_64 Unexecuted instantiation: selfguided_sse4.c:xx_storel_64 Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_storel_64 Unexecuted instantiation: convolve_2d_avx2.c:xx_storel_64 Unexecuted instantiation: convolve_avx2.c:xx_storel_64 Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_storel_64 Unexecuted instantiation: jnt_convolve_avx2.c:xx_storel_64 Unexecuted instantiation: reconinter_avx2.c:xx_storel_64 Unexecuted instantiation: resize_avx2.c:xx_storel_64 Unexecuted instantiation: selfguided_avx2.c:xx_storel_64 Unexecuted instantiation: warp_plane_avx2.c:xx_storel_64 Unexecuted instantiation: wiener_convolve_avx2.c:xx_storel_64 Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_storel_64 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_storel_64 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_storel_64 |
70 | | |
71 | 0 | static inline void xx_store_128(void *const a, const __m128i v) { |
72 | 0 | _mm_store_si128((__m128i *)a, v); |
73 | 0 | } Unexecuted instantiation: loopfilter_sse2.c:xx_store_128 Unexecuted instantiation: blend_a64_mask_sse4.c:xx_store_128 Unexecuted instantiation: blend_a64_vmask_sse4.c:xx_store_128 Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_store_128 Unexecuted instantiation: blend_a64_mask_avx2.c:xx_store_128 Unexecuted instantiation: highbd_convolve_avx2.c:xx_store_128 Unexecuted instantiation: convolve_sse2.c:xx_store_128 Unexecuted instantiation: jnt_convolve_sse2.c:xx_store_128 Unexecuted instantiation: resize_sse2.c:xx_store_128 Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_store_128 Unexecuted instantiation: reconinter_ssse3.c:xx_store_128 Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:xx_store_128 Unexecuted instantiation: filterintra_sse4.c:xx_store_128 Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_store_128 Unexecuted instantiation: selfguided_sse4.c:xx_store_128 Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_store_128 Unexecuted instantiation: convolve_2d_avx2.c:xx_store_128 Unexecuted instantiation: convolve_avx2.c:xx_store_128 Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_store_128 Unexecuted instantiation: jnt_convolve_avx2.c:xx_store_128 Unexecuted instantiation: reconinter_avx2.c:xx_store_128 Unexecuted instantiation: resize_avx2.c:xx_store_128 Unexecuted instantiation: selfguided_avx2.c:xx_store_128 Unexecuted instantiation: warp_plane_avx2.c:xx_store_128 Unexecuted instantiation: wiener_convolve_avx2.c:xx_store_128 Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_store_128 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_store_128 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_store_128 |
74 | | |
75 | 47.3M | static inline void xx_storeu_128(void *const a, const __m128i v) { |
76 | 47.3M | _mm_storeu_si128((__m128i *)a, v); |
77 | 47.3M | } Unexecuted instantiation: loopfilter_sse2.c:xx_storeu_128 blend_a64_mask_sse4.c:xx_storeu_128 Line | Count | Source | 75 | 9.36M | static inline void xx_storeu_128(void *const a, const __m128i v) { | 76 | 9.36M | _mm_storeu_si128((__m128i *)a, v); | 77 | 9.36M | } |
blend_a64_vmask_sse4.c:xx_storeu_128 Line | Count | Source | 75 | 5.09M | static inline void xx_storeu_128(void *const a, const __m128i v) { | 76 | 5.09M | _mm_storeu_si128((__m128i *)a, v); | 77 | 5.09M | } |
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_storeu_128 blend_a64_mask_avx2.c:xx_storeu_128 Line | Count | Source | 75 | 1.38M | static inline void xx_storeu_128(void *const a, const __m128i v) { | 76 | 1.38M | _mm_storeu_si128((__m128i *)a, v); | 77 | 1.38M | } |
Unexecuted instantiation: highbd_convolve_avx2.c:xx_storeu_128 Unexecuted instantiation: convolve_sse2.c:xx_storeu_128 Unexecuted instantiation: jnt_convolve_sse2.c:xx_storeu_128 Unexecuted instantiation: resize_sse2.c:xx_storeu_128 Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_storeu_128 Unexecuted instantiation: reconinter_ssse3.c:xx_storeu_128 Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:xx_storeu_128 Unexecuted instantiation: filterintra_sse4.c:xx_storeu_128 Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_storeu_128 Unexecuted instantiation: selfguided_sse4.c:xx_storeu_128 Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_storeu_128 Unexecuted instantiation: convolve_2d_avx2.c:xx_storeu_128 Unexecuted instantiation: convolve_avx2.c:xx_storeu_128 Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_storeu_128 Unexecuted instantiation: jnt_convolve_avx2.c:xx_storeu_128 Unexecuted instantiation: reconinter_avx2.c:xx_storeu_128 Unexecuted instantiation: resize_avx2.c:xx_storeu_128 selfguided_avx2.c:xx_storeu_128 Line | Count | Source | 75 | 31.4M | static inline void xx_storeu_128(void *const a, const __m128i v) { | 76 | 31.4M | _mm_storeu_si128((__m128i *)a, v); | 77 | 31.4M | } |
Unexecuted instantiation: warp_plane_avx2.c:xx_storeu_128 Unexecuted instantiation: wiener_convolve_avx2.c:xx_storeu_128 Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_storeu_128 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_storeu_128 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_storeu_128 |
78 | | |
79 | | // Fill an SSE register using an interleaved pair of values, ie. set the |
80 | | // 8 channels to {a, b, a, b, a, b, a, b}, using the same channel ordering |
81 | | // as when a register is stored to / loaded from memory. |
82 | | // |
83 | | // This is useful for rearranging filter kernels for use with the _mm_madd_epi16 |
84 | | // instruction |
85 | 0 | static inline __m128i xx_set2_epi16(int16_t a, int16_t b) { |
86 | 0 | return _mm_setr_epi16(a, b, a, b, a, b, a, b); |
87 | 0 | } Unexecuted instantiation: loopfilter_sse2.c:xx_set2_epi16 Unexecuted instantiation: blend_a64_mask_sse4.c:xx_set2_epi16 Unexecuted instantiation: blend_a64_vmask_sse4.c:xx_set2_epi16 Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_set2_epi16 Unexecuted instantiation: blend_a64_mask_avx2.c:xx_set2_epi16 Unexecuted instantiation: highbd_convolve_avx2.c:xx_set2_epi16 Unexecuted instantiation: convolve_sse2.c:xx_set2_epi16 Unexecuted instantiation: jnt_convolve_sse2.c:xx_set2_epi16 Unexecuted instantiation: resize_sse2.c:xx_set2_epi16 Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_set2_epi16 Unexecuted instantiation: reconinter_ssse3.c:xx_set2_epi16 Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:xx_set2_epi16 Unexecuted instantiation: filterintra_sse4.c:xx_set2_epi16 Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_set2_epi16 Unexecuted instantiation: selfguided_sse4.c:xx_set2_epi16 Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_set2_epi16 Unexecuted instantiation: convolve_2d_avx2.c:xx_set2_epi16 Unexecuted instantiation: convolve_avx2.c:xx_set2_epi16 Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_set2_epi16 Unexecuted instantiation: jnt_convolve_avx2.c:xx_set2_epi16 Unexecuted instantiation: reconinter_avx2.c:xx_set2_epi16 Unexecuted instantiation: resize_avx2.c:xx_set2_epi16 Unexecuted instantiation: selfguided_avx2.c:xx_set2_epi16 Unexecuted instantiation: warp_plane_avx2.c:xx_set2_epi16 Unexecuted instantiation: wiener_convolve_avx2.c:xx_set2_epi16 Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_set2_epi16 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_set2_epi16 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_set2_epi16 |
88 | | |
89 | 818k | static inline __m128i xx_round_epu16(__m128i v_val_w) { |
90 | 818k | return _mm_avg_epu16(v_val_w, _mm_setzero_si128()); |
91 | 818k | } Unexecuted instantiation: loopfilter_sse2.c:xx_round_epu16 blend_a64_mask_sse4.c:xx_round_epu16 Line | Count | Source | 89 | 567k | static inline __m128i xx_round_epu16(__m128i v_val_w) { | 90 | 567k | return _mm_avg_epu16(v_val_w, _mm_setzero_si128()); | 91 | 567k | } |
blend_a64_vmask_sse4.c:xx_round_epu16 Line | Count | Source | 89 | 251k | static inline __m128i xx_round_epu16(__m128i v_val_w) { | 90 | 251k | return _mm_avg_epu16(v_val_w, _mm_setzero_si128()); | 91 | 251k | } |
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_round_epu16 Unexecuted instantiation: blend_a64_mask_avx2.c:xx_round_epu16 Unexecuted instantiation: highbd_convolve_avx2.c:xx_round_epu16 Unexecuted instantiation: convolve_sse2.c:xx_round_epu16 Unexecuted instantiation: jnt_convolve_sse2.c:xx_round_epu16 Unexecuted instantiation: resize_sse2.c:xx_round_epu16 Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_round_epu16 Unexecuted instantiation: reconinter_ssse3.c:xx_round_epu16 Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:xx_round_epu16 Unexecuted instantiation: filterintra_sse4.c:xx_round_epu16 Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_round_epu16 Unexecuted instantiation: selfguided_sse4.c:xx_round_epu16 Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_round_epu16 Unexecuted instantiation: convolve_2d_avx2.c:xx_round_epu16 Unexecuted instantiation: convolve_avx2.c:xx_round_epu16 Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_round_epu16 Unexecuted instantiation: jnt_convolve_avx2.c:xx_round_epu16 Unexecuted instantiation: reconinter_avx2.c:xx_round_epu16 Unexecuted instantiation: resize_avx2.c:xx_round_epu16 Unexecuted instantiation: selfguided_avx2.c:xx_round_epu16 Unexecuted instantiation: warp_plane_avx2.c:xx_round_epu16 Unexecuted instantiation: wiener_convolve_avx2.c:xx_round_epu16 Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_round_epu16 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_round_epu16 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_round_epu16 |
92 | | |
93 | 19.4M | static inline __m128i xx_roundn_epu16(__m128i v_val_w, int bits) { |
94 | 19.4M | const __m128i v_s_w = _mm_srli_epi16(v_val_w, bits - 1); |
95 | 19.4M | return _mm_avg_epu16(v_s_w, _mm_setzero_si128()); |
96 | 19.4M | } Unexecuted instantiation: loopfilter_sse2.c:xx_roundn_epu16 blend_a64_mask_sse4.c:xx_roundn_epu16 Line | Count | Source | 93 | 12.0M | static inline __m128i xx_roundn_epu16(__m128i v_val_w, int bits) { | 94 | 12.0M | const __m128i v_s_w = _mm_srli_epi16(v_val_w, bits - 1); | 95 | 12.0M | return _mm_avg_epu16(v_s_w, _mm_setzero_si128()); | 96 | 12.0M | } |
blend_a64_vmask_sse4.c:xx_roundn_epu16 Line | Count | Source | 93 | 7.15M | static inline __m128i xx_roundn_epu16(__m128i v_val_w, int bits) { | 94 | 7.15M | const __m128i v_s_w = _mm_srli_epi16(v_val_w, bits - 1); | 95 | 7.15M | return _mm_avg_epu16(v_s_w, _mm_setzero_si128()); | 96 | 7.15M | } |
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_roundn_epu16 blend_a64_mask_avx2.c:xx_roundn_epu16 Line | Count | Source | 93 | 310k | static inline __m128i xx_roundn_epu16(__m128i v_val_w, int bits) { | 94 | 310k | const __m128i v_s_w = _mm_srli_epi16(v_val_w, bits - 1); | 95 | 310k | return _mm_avg_epu16(v_s_w, _mm_setzero_si128()); | 96 | 310k | } |
Unexecuted instantiation: highbd_convolve_avx2.c:xx_roundn_epu16 Unexecuted instantiation: convolve_sse2.c:xx_roundn_epu16 Unexecuted instantiation: jnt_convolve_sse2.c:xx_roundn_epu16 Unexecuted instantiation: resize_sse2.c:xx_roundn_epu16 Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_roundn_epu16 Unexecuted instantiation: reconinter_ssse3.c:xx_roundn_epu16 Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:xx_roundn_epu16 Unexecuted instantiation: filterintra_sse4.c:xx_roundn_epu16 Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_roundn_epu16 Unexecuted instantiation: selfguided_sse4.c:xx_roundn_epu16 Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_roundn_epu16 Unexecuted instantiation: convolve_2d_avx2.c:xx_roundn_epu16 Unexecuted instantiation: convolve_avx2.c:xx_roundn_epu16 Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_roundn_epu16 Unexecuted instantiation: jnt_convolve_avx2.c:xx_roundn_epu16 Unexecuted instantiation: reconinter_avx2.c:xx_roundn_epu16 Unexecuted instantiation: resize_avx2.c:xx_roundn_epu16 Unexecuted instantiation: selfguided_avx2.c:xx_roundn_epu16 Unexecuted instantiation: warp_plane_avx2.c:xx_roundn_epu16 Unexecuted instantiation: wiener_convolve_avx2.c:xx_roundn_epu16 Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_roundn_epu16 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_roundn_epu16 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_roundn_epu16 |
97 | | |
98 | 0 | static inline __m128i xx_roundn_epu32(__m128i v_val_d, int bits) { |
99 | 0 | const __m128i v_bias_d = _mm_set1_epi32((1 << bits) >> 1); |
100 | 0 | const __m128i v_tmp_d = _mm_add_epi32(v_val_d, v_bias_d); |
101 | 0 | return _mm_srli_epi32(v_tmp_d, bits); |
102 | 0 | } Unexecuted instantiation: loopfilter_sse2.c:xx_roundn_epu32 Unexecuted instantiation: blend_a64_mask_sse4.c:xx_roundn_epu32 Unexecuted instantiation: blend_a64_vmask_sse4.c:xx_roundn_epu32 Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_roundn_epu32 Unexecuted instantiation: blend_a64_mask_avx2.c:xx_roundn_epu32 Unexecuted instantiation: highbd_convolve_avx2.c:xx_roundn_epu32 Unexecuted instantiation: convolve_sse2.c:xx_roundn_epu32 Unexecuted instantiation: jnt_convolve_sse2.c:xx_roundn_epu32 Unexecuted instantiation: resize_sse2.c:xx_roundn_epu32 Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_roundn_epu32 Unexecuted instantiation: reconinter_ssse3.c:xx_roundn_epu32 Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:xx_roundn_epu32 Unexecuted instantiation: filterintra_sse4.c:xx_roundn_epu32 Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_roundn_epu32 Unexecuted instantiation: selfguided_sse4.c:xx_roundn_epu32 Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_roundn_epu32 Unexecuted instantiation: convolve_2d_avx2.c:xx_roundn_epu32 Unexecuted instantiation: convolve_avx2.c:xx_roundn_epu32 Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_roundn_epu32 Unexecuted instantiation: jnt_convolve_avx2.c:xx_roundn_epu32 Unexecuted instantiation: reconinter_avx2.c:xx_roundn_epu32 Unexecuted instantiation: resize_avx2.c:xx_roundn_epu32 Unexecuted instantiation: selfguided_avx2.c:xx_roundn_epu32 Unexecuted instantiation: warp_plane_avx2.c:xx_roundn_epu32 Unexecuted instantiation: wiener_convolve_avx2.c:xx_roundn_epu32 Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_roundn_epu32 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_roundn_epu32 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_roundn_epu32 |
103 | | |
104 | 20.1M | static inline __m128i xx_roundn_epi16_unsigned(__m128i v_val_d, int bits) { |
105 | 20.1M | const __m128i v_bias_d = _mm_set1_epi16((1 << bits) >> 1); |
106 | 20.1M | const __m128i v_tmp_d = _mm_add_epi16(v_val_d, v_bias_d); |
107 | 20.1M | return _mm_srai_epi16(v_tmp_d, bits); |
108 | 20.1M | } Unexecuted instantiation: loopfilter_sse2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: blend_a64_mask_sse4.c:xx_roundn_epi16_unsigned Unexecuted instantiation: blend_a64_vmask_sse4.c:xx_roundn_epi16_unsigned Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: blend_a64_mask_avx2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: highbd_convolve_avx2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: convolve_sse2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: jnt_convolve_sse2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: resize_sse2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_roundn_epi16_unsigned Unexecuted instantiation: reconinter_ssse3.c:xx_roundn_epi16_unsigned Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:xx_roundn_epi16_unsigned filterintra_sse4.c:xx_roundn_epi16_unsigned Line | Count | Source | 104 | 20.1M | static inline __m128i xx_roundn_epi16_unsigned(__m128i v_val_d, int bits) { | 105 | 20.1M | const __m128i v_bias_d = _mm_set1_epi16((1 << bits) >> 1); | 106 | 20.1M | const __m128i v_tmp_d = _mm_add_epi16(v_val_d, v_bias_d); | 107 | 20.1M | return _mm_srai_epi16(v_tmp_d, bits); | 108 | 20.1M | } |
Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_roundn_epi16_unsigned Unexecuted instantiation: selfguided_sse4.c:xx_roundn_epi16_unsigned Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: convolve_2d_avx2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: convolve_avx2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: jnt_convolve_avx2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: reconinter_avx2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: resize_avx2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: selfguided_avx2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: warp_plane_avx2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: wiener_convolve_avx2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_roundn_epi16_unsigned Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_roundn_epi16_unsigned |
109 | | |
110 | | // This is equivalent to ROUND_POWER_OF_TWO(v_val_d, bits) |
111 | 0 | static inline __m128i xx_roundn_epi32_unsigned(__m128i v_val_d, int bits) { |
112 | 0 | const __m128i v_bias_d = _mm_set1_epi32((1 << bits) >> 1); |
113 | 0 | const __m128i v_tmp_d = _mm_add_epi32(v_val_d, v_bias_d); |
114 | 0 | return _mm_srai_epi32(v_tmp_d, bits); |
115 | 0 | } Unexecuted instantiation: loopfilter_sse2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: blend_a64_mask_sse4.c:xx_roundn_epi32_unsigned Unexecuted instantiation: blend_a64_vmask_sse4.c:xx_roundn_epi32_unsigned Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: blend_a64_mask_avx2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: highbd_convolve_avx2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: convolve_sse2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: jnt_convolve_sse2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: resize_sse2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_roundn_epi32_unsigned Unexecuted instantiation: reconinter_ssse3.c:xx_roundn_epi32_unsigned Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:xx_roundn_epi32_unsigned Unexecuted instantiation: filterintra_sse4.c:xx_roundn_epi32_unsigned Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_roundn_epi32_unsigned Unexecuted instantiation: selfguided_sse4.c:xx_roundn_epi32_unsigned Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: convolve_2d_avx2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: convolve_avx2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: jnt_convolve_avx2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: reconinter_avx2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: resize_avx2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: selfguided_avx2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: warp_plane_avx2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: wiener_convolve_avx2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_roundn_epi32_unsigned Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_roundn_epi32_unsigned |
116 | | |
117 | 0 | static inline __m128i xx_roundn_epi16(__m128i v_val_d, int bits) { |
118 | 0 | const __m128i v_bias_d = _mm_set1_epi16((1 << bits) >> 1); |
119 | 0 | const __m128i v_sign_d = _mm_srai_epi16(v_val_d, 15); |
120 | 0 | const __m128i v_tmp_d = |
121 | 0 | _mm_add_epi16(_mm_add_epi16(v_val_d, v_bias_d), v_sign_d); |
122 | 0 | return _mm_srai_epi16(v_tmp_d, bits); |
123 | 0 | } Unexecuted instantiation: loopfilter_sse2.c:xx_roundn_epi16 Unexecuted instantiation: blend_a64_mask_sse4.c:xx_roundn_epi16 Unexecuted instantiation: blend_a64_vmask_sse4.c:xx_roundn_epi16 Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:xx_roundn_epi16 Unexecuted instantiation: blend_a64_mask_avx2.c:xx_roundn_epi16 Unexecuted instantiation: highbd_convolve_avx2.c:xx_roundn_epi16 Unexecuted instantiation: convolve_sse2.c:xx_roundn_epi16 Unexecuted instantiation: jnt_convolve_sse2.c:xx_roundn_epi16 Unexecuted instantiation: resize_sse2.c:xx_roundn_epi16 Unexecuted instantiation: av1_inv_txfm_ssse3.c:xx_roundn_epi16 Unexecuted instantiation: reconinter_ssse3.c:xx_roundn_epi16 Unexecuted instantiation: av1_convolve_horiz_rs_sse4.c:xx_roundn_epi16 Unexecuted instantiation: filterintra_sse4.c:xx_roundn_epi16 Unexecuted instantiation: highbd_inv_txfm_sse4.c:xx_roundn_epi16 Unexecuted instantiation: selfguided_sse4.c:xx_roundn_epi16 Unexecuted instantiation: av1_inv_txfm_avx2.c:xx_roundn_epi16 Unexecuted instantiation: convolve_2d_avx2.c:xx_roundn_epi16 Unexecuted instantiation: convolve_avx2.c:xx_roundn_epi16 Unexecuted instantiation: highbd_inv_txfm_avx2.c:xx_roundn_epi16 Unexecuted instantiation: jnt_convolve_avx2.c:xx_roundn_epi16 Unexecuted instantiation: reconinter_avx2.c:xx_roundn_epi16 Unexecuted instantiation: resize_avx2.c:xx_roundn_epi16 Unexecuted instantiation: selfguided_avx2.c:xx_roundn_epi16 Unexecuted instantiation: warp_plane_avx2.c:xx_roundn_epi16 Unexecuted instantiation: wiener_convolve_avx2.c:xx_roundn_epi16 Unexecuted instantiation: highbd_convolve_2d_avx2.c:xx_roundn_epi16 Unexecuted instantiation: highbd_jnt_convolve_avx2.c:xx_roundn_epi16 Unexecuted instantiation: highbd_wiener_convolve_avx2.c:xx_roundn_epi16 |
124 | | |
125 | | #endif // AOM_AOM_DSP_X86_SYNONYMS_H_ |