Coverage Report

Created: 2026-07-14 07:20

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/aom/aom_dsp/x86/convolve_avx2.h
Line
Count
Source
1
/*
2
 * Copyright (c) 2018, 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_CONVOLVE_AVX2_H_
13
#define AOM_AOM_DSP_X86_CONVOLVE_AVX2_H_
14
15
#include <immintrin.h>
16
17
#include "aom_ports/mem.h"
18
19
#include "aom_dsp/x86/mem_sse2.h"
20
#include "aom_dsp/x86/synonyms.h"
21
22
#include "av1/common/convolve.h"
23
#include "av1/common/filter.h"
24
25
859k
#define SECOND_32_BLK (32)
26
765k
#define THIRD_32_BLK (32 << 1)
27
382k
#define FOURTH_32_BLK (SECOND_32_BLK + THIRD_32_BLK)
28
29
// filters for 16
30
DECLARE_ALIGNED(32, static const uint8_t, filt_global_avx2[]) = {
31
  0,  1,  1,  2,  2, 3,  3,  4,  4,  5,  5,  6,  6,  7,  7,  8,  0,  1,  1,
32
  2,  2,  3,  3,  4, 4,  5,  5,  6,  6,  7,  7,  8,  2,  3,  3,  4,  4,  5,
33
  5,  6,  6,  7,  7, 8,  8,  9,  9,  10, 2,  3,  3,  4,  4,  5,  5,  6,  6,
34
  7,  7,  8,  8,  9, 9,  10, 4,  5,  5,  6,  6,  7,  7,  8,  8,  9,  9,  10,
35
  10, 11, 11, 12, 4, 5,  5,  6,  6,  7,  7,  8,  8,  9,  9,  10, 10, 11, 11,
36
  12, 6,  7,  7,  8, 8,  9,  9,  10, 10, 11, 11, 12, 12, 13, 13, 14, 6,  7,
37
  7,  8,  8,  9,  9, 10, 10, 11, 11, 12, 12, 13, 13, 14
38
};
39
40
DECLARE_ALIGNED(32, static const uint8_t, filt_d4_global_avx2[]) = {
41
  0, 1, 2, 3,  1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6, 0, 1, 2, 3,  1, 2,
42
  3, 4, 2, 3,  4, 5, 3, 4, 5, 6, 4, 5, 6, 7, 5, 6, 7, 8, 6, 7,  8, 9,
43
  7, 8, 9, 10, 4, 5, 6, 7, 5, 6, 7, 8, 6, 7, 8, 9, 7, 8, 9, 10,
44
};
45
46
DECLARE_ALIGNED(32, static const uint8_t, filt4_d4_global_avx2[]) = {
47
  2, 3, 4, 5, 3, 4, 5, 6, 4, 5, 6, 7, 5, 6, 7, 8,
48
  2, 3, 4, 5, 3, 4, 5, 6, 4, 5, 6, 7, 5, 6, 7, 8,
49
};
50
51
DECLARE_ALIGNED(32, static const uint8_t, filt_center_global_avx2[32]) = {
52
  3, 255, 4, 255, 5, 255, 6, 255, 7, 255, 8, 255, 9, 255, 10, 255,
53
  3, 255, 4, 255, 5, 255, 6, 255, 7, 255, 8, 255, 9, 255, 10, 255
54
};
55
56
DECLARE_ALIGNED(32, static const uint8_t,
57
                filt1_global_sse2[16]) = { 0, 1, 1, 2,  2,  3,  3,  4,
58
                                           8, 9, 9, 10, 10, 11, 11, 12 };
59
60
DECLARE_ALIGNED(32, static const uint8_t,
61
                filt2_global_sse2[16]) = { 2,  3,  3,  4,  4,  5,  5,  6,
62
                                           10, 11, 11, 12, 12, 13, 13, 14 };
63
64
DECLARE_ALIGNED(32, static const uint8_t,
65
                filt3_global_sse2[16]) = { 0, 1, 1, 2, 8, 9, 9, 10,
66
                                           0, 0, 0, 0, 0, 0, 0, 0 };
67
68
DECLARE_ALIGNED(32, static const uint8_t,
69
                filt4_global_sse2[16]) = { 2, 3, 3, 4, 10, 11, 11, 12,
70
                                           0, 0, 0, 0, 0,  0,  0,  0 };
71
72
DECLARE_ALIGNED(32, static const uint8_t,
73
                filt5_global_sse2[16]) = { 0, 1, 1, 2, 4, 5, 5, 6,
74
                                           0, 0, 0, 0, 0, 0, 0, 0 };
75
76
DECLARE_ALIGNED(32, static const uint8_t,
77
                filt1_global_avx2[32]) = { 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5,
78
                                           6, 6, 7, 7, 8, 0, 1, 1, 2, 2, 3,
79
                                           3, 4, 4, 5, 5, 6, 6, 7, 7, 8 };
80
81
DECLARE_ALIGNED(32, static const uint8_t,
82
                filt2_global_avx2[32]) = { 2, 3, 3, 4, 4,  5, 5, 6, 6, 7, 7,
83
                                           8, 8, 9, 9, 10, 2, 3, 3, 4, 4, 5,
84
                                           5, 6, 6, 7, 7,  8, 8, 9, 9, 10 };
85
86
DECLARE_ALIGNED(32, static const uint8_t, filt3_global_avx2[32]) = {
87
  4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12,
88
  4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12
89
};
90
91
DECLARE_ALIGNED(32, static const uint8_t, filt4_global_avx2[32]) = {
92
  6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14,
93
  6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14
94
};
95
96
#define CONVOLVE_SR_HOR_FILTER_W4(CONVOLVE_LOWBD)                            \
97
3.21M
  for (i = 0; i < (im_h - 2); i += 2) {                                      \
98
2.61M
    __m128i data =                                                           \
99
2.61M
        load_8bit_8x2_to_1_reg_sse2(&src_ptr[(i * src_stride)], src_stride); \
100
2.61M
    __m128i res = CONVOLVE_LOWBD(data, coeffs_h, filt);                      \
101
2.61M
    res = _mm_srai_epi16(_mm_add_epi16(res, round_const_h), 2);              \
102
2.61M
    _mm_store_si128((__m128i *)&im_block[i * 4], res);                       \
103
2.61M
  }                                                                          \
104
606k
  __m128i data_1 = _mm_loadl_epi64((__m128i *)&src_ptr[(i * src_stride)]);   \
105
606k
  __m128i res = CONVOLVE_LOWBD(data_1, coeffs_h, filt);                      \
106
606k
  res = _mm_srai_epi16(_mm_add_epi16(res, round_const_h), 2);                \
107
606k
  _mm_storel_epi64((__m128i *)&im_block[i * 4], res);
108
109
#define CONVOLVE_SR_HOR_FILTER_2TAP_W4 \
110
18.2k
  CONVOLVE_SR_HOR_FILTER_W4(convolve_lowbd_x_2tap_ssse3)
111
112
#define CONVOLVE_SR_HOR_FILTER_4TAP_W4 \
113
588k
  CONVOLVE_SR_HOR_FILTER_W4(convolve_lowbd_x_4tap_ssse3)
114
115
static inline void sr_2d_ver_round_and_store_w4(int w, __m256i res,
116
                                                uint8_t *dst, int dst_stride,
117
1.80M
                                                __m256i round_const_v) {
118
1.80M
  const __m256i res_round =
119
1.80M
      _mm256_srai_epi32(_mm256_add_epi32(res, round_const_v), 11);
120
121
1.80M
  const __m256i res_16bit = _mm256_packs_epi32(res_round, res_round);
122
1.80M
  const __m256i res_8b = _mm256_packus_epi16(res_16bit, res_16bit);
123
124
1.80M
  const __m128i r0 = _mm256_castsi256_si128(res_8b);
125
1.80M
  const __m128i r1 = _mm256_extracti128_si256(res_8b, 1);
126
127
1.80M
  __m128i *const p0 = (__m128i *)dst;
128
1.80M
  __m128i *const p1 = (__m128i *)(dst + dst_stride);
129
130
1.80M
  if (w == 4) {
131
1.49M
    xx_storel_32(p0, r0);
132
1.49M
    xx_storel_32(p1, r1);
133
1.49M
  } else {
134
312k
    assert(w == 2);
135
312k
    *(uint16_t *)p0 = (uint16_t)_mm_cvtsi128_si32(r0);
136
312k
    *(uint16_t *)p1 = (uint16_t)_mm_cvtsi128_si32(r1);
137
312k
  }
138
1.80M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:sr_2d_ver_round_and_store_w4
Unexecuted instantiation: highbd_convolve_avx2.c:sr_2d_ver_round_and_store_w4
convolve_2d_avx2.c:sr_2d_ver_round_and_store_w4
Line
Count
Source
117
1.80M
                                                __m256i round_const_v) {
118
1.80M
  const __m256i res_round =
119
1.80M
      _mm256_srai_epi32(_mm256_add_epi32(res, round_const_v), 11);
120
121
1.80M
  const __m256i res_16bit = _mm256_packs_epi32(res_round, res_round);
122
1.80M
  const __m256i res_8b = _mm256_packus_epi16(res_16bit, res_16bit);
123
124
1.80M
  const __m128i r0 = _mm256_castsi256_si128(res_8b);
125
1.80M
  const __m128i r1 = _mm256_extracti128_si256(res_8b, 1);
126
127
1.80M
  __m128i *const p0 = (__m128i *)dst;
128
1.80M
  __m128i *const p1 = (__m128i *)(dst + dst_stride);
129
130
1.80M
  if (w == 4) {
131
1.49M
    xx_storel_32(p0, r0);
132
1.49M
    xx_storel_32(p1, r1);
133
1.49M
  } else {
134
312k
    assert(w == 2);
135
312k
    *(uint16_t *)p0 = (uint16_t)_mm_cvtsi128_si32(r0);
136
312k
    *(uint16_t *)p1 = (uint16_t)_mm_cvtsi128_si32(r1);
137
312k
  }
138
1.80M
}
Unexecuted instantiation: convolve_avx2.c:sr_2d_ver_round_and_store_w4
Unexecuted instantiation: jnt_convolve_avx2.c:sr_2d_ver_round_and_store_w4
Unexecuted instantiation: wiener_convolve_avx2.c:sr_2d_ver_round_and_store_w4
Unexecuted instantiation: highbd_convolve_2d_avx2.c:sr_2d_ver_round_and_store_w4
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:sr_2d_ver_round_and_store_w4
139
140
#define CONVOLVE_SR_VER_FILTER_2TAP_W4                                        \
141
18.2k
  __m128i s[2];                                                               \
142
18.2k
  s[0] = _mm_loadl_epi64((__m128i *)(im_block + 0 * 4));                      \
143
18.2k
                                                                              \
144
68.5k
  for (i = 0; i < h; i += 2) {                                                \
145
50.2k
    const int16_t *data = &im_block[i * 4];                                   \
146
50.2k
    s[1] = _mm_loadl_epi64((__m128i *)(data + 1 * 4));                        \
147
50.2k
    const __m256i src_0 = _mm256_setr_m128i(s[0], s[1]);                      \
148
50.2k
    s[0] = _mm_loadl_epi64((__m128i *)(data + 2 * 4));                        \
149
50.2k
    const __m256i src_1 = _mm256_setr_m128i(s[1], s[0]);                      \
150
50.2k
    const __m256i ss = _mm256_unpacklo_epi16(src_0, src_1);                   \
151
50.2k
                                                                              \
152
50.2k
    const __m256i res = _mm256_madd_epi16(ss, coeffs_v[0]);                   \
153
50.2k
                                                                              \
154
50.2k
    sr_2d_ver_round_and_store_w4(w, res, dst_ptr, dst_stride, round_const_v); \
155
50.2k
    dst_ptr += 2 * dst_stride;                                                \
156
50.2k
  }
157
158
#define CONVOLVE_SR_VER_FILTER_4TAP_W4                                        \
159
384k
  __m128i s[4];                                                               \
160
384k
  __m256i ss[2];                                                              \
161
384k
  s[0] = _mm_loadl_epi64((__m128i *)(im_block + 0 * 4));                      \
162
384k
  s[1] = _mm_loadl_epi64((__m128i *)(im_block + 1 * 4));                      \
163
384k
  s[2] = _mm_loadl_epi64((__m128i *)(im_block + 2 * 4));                      \
164
384k
                                                                              \
165
384k
  const __m256i src_0 = _mm256_setr_m128i(s[0], s[1]);                        \
166
384k
  const __m256i src_1 = _mm256_setr_m128i(s[1], s[2]);                        \
167
384k
                                                                              \
168
384k
  ss[0] = _mm256_unpacklo_epi16(src_0, src_1);                                \
169
384k
                                                                              \
170
1.11M
  for (i = 0; i < h; i += 2) {                                                \
171
728k
    const int16_t *data = &im_block[i * 4];                                   \
172
728k
    s[3] = _mm_loadl_epi64((__m128i *)(data + 3 * 4));                        \
173
728k
    const __m256i src_2 = _mm256_setr_m128i(s[2], s[3]);                      \
174
728k
    s[2] = _mm_loadl_epi64((__m128i *)(data + 4 * 4));                        \
175
728k
    const __m256i src_3 = _mm256_setr_m128i(s[3], s[2]);                      \
176
728k
    ss[1] = _mm256_unpacklo_epi16(src_2, src_3);                              \
177
728k
                                                                              \
178
728k
    const __m256i res = convolve_4tap(ss, coeffs_v);                          \
179
728k
                                                                              \
180
728k
    sr_2d_ver_round_and_store_w4(w, res, dst_ptr, dst_stride, round_const_v); \
181
728k
    dst_ptr += 2 * dst_stride;                                                \
182
728k
                                                                              \
183
728k
    ss[0] = ss[1];                                                            \
184
728k
  }
185
186
#define CONVOLVE_SR_VER_FILTER_6TAP_W4                                        \
187
193k
  __m128i s[6];                                                               \
188
193k
  __m256i ss[3];                                                              \
189
193k
  s[0] = _mm_loadl_epi64((__m128i *)(im_block + 0 * 4));                      \
190
193k
  s[1] = _mm_loadl_epi64((__m128i *)(im_block + 1 * 4));                      \
191
193k
  s[2] = _mm_loadl_epi64((__m128i *)(im_block + 2 * 4));                      \
192
193k
  s[3] = _mm_loadl_epi64((__m128i *)(im_block + 3 * 4));                      \
193
193k
  s[4] = _mm_loadl_epi64((__m128i *)(im_block + 4 * 4));                      \
194
193k
                                                                              \
195
193k
  const __m256i src_0 = _mm256_setr_m128i(s[0], s[1]);                        \
196
193k
  const __m256i src_1 = _mm256_setr_m128i(s[1], s[2]);                        \
197
193k
  const __m256i src_2 = _mm256_setr_m128i(s[2], s[3]);                        \
198
193k
  const __m256i src_3 = _mm256_setr_m128i(s[3], s[4]);                        \
199
193k
                                                                              \
200
193k
  ss[0] = _mm256_unpacklo_epi16(src_0, src_1);                                \
201
193k
  ss[1] = _mm256_unpacklo_epi16(src_2, src_3);                                \
202
193k
                                                                              \
203
1.17M
  for (i = 0; i < h; i += 2) {                                                \
204
977k
    const int16_t *data = &im_block[i * 4];                                   \
205
977k
    s[5] = _mm_loadl_epi64((__m128i *)(data + 5 * 4));                        \
206
977k
    const __m256i src_4 = _mm256_setr_m128i(s[4], s[5]);                      \
207
977k
    s[4] = _mm_loadl_epi64((__m128i *)(data + 6 * 4));                        \
208
977k
    const __m256i src_5 = _mm256_setr_m128i(s[5], s[4]);                      \
209
977k
    ss[2] = _mm256_unpacklo_epi16(src_4, src_5);                              \
210
977k
                                                                              \
211
977k
    const __m256i res = convolve_6tap(ss, coeffs_v);                          \
212
977k
                                                                              \
213
977k
    sr_2d_ver_round_and_store_w4(w, res, dst_ptr, dst_stride, round_const_v); \
214
977k
    dst_ptr += 2 * dst_stride;                                                \
215
977k
                                                                              \
216
977k
    ss[0] = ss[1];                                                            \
217
977k
    ss[1] = ss[2];                                                            \
218
977k
  }
219
220
#define CONVOLVE_SR_VER_FILTER_8TAP_W4                                        \
221
10.4k
  __m128i s[8];                                                               \
222
10.4k
  __m256i ss[4];                                                              \
223
10.4k
  s[0] = _mm_loadl_epi64((__m128i *)(im_block + 0 * 4));                      \
224
10.4k
  s[1] = _mm_loadl_epi64((__m128i *)(im_block + 1 * 4));                      \
225
10.4k
  s[2] = _mm_loadl_epi64((__m128i *)(im_block + 2 * 4));                      \
226
10.4k
  s[3] = _mm_loadl_epi64((__m128i *)(im_block + 3 * 4));                      \
227
10.4k
  s[4] = _mm_loadl_epi64((__m128i *)(im_block + 4 * 4));                      \
228
10.4k
  s[5] = _mm_loadl_epi64((__m128i *)(im_block + 5 * 4));                      \
229
10.4k
  s[6] = _mm_loadl_epi64((__m128i *)(im_block + 6 * 4));                      \
230
10.4k
                                                                              \
231
10.4k
  const __m256i src_0 = _mm256_setr_m128i(s[0], s[1]);                        \
232
10.4k
  const __m256i src_1 = _mm256_setr_m128i(s[1], s[2]);                        \
233
10.4k
  const __m256i src_2 = _mm256_setr_m128i(s[2], s[3]);                        \
234
10.4k
  const __m256i src_3 = _mm256_setr_m128i(s[3], s[4]);                        \
235
10.4k
  const __m256i src_4 = _mm256_setr_m128i(s[4], s[5]);                        \
236
10.4k
  const __m256i src_5 = _mm256_setr_m128i(s[5], s[6]);                        \
237
10.4k
                                                                              \
238
10.4k
  ss[0] = _mm256_unpacklo_epi16(src_0, src_1);                                \
239
10.4k
  ss[1] = _mm256_unpacklo_epi16(src_2, src_3);                                \
240
10.4k
  ss[2] = _mm256_unpacklo_epi16(src_4, src_5);                                \
241
10.4k
                                                                              \
242
63.4k
  for (i = 0; i < h; i += 2) {                                                \
243
52.9k
    const int16_t *data = &im_block[i * 4];                                   \
244
52.9k
    s[7] = _mm_loadl_epi64((__m128i *)(data + 7 * 4));                        \
245
52.9k
    const __m256i src_6 = _mm256_setr_m128i(s[6], s[7]);                      \
246
52.9k
    s[6] = _mm_loadl_epi64((__m128i *)(data + 8 * 4));                        \
247
52.9k
    const __m256i src_7 = _mm256_setr_m128i(s[7], s[6]);                      \
248
52.9k
    ss[3] = _mm256_unpacklo_epi16(src_6, src_7);                              \
249
52.9k
                                                                              \
250
52.9k
    const __m256i res = convolve(ss, coeffs_v);                               \
251
52.9k
                                                                              \
252
52.9k
    sr_2d_ver_round_and_store_w4(w, res, dst_ptr, dst_stride, round_const_v); \
253
52.9k
    dst_ptr += 2 * dst_stride;                                                \
254
52.9k
                                                                              \
255
52.9k
    ss[0] = ss[1];                                                            \
256
52.9k
    ss[1] = ss[2];                                                            \
257
52.9k
    ss[2] = ss[3];                                                            \
258
52.9k
  }
259
260
#define CONVOLVE_SR_HORIZONTAL_FILTER(CONVOLVE_LOWBD)                 \
261
  for (i = 0; i < (im_h - 2); i += 2) {                               \
262
    __m256i data = _mm256_castsi128_si256(                            \
263
        _mm_loadu_si128((__m128i *)&src_ptr[(i * src_stride) + j]));  \
264
    data = _mm256_inserti128_si256(                                   \
265
        data,                                                         \
266
        _mm_loadu_si128(                                              \
267
            (__m128i *)&src_ptr[(i * src_stride) + j + src_stride]),  \
268
        1);                                                           \
269
    __m256i res = CONVOLVE_LOWBD(data, coeffs_h, filt);               \
270
    res = _mm256_srai_epi16(_mm256_add_epi16(res, round_const_h), 2); \
271
    _mm256_store_si256((__m256i *)&im_block[i * im_stride], res);     \
272
  }                                                                   \
273
  __m256i data_1 = _mm256_castsi128_si256(                            \
274
      _mm_loadu_si128((__m128i *)&src_ptr[(i * src_stride) + j]));    \
275
  __m256i res = CONVOLVE_LOWBD(data_1, coeffs_h, filt);               \
276
  res = _mm256_srai_epi16(_mm256_add_epi16(res, round_const_h), 2);   \
277
  _mm256_store_si256((__m256i *)&im_block[i * im_stride], res);
278
279
#define CONVOLVE_SR_HORIZONTAL_FILTER_2TAP \
280
  CONVOLVE_SR_HORIZONTAL_FILTER(convolve_lowbd_x_2tap)
281
282
#define CONVOLVE_SR_HORIZONTAL_FILTER_4TAP \
283
  CONVOLVE_SR_HORIZONTAL_FILTER(convolve_lowbd_x_4tap)
284
285
#define CONVOLVE_SR_HORIZONTAL_FILTER_6TAP \
286
  CONVOLVE_SR_HORIZONTAL_FILTER(convolve_lowbd_x_6tap)
287
288
#define CONVOLVE_SR_HORIZONTAL_FILTER_8TAP \
289
  CONVOLVE_SR_HORIZONTAL_FILTER(convolve_lowbd_x)
290
291
static inline void sr_2d_ver_round_and_store(__m256i res_a, __m256i res_b,
292
                                             uint8_t *dst, int dst_stride,
293
12.4M
                                             __m256i round_const_v) {
294
12.4M
  const __m256i res_a_round =
295
12.4M
      _mm256_srai_epi32(_mm256_add_epi32(res_a, round_const_v), 11);
296
12.4M
  const __m256i res_b_round =
297
12.4M
      _mm256_srai_epi32(_mm256_add_epi32(res_b, round_const_v), 11);
298
12.4M
  const __m256i r16 = _mm256_packs_epi32(res_a_round, res_b_round);
299
12.4M
  const __m256i r8 = _mm256_packus_epi16(r16, r16);
300
301
12.4M
  _mm_storel_epi64((__m128i *)dst, _mm256_castsi256_si128(r8));
302
12.4M
  _mm_storel_epi64((__m128i *)(dst + dst_stride),
303
12.4M
                   _mm256_extracti128_si256(r8, 1));
304
12.4M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:sr_2d_ver_round_and_store
Unexecuted instantiation: highbd_convolve_avx2.c:sr_2d_ver_round_and_store
convolve_2d_avx2.c:sr_2d_ver_round_and_store
Line
Count
Source
293
12.4M
                                             __m256i round_const_v) {
294
12.4M
  const __m256i res_a_round =
295
12.4M
      _mm256_srai_epi32(_mm256_add_epi32(res_a, round_const_v), 11);
296
12.4M
  const __m256i res_b_round =
297
12.4M
      _mm256_srai_epi32(_mm256_add_epi32(res_b, round_const_v), 11);
298
12.4M
  const __m256i r16 = _mm256_packs_epi32(res_a_round, res_b_round);
299
12.4M
  const __m256i r8 = _mm256_packus_epi16(r16, r16);
300
301
12.4M
  _mm_storel_epi64((__m128i *)dst, _mm256_castsi256_si128(r8));
302
12.4M
  _mm_storel_epi64((__m128i *)(dst + dst_stride),
303
                   _mm256_extracti128_si256(r8, 1));
304
12.4M
}
Unexecuted instantiation: convolve_avx2.c:sr_2d_ver_round_and_store
Unexecuted instantiation: jnt_convolve_avx2.c:sr_2d_ver_round_and_store
Unexecuted instantiation: wiener_convolve_avx2.c:sr_2d_ver_round_and_store
Unexecuted instantiation: highbd_convolve_2d_avx2.c:sr_2d_ver_round_and_store
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:sr_2d_ver_round_and_store
305
306
#define CONVOLVE_SR_VERTICAL_FILTER_2TAP                                      \
307
464k
  for (i = 0; i < h; i += 2) {                                                \
308
430k
    __m256i s[2];                                                             \
309
430k
    const int16_t *data = &im_block[i * im_stride];                           \
310
430k
    const __m256i s1 = _mm256_loadu_si256((__m256i *)(data + 0 * im_stride)); \
311
430k
    const __m256i s2 = _mm256_loadu_si256((__m256i *)(data + 1 * im_stride)); \
312
430k
    s[0] = _mm256_unpacklo_epi16(s1, s2);                                     \
313
430k
    s[1] = _mm256_unpackhi_epi16(s1, s2);                                     \
314
430k
                                                                              \
315
430k
    __m256i res_a = _mm256_madd_epi16(s[0], coeffs_v[0]);                     \
316
430k
    __m256i res_b = _mm256_madd_epi16(s[1], coeffs_v[0]);                     \
317
430k
                                                                              \
318
430k
    sr_2d_ver_round_and_store(res_a, res_b, dst_ptr, dst_stride,              \
319
430k
                              round_const_v);                                 \
320
430k
    dst_ptr += 2 * dst_stride;                                                \
321
430k
  }
322
323
#define CONVOLVE_SR_VERTICAL_FILTER_4TAP                                      \
324
551k
  __m256i s[6];                                                               \
325
551k
  __m256i src_0 = _mm256_loadu_si256((__m256i *)(im_block + 0 * im_stride));  \
326
551k
  __m256i src_1 = _mm256_loadu_si256((__m256i *)(im_block + 1 * im_stride));  \
327
551k
                                                                              \
328
551k
  s[0] = _mm256_unpacklo_epi16(src_0, src_1);                                 \
329
551k
  s[2] = _mm256_unpackhi_epi16(src_0, src_1);                                 \
330
551k
                                                                              \
331
2.12M
  for (i = 0; i < h; i += 2) {                                                \
332
1.57M
    const int16_t *data = &im_block[i * im_stride];                           \
333
1.57M
    const __m256i s4 = _mm256_loadu_si256((__m256i *)(data + 2 * im_stride)); \
334
1.57M
    const __m256i s5 = _mm256_loadu_si256((__m256i *)(data + 3 * im_stride)); \
335
1.57M
    s[1] = _mm256_unpacklo_epi16(s4, s5);                                     \
336
1.57M
    s[3] = _mm256_unpackhi_epi16(s4, s5);                                     \
337
1.57M
                                                                              \
338
1.57M
    __m256i res_a = convolve_4tap(s, coeffs_v);                               \
339
1.57M
    __m256i res_b = convolve_4tap(s + 2, coeffs_v);                           \
340
1.57M
                                                                              \
341
1.57M
    sr_2d_ver_round_and_store(res_a, res_b, dst_ptr, dst_stride,              \
342
1.57M
                              round_const_v);                                 \
343
1.57M
    dst_ptr += 2 * dst_stride;                                                \
344
1.57M
                                                                              \
345
1.57M
    s[0] = s[1];                                                              \
346
1.57M
    s[2] = s[3];                                                              \
347
1.57M
  }
348
349
#define CONVOLVE_SR_VERTICAL_FILTER_6TAP                                      \
350
766k
  __m256i src_0 = _mm256_loadu_si256((__m256i *)(im_block + 0 * im_stride));  \
351
766k
  __m256i src_1 = _mm256_loadu_si256((__m256i *)(im_block + 1 * im_stride));  \
352
766k
  __m256i src_2 = _mm256_loadu_si256((__m256i *)(im_block + 2 * im_stride));  \
353
766k
  __m256i src_3 = _mm256_loadu_si256((__m256i *)(im_block + 3 * im_stride));  \
354
766k
                                                                              \
355
766k
  __m256i s[8];                                                               \
356
766k
  s[0] = _mm256_unpacklo_epi16(src_0, src_1);                                 \
357
766k
  s[1] = _mm256_unpacklo_epi16(src_2, src_3);                                 \
358
766k
                                                                              \
359
766k
  s[3] = _mm256_unpackhi_epi16(src_0, src_1);                                 \
360
766k
  s[4] = _mm256_unpackhi_epi16(src_2, src_3);                                 \
361
766k
                                                                              \
362
9.24M
  for (i = 0; i < h; i += 2) {                                                \
363
8.47M
    const int16_t *data = &im_block[i * im_stride];                           \
364
8.47M
                                                                              \
365
8.47M
    const __m256i s6 = _mm256_loadu_si256((__m256i *)(data + 4 * im_stride)); \
366
8.47M
    const __m256i s7 = _mm256_loadu_si256((__m256i *)(data + 5 * im_stride)); \
367
8.47M
                                                                              \
368
8.47M
    s[2] = _mm256_unpacklo_epi16(s6, s7);                                     \
369
8.47M
    s[5] = _mm256_unpackhi_epi16(s6, s7);                                     \
370
8.47M
                                                                              \
371
8.47M
    __m256i res_a = convolve_6tap(s, coeffs_v);                               \
372
8.47M
    __m256i res_b = convolve_6tap(s + 3, coeffs_v);                           \
373
8.47M
                                                                              \
374
8.47M
    sr_2d_ver_round_and_store(res_a, res_b, dst_ptr, dst_stride,              \
375
8.47M
                              round_const_v);                                 \
376
8.47M
    dst_ptr += 2 * dst_stride;                                                \
377
8.47M
                                                                              \
378
8.47M
    s[0] = s[1];                                                              \
379
8.47M
    s[1] = s[2];                                                              \
380
8.47M
                                                                              \
381
8.47M
    s[3] = s[4];                                                              \
382
8.47M
    s[4] = s[5];                                                              \
383
8.47M
  }
384
385
#define CONVOLVE_SR_VERTICAL_FILTER_8TAP                                      \
386
160k
  __m256i src_0 = _mm256_loadu_si256((__m256i *)(im_block + 0 * im_stride));  \
387
160k
  __m256i src_1 = _mm256_loadu_si256((__m256i *)(im_block + 1 * im_stride));  \
388
160k
  __m256i src_2 = _mm256_loadu_si256((__m256i *)(im_block + 2 * im_stride));  \
389
160k
  __m256i src_3 = _mm256_loadu_si256((__m256i *)(im_block + 3 * im_stride));  \
390
160k
  __m256i src_4 = _mm256_loadu_si256((__m256i *)(im_block + 4 * im_stride));  \
391
160k
  __m256i src_5 = _mm256_loadu_si256((__m256i *)(im_block + 5 * im_stride));  \
392
160k
                                                                              \
393
160k
  __m256i s[8];                                                               \
394
160k
  s[0] = _mm256_unpacklo_epi16(src_0, src_1);                                 \
395
160k
  s[1] = _mm256_unpacklo_epi16(src_2, src_3);                                 \
396
160k
  s[2] = _mm256_unpacklo_epi16(src_4, src_5);                                 \
397
160k
                                                                              \
398
160k
  s[4] = _mm256_unpackhi_epi16(src_0, src_1);                                 \
399
160k
  s[5] = _mm256_unpackhi_epi16(src_2, src_3);                                 \
400
160k
  s[6] = _mm256_unpackhi_epi16(src_4, src_5);                                 \
401
160k
                                                                              \
402
2.11M
  for (i = 0; i < h; i += 2) {                                                \
403
1.95M
    const int16_t *data = &im_block[i * im_stride];                           \
404
1.95M
                                                                              \
405
1.95M
    const __m256i s6 = _mm256_loadu_si256((__m256i *)(data + 6 * im_stride)); \
406
1.95M
    const __m256i s7 = _mm256_loadu_si256((__m256i *)(data + 7 * im_stride)); \
407
1.95M
                                                                              \
408
1.95M
    s[3] = _mm256_unpacklo_epi16(s6, s7);                                     \
409
1.95M
    s[7] = _mm256_unpackhi_epi16(s6, s7);                                     \
410
1.95M
                                                                              \
411
1.95M
    __m256i res_a = convolve(s, coeffs_v);                                    \
412
1.95M
    __m256i res_b = convolve(s + 4, coeffs_v);                                \
413
1.95M
                                                                              \
414
1.95M
    sr_2d_ver_round_and_store(res_a, res_b, dst_ptr, dst_stride,              \
415
1.95M
                              round_const_v);                                 \
416
1.95M
    dst_ptr += 2 * dst_stride;                                                \
417
1.95M
                                                                              \
418
1.95M
    s[0] = s[1];                                                              \
419
1.95M
    s[1] = s[2];                                                              \
420
1.95M
    s[2] = s[3];                                                              \
421
1.95M
                                                                              \
422
1.95M
    s[4] = s[5];                                                              \
423
1.95M
    s[5] = s[6];                                                              \
424
1.95M
    s[6] = s[7];                                                              \
425
1.95M
  }
426
427
#define CONVOLVE_SR_VERTICAL_FILTER_12TAP                                      \
428
0
  __m256i src_0 = _mm256_loadu_si256((__m256i *)(im_block + 0 * im_stride));   \
429
0
  __m256i src_1 = _mm256_loadu_si256((__m256i *)(im_block + 1 * im_stride));   \
430
0
  __m256i src_2 = _mm256_loadu_si256((__m256i *)(im_block + 2 * im_stride));   \
431
0
  __m256i src_3 = _mm256_loadu_si256((__m256i *)(im_block + 3 * im_stride));   \
432
0
  __m256i src_4 = _mm256_loadu_si256((__m256i *)(im_block + 4 * im_stride));   \
433
0
  __m256i src_5 = _mm256_loadu_si256((__m256i *)(im_block + 5 * im_stride));   \
434
0
  __m256i src_6 = _mm256_loadu_si256((__m256i *)(im_block + 6 * im_stride));   \
435
0
  __m256i src_7 = _mm256_loadu_si256((__m256i *)(im_block + 7 * im_stride));   \
436
0
  __m256i src_8 = _mm256_loadu_si256((__m256i *)(im_block + 8 * im_stride));   \
437
0
  __m256i src_9 = _mm256_loadu_si256((__m256i *)(im_block + 9 * im_stride));   \
438
0
                                                                               \
439
0
  s[0] = _mm256_unpacklo_epi16(src_0, src_1);                                  \
440
0
  s[1] = _mm256_unpacklo_epi16(src_2, src_3);                                  \
441
0
  s[2] = _mm256_unpacklo_epi16(src_4, src_5);                                  \
442
0
  s[3] = _mm256_unpacklo_epi16(src_6, src_7);                                  \
443
0
  s[4] = _mm256_unpacklo_epi16(src_8, src_9);                                  \
444
0
                                                                               \
445
0
  s[6] = _mm256_unpackhi_epi16(src_0, src_1);                                  \
446
0
  s[7] = _mm256_unpackhi_epi16(src_2, src_3);                                  \
447
0
  s[8] = _mm256_unpackhi_epi16(src_4, src_5);                                  \
448
0
  s[9] = _mm256_unpackhi_epi16(src_6, src_7);                                  \
449
0
  s[10] = _mm256_unpackhi_epi16(src_8, src_9);                                 \
450
0
                                                                               \
451
0
  for (i = 0; i < h; i += 2) {                                                 \
452
0
    const int16_t *data = &im_block[i * im_stride];                            \
453
0
                                                                               \
454
0
    const __m256i s6 = _mm256_loadu_si256((__m256i *)(data + 10 * im_stride)); \
455
0
    const __m256i s7 = _mm256_loadu_si256((__m256i *)(data + 11 * im_stride)); \
456
0
                                                                               \
457
0
    s[5] = _mm256_unpacklo_epi16(s6, s7);                                      \
458
0
    s[11] = _mm256_unpackhi_epi16(s6, s7);                                     \
459
0
                                                                               \
460
0
    __m256i res_a = convolve_12taps(s, coeffs_v);                              \
461
0
    __m256i res_b = convolve_12taps(s + 6, coeffs_v);                          \
462
0
                                                                               \
463
0
    res_a =                                                                    \
464
0
        _mm256_sra_epi32(_mm256_add_epi32(res_a, sum_round_v), sum_shift_v);   \
465
0
    res_b =                                                                    \
466
0
        _mm256_sra_epi32(_mm256_add_epi32(res_b, sum_round_v), sum_shift_v);   \
467
0
                                                                               \
468
0
    const __m256i res_a_round = _mm256_sra_epi32(                              \
469
0
        _mm256_add_epi32(res_a, round_const_v), round_shift_v);                \
470
0
    const __m256i res_b_round = _mm256_sra_epi32(                              \
471
0
        _mm256_add_epi32(res_b, round_const_v), round_shift_v);                \
472
0
                                                                               \
473
0
    const __m256i res_16bit = _mm256_packs_epi32(res_a_round, res_b_round);    \
474
0
    const __m256i res_8b = _mm256_packus_epi16(res_16bit, res_16bit);          \
475
0
                                                                               \
476
0
    const __m128i res_0 = _mm256_castsi256_si128(res_8b);                      \
477
0
    const __m128i res_1 = _mm256_extracti128_si256(res_8b, 1);                 \
478
0
                                                                               \
479
0
    __m128i *const p_0 = (__m128i *)&dst[i * dst_stride + j];                  \
480
0
    __m128i *const p_1 = (__m128i *)&dst[i * dst_stride + j + dst_stride];     \
481
0
    if (w - j > 4) {                                                           \
482
0
      _mm_storel_epi64(p_0, res_0);                                            \
483
0
      _mm_storel_epi64(p_1, res_1);                                            \
484
0
    } else if (w == 4) {                                                       \
485
0
      xx_storel_32(p_0, res_0);                                                \
486
0
      xx_storel_32(p_1, res_1);                                                \
487
0
    } else {                                                                   \
488
0
      *(uint16_t *)p_0 = (uint16_t)_mm_cvtsi128_si32(res_0);                   \
489
0
      *(uint16_t *)p_1 = (uint16_t)_mm_cvtsi128_si32(res_1);                   \
490
0
    }                                                                          \
491
0
                                                                               \
492
0
    s[0] = s[1];                                                               \
493
0
    s[1] = s[2];                                                               \
494
0
    s[2] = s[3];                                                               \
495
0
    s[3] = s[4];                                                               \
496
0
    s[4] = s[5];                                                               \
497
0
                                                                               \
498
0
    s[6] = s[7];                                                               \
499
0
    s[7] = s[8];                                                               \
500
0
    s[8] = s[9];                                                               \
501
0
    s[9] = s[10];                                                              \
502
0
    s[10] = s[11];                                                             \
503
0
  }
504
505
#define JNT_CONVOLVE_PROCESS_OUTPUT(res_unsigned, j_off)                       \
506
2.51M
  do {                                                                         \
507
2.51M
    if (do_average) {                                                          \
508
1.05M
      const __m256i data_ref_0 =                                               \
509
1.05M
          load_line2_avx2(&dst[i * dst_stride + (j_off)],                      \
510
1.05M
                          &dst[i * dst_stride + (j_off) + dst_stride]);        \
511
1.05M
      const __m256i comp_avg_res =                                             \
512
1.05M
          comp_avg(&data_ref_0, &(res_unsigned), &wt, use_dist_wtd_comp_avg);  \
513
1.05M
      const __m256i res_signed = _mm256_sub_epi16(comp_avg_res, offset_const); \
514
1.05M
      const __m256i round_result =                                             \
515
1.05M
          _mm256_srai_epi16(_mm256_add_epi16(res_signed, rounding_const), 4);  \
516
1.05M
      const __m256i res_8 = _mm256_packus_epi16(round_result, round_result);   \
517
1.05M
      const __m128i res_0 = _mm256_castsi256_si128(res_8);                     \
518
1.05M
      const __m128i res_1 = _mm256_extracti128_si256(res_8, 1);                \
519
1.05M
      if (w - (j_off) > 4) {                                                   \
520
1.02M
        _mm_storel_epi64((__m128i *)(&dst0[i * dst_stride0 + (j_off)]),        \
521
1.02M
                         res_0);                                               \
522
1.02M
        _mm_storel_epi64(                                                      \
523
1.02M
            (__m128i *)(&dst0[i * dst_stride0 + (j_off) + dst_stride0]),       \
524
1.02M
            res_1);                                                            \
525
1.02M
      } else {                                                                 \
526
33.0k
        *(int *)(&dst0[i * dst_stride0 + (j_off)]) = _mm_cvtsi128_si32(res_0); \
527
33.0k
        *(int *)(&dst0[i * dst_stride0 + (j_off) + dst_stride0]) =             \
528
33.0k
            _mm_cvtsi128_si32(res_1);                                          \
529
33.0k
      }                                                                        \
530
1.45M
    } else {                                                                   \
531
1.45M
      const __m128i res_0 = _mm256_castsi256_si128(res_unsigned);              \
532
1.45M
      _mm_store_si128((__m128i *)(&dst[i * dst_stride + (j_off)]), res_0);     \
533
1.45M
      const __m128i res_1 = _mm256_extracti128_si256(res_unsigned, 1);         \
534
1.45M
      _mm_store_si128(                                                         \
535
1.45M
          (__m128i *)(&dst[i * dst_stride + (j_off) + dst_stride]), res_1);    \
536
1.45M
    }                                                                          \
537
2.51M
  } while (0)
538
539
#define JNT_CONVOLVE_HORIZONTAL_FILTER(src_h_start, convolve_fn, coeffs) \
540
344k
  do {                                                                   \
541
344k
    const uint8_t *src_h = (src_h_start);                                \
542
4.83M
    for (i = 0; i < im_h; i += 2) {                                      \
543
4.49M
      const __m256i data = load_line2_avx2(src_h, src_h + src_stride);   \
544
4.49M
      src_h += (src_stride << 1);                                        \
545
4.49M
      __m256i res = convolve_fn(data, coeffs, filt);                     \
546
4.49M
      res = _mm256_srai_epi16(_mm256_add_epi16(res, round_const_h), 2);  \
547
4.49M
      _mm256_store_si256((__m256i *)&im_block[i * im_stride], res);      \
548
4.49M
    }                                                                    \
549
344k
  } while (0)
550
551
#define JNT_CONVOLVE_VERTICAL_FILTER_8TAP                                     \
552
221k
  do {                                                                        \
553
221k
    __m256i s[8];                                                             \
554
221k
    __m256i s0 = _mm256_loadu_si256((__m256i *)(im_block + 0 * im_stride));   \
555
221k
    __m256i s1 = _mm256_loadu_si256((__m256i *)(im_block + 1 * im_stride));   \
556
221k
    __m256i s2 = _mm256_loadu_si256((__m256i *)(im_block + 2 * im_stride));   \
557
221k
    __m256i s3 = _mm256_loadu_si256((__m256i *)(im_block + 3 * im_stride));   \
558
221k
    __m256i s4 = _mm256_loadu_si256((__m256i *)(im_block + 4 * im_stride));   \
559
221k
    __m256i s5 = _mm256_loadu_si256((__m256i *)(im_block + 5 * im_stride));   \
560
221k
                                                                              \
561
221k
    s[0] = _mm256_unpacklo_epi16(s0, s1);                                     \
562
221k
    s[1] = _mm256_unpacklo_epi16(s2, s3);                                     \
563
221k
    s[2] = _mm256_unpacklo_epi16(s4, s5);                                     \
564
221k
                                                                              \
565
221k
    s[4] = _mm256_unpackhi_epi16(s0, s1);                                     \
566
221k
    s[5] = _mm256_unpackhi_epi16(s2, s3);                                     \
567
221k
    s[6] = _mm256_unpackhi_epi16(s4, s5);                                     \
568
221k
                                                                              \
569
2.73M
    for (i = 0; i < h; i += 2) {                                              \
570
2.51M
      const int16_t *data = &im_block[i * im_stride];                         \
571
2.51M
                                                                              \
572
2.51M
      const __m256i s6 =                                                      \
573
2.51M
          _mm256_loadu_si256((__m256i *)(data + 6 * im_stride));              \
574
2.51M
      const __m256i s7 =                                                      \
575
2.51M
          _mm256_loadu_si256((__m256i *)(data + 7 * im_stride));              \
576
2.51M
                                                                              \
577
2.51M
      s[3] = _mm256_unpacklo_epi16(s6, s7);                                   \
578
2.51M
      s[7] = _mm256_unpackhi_epi16(s6, s7);                                   \
579
2.51M
                                                                              \
580
2.51M
      const __m256i res_a = convolve(s, coeffs_y);                            \
581
2.51M
      const __m256i res_a_round =                                             \
582
2.51M
          _mm256_srai_epi32(_mm256_add_epi32(res_a, round_const_v), 7);       \
583
2.51M
                                                                              \
584
2.51M
      if (w - j > 4) {                                                        \
585
2.44M
        const __m256i res_b = convolve(s + 4, coeffs_y);                      \
586
2.44M
        const __m256i res_b_round =                                           \
587
2.44M
            _mm256_srai_epi32(_mm256_add_epi32(res_b, round_const_v), 7);     \
588
2.44M
        const __m256i res_16b = _mm256_packs_epi32(res_a_round, res_b_round); \
589
2.44M
        const __m256i res_unsigned = _mm256_add_epi16(res_16b, offset_const); \
590
2.44M
        JNT_CONVOLVE_PROCESS_OUTPUT(res_unsigned, j);                         \
591
2.44M
      } else {                                                                \
592
75.3k
        const __m256i res_16b = _mm256_packs_epi32(res_a_round, res_a_round); \
593
75.3k
        const __m256i res_unsigned = _mm256_add_epi16(res_16b, offset_const); \
594
75.3k
        JNT_CONVOLVE_PROCESS_OUTPUT(res_unsigned, j);                         \
595
75.3k
      }                                                                       \
596
2.51M
                                                                              \
597
2.51M
      s[0] = s[1];                                                            \
598
2.51M
      s[1] = s[2];                                                            \
599
2.51M
      s[2] = s[3];                                                            \
600
2.51M
                                                                              \
601
2.51M
      s[4] = s[5];                                                            \
602
2.51M
      s[5] = s[6];                                                            \
603
2.51M
      s[6] = s[7];                                                            \
604
2.51M
    }                                                                         \
605
221k
  } while (0)
606
607
static inline void prepare_coeffs_2t_ssse3(
608
    const InterpFilterParams *const filter_params, const int32_t subpel_q4,
609
36.6k
    __m128i *const coeffs /* [4] */) {
610
36.6k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
611
36.6k
      filter_params, subpel_q4 & SUBPEL_MASK);
612
36.6k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
613
614
  // right shift all filter co-efficients by 1 to reduce the bits required.
615
  // This extra right shift will be taken care of at the end while rounding
616
  // the result.
617
  // Since all filter co-efficients are even, this change will not affect the
618
  // end result
619
36.6k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
620
36.6k
                            _mm_set1_epi16((short)0xffff)));
621
622
36.6k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
623
624
  // coeffs 3 4 3 4 3 4 3 4
625
36.6k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0806u));
626
36.6k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:prepare_coeffs_2t_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:prepare_coeffs_2t_ssse3
convolve_2d_avx2.c:prepare_coeffs_2t_ssse3
Line
Count
Source
609
18.2k
    __m128i *const coeffs /* [4] */) {
610
18.2k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
611
18.2k
      filter_params, subpel_q4 & SUBPEL_MASK);
612
18.2k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
613
614
  // right shift all filter co-efficients by 1 to reduce the bits required.
615
  // This extra right shift will be taken care of at the end while rounding
616
  // the result.
617
  // Since all filter co-efficients are even, this change will not affect the
618
  // end result
619
18.2k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
620
18.2k
                            _mm_set1_epi16((short)0xffff)));
621
622
18.2k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
623
624
  // coeffs 3 4 3 4 3 4 3 4
625
18.2k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0806u));
626
18.2k
}
convolve_avx2.c:prepare_coeffs_2t_ssse3
Line
Count
Source
609
18.3k
    __m128i *const coeffs /* [4] */) {
610
18.3k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
611
18.3k
      filter_params, subpel_q4 & SUBPEL_MASK);
612
18.3k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
613
614
  // right shift all filter co-efficients by 1 to reduce the bits required.
615
  // This extra right shift will be taken care of at the end while rounding
616
  // the result.
617
  // Since all filter co-efficients are even, this change will not affect the
618
  // end result
619
18.3k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
620
18.3k
                            _mm_set1_epi16((short)0xffff)));
621
622
18.3k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
623
624
  // coeffs 3 4 3 4 3 4 3 4
625
18.3k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0806u));
626
18.3k
}
Unexecuted instantiation: jnt_convolve_avx2.c:prepare_coeffs_2t_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:prepare_coeffs_2t_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:prepare_coeffs_2t_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:prepare_coeffs_2t_ssse3
627
628
static inline void prepare_coeffs_4t_ssse3(
629
    const InterpFilterParams *const filter_params, const int32_t subpel_q4,
630
888k
    __m128i *const coeffs /* [4] */) {
631
888k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
632
888k
      filter_params, subpel_q4 & SUBPEL_MASK);
633
888k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
634
635
  // right shift all filter co-efficients by 1 to reduce the bits required.
636
  // This extra right shift will be taken care of at the end while rounding
637
  // the result.
638
  // Since all filter co-efficients are even, this change will not affect the
639
  // end result
640
888k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
641
888k
                            _mm_set1_epi16((short)0xffff)));
642
643
888k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
644
645
  // coeffs 2 3 2 3 2 3 2 3
646
888k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0604u));
647
  // coeffs 4 5 4 5 4 5 4 5
648
888k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0a08u));
649
888k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:prepare_coeffs_4t_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:prepare_coeffs_4t_ssse3
convolve_2d_avx2.c:prepare_coeffs_4t_ssse3
Line
Count
Source
630
588k
    __m128i *const coeffs /* [4] */) {
631
588k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
632
588k
      filter_params, subpel_q4 & SUBPEL_MASK);
633
588k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
634
635
  // right shift all filter co-efficients by 1 to reduce the bits required.
636
  // This extra right shift will be taken care of at the end while rounding
637
  // the result.
638
  // Since all filter co-efficients are even, this change will not affect the
639
  // end result
640
588k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
641
588k
                            _mm_set1_epi16((short)0xffff)));
642
643
588k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
644
645
  // coeffs 2 3 2 3 2 3 2 3
646
588k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0604u));
647
  // coeffs 4 5 4 5 4 5 4 5
648
588k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0a08u));
649
588k
}
convolve_avx2.c:prepare_coeffs_4t_ssse3
Line
Count
Source
630
300k
    __m128i *const coeffs /* [4] */) {
631
300k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
632
300k
      filter_params, subpel_q4 & SUBPEL_MASK);
633
300k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
634
635
  // right shift all filter co-efficients by 1 to reduce the bits required.
636
  // This extra right shift will be taken care of at the end while rounding
637
  // the result.
638
  // Since all filter co-efficients are even, this change will not affect the
639
  // end result
640
300k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
641
300k
                            _mm_set1_epi16((short)0xffff)));
642
643
300k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
644
645
  // coeffs 2 3 2 3 2 3 2 3
646
300k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0604u));
647
  // coeffs 4 5 4 5 4 5 4 5
648
300k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0a08u));
649
300k
}
Unexecuted instantiation: jnt_convolve_avx2.c:prepare_coeffs_4t_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:prepare_coeffs_4t_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:prepare_coeffs_4t_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:prepare_coeffs_4t_ssse3
650
651
static inline void prepare_coeffs_6t_ssse3(
652
    const InterpFilterParams *const filter_params, const int32_t subpel_q4,
653
72.9k
    __m128i *const coeffs /* [4] */) {
654
72.9k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
655
72.9k
      filter_params, subpel_q4 & SUBPEL_MASK);
656
72.9k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
657
658
  // right shift all filter co-efficients by 1 to reduce the bits required.
659
  // This extra right shift will be taken care of at the end while rounding
660
  // the result.
661
  // Since all filter co-efficients are even, this change will not affect the
662
  // end result
663
72.9k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
664
72.9k
                            _mm_set1_epi16((short)0xffff)));
665
666
72.9k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
667
668
  // coeffs 2 3 2 3 2 3 2 3
669
72.9k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0402u));
670
  // coeffs 4 5 4 5 4 5 4 5
671
72.9k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0806u));
672
  // coeffs 5 6 5 6 5 6 5 6
673
72.9k
  coeffs[2] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0c0au));
674
72.9k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:prepare_coeffs_6t_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:prepare_coeffs_6t_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:prepare_coeffs_6t_ssse3
convolve_avx2.c:prepare_coeffs_6t_ssse3
Line
Count
Source
653
72.9k
    __m128i *const coeffs /* [4] */) {
654
72.9k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
655
72.9k
      filter_params, subpel_q4 & SUBPEL_MASK);
656
72.9k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
657
658
  // right shift all filter co-efficients by 1 to reduce the bits required.
659
  // This extra right shift will be taken care of at the end while rounding
660
  // the result.
661
  // Since all filter co-efficients are even, this change will not affect the
662
  // end result
663
72.9k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
664
72.9k
                            _mm_set1_epi16((short)0xffff)));
665
666
72.9k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
667
668
  // coeffs 2 3 2 3 2 3 2 3
669
72.9k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0402u));
670
  // coeffs 4 5 4 5 4 5 4 5
671
72.9k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0806u));
672
  // coeffs 5 6 5 6 5 6 5 6
673
72.9k
  coeffs[2] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0c0au));
674
72.9k
}
Unexecuted instantiation: jnt_convolve_avx2.c:prepare_coeffs_6t_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:prepare_coeffs_6t_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:prepare_coeffs_6t_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:prepare_coeffs_6t_ssse3
675
676
static inline void prepare_coeffs_ssse3(
677
    const InterpFilterParams *const filter_params, const int32_t subpel_q4,
678
6.14k
    __m128i *const coeffs /* [4] */) {
679
6.14k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
680
6.14k
      filter_params, subpel_q4 & SUBPEL_MASK);
681
6.14k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
682
683
  // right shift all filter co-efficients by 1 to reduce the bits required.
684
  // This extra right shift will be taken care of at the end while rounding
685
  // the result.
686
  // Since all filter co-efficients are even, this change will not affect the
687
  // end result
688
6.14k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
689
6.14k
                            _mm_set1_epi16((short)0xffff)));
690
691
6.14k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
692
693
  // coeffs 0 1 0 1 0 1 0 1
694
6.14k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0200u));
695
  // coeffs 2 3 2 3 2 3 2 3
696
6.14k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0604u));
697
  // coeffs 4 5 4 5 4 5 4 5
698
6.14k
  coeffs[2] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0a08u));
699
  // coeffs 6 7 6 7 6 7 6 7
700
6.14k
  coeffs[3] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0e0cu));
701
6.14k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:prepare_coeffs_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:prepare_coeffs_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:prepare_coeffs_ssse3
convolve_avx2.c:prepare_coeffs_ssse3
Line
Count
Source
678
6.14k
    __m128i *const coeffs /* [4] */) {
679
6.14k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
680
6.14k
      filter_params, subpel_q4 & SUBPEL_MASK);
681
6.14k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
682
683
  // right shift all filter co-efficients by 1 to reduce the bits required.
684
  // This extra right shift will be taken care of at the end while rounding
685
  // the result.
686
  // Since all filter co-efficients are even, this change will not affect the
687
  // end result
688
6.14k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
689
6.14k
                            _mm_set1_epi16((short)0xffff)));
690
691
6.14k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
692
693
  // coeffs 0 1 0 1 0 1 0 1
694
6.14k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0200u));
695
  // coeffs 2 3 2 3 2 3 2 3
696
6.14k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0604u));
697
  // coeffs 4 5 4 5 4 5 4 5
698
6.14k
  coeffs[2] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0a08u));
699
  // coeffs 6 7 6 7 6 7 6 7
700
6.14k
  coeffs[3] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0e0cu));
701
6.14k
}
Unexecuted instantiation: jnt_convolve_avx2.c:prepare_coeffs_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:prepare_coeffs_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:prepare_coeffs_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:prepare_coeffs_ssse3
702
703
static inline void prepare_coeffs_2t_lowbd(
704
    const InterpFilterParams *const filter_params, const int subpel_q4,
705
28.4k
    __m256i *const coeffs /* [4] */) {
706
28.4k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
707
28.4k
      filter_params, subpel_q4 & SUBPEL_MASK);
708
28.4k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
709
28.4k
  const __m256i filter_coeffs = _mm256_broadcastsi128_si256(coeffs_8);
710
711
  // right shift all filter co-efficients by 1 to reduce the bits required.
712
  // This extra right shift will be taken care of at the end while rounding
713
  // the result.
714
  // Since all filter co-efficients are even, this change will not affect the
715
  // end result
716
28.4k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
717
28.4k
                            _mm_set1_epi16((int16_t)0xffff)));
718
719
28.4k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
720
721
  // coeffs 3 4 3 4 3 4 3 4
722
28.4k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
723
28.4k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:prepare_coeffs_2t_lowbd
Unexecuted instantiation: highbd_convolve_avx2.c:prepare_coeffs_2t_lowbd
convolve_2d_avx2.c:prepare_coeffs_2t_lowbd
Line
Count
Source
705
17.4k
    __m256i *const coeffs /* [4] */) {
706
17.4k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
707
17.4k
      filter_params, subpel_q4 & SUBPEL_MASK);
708
17.4k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
709
17.4k
  const __m256i filter_coeffs = _mm256_broadcastsi128_si256(coeffs_8);
710
711
  // right shift all filter co-efficients by 1 to reduce the bits required.
712
  // This extra right shift will be taken care of at the end while rounding
713
  // the result.
714
  // Since all filter co-efficients are even, this change will not affect the
715
  // end result
716
17.4k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
717
17.4k
                            _mm_set1_epi16((int16_t)0xffff)));
718
719
17.4k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
720
721
  // coeffs 3 4 3 4 3 4 3 4
722
17.4k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
723
17.4k
}
convolve_avx2.c:prepare_coeffs_2t_lowbd
Line
Count
Source
705
11.0k
    __m256i *const coeffs /* [4] */) {
706
11.0k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
707
11.0k
      filter_params, subpel_q4 & SUBPEL_MASK);
708
11.0k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
709
11.0k
  const __m256i filter_coeffs = _mm256_broadcastsi128_si256(coeffs_8);
710
711
  // right shift all filter co-efficients by 1 to reduce the bits required.
712
  // This extra right shift will be taken care of at the end while rounding
713
  // the result.
714
  // Since all filter co-efficients are even, this change will not affect the
715
  // end result
716
11.0k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
717
11.0k
                            _mm_set1_epi16((int16_t)0xffff)));
718
719
11.0k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
720
721
  // coeffs 3 4 3 4 3 4 3 4
722
11.0k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
723
11.0k
}
Unexecuted instantiation: jnt_convolve_avx2.c:prepare_coeffs_2t_lowbd
Unexecuted instantiation: wiener_convolve_avx2.c:prepare_coeffs_2t_lowbd
Unexecuted instantiation: highbd_convolve_2d_avx2.c:prepare_coeffs_2t_lowbd
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:prepare_coeffs_2t_lowbd
724
725
static inline void prepare_coeffs_4t_lowbd(
726
    const InterpFilterParams *const filter_params, const int subpel_q4,
727
185k
    __m256i *const coeffs /* [4] */) {
728
185k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
729
185k
      filter_params, subpel_q4 & SUBPEL_MASK);
730
185k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
731
185k
  const __m256i filter_coeffs = _mm256_broadcastsi128_si256(coeffs_8);
732
733
  // right shift all filter co-efficients by 1 to reduce the bits required.
734
  // This extra right shift will be taken care of at the end while rounding
735
  // the result.
736
  // Since all filter co-efficients are even, this change will not affect the
737
  // end result
738
185k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
739
185k
                            _mm_set1_epi16((short)0xffff)));
740
741
185k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
742
743
  // coeffs 2 3 2 3 2 3 2 3
744
185k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
745
  // coeffs 4 5 4 5 4 5 4 5
746
185k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
747
185k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:prepare_coeffs_4t_lowbd
Unexecuted instantiation: highbd_convolve_avx2.c:prepare_coeffs_4t_lowbd
convolve_2d_avx2.c:prepare_coeffs_4t_lowbd
Line
Count
Source
727
36.9k
    __m256i *const coeffs /* [4] */) {
728
36.9k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
729
36.9k
      filter_params, subpel_q4 & SUBPEL_MASK);
730
36.9k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
731
36.9k
  const __m256i filter_coeffs = _mm256_broadcastsi128_si256(coeffs_8);
732
733
  // right shift all filter co-efficients by 1 to reduce the bits required.
734
  // This extra right shift will be taken care of at the end while rounding
735
  // the result.
736
  // Since all filter co-efficients are even, this change will not affect the
737
  // end result
738
36.9k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
739
36.9k
                            _mm_set1_epi16((short)0xffff)));
740
741
36.9k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
742
743
  // coeffs 2 3 2 3 2 3 2 3
744
36.9k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
745
  // coeffs 4 5 4 5 4 5 4 5
746
36.9k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
747
36.9k
}
convolve_avx2.c:prepare_coeffs_4t_lowbd
Line
Count
Source
727
148k
    __m256i *const coeffs /* [4] */) {
728
148k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
729
148k
      filter_params, subpel_q4 & SUBPEL_MASK);
730
148k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
731
148k
  const __m256i filter_coeffs = _mm256_broadcastsi128_si256(coeffs_8);
732
733
  // right shift all filter co-efficients by 1 to reduce the bits required.
734
  // This extra right shift will be taken care of at the end while rounding
735
  // the result.
736
  // Since all filter co-efficients are even, this change will not affect the
737
  // end result
738
148k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
739
148k
                            _mm_set1_epi16((short)0xffff)));
740
741
148k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
742
743
  // coeffs 2 3 2 3 2 3 2 3
744
148k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
745
  // coeffs 4 5 4 5 4 5 4 5
746
148k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
747
148k
}
Unexecuted instantiation: jnt_convolve_avx2.c:prepare_coeffs_4t_lowbd
Unexecuted instantiation: wiener_convolve_avx2.c:prepare_coeffs_4t_lowbd
Unexecuted instantiation: highbd_convolve_2d_avx2.c:prepare_coeffs_4t_lowbd
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:prepare_coeffs_4t_lowbd
748
749
static inline void prepare_coeffs_6t_lowbd(
750
    const InterpFilterParams *const filter_params, const int subpel_q4,
751
1.15M
    __m256i *const coeffs /* [4] */) {
752
1.15M
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
753
1.15M
      filter_params, subpel_q4 & SUBPEL_MASK);
754
1.15M
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
755
1.15M
  const __m256i filter_coeffs = _mm256_broadcastsi128_si256(coeffs_8);
756
757
  // right shift all filter co-efficients by 1 to reduce the bits required.
758
  // This extra right shift will be taken care of at the end while rounding
759
  // the result.
760
  // Since all filter co-efficients are even, this change will not affect the
761
  // end result
762
1.15M
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
763
1.15M
                            _mm_set1_epi16((int16_t)0xffff)));
764
765
1.15M
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
766
767
  // coeffs 1 2 1 2 1 2 1 2
768
1.15M
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0402u));
769
  // coeffs 3 4 3 4 3 4 3 4
770
1.15M
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
771
  // coeffs 5 6 5 6 5 6 5 6
772
1.15M
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0c0au));
773
1.15M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:prepare_coeffs_6t_lowbd
Unexecuted instantiation: highbd_convolve_avx2.c:prepare_coeffs_6t_lowbd
convolve_2d_avx2.c:prepare_coeffs_6t_lowbd
Line
Count
Source
751
740k
    __m256i *const coeffs /* [4] */) {
752
740k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
753
740k
      filter_params, subpel_q4 & SUBPEL_MASK);
754
740k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
755
740k
  const __m256i filter_coeffs = _mm256_broadcastsi128_si256(coeffs_8);
756
757
  // right shift all filter co-efficients by 1 to reduce the bits required.
758
  // This extra right shift will be taken care of at the end while rounding
759
  // the result.
760
  // Since all filter co-efficients are even, this change will not affect the
761
  // end result
762
740k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
763
740k
                            _mm_set1_epi16((int16_t)0xffff)));
764
765
740k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
766
767
  // coeffs 1 2 1 2 1 2 1 2
768
740k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0402u));
769
  // coeffs 3 4 3 4 3 4 3 4
770
740k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
771
  // coeffs 5 6 5 6 5 6 5 6
772
740k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0c0au));
773
740k
}
convolve_avx2.c:prepare_coeffs_6t_lowbd
Line
Count
Source
751
418k
    __m256i *const coeffs /* [4] */) {
752
418k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
753
418k
      filter_params, subpel_q4 & SUBPEL_MASK);
754
418k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
755
418k
  const __m256i filter_coeffs = _mm256_broadcastsi128_si256(coeffs_8);
756
757
  // right shift all filter co-efficients by 1 to reduce the bits required.
758
  // This extra right shift will be taken care of at the end while rounding
759
  // the result.
760
  // Since all filter co-efficients are even, this change will not affect the
761
  // end result
762
418k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
763
418k
                            _mm_set1_epi16((int16_t)0xffff)));
764
765
418k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
766
767
  // coeffs 1 2 1 2 1 2 1 2
768
418k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0402u));
769
  // coeffs 3 4 3 4 3 4 3 4
770
418k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
771
  // coeffs 5 6 5 6 5 6 5 6
772
418k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0c0au));
773
418k
}
Unexecuted instantiation: jnt_convolve_avx2.c:prepare_coeffs_6t_lowbd
Unexecuted instantiation: wiener_convolve_avx2.c:prepare_coeffs_6t_lowbd
Unexecuted instantiation: highbd_convolve_2d_avx2.c:prepare_coeffs_6t_lowbd
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:prepare_coeffs_6t_lowbd
774
775
static inline void prepare_coeffs_lowbd(
776
    const InterpFilterParams *const filter_params, const int subpel_q4,
777
464k
    __m256i *const coeffs /* [4] */) {
778
464k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
779
464k
      filter_params, subpel_q4 & SUBPEL_MASK);
780
464k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
781
464k
  const __m256i filter_coeffs = _mm256_broadcastsi128_si256(coeffs_8);
782
783
  // right shift all filter co-efficients by 1 to reduce the bits required.
784
  // This extra right shift will be taken care of at the end while rounding
785
  // the result.
786
  // Since all filter co-efficients are even, this change will not affect the
787
  // end result
788
464k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
789
464k
                            _mm_set1_epi16((short)0xffff)));
790
791
464k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
792
793
  // coeffs 0 1 0 1 0 1 0 1
794
464k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0200u));
795
  // coeffs 2 3 2 3 2 3 2 3
796
464k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
797
  // coeffs 4 5 4 5 4 5 4 5
798
464k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
799
  // coeffs 6 7 6 7 6 7 6 7
800
464k
  coeffs[3] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0e0cu));
801
464k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:prepare_coeffs_lowbd
Unexecuted instantiation: highbd_convolve_avx2.c:prepare_coeffs_lowbd
convolve_2d_avx2.c:prepare_coeffs_lowbd
Line
Count
Source
777
56.6k
    __m256i *const coeffs /* [4] */) {
778
56.6k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
779
56.6k
      filter_params, subpel_q4 & SUBPEL_MASK);
780
56.6k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
781
56.6k
  const __m256i filter_coeffs = _mm256_broadcastsi128_si256(coeffs_8);
782
783
  // right shift all filter co-efficients by 1 to reduce the bits required.
784
  // This extra right shift will be taken care of at the end while rounding
785
  // the result.
786
  // Since all filter co-efficients are even, this change will not affect the
787
  // end result
788
56.6k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
789
56.6k
                            _mm_set1_epi16((short)0xffff)));
790
791
56.6k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
792
793
  // coeffs 0 1 0 1 0 1 0 1
794
56.6k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0200u));
795
  // coeffs 2 3 2 3 2 3 2 3
796
56.6k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
797
  // coeffs 4 5 4 5 4 5 4 5
798
56.6k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
799
  // coeffs 6 7 6 7 6 7 6 7
800
56.6k
  coeffs[3] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0e0cu));
801
56.6k
}
convolve_avx2.c:prepare_coeffs_lowbd
Line
Count
Source
777
35.8k
    __m256i *const coeffs /* [4] */) {
778
35.8k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
779
35.8k
      filter_params, subpel_q4 & SUBPEL_MASK);
780
35.8k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
781
35.8k
  const __m256i filter_coeffs = _mm256_broadcastsi128_si256(coeffs_8);
782
783
  // right shift all filter co-efficients by 1 to reduce the bits required.
784
  // This extra right shift will be taken care of at the end while rounding
785
  // the result.
786
  // Since all filter co-efficients are even, this change will not affect the
787
  // end result
788
35.8k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
789
35.8k
                            _mm_set1_epi16((short)0xffff)));
790
791
35.8k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
792
793
  // coeffs 0 1 0 1 0 1 0 1
794
35.8k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0200u));
795
  // coeffs 2 3 2 3 2 3 2 3
796
35.8k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
797
  // coeffs 4 5 4 5 4 5 4 5
798
35.8k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
799
  // coeffs 6 7 6 7 6 7 6 7
800
35.8k
  coeffs[3] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0e0cu));
801
35.8k
}
jnt_convolve_avx2.c:prepare_coeffs_lowbd
Line
Count
Source
777
372k
    __m256i *const coeffs /* [4] */) {
778
372k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
779
372k
      filter_params, subpel_q4 & SUBPEL_MASK);
780
372k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
781
372k
  const __m256i filter_coeffs = _mm256_broadcastsi128_si256(coeffs_8);
782
783
  // right shift all filter co-efficients by 1 to reduce the bits required.
784
  // This extra right shift will be taken care of at the end while rounding
785
  // the result.
786
  // Since all filter co-efficients are even, this change will not affect the
787
  // end result
788
372k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
789
372k
                            _mm_set1_epi16((short)0xffff)));
790
791
372k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
792
793
  // coeffs 0 1 0 1 0 1 0 1
794
372k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0200u));
795
  // coeffs 2 3 2 3 2 3 2 3
796
372k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
797
  // coeffs 4 5 4 5 4 5 4 5
798
372k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
799
  // coeffs 6 7 6 7 6 7 6 7
800
372k
  coeffs[3] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0e0cu));
801
372k
}
Unexecuted instantiation: wiener_convolve_avx2.c:prepare_coeffs_lowbd
Unexecuted instantiation: highbd_convolve_2d_avx2.c:prepare_coeffs_lowbd
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:prepare_coeffs_lowbd
802
803
static inline void prepare_coeffs_2t(
804
    const InterpFilterParams *const filter_params, const int subpel_q4,
805
35.7k
    __m256i *const coeffs /* [4] */) {
806
35.7k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
807
35.7k
      filter_params, subpel_q4 & SUBPEL_MASK);
808
809
35.7k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)(filter + 1));
810
35.7k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
811
812
  // coeffs 3 4 3 4 3 4 3 4
813
35.7k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x55);
814
35.7k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:prepare_coeffs_2t
Unexecuted instantiation: highbd_convolve_avx2.c:prepare_coeffs_2t
convolve_2d_avx2.c:prepare_coeffs_2t
Line
Count
Source
805
35.7k
    __m256i *const coeffs /* [4] */) {
806
35.7k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
807
35.7k
      filter_params, subpel_q4 & SUBPEL_MASK);
808
809
35.7k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)(filter + 1));
810
35.7k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
811
812
  // coeffs 3 4 3 4 3 4 3 4
813
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x55);
814
35.7k
}
Unexecuted instantiation: convolve_avx2.c:prepare_coeffs_2t
Unexecuted instantiation: jnt_convolve_avx2.c:prepare_coeffs_2t
Unexecuted instantiation: wiener_convolve_avx2.c:prepare_coeffs_2t
Unexecuted instantiation: highbd_convolve_2d_avx2.c:prepare_coeffs_2t
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:prepare_coeffs_2t
815
816
static inline void prepare_coeffs_4t(
817
    const InterpFilterParams *const filter_params, const int subpel_q4,
818
791k
    __m256i *const coeffs /* [4] */) {
819
791k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
820
791k
      filter_params, subpel_q4 & SUBPEL_MASK);
821
822
791k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
823
791k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
824
  // coeffs 2 3 2 3 2 3 2 3
825
791k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x55);
826
  // coeffs 4 5 4 5 4 5 4 5
827
791k
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0xaa);
828
791k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:prepare_coeffs_4t
Unexecuted instantiation: highbd_convolve_avx2.c:prepare_coeffs_4t
convolve_2d_avx2.c:prepare_coeffs_4t
Line
Count
Source
818
791k
    __m256i *const coeffs /* [4] */) {
819
791k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
820
791k
      filter_params, subpel_q4 & SUBPEL_MASK);
821
822
791k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
823
791k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
824
  // coeffs 2 3 2 3 2 3 2 3
825
791k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x55);
826
  // coeffs 4 5 4 5 4 5 4 5
827
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0xaa);
828
791k
}
Unexecuted instantiation: convolve_avx2.c:prepare_coeffs_4t
Unexecuted instantiation: jnt_convolve_avx2.c:prepare_coeffs_4t
Unexecuted instantiation: wiener_convolve_avx2.c:prepare_coeffs_4t
Unexecuted instantiation: highbd_convolve_2d_avx2.c:prepare_coeffs_4t
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:prepare_coeffs_4t
829
830
static inline void prepare_coeffs_6t(
831
    const InterpFilterParams *const filter_params, const int subpel_q4,
832
580k
    __m256i *const coeffs /* [4] */) {
833
580k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
834
580k
      filter_params, subpel_q4 & SUBPEL_MASK);
835
836
580k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)(filter + 1));
837
580k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
838
839
  // coeffs 1 2 1 2 1 2 1 2
840
580k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
841
  // coeffs 3 4 3 4 3 4 3 4
842
580k
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
843
  // coeffs 5 6 5 6 5 6 5 6
844
580k
  coeffs[2] = _mm256_shuffle_epi32(coeff, 0xaa);
845
580k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:prepare_coeffs_6t
Unexecuted instantiation: highbd_convolve_avx2.c:prepare_coeffs_6t
convolve_2d_avx2.c:prepare_coeffs_6t
Line
Count
Source
832
580k
    __m256i *const coeffs /* [4] */) {
833
580k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
834
580k
      filter_params, subpel_q4 & SUBPEL_MASK);
835
836
580k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)(filter + 1));
837
580k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
838
839
  // coeffs 1 2 1 2 1 2 1 2
840
580k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
841
  // coeffs 3 4 3 4 3 4 3 4
842
580k
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
843
  // coeffs 5 6 5 6 5 6 5 6
844
  coeffs[2] = _mm256_shuffle_epi32(coeff, 0xaa);
845
580k
}
Unexecuted instantiation: convolve_avx2.c:prepare_coeffs_6t
Unexecuted instantiation: jnt_convolve_avx2.c:prepare_coeffs_6t
Unexecuted instantiation: wiener_convolve_avx2.c:prepare_coeffs_6t
Unexecuted instantiation: highbd_convolve_2d_avx2.c:prepare_coeffs_6t
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:prepare_coeffs_6t
846
847
static inline void prepare_coeffs(const InterpFilterParams *const filter_params,
848
                                  const int subpel_q4,
849
9.48M
                                  __m256i *const coeffs /* [4] */) {
850
9.48M
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
9.48M
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
9.48M
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
9.48M
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
9.48M
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
9.48M
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
9.48M
  coeffs[2] = _mm256_shuffle_epi32(coeff, 0xaa);
862
  // coeffs 6 7 6 7 6 7 6 7
863
9.48M
  coeffs[3] = _mm256_shuffle_epi32(coeff, 0xff);
864
9.48M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:prepare_coeffs
highbd_convolve_avx2.c:prepare_coeffs
Line
Count
Source
849
1.90M
                                  __m256i *const coeffs /* [4] */) {
850
1.90M
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
1.90M
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
1.90M
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
1.90M
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
1.90M
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
1.90M
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
1.90M
  coeffs[2] = _mm256_shuffle_epi32(coeff, 0xaa);
862
  // coeffs 6 7 6 7 6 7 6 7
863
  coeffs[3] = _mm256_shuffle_epi32(coeff, 0xff);
864
1.90M
}
convolve_2d_avx2.c:prepare_coeffs
Line
Count
Source
849
50.7k
                                  __m256i *const coeffs /* [4] */) {
850
50.7k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
50.7k
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
50.7k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
50.7k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
50.7k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
50.7k
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
50.7k
  coeffs[2] = _mm256_shuffle_epi32(coeff, 0xaa);
862
  // coeffs 6 7 6 7 6 7 6 7
863
  coeffs[3] = _mm256_shuffle_epi32(coeff, 0xff);
864
50.7k
}
Unexecuted instantiation: convolve_avx2.c:prepare_coeffs
jnt_convolve_avx2.c:prepare_coeffs
Line
Count
Source
849
200k
                                  __m256i *const coeffs /* [4] */) {
850
200k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
200k
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
200k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
200k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
200k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
200k
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
200k
  coeffs[2] = _mm256_shuffle_epi32(coeff, 0xaa);
862
  // coeffs 6 7 6 7 6 7 6 7
863
  coeffs[3] = _mm256_shuffle_epi32(coeff, 0xff);
864
200k
}
Unexecuted instantiation: wiener_convolve_avx2.c:prepare_coeffs
highbd_convolve_2d_avx2.c:prepare_coeffs
Line
Count
Source
849
6.19M
                                  __m256i *const coeffs /* [4] */) {
850
6.19M
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
6.19M
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
6.19M
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
6.19M
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
6.19M
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
6.19M
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
6.19M
  coeffs[2] = _mm256_shuffle_epi32(coeff, 0xaa);
862
  // coeffs 6 7 6 7 6 7 6 7
863
  coeffs[3] = _mm256_shuffle_epi32(coeff, 0xff);
864
6.19M
}
highbd_jnt_convolve_avx2.c:prepare_coeffs
Line
Count
Source
849
1.12M
                                  __m256i *const coeffs /* [4] */) {
850
1.12M
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
1.12M
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
1.12M
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
1.12M
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
1.12M
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
1.12M
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
1.12M
  coeffs[2] = _mm256_shuffle_epi32(coeff, 0xaa);
862
  // coeffs 6 7 6 7 6 7 6 7
863
  coeffs[3] = _mm256_shuffle_epi32(coeff, 0xff);
864
1.12M
}
865
866
static inline void prepare_coeffs_12taps(
867
    const InterpFilterParams *const filter_params, const int subpel_q4,
868
0
    __m256i *const coeffs /* [4] */) {
869
0
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
870
0
      filter_params, subpel_q4 & SUBPEL_MASK);
871
872
0
  __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
873
0
  __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
874
875
  // coeffs 0 1 0 1 0 1 0 1
876
0
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
877
  // coeffs 2 3 2 3 2 3 2 3
878
0
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
879
  // coeffs 4 5 4 5 4 5 4 5
880
0
  coeffs[2] = _mm256_shuffle_epi32(coeff, 0xaa);
881
  // coeffs 6 7 6 7 6 7 6 7
882
0
  coeffs[3] = _mm256_shuffle_epi32(coeff, 0xff);
883
  // coeffs 8 9 10 11 0 0 0 0
884
0
  coeff_8 = _mm_loadl_epi64((__m128i *)(filter + 8));
885
0
  coeff = _mm256_broadcastq_epi64(coeff_8);
886
0
  coeffs[4] = _mm256_shuffle_epi32(coeff, 0x00);  // coeffs 8 9 8 9 8 9 8 9
887
0
  coeffs[5] = _mm256_shuffle_epi32(coeff, 0x55);  // coeffs 10 11 10 11.. 10 11
888
0
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:prepare_coeffs_12taps
Unexecuted instantiation: highbd_convolve_avx2.c:prepare_coeffs_12taps
Unexecuted instantiation: convolve_2d_avx2.c:prepare_coeffs_12taps
Unexecuted instantiation: convolve_avx2.c:prepare_coeffs_12taps
Unexecuted instantiation: jnt_convolve_avx2.c:prepare_coeffs_12taps
Unexecuted instantiation: wiener_convolve_avx2.c:prepare_coeffs_12taps
Unexecuted instantiation: highbd_convolve_2d_avx2.c:prepare_coeffs_12taps
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:prepare_coeffs_12taps
889
890
static inline __m128i convolve_lowbd_4tap_ssse3(const __m128i ss[2],
891
3.94M
                                                const __m128i coeffs[2]) {
892
3.94M
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
893
3.94M
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
894
895
3.94M
  return _mm_add_epi16(res_01, res_23);
896
3.94M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_4tap_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_4tap_ssse3
convolve_2d_avx2.c:convolve_lowbd_4tap_ssse3
Line
Count
Source
891
3.15M
                                                const __m128i coeffs[2]) {
892
3.15M
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
893
3.15M
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
894
895
3.15M
  return _mm_add_epi16(res_01, res_23);
896
3.15M
}
convolve_avx2.c:convolve_lowbd_4tap_ssse3
Line
Count
Source
891
792k
                                                const __m128i coeffs[2]) {
892
792k
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
893
792k
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
894
895
792k
  return _mm_add_epi16(res_01, res_23);
896
792k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_lowbd_4tap_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_lowbd_4tap_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd_4tap_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd_4tap_ssse3
897
898
static inline __m128i convolve_lowbd_6tap_ssse3(const __m128i ss[3],
899
375k
                                                const __m128i coeffs[3]) {
900
375k
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
901
375k
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
902
375k
  const __m128i res_45 = _mm_maddubs_epi16(ss[2], coeffs[2]);
903
904
375k
  const __m128i res = _mm_add_epi16(_mm_add_epi16(res_01, res_45), res_23);
905
906
375k
  return res;
907
375k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_6tap_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_6tap_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_lowbd_6tap_ssse3
convolve_avx2.c:convolve_lowbd_6tap_ssse3
Line
Count
Source
899
375k
                                                const __m128i coeffs[3]) {
900
375k
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
901
375k
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
902
375k
  const __m128i res_45 = _mm_maddubs_epi16(ss[2], coeffs[2]);
903
904
375k
  const __m128i res = _mm_add_epi16(_mm_add_epi16(res_01, res_45), res_23);
905
906
375k
  return res;
907
375k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_lowbd_6tap_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_lowbd_6tap_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd_6tap_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd_6tap_ssse3
908
909
static inline __m128i convolve_lowbd_ssse3(const __m128i ss[4],
910
31.7k
                                           const __m128i coeffs[4]) {
911
31.7k
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
912
31.7k
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
913
31.7k
  const __m128i res_45 = _mm_maddubs_epi16(ss[2], coeffs[2]);
914
31.7k
  const __m128i res_67 = _mm_maddubs_epi16(ss[3], coeffs[3]);
915
916
31.7k
  const __m128i res = _mm_add_epi16(_mm_add_epi16(res_01, res_45),
917
31.7k
                                    _mm_add_epi16(res_23, res_67));
918
919
31.7k
  return res;
920
31.7k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_lowbd_ssse3
convolve_avx2.c:convolve_lowbd_ssse3
Line
Count
Source
910
31.7k
                                           const __m128i coeffs[4]) {
911
31.7k
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
912
31.7k
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
913
31.7k
  const __m128i res_45 = _mm_maddubs_epi16(ss[2], coeffs[2]);
914
31.7k
  const __m128i res_67 = _mm_maddubs_epi16(ss[3], coeffs[3]);
915
916
31.7k
  const __m128i res = _mm_add_epi16(_mm_add_epi16(res_01, res_45),
917
31.7k
                                    _mm_add_epi16(res_23, res_67));
918
919
31.7k
  return res;
920
31.7k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_lowbd_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_lowbd_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd_ssse3
921
922
static inline __m256i convolve_lowbd(const __m256i *const s,
923
22.0M
                                     const __m256i *const coeffs) {
924
22.0M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
925
22.0M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
926
22.0M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
927
22.0M
  const __m256i res_67 = _mm256_maddubs_epi16(s[3], coeffs[3]);
928
929
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
930
22.0M
  const __m256i res = _mm256_add_epi16(_mm256_add_epi16(res_01, res_45),
931
22.0M
                                       _mm256_add_epi16(res_23, res_67));
932
933
22.0M
  return res;
934
22.0M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd
convolve_2d_avx2.c:convolve_lowbd
Line
Count
Source
923
2.67M
                                     const __m256i *const coeffs) {
924
2.67M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
925
2.67M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
926
2.67M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
927
2.67M
  const __m256i res_67 = _mm256_maddubs_epi16(s[3], coeffs[3]);
928
929
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
930
2.67M
  const __m256i res = _mm256_add_epi16(_mm256_add_epi16(res_01, res_45),
931
2.67M
                                       _mm256_add_epi16(res_23, res_67));
932
933
2.67M
  return res;
934
2.67M
}
convolve_avx2.c:convolve_lowbd
Line
Count
Source
923
582k
                                     const __m256i *const coeffs) {
924
582k
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
925
582k
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
926
582k
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
927
582k
  const __m256i res_67 = _mm256_maddubs_epi16(s[3], coeffs[3]);
928
929
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
930
582k
  const __m256i res = _mm256_add_epi16(_mm256_add_epi16(res_01, res_45),
931
582k
                                       _mm256_add_epi16(res_23, res_67));
932
933
582k
  return res;
934
582k
}
jnt_convolve_avx2.c:convolve_lowbd
Line
Count
Source
923
6.43M
                                     const __m256i *const coeffs) {
924
6.43M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
925
6.43M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
926
6.43M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
927
6.43M
  const __m256i res_67 = _mm256_maddubs_epi16(s[3], coeffs[3]);
928
929
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
930
6.43M
  const __m256i res = _mm256_add_epi16(_mm256_add_epi16(res_01, res_45),
931
6.43M
                                       _mm256_add_epi16(res_23, res_67));
932
933
6.43M
  return res;
934
6.43M
}
wiener_convolve_avx2.c:convolve_lowbd
Line
Count
Source
923
12.3M
                                     const __m256i *const coeffs) {
924
12.3M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
925
12.3M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
926
12.3M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
927
12.3M
  const __m256i res_67 = _mm256_maddubs_epi16(s[3], coeffs[3]);
928
929
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
930
12.3M
  const __m256i res = _mm256_add_epi16(_mm256_add_epi16(res_01, res_45),
931
12.3M
                                       _mm256_add_epi16(res_23, res_67));
932
933
12.3M
  return res;
934
12.3M
}
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd
935
936
static inline __m256i convolve_lowbd_6tap(const __m256i *const s,
937
20.2M
                                          const __m256i *const coeffs) {
938
20.2M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
939
20.2M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
940
20.2M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
941
942
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
943
20.2M
  const __m256i res =
944
20.2M
      _mm256_add_epi16(_mm256_add_epi16(res_01, res_45), res_23);
945
946
20.2M
  return res;
947
20.2M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_6tap
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_6tap
convolve_2d_avx2.c:convolve_lowbd_6tap
Line
Count
Source
937
12.2M
                                          const __m256i *const coeffs) {
938
12.2M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
939
12.2M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
940
12.2M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
941
942
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
943
12.2M
  const __m256i res =
944
12.2M
      _mm256_add_epi16(_mm256_add_epi16(res_01, res_45), res_23);
945
946
12.2M
  return res;
947
12.2M
}
convolve_avx2.c:convolve_lowbd_6tap
Line
Count
Source
937
8.02M
                                          const __m256i *const coeffs) {
938
8.02M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
939
8.02M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
940
8.02M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
941
942
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
943
8.02M
  const __m256i res =
944
8.02M
      _mm256_add_epi16(_mm256_add_epi16(res_01, res_45), res_23);
945
946
8.02M
  return res;
947
8.02M
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_lowbd_6tap
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_lowbd_6tap
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd_6tap
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd_6tap
948
949
static inline __m256i convolve_lowbd_4tap(const __m256i *const s,
950
4.98M
                                          const __m256i *const coeffs) {
951
4.98M
  const __m256i res_23 = _mm256_maddubs_epi16(s[0], coeffs[0]);
952
4.98M
  const __m256i res_45 = _mm256_maddubs_epi16(s[1], coeffs[1]);
953
954
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
955
4.98M
  const __m256i res = _mm256_add_epi16(res_45, res_23);
956
957
4.98M
  return res;
958
4.98M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_4tap
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_4tap
convolve_2d_avx2.c:convolve_lowbd_4tap
Line
Count
Source
950
1.06M
                                          const __m256i *const coeffs) {
951
1.06M
  const __m256i res_23 = _mm256_maddubs_epi16(s[0], coeffs[0]);
952
1.06M
  const __m256i res_45 = _mm256_maddubs_epi16(s[1], coeffs[1]);
953
954
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
955
1.06M
  const __m256i res = _mm256_add_epi16(res_45, res_23);
956
957
1.06M
  return res;
958
1.06M
}
convolve_avx2.c:convolve_lowbd_4tap
Line
Count
Source
950
1.66M
                                          const __m256i *const coeffs) {
951
1.66M
  const __m256i res_23 = _mm256_maddubs_epi16(s[0], coeffs[0]);
952
1.66M
  const __m256i res_45 = _mm256_maddubs_epi16(s[1], coeffs[1]);
953
954
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
955
1.66M
  const __m256i res = _mm256_add_epi16(res_45, res_23);
956
957
1.66M
  return res;
958
1.66M
}
jnt_convolve_avx2.c:convolve_lowbd_4tap
Line
Count
Source
950
2.25M
                                          const __m256i *const coeffs) {
951
2.25M
  const __m256i res_23 = _mm256_maddubs_epi16(s[0], coeffs[0]);
952
2.25M
  const __m256i res_45 = _mm256_maddubs_epi16(s[1], coeffs[1]);
953
954
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
955
2.25M
  const __m256i res = _mm256_add_epi16(res_45, res_23);
956
957
2.25M
  return res;
958
2.25M
}
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_lowbd_4tap
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd_4tap
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd_4tap
959
960
static inline __m256i convolve_6tap(const __m256i *const s,
961
17.9M
                                    const __m256i *const coeffs) {
962
17.9M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
963
17.9M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
964
17.9M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
965
966
17.9M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1), res_2);
967
968
17.9M
  return res;
969
17.9M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_6tap
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_6tap
convolve_2d_avx2.c:convolve_6tap
Line
Count
Source
961
17.9M
                                    const __m256i *const coeffs) {
962
17.9M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
963
17.9M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
964
17.9M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
965
966
17.9M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1), res_2);
967
968
17.9M
  return res;
969
17.9M
}
Unexecuted instantiation: convolve_avx2.c:convolve_6tap
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_6tap
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_6tap
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_6tap
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_6tap
970
971
static inline __m256i convolve_12taps(const __m256i *const s,
972
0
                                      const __m256i *const coeffs) {
973
0
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
974
0
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
975
0
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
976
0
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
977
0
  const __m256i res_4 = _mm256_madd_epi16(s[4], coeffs[4]);
978
0
  const __m256i res_5 = _mm256_madd_epi16(s[5], coeffs[5]);
979
980
0
  const __m256i res1 = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
981
0
                                        _mm256_add_epi32(res_2, res_3));
982
0
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_4, res_5), res1);
983
984
0
  return res;
985
0
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_12taps
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_12taps
Unexecuted instantiation: convolve_2d_avx2.c:convolve_12taps
Unexecuted instantiation: convolve_avx2.c:convolve_12taps
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_12taps
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_12taps
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_12taps
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_12taps
986
987
static inline __m256i convolve(const __m256i *const s,
988
242M
                               const __m256i *const coeffs) {
989
242M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
242M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
242M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
242M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
242M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
242M
                                       _mm256_add_epi32(res_2, res_3));
996
997
242M
  return res;
998
242M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve
highbd_convolve_avx2.c:convolve
Line
Count
Source
988
34.0M
                               const __m256i *const coeffs) {
989
34.0M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
34.0M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
34.0M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
34.0M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
34.0M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
34.0M
                                       _mm256_add_epi32(res_2, res_3));
996
997
34.0M
  return res;
998
34.0M
}
convolve_2d_avx2.c:convolve
Line
Count
Source
988
3.95M
                               const __m256i *const coeffs) {
989
3.95M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
3.95M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
3.95M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
3.95M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
3.95M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
3.95M
                                       _mm256_add_epi32(res_2, res_3));
996
997
3.95M
  return res;
998
3.95M
}
Unexecuted instantiation: convolve_avx2.c:convolve
jnt_convolve_avx2.c:convolve
Line
Count
Source
988
4.94M
                               const __m256i *const coeffs) {
989
4.94M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
4.94M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
4.94M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
4.94M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
4.94M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
4.94M
                                       _mm256_add_epi32(res_2, res_3));
996
997
4.94M
  return res;
998
4.94M
}
wiener_convolve_avx2.c:convolve
Line
Count
Source
988
22.8M
                               const __m256i *const coeffs) {
989
22.8M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
22.8M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
22.8M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
22.8M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
22.8M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
22.8M
                                       _mm256_add_epi32(res_2, res_3));
996
997
22.8M
  return res;
998
22.8M
}
highbd_convolve_2d_avx2.c:convolve
Line
Count
Source
988
123M
                               const __m256i *const coeffs) {
989
123M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
123M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
123M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
123M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
123M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
123M
                                       _mm256_add_epi32(res_2, res_3));
996
997
123M
  return res;
998
123M
}
highbd_jnt_convolve_avx2.c:convolve
Line
Count
Source
988
52.2M
                               const __m256i *const coeffs) {
989
52.2M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
52.2M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
52.2M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
52.2M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
52.2M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
52.2M
                                       _mm256_add_epi32(res_2, res_3));
996
997
52.2M
  return res;
998
52.2M
}
999
1000
static inline __m256i convolve_4tap(const __m256i *const s,
1001
3.87M
                                    const __m256i *const coeffs) {
1002
3.87M
  const __m256i res_1 = _mm256_madd_epi16(s[0], coeffs[0]);
1003
3.87M
  const __m256i res_2 = _mm256_madd_epi16(s[1], coeffs[1]);
1004
1005
3.87M
  const __m256i res = _mm256_add_epi32(res_1, res_2);
1006
3.87M
  return res;
1007
3.87M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_4tap
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_4tap
convolve_2d_avx2.c:convolve_4tap
Line
Count
Source
1001
3.87M
                                    const __m256i *const coeffs) {
1002
3.87M
  const __m256i res_1 = _mm256_madd_epi16(s[0], coeffs[0]);
1003
3.87M
  const __m256i res_2 = _mm256_madd_epi16(s[1], coeffs[1]);
1004
1005
3.87M
  const __m256i res = _mm256_add_epi32(res_1, res_2);
1006
3.87M
  return res;
1007
3.87M
}
Unexecuted instantiation: convolve_avx2.c:convolve_4tap
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_4tap
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_4tap
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_4tap
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_4tap
1008
1009
static inline __m128i convolve_lowbd_x_2tap_ssse3(const __m128i data,
1010
                                                  const __m128i *const coeffs,
1011
68.5k
                                                  const __m128i *const filt) {
1012
68.5k
  __m128i s;
1013
68.5k
  s = _mm_shuffle_epi8(data, filt[0]);
1014
1015
68.5k
  return _mm_maddubs_epi16(s, coeffs[0]);
1016
68.5k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_x_2tap_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_x_2tap_ssse3
convolve_2d_avx2.c:convolve_lowbd_x_2tap_ssse3
Line
Count
Source
1011
68.5k
                                                  const __m128i *const filt) {
1012
68.5k
  __m128i s;
1013
68.5k
  s = _mm_shuffle_epi8(data, filt[0]);
1014
1015
68.5k
  return _mm_maddubs_epi16(s, coeffs[0]);
1016
68.5k
}
Unexecuted instantiation: convolve_avx2.c:convolve_lowbd_x_2tap_ssse3
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_lowbd_x_2tap_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_lowbd_x_2tap_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd_x_2tap_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd_x_2tap_ssse3
1017
1018
static inline __m128i convolve_lowbd_x_4tap_ssse3(const __m128i data,
1019
                                                  const __m128i *const coeffs,
1020
3.15M
                                                  const __m128i *const filt) {
1021
3.15M
  __m128i s[2];
1022
1023
3.15M
  s[0] = _mm_shuffle_epi8(data, filt[0]);
1024
3.15M
  s[1] = _mm_shuffle_epi8(data, filt[1]);
1025
1026
3.15M
  return convolve_lowbd_4tap_ssse3(s, coeffs);
1027
3.15M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_x_4tap_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_x_4tap_ssse3
convolve_2d_avx2.c:convolve_lowbd_x_4tap_ssse3
Line
Count
Source
1020
3.15M
                                                  const __m128i *const filt) {
1021
3.15M
  __m128i s[2];
1022
1023
3.15M
  s[0] = _mm_shuffle_epi8(data, filt[0]);
1024
3.15M
  s[1] = _mm_shuffle_epi8(data, filt[1]);
1025
1026
3.15M
  return convolve_lowbd_4tap_ssse3(s, coeffs);
1027
3.15M
}
Unexecuted instantiation: convolve_avx2.c:convolve_lowbd_x_4tap_ssse3
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_lowbd_x_4tap_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_lowbd_x_4tap_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd_x_4tap_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd_x_4tap_ssse3
1028
1029
static inline __m256i convolve_lowbd_x(const __m256i data,
1030
                                       const __m256i *const coeffs,
1031
20.9M
                                       const __m256i *const filt) {
1032
20.9M
  __m256i s[4];
1033
1034
20.9M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1035
20.9M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1036
20.9M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1037
20.9M
  s[3] = _mm256_shuffle_epi8(data, filt[3]);
1038
1039
20.9M
  return convolve_lowbd(s, coeffs);
1040
20.9M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_x
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_x
convolve_2d_avx2.c:convolve_lowbd_x
Line
Count
Source
1031
2.67M
                                       const __m256i *const filt) {
1032
2.67M
  __m256i s[4];
1033
1034
2.67M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1035
2.67M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1036
2.67M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1037
2.67M
  s[3] = _mm256_shuffle_epi8(data, filt[3]);
1038
1039
2.67M
  return convolve_lowbd(s, coeffs);
1040
2.67M
}
convolve_avx2.c:convolve_lowbd_x
Line
Count
Source
1031
399k
                                       const __m256i *const filt) {
1032
399k
  __m256i s[4];
1033
1034
399k
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1035
399k
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1036
399k
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1037
399k
  s[3] = _mm256_shuffle_epi8(data, filt[3]);
1038
1039
399k
  return convolve_lowbd(s, coeffs);
1040
399k
}
jnt_convolve_avx2.c:convolve_lowbd_x
Line
Count
Source
1031
5.57M
                                       const __m256i *const filt) {
1032
5.57M
  __m256i s[4];
1033
1034
5.57M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1035
5.57M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1036
5.57M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1037
5.57M
  s[3] = _mm256_shuffle_epi8(data, filt[3]);
1038
1039
5.57M
  return convolve_lowbd(s, coeffs);
1040
5.57M
}
wiener_convolve_avx2.c:convolve_lowbd_x
Line
Count
Source
1031
12.3M
                                       const __m256i *const filt) {
1032
12.3M
  __m256i s[4];
1033
1034
12.3M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1035
12.3M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1036
12.3M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1037
12.3M
  s[3] = _mm256_shuffle_epi8(data, filt[3]);
1038
1039
12.3M
  return convolve_lowbd(s, coeffs);
1040
12.3M
}
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd_x
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd_x
1041
1042
static inline __m256i convolve_lowbd_x_6tap(const __m256i data,
1043
                                            const __m256i *const coeffs,
1044
16.6M
                                            const __m256i *const filt) {
1045
16.6M
  __m256i s[4];
1046
1047
16.6M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1048
16.6M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1049
16.6M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1050
1051
16.6M
  return convolve_lowbd_6tap(s, coeffs);
1052
16.6M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_x_6tap
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_x_6tap
convolve_2d_avx2.c:convolve_lowbd_x_6tap
Line
Count
Source
1044
12.2M
                                            const __m256i *const filt) {
1045
12.2M
  __m256i s[4];
1046
1047
12.2M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1048
12.2M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1049
12.2M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1050
1051
12.2M
  return convolve_lowbd_6tap(s, coeffs);
1052
12.2M
}
convolve_avx2.c:convolve_lowbd_x_6tap
Line
Count
Source
1044
4.35M
                                            const __m256i *const filt) {
1045
4.35M
  __m256i s[4];
1046
1047
4.35M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1048
4.35M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1049
4.35M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1050
1051
4.35M
  return convolve_lowbd_6tap(s, coeffs);
1052
4.35M
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_lowbd_x_6tap
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_lowbd_x_6tap
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd_x_6tap
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd_x_6tap
1053
1054
static inline __m256i convolve_lowbd_x_4tap(const __m256i data,
1055
                                            const __m256i *const coeffs,
1056
3.67M
                                            const __m256i *const filt) {
1057
3.67M
  __m256i s[2];
1058
1059
3.67M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1060
3.67M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1061
1062
3.67M
  return convolve_lowbd_4tap(s, coeffs);
1063
3.67M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_x_4tap
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_x_4tap
convolve_2d_avx2.c:convolve_lowbd_x_4tap
Line
Count
Source
1056
1.06M
                                            const __m256i *const filt) {
1057
1.06M
  __m256i s[2];
1058
1059
1.06M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1060
1.06M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1061
1062
1.06M
  return convolve_lowbd_4tap(s, coeffs);
1063
1.06M
}
convolve_avx2.c:convolve_lowbd_x_4tap
Line
Count
Source
1056
687k
                                            const __m256i *const filt) {
1057
687k
  __m256i s[2];
1058
1059
687k
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1060
687k
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1061
1062
687k
  return convolve_lowbd_4tap(s, coeffs);
1063
687k
}
jnt_convolve_avx2.c:convolve_lowbd_x_4tap
Line
Count
Source
1056
1.91M
                                            const __m256i *const filt) {
1057
1.91M
  __m256i s[2];
1058
1059
1.91M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1060
1.91M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1061
1062
1.91M
  return convolve_lowbd_4tap(s, coeffs);
1063
1.91M
}
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_lowbd_x_4tap
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd_x_4tap
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd_x_4tap
1064
1065
static inline __m256i convolve_lowbd_x_2tap(const __m256i data,
1066
                                            const __m256i *const coeffs,
1067
464k
                                            const __m256i *const filt) {
1068
464k
  __m256i s;
1069
464k
  s = _mm256_shuffle_epi8(data, filt[0]);
1070
1071
464k
  return _mm256_maddubs_epi16(s, coeffs[0]);
1072
464k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_x_2tap
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_x_2tap
convolve_2d_avx2.c:convolve_lowbd_x_2tap
Line
Count
Source
1067
464k
                                            const __m256i *const filt) {
1068
464k
  __m256i s;
1069
464k
  s = _mm256_shuffle_epi8(data, filt[0]);
1070
1071
464k
  return _mm256_maddubs_epi16(s, coeffs[0]);
1072
464k
}
Unexecuted instantiation: convolve_avx2.c:convolve_lowbd_x_2tap
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_lowbd_x_2tap
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_lowbd_x_2tap
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd_x_2tap
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd_x_2tap
1073
1074
static inline void add_store_aligned_256(CONV_BUF_TYPE *const dst,
1075
                                         const __m256i *const res,
1076
0
                                         const int do_average) {
1077
0
  __m256i d;
1078
0
  if (do_average) {
1079
0
    d = _mm256_load_si256((__m256i *)dst);
1080
0
    d = _mm256_add_epi32(d, *res);
1081
0
    d = _mm256_srai_epi32(d, 1);
1082
0
  } else {
1083
0
    d = *res;
1084
0
  }
1085
0
  _mm256_store_si256((__m256i *)dst, d);
1086
0
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:add_store_aligned_256
Unexecuted instantiation: highbd_convolve_avx2.c:add_store_aligned_256
Unexecuted instantiation: convolve_2d_avx2.c:add_store_aligned_256
Unexecuted instantiation: convolve_avx2.c:add_store_aligned_256
Unexecuted instantiation: jnt_convolve_avx2.c:add_store_aligned_256
Unexecuted instantiation: wiener_convolve_avx2.c:add_store_aligned_256
Unexecuted instantiation: highbd_convolve_2d_avx2.c:add_store_aligned_256
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:add_store_aligned_256
1087
1088
static inline __m256i comp_avg(const __m256i *const data_ref_0,
1089
                               const __m256i *const res_unsigned,
1090
                               const __m256i *const wt,
1091
193M
                               const int use_dist_wtd_comp_avg) {
1092
193M
  __m256i res;
1093
193M
  if (use_dist_wtd_comp_avg) {
1094
2.01M
    const __m256i data_lo = _mm256_unpacklo_epi16(*data_ref_0, *res_unsigned);
1095
2.01M
    const __m256i data_hi = _mm256_unpackhi_epi16(*data_ref_0, *res_unsigned);
1096
1097
2.01M
    const __m256i wt_res_lo = _mm256_madd_epi16(data_lo, *wt);
1098
2.01M
    const __m256i wt_res_hi = _mm256_madd_epi16(data_hi, *wt);
1099
1100
2.01M
    const __m256i res_lo = _mm256_srai_epi32(wt_res_lo, DIST_PRECISION_BITS);
1101
2.01M
    const __m256i res_hi = _mm256_srai_epi32(wt_res_hi, DIST_PRECISION_BITS);
1102
1103
2.01M
    res = _mm256_packs_epi32(res_lo, res_hi);
1104
191M
  } else {
1105
191M
    const __m256i wt_res = _mm256_add_epi16(*data_ref_0, *res_unsigned);
1106
191M
    res = _mm256_srai_epi16(wt_res, 1);
1107
191M
  }
1108
193M
  return res;
1109
193M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:comp_avg
Unexecuted instantiation: highbd_convolve_avx2.c:comp_avg
Unexecuted instantiation: convolve_2d_avx2.c:comp_avg
Unexecuted instantiation: convolve_avx2.c:comp_avg
jnt_convolve_avx2.c:comp_avg
Line
Count
Source
1091
193M
                               const int use_dist_wtd_comp_avg) {
1092
193M
  __m256i res;
1093
193M
  if (use_dist_wtd_comp_avg) {
1094
2.01M
    const __m256i data_lo = _mm256_unpacklo_epi16(*data_ref_0, *res_unsigned);
1095
2.01M
    const __m256i data_hi = _mm256_unpackhi_epi16(*data_ref_0, *res_unsigned);
1096
1097
2.01M
    const __m256i wt_res_lo = _mm256_madd_epi16(data_lo, *wt);
1098
2.01M
    const __m256i wt_res_hi = _mm256_madd_epi16(data_hi, *wt);
1099
1100
2.01M
    const __m256i res_lo = _mm256_srai_epi32(wt_res_lo, DIST_PRECISION_BITS);
1101
2.01M
    const __m256i res_hi = _mm256_srai_epi32(wt_res_hi, DIST_PRECISION_BITS);
1102
1103
2.01M
    res = _mm256_packs_epi32(res_lo, res_hi);
1104
191M
  } else {
1105
191M
    const __m256i wt_res = _mm256_add_epi16(*data_ref_0, *res_unsigned);
1106
191M
    res = _mm256_srai_epi16(wt_res, 1);
1107
191M
  }
1108
193M
  return res;
1109
193M
}
Unexecuted instantiation: wiener_convolve_avx2.c:comp_avg
Unexecuted instantiation: highbd_convolve_2d_avx2.c:comp_avg
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:comp_avg
1110
1111
static inline __m256i convolve_rounding(const __m256i *const res_unsigned,
1112
                                        const __m256i *const offset_const,
1113
                                        const __m256i *const round_const,
1114
192M
                                        const int round_shift) {
1115
192M
  const __m256i res_signed = _mm256_sub_epi16(*res_unsigned, *offset_const);
1116
192M
  const __m256i res_round = _mm256_srai_epi16(
1117
192M
      _mm256_add_epi16(res_signed, *round_const), round_shift);
1118
192M
  return res_round;
1119
192M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_rounding
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_rounding
Unexecuted instantiation: convolve_2d_avx2.c:convolve_rounding
Unexecuted instantiation: convolve_avx2.c:convolve_rounding
jnt_convolve_avx2.c:convolve_rounding
Line
Count
Source
1114
192M
                                        const int round_shift) {
1115
192M
  const __m256i res_signed = _mm256_sub_epi16(*res_unsigned, *offset_const);
1116
192M
  const __m256i res_round = _mm256_srai_epi16(
1117
192M
      _mm256_add_epi16(res_signed, *round_const), round_shift);
1118
192M
  return res_round;
1119
192M
}
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_rounding
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_rounding
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_rounding
1120
1121
static inline __m256i highbd_comp_avg(const __m256i *const data_ref_0,
1122
                                      const __m256i *const res_unsigned,
1123
                                      const __m256i *const wt0,
1124
                                      const __m256i *const wt1,
1125
15.3M
                                      const int use_dist_wtd_comp_avg) {
1126
15.3M
  __m256i res;
1127
15.3M
  if (use_dist_wtd_comp_avg) {
1128
2.22M
    const __m256i wt0_res = _mm256_mullo_epi32(*data_ref_0, *wt0);
1129
2.22M
    const __m256i wt1_res = _mm256_mullo_epi32(*res_unsigned, *wt1);
1130
2.22M
    const __m256i wt_res = _mm256_add_epi32(wt0_res, wt1_res);
1131
2.22M
    res = _mm256_srai_epi32(wt_res, DIST_PRECISION_BITS);
1132
13.1M
  } else {
1133
13.1M
    const __m256i wt_res = _mm256_add_epi32(*data_ref_0, *res_unsigned);
1134
13.1M
    res = _mm256_srai_epi32(wt_res, 1);
1135
13.1M
  }
1136
15.3M
  return res;
1137
15.3M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:highbd_comp_avg
Unexecuted instantiation: highbd_convolve_avx2.c:highbd_comp_avg
Unexecuted instantiation: convolve_2d_avx2.c:highbd_comp_avg
Unexecuted instantiation: convolve_avx2.c:highbd_comp_avg
Unexecuted instantiation: jnt_convolve_avx2.c:highbd_comp_avg
Unexecuted instantiation: wiener_convolve_avx2.c:highbd_comp_avg
Unexecuted instantiation: highbd_convolve_2d_avx2.c:highbd_comp_avg
highbd_jnt_convolve_avx2.c:highbd_comp_avg
Line
Count
Source
1125
15.3M
                                      const int use_dist_wtd_comp_avg) {
1126
15.3M
  __m256i res;
1127
15.3M
  if (use_dist_wtd_comp_avg) {
1128
2.22M
    const __m256i wt0_res = _mm256_mullo_epi32(*data_ref_0, *wt0);
1129
2.22M
    const __m256i wt1_res = _mm256_mullo_epi32(*res_unsigned, *wt1);
1130
2.22M
    const __m256i wt_res = _mm256_add_epi32(wt0_res, wt1_res);
1131
2.22M
    res = _mm256_srai_epi32(wt_res, DIST_PRECISION_BITS);
1132
13.1M
  } else {
1133
13.1M
    const __m256i wt_res = _mm256_add_epi32(*data_ref_0, *res_unsigned);
1134
13.1M
    res = _mm256_srai_epi32(wt_res, 1);
1135
13.1M
  }
1136
15.3M
  return res;
1137
15.3M
}
1138
1139
static inline __m256i highbd_convolve_rounding(
1140
    const __m256i *const res_unsigned, const __m256i *const offset_const,
1141
15.4M
    const __m256i *const round_const, const int round_shift) {
1142
15.4M
  const __m256i res_signed = _mm256_sub_epi32(*res_unsigned, *offset_const);
1143
15.4M
  const __m256i res_round = _mm256_srai_epi32(
1144
15.4M
      _mm256_add_epi32(res_signed, *round_const), round_shift);
1145
1146
15.4M
  return res_round;
1147
15.4M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:highbd_convolve_rounding
Unexecuted instantiation: highbd_convolve_avx2.c:highbd_convolve_rounding
Unexecuted instantiation: convolve_2d_avx2.c:highbd_convolve_rounding
Unexecuted instantiation: convolve_avx2.c:highbd_convolve_rounding
Unexecuted instantiation: jnt_convolve_avx2.c:highbd_convolve_rounding
Unexecuted instantiation: wiener_convolve_avx2.c:highbd_convolve_rounding
Unexecuted instantiation: highbd_convolve_2d_avx2.c:highbd_convolve_rounding
highbd_jnt_convolve_avx2.c:highbd_convolve_rounding
Line
Count
Source
1141
15.4M
    const __m256i *const round_const, const int round_shift) {
1142
15.4M
  const __m256i res_signed = _mm256_sub_epi32(*res_unsigned, *offset_const);
1143
15.4M
  const __m256i res_round = _mm256_srai_epi32(
1144
15.4M
      _mm256_add_epi32(res_signed, *round_const), round_shift);
1145
1146
15.4M
  return res_round;
1147
15.4M
}
1148
1149
5.73M
static inline __m256i round_sr_x_avx2(const __m256i data) {
1150
  // we can perform the below steps:
1151
  // data = (data + 2) >> 2
1152
  // data = (data + 8) >> 4,
1153
  // in the below form as well
1154
  // data = (data + 0x22) >> 6
1155
5.73M
  const __m256i value = _mm256_set1_epi16(34);
1156
5.73M
  const __m256i reg = _mm256_add_epi16(data, value);
1157
5.73M
  return _mm256_srai_epi16(reg, 6);
1158
5.73M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:round_sr_x_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:round_sr_x_avx2
Unexecuted instantiation: convolve_2d_avx2.c:round_sr_x_avx2
convolve_avx2.c:round_sr_x_avx2
Line
Count
Source
1149
5.73M
static inline __m256i round_sr_x_avx2(const __m256i data) {
1150
  // we can perform the below steps:
1151
  // data = (data + 2) >> 2
1152
  // data = (data + 8) >> 4,
1153
  // in the below form as well
1154
  // data = (data + 0x22) >> 6
1155
5.73M
  const __m256i value = _mm256_set1_epi16(34);
1156
5.73M
  const __m256i reg = _mm256_add_epi16(data, value);
1157
5.73M
  return _mm256_srai_epi16(reg, 6);
1158
5.73M
}
Unexecuted instantiation: jnt_convolve_avx2.c:round_sr_x_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:round_sr_x_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:round_sr_x_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:round_sr_x_avx2
1159
1160
static inline __m128i convolve_x_4tap_4x2_ssse3(const uint8_t *const src,
1161
                                                const ptrdiff_t src_stride,
1162
462k
                                                __m128i *const coeffs) {
1163
462k
  __m128i data[2];
1164
462k
  const __m128i f_l0 = _mm_load_si128((__m128i const *)filt1_global_sse2);
1165
462k
  const __m128i f_l1 = _mm_load_si128((__m128i const *)filt2_global_sse2);
1166
462k
  const __m128i src_1 =
1167
462k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * src_stride));
1168
1169
462k
  data[0] = _mm_shuffle_epi8(src_1, f_l0);
1170
462k
  data[1] = _mm_shuffle_epi8(src_1, f_l1);
1171
462k
  return convolve_lowbd_4tap_ssse3(data, coeffs);
1172
462k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_x_4tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_x_4tap_4x2_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_x_4tap_4x2_ssse3
convolve_avx2.c:convolve_x_4tap_4x2_ssse3
Line
Count
Source
1162
462k
                                                __m128i *const coeffs) {
1163
462k
  __m128i data[2];
1164
462k
  const __m128i f_l0 = _mm_load_si128((__m128i const *)filt1_global_sse2);
1165
462k
  const __m128i f_l1 = _mm_load_si128((__m128i const *)filt2_global_sse2);
1166
462k
  const __m128i src_1 =
1167
462k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * src_stride));
1168
1169
462k
  data[0] = _mm_shuffle_epi8(src_1, f_l0);
1170
462k
  data[1] = _mm_shuffle_epi8(src_1, f_l1);
1171
462k
  return convolve_lowbd_4tap_ssse3(data, coeffs);
1172
462k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_x_4tap_4x2_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_x_4tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_x_4tap_4x2_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_x_4tap_4x2_ssse3
1173
1174
595k
static inline __m128i round_sr_x_ssse3(const __m128i data) {
1175
595k
  const __m128i val = _mm_set1_epi16(34);
1176
595k
  const __m128i reg = _mm_add_epi16(data, val);
1177
595k
  return _mm_srai_epi16(reg, 6);
1178
595k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:round_sr_x_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:round_sr_x_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:round_sr_x_ssse3
convolve_avx2.c:round_sr_x_ssse3
Line
Count
Source
1174
595k
static inline __m128i round_sr_x_ssse3(const __m128i data) {
1175
595k
  const __m128i val = _mm_set1_epi16(34);
1176
595k
  const __m128i reg = _mm_add_epi16(data, val);
1177
595k
  return _mm_srai_epi16(reg, 6);
1178
595k
}
Unexecuted instantiation: jnt_convolve_avx2.c:round_sr_x_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:round_sr_x_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:round_sr_x_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:round_sr_x_ssse3
1179
1180
static inline void store_8bit_4x2_sse2(const __m128i reg, uint8_t *const dst,
1181
1.04M
                                       const ptrdiff_t dst_stride) {
1182
1.04M
  xx_storel_32(dst, reg);
1183
1.04M
  *(uint32_t *)(dst + dst_stride) =
1184
1.04M
      ((uint32_t)_mm_extract_epi16(reg, 3) << 16) | _mm_extract_epi16(reg, 2);
1185
1.04M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:store_8bit_4x2_sse2
Unexecuted instantiation: highbd_convolve_avx2.c:store_8bit_4x2_sse2
Unexecuted instantiation: convolve_2d_avx2.c:store_8bit_4x2_sse2
convolve_avx2.c:store_8bit_4x2_sse2
Line
Count
Source
1181
1.04M
                                       const ptrdiff_t dst_stride) {
1182
1.04M
  xx_storel_32(dst, reg);
1183
1.04M
  *(uint32_t *)(dst + dst_stride) =
1184
1.04M
      ((uint32_t)_mm_extract_epi16(reg, 3) << 16) | _mm_extract_epi16(reg, 2);
1185
1.04M
}
Unexecuted instantiation: jnt_convolve_avx2.c:store_8bit_4x2_sse2
Unexecuted instantiation: wiener_convolve_avx2.c:store_8bit_4x2_sse2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:store_8bit_4x2_sse2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:store_8bit_4x2_sse2
1186
1187
static inline void pack_store_u8_4x2_sse2(const __m128i reg, uint8_t *const dst,
1188
1.04M
                                          const ptrdiff_t dst_stride) {
1189
1.04M
  const __m128i reg_pack = _mm_packus_epi16(reg, reg);
1190
1.04M
  store_8bit_4x2_sse2(reg_pack, dst, dst_stride);
1191
1.04M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:pack_store_u8_4x2_sse2
Unexecuted instantiation: highbd_convolve_avx2.c:pack_store_u8_4x2_sse2
Unexecuted instantiation: convolve_2d_avx2.c:pack_store_u8_4x2_sse2
convolve_avx2.c:pack_store_u8_4x2_sse2
Line
Count
Source
1188
1.04M
                                          const ptrdiff_t dst_stride) {
1189
1.04M
  const __m128i reg_pack = _mm_packus_epi16(reg, reg);
1190
1.04M
  store_8bit_4x2_sse2(reg_pack, dst, dst_stride);
1191
1.04M
}
Unexecuted instantiation: jnt_convolve_avx2.c:pack_store_u8_4x2_sse2
Unexecuted instantiation: wiener_convolve_avx2.c:pack_store_u8_4x2_sse2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:pack_store_u8_4x2_sse2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:pack_store_u8_4x2_sse2
1192
1193
static inline __m128i convolve_x_4tap_2x2_ssse3(const uint8_t *const src,
1194
                                                const ptrdiff_t src_stride,
1195
82.0k
                                                __m128i *const coeffs) {
1196
82.0k
  __m128i data[2];
1197
82.0k
  const __m128i f_0 = _mm_load_si128((__m128i const *)filt3_global_sse2);
1198
82.0k
  const __m128i f_1 = _mm_load_si128((__m128i const *)filt4_global_sse2);
1199
82.0k
  const __m128i reg =
1200
82.0k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * src_stride));
1201
1202
82.0k
  data[0] = _mm_shuffle_epi8(reg, f_0);
1203
82.0k
  data[1] = _mm_shuffle_epi8(reg, f_1);
1204
82.0k
  return convolve_lowbd_4tap_ssse3(data, coeffs);
1205
82.0k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_x_4tap_2x2_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_x_4tap_2x2_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_x_4tap_2x2_ssse3
convolve_avx2.c:convolve_x_4tap_2x2_ssse3
Line
Count
Source
1195
82.0k
                                                __m128i *const coeffs) {
1196
82.0k
  __m128i data[2];
1197
82.0k
  const __m128i f_0 = _mm_load_si128((__m128i const *)filt3_global_sse2);
1198
82.0k
  const __m128i f_1 = _mm_load_si128((__m128i const *)filt4_global_sse2);
1199
82.0k
  const __m128i reg =
1200
82.0k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * src_stride));
1201
1202
82.0k
  data[0] = _mm_shuffle_epi8(reg, f_0);
1203
82.0k
  data[1] = _mm_shuffle_epi8(reg, f_1);
1204
82.0k
  return convolve_lowbd_4tap_ssse3(data, coeffs);
1205
82.0k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_x_4tap_2x2_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_x_4tap_2x2_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_x_4tap_2x2_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_x_4tap_2x2_ssse3
1206
1207
static inline void pack_store_u8_2x2_sse2(const __m128i reg, uint8_t *const dst,
1208
188k
                                          const ptrdiff_t dst_stride) {
1209
188k
  const __m128i data = _mm_packus_epi16(reg, reg);
1210
188k
  *(int16_t *)dst = (int16_t)_mm_cvtsi128_si32(data);
1211
188k
  *(int16_t *)(dst + dst_stride) = (int16_t)_mm_extract_epi16(data, 1);
1212
188k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:pack_store_u8_2x2_sse2
Unexecuted instantiation: highbd_convolve_avx2.c:pack_store_u8_2x2_sse2
Unexecuted instantiation: convolve_2d_avx2.c:pack_store_u8_2x2_sse2
convolve_avx2.c:pack_store_u8_2x2_sse2
Line
Count
Source
1208
188k
                                          const ptrdiff_t dst_stride) {
1209
188k
  const __m128i data = _mm_packus_epi16(reg, reg);
1210
188k
  *(int16_t *)dst = (int16_t)_mm_cvtsi128_si32(data);
1211
  *(int16_t *)(dst + dst_stride) = (int16_t)_mm_extract_epi16(data, 1);
1212
188k
}
Unexecuted instantiation: jnt_convolve_avx2.c:pack_store_u8_2x2_sse2
Unexecuted instantiation: wiener_convolve_avx2.c:pack_store_u8_2x2_sse2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:pack_store_u8_2x2_sse2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:pack_store_u8_2x2_sse2
1213
1214
static inline __m128i convolve_x_2tap_ssse3(const __m128i *data,
1215
50.6k
                                            const __m128i *coeff) {
1216
50.6k
  return _mm_maddubs_epi16(data[0], coeff[0]);
1217
50.6k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_x_2tap_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_x_2tap_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_x_2tap_ssse3
convolve_avx2.c:convolve_x_2tap_ssse3
Line
Count
Source
1215
50.6k
                                            const __m128i *coeff) {
1216
50.6k
  return _mm_maddubs_epi16(data[0], coeff[0]);
1217
50.6k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_x_2tap_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_x_2tap_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_x_2tap_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_x_2tap_ssse3
1218
1219
static inline __m128i load8_x_4x2_sse4(const void *const src,
1220
9.47k
                                       const ptrdiff_t offset) {
1221
9.47k
  const __m128i s = _mm_cvtsi32_si128(loadu_int32(src));
1222
9.47k
  return _mm_insert_epi32(s, loadu_int32((uint8_t *)src + offset), 1);
1223
9.47k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:load8_x_4x2_sse4
Unexecuted instantiation: highbd_convolve_avx2.c:load8_x_4x2_sse4
Unexecuted instantiation: convolve_2d_avx2.c:load8_x_4x2_sse4
convolve_avx2.c:load8_x_4x2_sse4
Line
Count
Source
1220
9.47k
                                       const ptrdiff_t offset) {
1221
9.47k
  const __m128i s = _mm_cvtsi32_si128(loadu_int32(src));
1222
  return _mm_insert_epi32(s, loadu_int32((uint8_t *)src + offset), 1);
1223
9.47k
}
Unexecuted instantiation: jnt_convolve_avx2.c:load8_x_4x2_sse4
Unexecuted instantiation: wiener_convolve_avx2.c:load8_x_4x2_sse4
Unexecuted instantiation: highbd_convolve_2d_avx2.c:load8_x_4x2_sse4
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:load8_x_4x2_sse4
1224
1225
static inline __m128i load_x_u8_4x2_sse4(const uint8_t *const src,
1226
9.47k
                                         const ptrdiff_t stride) {
1227
9.47k
  return load8_x_4x2_sse4(src, sizeof(*src) * stride);
1228
9.47k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:load_x_u8_4x2_sse4
Unexecuted instantiation: highbd_convolve_avx2.c:load_x_u8_4x2_sse4
Unexecuted instantiation: convolve_2d_avx2.c:load_x_u8_4x2_sse4
convolve_avx2.c:load_x_u8_4x2_sse4
Line
Count
Source
1226
9.47k
                                         const ptrdiff_t stride) {
1227
9.47k
  return load8_x_4x2_sse4(src, sizeof(*src) * stride);
1228
9.47k
}
Unexecuted instantiation: jnt_convolve_avx2.c:load_x_u8_4x2_sse4
Unexecuted instantiation: wiener_convolve_avx2.c:load_x_u8_4x2_sse4
Unexecuted instantiation: highbd_convolve_2d_avx2.c:load_x_u8_4x2_sse4
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:load_x_u8_4x2_sse4
1229
1230
static inline __m128i convolve_x_2tap_2x2_ssse3(const uint8_t *const src,
1231
                                                const ptrdiff_t stride,
1232
3.71k
                                                const __m128i *coeffs) {
1233
3.71k
  const __m128i flt = _mm_load_si128((__m128i const *)filt5_global_sse2);
1234
3.71k
  const __m128i reg = load_x_u8_4x2_sse4(src, stride);
1235
3.71k
  const __m128i data = _mm_shuffle_epi8(reg, flt);
1236
3.71k
  return convolve_x_2tap_ssse3(&data, coeffs);
1237
3.71k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_x_2tap_2x2_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_x_2tap_2x2_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_x_2tap_2x2_ssse3
convolve_avx2.c:convolve_x_2tap_2x2_ssse3
Line
Count
Source
1232
3.71k
                                                const __m128i *coeffs) {
1233
3.71k
  const __m128i flt = _mm_load_si128((__m128i const *)filt5_global_sse2);
1234
3.71k
  const __m128i reg = load_x_u8_4x2_sse4(src, stride);
1235
3.71k
  const __m128i data = _mm_shuffle_epi8(reg, flt);
1236
3.71k
  return convolve_x_2tap_ssse3(&data, coeffs);
1237
3.71k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_x_2tap_2x2_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_x_2tap_2x2_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_x_2tap_2x2_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_x_2tap_2x2_ssse3
1238
1239
static inline __m128i convolve_x_2tap_4x2_ssse3(const uint8_t *const src,
1240
                                                const ptrdiff_t stride,
1241
15.6k
                                                const __m128i *coeffs) {
1242
15.6k
  const __m128i flt = _mm_load_si128((__m128i const *)filt1_global_sse2);
1243
15.6k
  const __m128i data =
1244
15.6k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * stride));
1245
15.6k
  const __m128i res = _mm_shuffle_epi8(data, flt);
1246
15.6k
  return convolve_x_2tap_ssse3(&res, coeffs);
1247
15.6k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_x_2tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_x_2tap_4x2_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_x_2tap_4x2_ssse3
convolve_avx2.c:convolve_x_2tap_4x2_ssse3
Line
Count
Source
1241
15.6k
                                                const __m128i *coeffs) {
1242
15.6k
  const __m128i flt = _mm_load_si128((__m128i const *)filt1_global_sse2);
1243
15.6k
  const __m128i data =
1244
15.6k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * stride));
1245
15.6k
  const __m128i res = _mm_shuffle_epi8(data, flt);
1246
15.6k
  return convolve_x_2tap_ssse3(&res, coeffs);
1247
15.6k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_x_2tap_4x2_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_x_2tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_x_2tap_4x2_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_x_2tap_4x2_ssse3
1248
1249
static inline void convolve_x_2tap_8x2_ssse3(const uint8_t *const src,
1250
                                             const ptrdiff_t stride,
1251
                                             const __m128i *coeffs,
1252
15.6k
                                             __m128i *data) {
1253
15.6k
  __m128i res[2];
1254
15.6k
  const __m128i reg_00 = _mm_loadu_si128((__m128i *)src);
1255
15.6k
  const __m128i reg_10 = _mm_loadu_si128((__m128i *)(src + stride));
1256
15.6k
  const __m128i reg_01 = _mm_srli_si128(reg_00, 1);
1257
15.6k
  const __m128i reg_11 = _mm_srli_si128(reg_10, 1);
1258
15.6k
  res[0] = _mm_unpacklo_epi8(reg_00, reg_01);
1259
15.6k
  res[1] = _mm_unpacklo_epi8(reg_10, reg_11);
1260
1261
15.6k
  data[0] = convolve_x_2tap_ssse3(&res[0], coeffs);
1262
15.6k
  data[1] = convolve_x_2tap_ssse3(&res[1], coeffs);
1263
15.6k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_x_2tap_8x2_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_x_2tap_8x2_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_x_2tap_8x2_ssse3
convolve_avx2.c:convolve_x_2tap_8x2_ssse3
Line
Count
Source
1252
15.6k
                                             __m128i *data) {
1253
15.6k
  __m128i res[2];
1254
15.6k
  const __m128i reg_00 = _mm_loadu_si128((__m128i *)src);
1255
15.6k
  const __m128i reg_10 = _mm_loadu_si128((__m128i *)(src + stride));
1256
15.6k
  const __m128i reg_01 = _mm_srli_si128(reg_00, 1);
1257
15.6k
  const __m128i reg_11 = _mm_srli_si128(reg_10, 1);
1258
15.6k
  res[0] = _mm_unpacklo_epi8(reg_00, reg_01);
1259
15.6k
  res[1] = _mm_unpacklo_epi8(reg_10, reg_11);
1260
1261
15.6k
  data[0] = convolve_x_2tap_ssse3(&res[0], coeffs);
1262
15.6k
  data[1] = convolve_x_2tap_ssse3(&res[1], coeffs);
1263
15.6k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_x_2tap_8x2_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_x_2tap_8x2_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_x_2tap_8x2_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_x_2tap_8x2_ssse3
1264
1265
static inline __m256i loadu_x_8bit_16x2_avx2(const void *const src,
1266
962k
                                             const ptrdiff_t offset) {
1267
962k
  const __m128i reg0 = _mm_loadu_si128((__m128i *)src);
1268
962k
  const __m128i reg1 = _mm_loadu_si128((__m128i *)((uint8_t *)src + offset));
1269
962k
  return _mm256_setr_m128i(reg0, reg1);
1270
962k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:loadu_x_8bit_16x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:loadu_x_8bit_16x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:loadu_x_8bit_16x2_avx2
convolve_avx2.c:loadu_x_8bit_16x2_avx2
Line
Count
Source
1266
962k
                                             const ptrdiff_t offset) {
1267
962k
  const __m128i reg0 = _mm_loadu_si128((__m128i *)src);
1268
962k
  const __m128i reg1 = _mm_loadu_si128((__m128i *)((uint8_t *)src + offset));
1269
962k
  return _mm256_setr_m128i(reg0, reg1);
1270
962k
}
Unexecuted instantiation: jnt_convolve_avx2.c:loadu_x_8bit_16x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:loadu_x_8bit_16x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:loadu_x_8bit_16x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:loadu_x_8bit_16x2_avx2
1271
1272
static inline __m256i convolve_x_2tap_avx2(const __m256i *data,
1273
294k
                                           const __m256i *coeffs) {
1274
294k
  return _mm256_maddubs_epi16(data[0], coeffs[0]);
1275
294k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_x_2tap_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_x_2tap_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_x_2tap_avx2
convolve_avx2.c:convolve_x_2tap_avx2
Line
Count
Source
1273
294k
                                           const __m256i *coeffs) {
1274
294k
  return _mm256_maddubs_epi16(data[0], coeffs[0]);
1275
294k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_x_2tap_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_x_2tap_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_x_2tap_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_x_2tap_avx2
1276
1277
static inline void convolve_x_2tap_16x2_avx2(const uint8_t *const src,
1278
                                             const ptrdiff_t stride,
1279
                                             const __m256i *coeffs,
1280
11.4k
                                             __m256i *data) {
1281
11.4k
  const __m256i reg0 = loadu_x_8bit_16x2_avx2(src, stride);
1282
11.4k
  const __m256i reg1 = loadu_x_8bit_16x2_avx2(src + 1, stride);
1283
11.4k
  const __m256i res0 = _mm256_unpacklo_epi8(reg0, reg1);
1284
11.4k
  const __m256i res1 = _mm256_unpackhi_epi8(reg0, reg1);
1285
11.4k
  data[0] = convolve_x_2tap_avx2(&res0, coeffs);
1286
11.4k
  data[1] = convolve_x_2tap_avx2(&res1, coeffs);
1287
11.4k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_x_2tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_x_2tap_16x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_x_2tap_16x2_avx2
convolve_avx2.c:convolve_x_2tap_16x2_avx2
Line
Count
Source
1280
11.4k
                                             __m256i *data) {
1281
11.4k
  const __m256i reg0 = loadu_x_8bit_16x2_avx2(src, stride);
1282
11.4k
  const __m256i reg1 = loadu_x_8bit_16x2_avx2(src + 1, stride);
1283
11.4k
  const __m256i res0 = _mm256_unpacklo_epi8(reg0, reg1);
1284
11.4k
  const __m256i res1 = _mm256_unpackhi_epi8(reg0, reg1);
1285
11.4k
  data[0] = convolve_x_2tap_avx2(&res0, coeffs);
1286
11.4k
  data[1] = convolve_x_2tap_avx2(&res1, coeffs);
1287
11.4k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_x_2tap_16x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_x_2tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_x_2tap_16x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_x_2tap_16x2_avx2
1288
1289
static inline void store_u8_16x2_avx2(const __m256i src, uint8_t *const dst,
1290
2.31M
                                      const ptrdiff_t stride) {
1291
2.31M
  const __m128i reg0 = _mm256_castsi256_si128(src);
1292
2.31M
  const __m128i reg1 = _mm256_extracti128_si256(src, 1);
1293
2.31M
  _mm_storeu_si128((__m128i *)dst, reg0);
1294
2.31M
  _mm_storeu_si128((__m128i *)((uint8_t *)dst + stride), reg1);
1295
2.31M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:store_u8_16x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:store_u8_16x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:store_u8_16x2_avx2
convolve_avx2.c:store_u8_16x2_avx2
Line
Count
Source
1290
2.31M
                                      const ptrdiff_t stride) {
1291
2.31M
  const __m128i reg0 = _mm256_castsi256_si128(src);
1292
  const __m128i reg1 = _mm256_extracti128_si256(src, 1);
1293
2.31M
  _mm_storeu_si128((__m128i *)dst, reg0);
1294
2.31M
  _mm_storeu_si128((__m128i *)((uint8_t *)dst + stride), reg1);
1295
2.31M
}
Unexecuted instantiation: jnt_convolve_avx2.c:store_u8_16x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:store_u8_16x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:store_u8_16x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:store_u8_16x2_avx2
1296
1297
static inline void store_u8_8x2_avx2(const __m256i src, uint8_t *const dst,
1298
640k
                                     const ptrdiff_t stride) {
1299
640k
  const __m128i reg0 = _mm256_castsi256_si128(src);
1300
640k
  const __m128i reg1 = _mm256_extracti128_si256(src, 1);
1301
640k
  _mm_storel_epi64((__m128i *)dst, reg0);
1302
640k
  _mm_storel_epi64((__m128i *)(dst + stride), reg1);
1303
640k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:store_u8_8x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:store_u8_8x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:store_u8_8x2_avx2
convolve_avx2.c:store_u8_8x2_avx2
Line
Count
Source
1298
640k
                                     const ptrdiff_t stride) {
1299
640k
  const __m128i reg0 = _mm256_castsi256_si128(src);
1300
  const __m128i reg1 = _mm256_extracti128_si256(src, 1);
1301
640k
  _mm_storel_epi64((__m128i *)dst, reg0);
1302
640k
  _mm_storel_epi64((__m128i *)(dst + stride), reg1);
1303
640k
}
Unexecuted instantiation: jnt_convolve_avx2.c:store_u8_8x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:store_u8_8x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:store_u8_8x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:store_u8_8x2_avx2
1304
1305
static inline void pack_store_16x2_avx2(const __m256i data0,
1306
                                        const __m256i data1, uint8_t *const dst,
1307
2.31M
                                        const ptrdiff_t stride) {
1308
2.31M
  const __m256i res = _mm256_packus_epi16(data0, data1);
1309
2.31M
  store_u8_16x2_avx2(res, dst, stride);
1310
2.31M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:pack_store_16x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:pack_store_16x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:pack_store_16x2_avx2
convolve_avx2.c:pack_store_16x2_avx2
Line
Count
Source
1307
2.31M
                                        const ptrdiff_t stride) {
1308
2.31M
  const __m256i res = _mm256_packus_epi16(data0, data1);
1309
2.31M
  store_u8_16x2_avx2(res, dst, stride);
1310
2.31M
}
Unexecuted instantiation: jnt_convolve_avx2.c:pack_store_16x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:pack_store_16x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:pack_store_16x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:pack_store_16x2_avx2
1311
1312
static inline void pack_store_8x2_avx2(const __m256i data, uint8_t *const dst,
1313
640k
                                       const ptrdiff_t stride) {
1314
640k
  const __m256i res = _mm256_packus_epi16(data, data);
1315
640k
  store_u8_8x2_avx2(res, dst, stride);
1316
640k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:pack_store_8x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:pack_store_8x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:pack_store_8x2_avx2
convolve_avx2.c:pack_store_8x2_avx2
Line
Count
Source
1313
640k
                                       const ptrdiff_t stride) {
1314
640k
  const __m256i res = _mm256_packus_epi16(data, data);
1315
640k
  store_u8_8x2_avx2(res, dst, stride);
1316
640k
}
Unexecuted instantiation: jnt_convolve_avx2.c:pack_store_8x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:pack_store_8x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:pack_store_8x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:pack_store_8x2_avx2
1317
1318
static inline void round_pack_store_16x2_avx2(const __m256i *data,
1319
                                              uint8_t *const dst,
1320
481k
                                              const ptrdiff_t dst_stride) {
1321
481k
  __m256i reg[2];
1322
1323
481k
  reg[0] = round_sr_x_avx2(data[0]);
1324
481k
  reg[1] = round_sr_x_avx2(data[1]);
1325
481k
  pack_store_16x2_avx2(reg[0], reg[1], dst, dst_stride);
1326
481k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:round_pack_store_16x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:round_pack_store_16x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:round_pack_store_16x2_avx2
convolve_avx2.c:round_pack_store_16x2_avx2
Line
Count
Source
1320
481k
                                              const ptrdiff_t dst_stride) {
1321
481k
  __m256i reg[2];
1322
1323
481k
  reg[0] = round_sr_x_avx2(data[0]);
1324
481k
  reg[1] = round_sr_x_avx2(data[1]);
1325
481k
  pack_store_16x2_avx2(reg[0], reg[1], dst, dst_stride);
1326
481k
}
Unexecuted instantiation: jnt_convolve_avx2.c:round_pack_store_16x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:round_pack_store_16x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:round_pack_store_16x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:round_pack_store_16x2_avx2
1327
1328
static inline void convolve_x_2tap_32_avx2(const uint8_t *const src,
1329
                                           const __m256i *coeffs,
1330
135k
                                           __m256i *data) {
1331
135k
  const __m256i res0 = _mm256_loadu_si256((__m256i *)src);
1332
135k
  const __m256i res1 = _mm256_loadu_si256((__m256i *)(src + 1));
1333
135k
  const __m256i reg0 = _mm256_unpacklo_epi8(res0, res1);
1334
135k
  const __m256i reg1 = _mm256_unpackhi_epi8(res0, res1);
1335
1336
135k
  data[0] = convolve_x_2tap_avx2(&reg0, coeffs);
1337
135k
  data[1] = convolve_x_2tap_avx2(&reg1, coeffs);
1338
135k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_x_2tap_32_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_x_2tap_32_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_x_2tap_32_avx2
convolve_avx2.c:convolve_x_2tap_32_avx2
Line
Count
Source
1330
135k
                                           __m256i *data) {
1331
135k
  const __m256i res0 = _mm256_loadu_si256((__m256i *)src);
1332
135k
  const __m256i res1 = _mm256_loadu_si256((__m256i *)(src + 1));
1333
135k
  const __m256i reg0 = _mm256_unpacklo_epi8(res0, res1);
1334
135k
  const __m256i reg1 = _mm256_unpackhi_epi8(res0, res1);
1335
1336
135k
  data[0] = convolve_x_2tap_avx2(&reg0, coeffs);
1337
135k
  data[1] = convolve_x_2tap_avx2(&reg1, coeffs);
1338
135k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_x_2tap_32_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_x_2tap_32_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_x_2tap_32_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_x_2tap_32_avx2
1339
1340
static inline void pack_store_32_avx2(const __m256i data0, const __m256i data1,
1341
2.14M
                                      uint8_t *const dst) {
1342
2.14M
  const __m256i reg = _mm256_packus_epi16(data0, data1);
1343
2.14M
  _mm256_storeu_si256((__m256i *)dst, reg);
1344
2.14M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:pack_store_32_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:pack_store_32_avx2
Unexecuted instantiation: convolve_2d_avx2.c:pack_store_32_avx2
convolve_avx2.c:pack_store_32_avx2
Line
Count
Source
1341
2.14M
                                      uint8_t *const dst) {
1342
2.14M
  const __m256i reg = _mm256_packus_epi16(data0, data1);
1343
2.14M
  _mm256_storeu_si256((__m256i *)dst, reg);
1344
2.14M
}
Unexecuted instantiation: jnt_convolve_avx2.c:pack_store_32_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:pack_store_32_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:pack_store_32_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:pack_store_32_avx2
1345
1346
static inline void round_pack_store_32_avx2(const __m256i *data,
1347
1.78M
                                            uint8_t *const dst) {
1348
1.78M
  __m256i reg[2];
1349
1350
1.78M
  reg[0] = round_sr_x_avx2(data[0]);
1351
1.78M
  reg[1] = round_sr_x_avx2(data[1]);
1352
1.78M
  pack_store_32_avx2(reg[0], reg[1], dst);
1353
1.78M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:round_pack_store_32_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:round_pack_store_32_avx2
Unexecuted instantiation: convolve_2d_avx2.c:round_pack_store_32_avx2
convolve_avx2.c:round_pack_store_32_avx2
Line
Count
Source
1347
1.78M
                                            uint8_t *const dst) {
1348
1.78M
  __m256i reg[2];
1349
1350
1.78M
  reg[0] = round_sr_x_avx2(data[0]);
1351
1.78M
  reg[1] = round_sr_x_avx2(data[1]);
1352
1.78M
  pack_store_32_avx2(reg[0], reg[1], dst);
1353
1.78M
}
Unexecuted instantiation: jnt_convolve_avx2.c:round_pack_store_32_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:round_pack_store_32_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:round_pack_store_32_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:round_pack_store_32_avx2
1354
1355
static inline void convolve_round_2tap_32_avx2(const uint8_t *const src,
1356
                                               const __m256i *coeffs,
1357
135k
                                               uint8_t *const dst) {
1358
135k
  __m256i data[2];
1359
1360
135k
  convolve_x_2tap_32_avx2(src, coeffs, data);
1361
135k
  round_pack_store_32_avx2(data, dst);
1362
135k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_round_2tap_32_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_round_2tap_32_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_round_2tap_32_avx2
convolve_avx2.c:convolve_round_2tap_32_avx2
Line
Count
Source
1357
135k
                                               uint8_t *const dst) {
1358
135k
  __m256i data[2];
1359
1360
135k
  convolve_x_2tap_32_avx2(src, coeffs, data);
1361
135k
  round_pack_store_32_avx2(data, dst);
1362
135k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_round_2tap_32_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_round_2tap_32_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_round_2tap_32_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_round_2tap_32_avx2
1363
1364
static inline void load_avg_store_2tap_32_avx2(const uint8_t *const src,
1365
107k
                                               uint8_t *const dst) {
1366
107k
  const __m256i res0 = _mm256_loadu_si256((__m256i *)src);
1367
107k
  const __m256i res1 = _mm256_loadu_si256((__m256i *)(src + 1));
1368
107k
  const __m256i data = _mm256_avg_epu8(res0, res1);
1369
107k
  _mm256_storeu_si256((__m256i *)dst, data);
1370
107k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:load_avg_store_2tap_32_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:load_avg_store_2tap_32_avx2
Unexecuted instantiation: convolve_2d_avx2.c:load_avg_store_2tap_32_avx2
convolve_avx2.c:load_avg_store_2tap_32_avx2
Line
Count
Source
1365
107k
                                               uint8_t *const dst) {
1366
107k
  const __m256i res0 = _mm256_loadu_si256((__m256i *)src);
1367
107k
  const __m256i res1 = _mm256_loadu_si256((__m256i *)(src + 1));
1368
107k
  const __m256i data = _mm256_avg_epu8(res0, res1);
1369
107k
  _mm256_storeu_si256((__m256i *)dst, data);
1370
107k
}
Unexecuted instantiation: jnt_convolve_avx2.c:load_avg_store_2tap_32_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:load_avg_store_2tap_32_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:load_avg_store_2tap_32_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:load_avg_store_2tap_32_avx2
1371
1372
static inline __m256i load_convolve_8tap_8x2_avx2(const uint8_t *const src,
1373
                                                  const ptrdiff_t stride,
1374
                                                  const __m256i *coeffs,
1375
49.7k
                                                  const __m256i *flt) {
1376
49.7k
  const __m256i res = loadu_x_8bit_16x2_avx2(src, stride);
1377
49.7k
  return convolve_lowbd_x(res, coeffs, flt);
1378
49.7k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:load_convolve_8tap_8x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:load_convolve_8tap_8x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:load_convolve_8tap_8x2_avx2
convolve_avx2.c:load_convolve_8tap_8x2_avx2
Line
Count
Source
1375
49.7k
                                                  const __m256i *flt) {
1376
49.7k
  const __m256i res = loadu_x_8bit_16x2_avx2(src, stride);
1377
49.7k
  return convolve_lowbd_x(res, coeffs, flt);
1378
49.7k
}
Unexecuted instantiation: jnt_convolve_avx2.c:load_convolve_8tap_8x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:load_convolve_8tap_8x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:load_convolve_8tap_8x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:load_convolve_8tap_8x2_avx2
1379
1380
static inline void load_convolve_8tap_16x2_avx2(const uint8_t *const src,
1381
                                                const int32_t src_stride,
1382
                                                const __m256i *coeffs,
1383
                                                const __m256i *flt,
1384
24.8k
                                                __m256i *reg) {
1385
24.8k
  reg[0] = load_convolve_8tap_8x2_avx2(src + 0, src_stride, coeffs, flt);
1386
24.8k
  reg[1] = load_convolve_8tap_8x2_avx2(src + 8, src_stride, coeffs, flt);
1387
24.8k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:load_convolve_8tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:load_convolve_8tap_16x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:load_convolve_8tap_16x2_avx2
convolve_avx2.c:load_convolve_8tap_16x2_avx2
Line
Count
Source
1384
24.8k
                                                __m256i *reg) {
1385
24.8k
  reg[0] = load_convolve_8tap_8x2_avx2(src + 0, src_stride, coeffs, flt);
1386
24.8k
  reg[1] = load_convolve_8tap_8x2_avx2(src + 8, src_stride, coeffs, flt);
1387
24.8k
}
Unexecuted instantiation: jnt_convolve_avx2.c:load_convolve_8tap_16x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:load_convolve_8tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:load_convolve_8tap_16x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:load_convolve_8tap_16x2_avx2
1388
1389
static inline void load_convolve_8tap_32_avx2(const uint8_t *const src,
1390
                                              const __m256i *coeffs,
1391
                                              const __m256i *filt,
1392
162k
                                              __m256i *data) {
1393
162k
  const __m256i reg_0 = _mm256_loadu_si256((__m256i *)src);
1394
162k
  const __m256i reg_8 = _mm256_loadu_si256((__m256i *)(src + 8));
1395
1396
162k
  data[0] = convolve_lowbd_x(reg_0, coeffs, filt);
1397
162k
  data[1] = convolve_lowbd_x(reg_8, coeffs, filt);
1398
162k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:load_convolve_8tap_32_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:load_convolve_8tap_32_avx2
Unexecuted instantiation: convolve_2d_avx2.c:load_convolve_8tap_32_avx2
convolve_avx2.c:load_convolve_8tap_32_avx2
Line
Count
Source
1392
162k
                                              __m256i *data) {
1393
162k
  const __m256i reg_0 = _mm256_loadu_si256((__m256i *)src);
1394
162k
  const __m256i reg_8 = _mm256_loadu_si256((__m256i *)(src + 8));
1395
1396
162k
  data[0] = convolve_lowbd_x(reg_0, coeffs, filt);
1397
162k
  data[1] = convolve_lowbd_x(reg_8, coeffs, filt);
1398
162k
}
Unexecuted instantiation: jnt_convolve_avx2.c:load_convolve_8tap_32_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:load_convolve_8tap_32_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:load_convolve_8tap_32_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:load_convolve_8tap_32_avx2
1399
1400
static inline void load_convolve_round_8tap_32_avx2(const uint8_t *const src,
1401
                                                    const __m256i *coeffs,
1402
                                                    const __m256i *filt,
1403
162k
                                                    uint8_t *const dst) {
1404
162k
  __m256i data[2];
1405
1406
162k
  load_convolve_8tap_32_avx2(src, coeffs, filt, data);
1407
162k
  round_pack_store_32_avx2(data, dst);
1408
162k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:load_convolve_round_8tap_32_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:load_convolve_round_8tap_32_avx2
Unexecuted instantiation: convolve_2d_avx2.c:load_convolve_round_8tap_32_avx2
convolve_avx2.c:load_convolve_round_8tap_32_avx2
Line
Count
Source
1403
162k
                                                    uint8_t *const dst) {
1404
162k
  __m256i data[2];
1405
1406
162k
  load_convolve_8tap_32_avx2(src, coeffs, filt, data);
1407
162k
  round_pack_store_32_avx2(data, dst);
1408
162k
}
Unexecuted instantiation: jnt_convolve_avx2.c:load_convolve_round_8tap_32_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:load_convolve_round_8tap_32_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:load_convolve_round_8tap_32_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:load_convolve_round_8tap_32_avx2
1409
1410
static inline void load_convolve_6tap_32_avx2(const uint8_t *const src,
1411
                                              const __m256i *coeffs,
1412
                                              const __m256i *filt,
1413
1.48M
                                              __m256i *data) {
1414
1.48M
  const __m256i reg0 = _mm256_loadu_si256((__m256i *)src);
1415
1.48M
  const __m256i reg1 = _mm256_loadu_si256((__m256i *)(src + 8));
1416
1417
1.48M
  data[0] = convolve_lowbd_x_6tap(reg0, coeffs, filt);
1418
1.48M
  data[1] = convolve_lowbd_x_6tap(reg1, coeffs, filt);
1419
1.48M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:load_convolve_6tap_32_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:load_convolve_6tap_32_avx2
Unexecuted instantiation: convolve_2d_avx2.c:load_convolve_6tap_32_avx2
convolve_avx2.c:load_convolve_6tap_32_avx2
Line
Count
Source
1413
1.48M
                                              __m256i *data) {
1414
1.48M
  const __m256i reg0 = _mm256_loadu_si256((__m256i *)src);
1415
1.48M
  const __m256i reg1 = _mm256_loadu_si256((__m256i *)(src + 8));
1416
1417
1.48M
  data[0] = convolve_lowbd_x_6tap(reg0, coeffs, filt);
1418
1.48M
  data[1] = convolve_lowbd_x_6tap(reg1, coeffs, filt);
1419
1.48M
}
Unexecuted instantiation: jnt_convolve_avx2.c:load_convolve_6tap_32_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:load_convolve_6tap_32_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:load_convolve_6tap_32_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:load_convolve_6tap_32_avx2
1420
1421
static inline void convolve_sr_store_6tap_32_avx2(const uint8_t *const src,
1422
                                                  const __m256i *coeffs,
1423
                                                  const __m256i *filt,
1424
1.48M
                                                  uint8_t *const dst) {
1425
1.48M
  __m256i data[2];
1426
1427
1.48M
  load_convolve_6tap_32_avx2(src, coeffs, filt, data);
1428
1.48M
  round_pack_store_32_avx2(data, dst);
1429
1.48M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_sr_store_6tap_32_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_sr_store_6tap_32_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_sr_store_6tap_32_avx2
convolve_avx2.c:convolve_sr_store_6tap_32_avx2
Line
Count
Source
1424
1.48M
                                                  uint8_t *const dst) {
1425
1.48M
  __m256i data[2];
1426
1427
1.48M
  load_convolve_6tap_32_avx2(src, coeffs, filt, data);
1428
1.48M
  round_pack_store_32_avx2(data, dst);
1429
1.48M
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_sr_store_6tap_32_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_sr_store_6tap_32_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_sr_store_6tap_32_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_sr_store_6tap_32_avx2
1430
1431
static inline __m256i load_convolve_6tap_8x2_avx2(const uint8_t *const src,
1432
                                                  const ptrdiff_t stride,
1433
                                                  const __m256i *coeffs,
1434
889k
                                                  const __m256i *filt) {
1435
889k
  const __m256i data = loadu_x_8bit_16x2_avx2(src, stride);
1436
889k
  return convolve_lowbd_x_6tap(data, coeffs, filt);
1437
889k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:load_convolve_6tap_8x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:load_convolve_6tap_8x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:load_convolve_6tap_8x2_avx2
convolve_avx2.c:load_convolve_6tap_8x2_avx2
Line
Count
Source
1434
889k
                                                  const __m256i *filt) {
1435
889k
  const __m256i data = loadu_x_8bit_16x2_avx2(src, stride);
1436
889k
  return convolve_lowbd_x_6tap(data, coeffs, filt);
1437
889k
}
Unexecuted instantiation: jnt_convolve_avx2.c:load_convolve_6tap_8x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:load_convolve_6tap_8x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:load_convolve_6tap_8x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:load_convolve_6tap_8x2_avx2
1438
1439
static inline void load_convolve_6tap_16x2_avx2(const uint8_t *const src,
1440
                                                const int32_t src_stride,
1441
                                                const __m256i *coeffs,
1442
                                                const __m256i *filt,
1443
444k
                                                __m256i *data) {
1444
444k
  data[0] = load_convolve_6tap_8x2_avx2(src + 0, src_stride, coeffs, filt);
1445
444k
  data[1] = load_convolve_6tap_8x2_avx2(src + 8, src_stride, coeffs, filt);
1446
444k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:load_convolve_6tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:load_convolve_6tap_16x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:load_convolve_6tap_16x2_avx2
convolve_avx2.c:load_convolve_6tap_16x2_avx2
Line
Count
Source
1443
444k
                                                __m256i *data) {
1444
444k
  data[0] = load_convolve_6tap_8x2_avx2(src + 0, src_stride, coeffs, filt);
1445
444k
  data[1] = load_convolve_6tap_8x2_avx2(src + 8, src_stride, coeffs, filt);
1446
444k
}
Unexecuted instantiation: jnt_convolve_avx2.c:load_convolve_6tap_16x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:load_convolve_6tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:load_convolve_6tap_16x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:load_convolve_6tap_16x2_avx2
1447
1448
673k
static inline __m128i round_sr_y_ssse3(const __m128i data) {
1449
673k
  const __m128i value = _mm_set1_epi16(32);
1450
673k
  const __m128i reg = _mm_add_epi16(data, value);
1451
673k
  return _mm_srai_epi16(reg, FILTER_BITS - 1);
1452
673k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:round_sr_y_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:round_sr_y_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:round_sr_y_ssse3
convolve_avx2.c:round_sr_y_ssse3
Line
Count
Source
1448
673k
static inline __m128i round_sr_y_ssse3(const __m128i data) {
1449
673k
  const __m128i value = _mm_set1_epi16(32);
1450
673k
  const __m128i reg = _mm_add_epi16(data, value);
1451
673k
  return _mm_srai_epi16(reg, FILTER_BITS - 1);
1452
673k
}
Unexecuted instantiation: jnt_convolve_avx2.c:round_sr_y_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:round_sr_y_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:round_sr_y_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:round_sr_y_ssse3
1453
1454
5.03M
static inline __m256i round_sr_y_avx2(const __m256i data) {
1455
5.03M
  const __m256i value = _mm256_set1_epi16(32);
1456
5.03M
  const __m256i reg = _mm256_add_epi16(data, value);
1457
5.03M
  return _mm256_srai_epi16(reg, FILTER_BITS - 1);
1458
5.03M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:round_sr_y_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:round_sr_y_avx2
Unexecuted instantiation: convolve_2d_avx2.c:round_sr_y_avx2
convolve_avx2.c:round_sr_y_avx2
Line
Count
Source
1454
5.03M
static inline __m256i round_sr_y_avx2(const __m256i data) {
1455
5.03M
  const __m256i value = _mm256_set1_epi16(32);
1456
5.03M
  const __m256i reg = _mm256_add_epi16(data, value);
1457
5.03M
  return _mm256_srai_epi16(reg, FILTER_BITS - 1);
1458
5.03M
}
Unexecuted instantiation: jnt_convolve_avx2.c:round_sr_y_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:round_sr_y_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:round_sr_y_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:round_sr_y_avx2
1459
1460
static inline void round_pack_store_y_8x2_avx2(const __m256i res,
1461
                                               uint8_t *const dst,
1462
640k
                                               const ptrdiff_t dst_stride) {
1463
640k
  __m256i r;
1464
1465
640k
  r = round_sr_y_avx2(res);
1466
640k
  pack_store_8x2_avx2(r, dst, dst_stride);
1467
640k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:round_pack_store_y_8x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:round_pack_store_y_8x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:round_pack_store_y_8x2_avx2
convolve_avx2.c:round_pack_store_y_8x2_avx2
Line
Count
Source
1462
640k
                                               const ptrdiff_t dst_stride) {
1463
640k
  __m256i r;
1464
1465
640k
  r = round_sr_y_avx2(res);
1466
640k
  pack_store_8x2_avx2(r, dst, dst_stride);
1467
640k
}
Unexecuted instantiation: jnt_convolve_avx2.c:round_pack_store_y_8x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:round_pack_store_y_8x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:round_pack_store_y_8x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:round_pack_store_y_8x2_avx2
1468
1469
static inline void round_pack_store_y_16x2_avx2(const __m256i res[2],
1470
                                                uint8_t *const dst,
1471
1.83M
                                                const ptrdiff_t dst_stride) {
1472
1.83M
  __m256i r[2];
1473
1474
1.83M
  r[0] = round_sr_y_avx2(res[0]);
1475
1.83M
  r[1] = round_sr_y_avx2(res[1]);
1476
1.83M
  pack_store_16x2_avx2(r[0], r[1], dst, dst_stride);
1477
1.83M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:round_pack_store_y_16x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:round_pack_store_y_16x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:round_pack_store_y_16x2_avx2
convolve_avx2.c:round_pack_store_y_16x2_avx2
Line
Count
Source
1471
1.83M
                                                const ptrdiff_t dst_stride) {
1472
1.83M
  __m256i r[2];
1473
1474
1.83M
  r[0] = round_sr_y_avx2(res[0]);
1475
1.83M
  r[1] = round_sr_y_avx2(res[1]);
1476
1.83M
  pack_store_16x2_avx2(r[0], r[1], dst, dst_stride);
1477
1.83M
}
Unexecuted instantiation: jnt_convolve_avx2.c:round_pack_store_y_16x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:round_pack_store_y_16x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:round_pack_store_y_16x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:round_pack_store_y_16x2_avx2
1478
1479
static inline void round_pack_store_y_32_avx2(const __m256i res[2],
1480
363k
                                              uint8_t *const dst) {
1481
363k
  __m256i r[2];
1482
1483
363k
  r[0] = round_sr_y_avx2(res[0]);
1484
363k
  r[1] = round_sr_y_avx2(res[1]);
1485
363k
  pack_store_32_avx2(r[0], r[1], dst);
1486
363k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:round_pack_store_y_32_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:round_pack_store_y_32_avx2
Unexecuted instantiation: convolve_2d_avx2.c:round_pack_store_y_32_avx2
convolve_avx2.c:round_pack_store_y_32_avx2
Line
Count
Source
1480
363k
                                              uint8_t *const dst) {
1481
363k
  __m256i r[2];
1482
1483
363k
  r[0] = round_sr_y_avx2(res[0]);
1484
363k
  r[1] = round_sr_y_avx2(res[1]);
1485
363k
  pack_store_32_avx2(r[0], r[1], dst);
1486
363k
}
Unexecuted instantiation: jnt_convolve_avx2.c:round_pack_store_y_32_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:round_pack_store_y_32_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:round_pack_store_y_32_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:round_pack_store_y_32_avx2
1487
1488
static inline void round_pack_store_y_32x2_avx2(const __m256i res[4],
1489
                                                uint8_t *const dst,
1490
181k
                                                const ptrdiff_t dst_stride) {
1491
181k
  round_pack_store_y_32_avx2(res, dst);
1492
181k
  round_pack_store_y_32_avx2(res + 2, dst + dst_stride);
1493
181k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:round_pack_store_y_32x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:round_pack_store_y_32x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:round_pack_store_y_32x2_avx2
convolve_avx2.c:round_pack_store_y_32x2_avx2
Line
Count
Source
1490
181k
                                                const ptrdiff_t dst_stride) {
1491
181k
  round_pack_store_y_32_avx2(res, dst);
1492
181k
  round_pack_store_y_32_avx2(res + 2, dst + dst_stride);
1493
181k
}
Unexecuted instantiation: jnt_convolve_avx2.c:round_pack_store_y_32x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:round_pack_store_y_32x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:round_pack_store_y_32x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:round_pack_store_y_32x2_avx2
1494
1495
static inline void convolve_y_2tap_2x2_ssse3(const uint8_t *const data,
1496
                                             const ptrdiff_t stride,
1497
                                             const __m128i *coeffs,
1498
3.55k
                                             __m128i d[2], __m128i *res) {
1499
3.55k
  d[1] = _mm_cvtsi32_si128(loadu_int16(data + 1 * stride));
1500
3.55k
  const __m128i src_01a = _mm_unpacklo_epi16(d[0], d[1]);
1501
3.55k
  d[0] = _mm_cvtsi32_si128(loadu_int16(data + 2 * stride));
1502
3.55k
  const __m128i src_12a = _mm_unpacklo_epi16(d[1], d[0]);
1503
1504
3.55k
  const __m128i s = _mm_unpacklo_epi8(src_01a, src_12a);
1505
1506
3.55k
  *res = _mm_maddubs_epi16(s, coeffs[0]);
1507
3.55k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_2tap_2x2_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_2tap_2x2_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_2tap_2x2_ssse3
convolve_avx2.c:convolve_y_2tap_2x2_ssse3
Line
Count
Source
1498
3.55k
                                             __m128i d[2], __m128i *res) {
1499
3.55k
  d[1] = _mm_cvtsi32_si128(loadu_int16(data + 1 * stride));
1500
3.55k
  const __m128i src_01a = _mm_unpacklo_epi16(d[0], d[1]);
1501
3.55k
  d[0] = _mm_cvtsi32_si128(loadu_int16(data + 2 * stride));
1502
3.55k
  const __m128i src_12a = _mm_unpacklo_epi16(d[1], d[0]);
1503
1504
3.55k
  const __m128i s = _mm_unpacklo_epi8(src_01a, src_12a);
1505
1506
3.55k
  *res = _mm_maddubs_epi16(s, coeffs[0]);
1507
3.55k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_2tap_2x2_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_2tap_2x2_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_2tap_2x2_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_2tap_2x2_ssse3
1508
1509
static inline void convolve_y_4tap_2x2_ssse3(const uint8_t *const data,
1510
                                             const ptrdiff_t stride,
1511
                                             const __m128i coeffs[2],
1512
                                             __m128i d[4], __m128i s[2],
1513
40.3k
                                             __m128i *res) {
1514
40.3k
  d[3] = _mm_cvtsi32_si128(loadu_int16(data + 3 * stride));
1515
40.3k
  const __m128i src_23a = _mm_unpacklo_epi16(d[2], d[3]);
1516
40.3k
  d[2] = _mm_cvtsi32_si128(loadu_int16(data + 4 * stride));
1517
40.3k
  const __m128i src_34a = _mm_unpacklo_epi16(d[3], d[2]);
1518
1519
40.3k
  s[1] = _mm_unpacklo_epi8(src_23a, src_34a);
1520
1521
40.3k
  *res = convolve_lowbd_4tap_ssse3(s, coeffs);
1522
40.3k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_4tap_2x2_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_4tap_2x2_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_4tap_2x2_ssse3
convolve_avx2.c:convolve_y_4tap_2x2_ssse3
Line
Count
Source
1513
40.3k
                                             __m128i *res) {
1514
40.3k
  d[3] = _mm_cvtsi32_si128(loadu_int16(data + 3 * stride));
1515
40.3k
  const __m128i src_23a = _mm_unpacklo_epi16(d[2], d[3]);
1516
40.3k
  d[2] = _mm_cvtsi32_si128(loadu_int16(data + 4 * stride));
1517
40.3k
  const __m128i src_34a = _mm_unpacklo_epi16(d[3], d[2]);
1518
1519
40.3k
  s[1] = _mm_unpacklo_epi8(src_23a, src_34a);
1520
1521
40.3k
  *res = convolve_lowbd_4tap_ssse3(s, coeffs);
1522
40.3k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_4tap_2x2_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_4tap_2x2_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_4tap_2x2_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_4tap_2x2_ssse3
1523
1524
static inline void convolve_y_6tap_2x2_ssse3(const uint8_t *const data,
1525
                                             const ptrdiff_t stride,
1526
                                             const __m128i coeffs[3],
1527
                                             __m128i d[6], __m128i s[3],
1528
54.0k
                                             __m128i *res) {
1529
54.0k
  d[5] = _mm_cvtsi32_si128(loadu_int16(data + 5 * stride));
1530
54.0k
  const __m128i src_45a = _mm_unpacklo_epi16(d[4], d[5]);
1531
54.0k
  d[4] = _mm_cvtsi32_si128(loadu_int16(data + 6 * stride));
1532
54.0k
  const __m128i src_56a = _mm_unpacklo_epi16(d[5], d[4]);
1533
1534
54.0k
  s[2] = _mm_unpacklo_epi8(src_45a, src_56a);
1535
1536
54.0k
  *res = convolve_lowbd_6tap_ssse3(s, coeffs);
1537
54.0k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_6tap_2x2_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_6tap_2x2_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_6tap_2x2_ssse3
convolve_avx2.c:convolve_y_6tap_2x2_ssse3
Line
Count
Source
1528
54.0k
                                             __m128i *res) {
1529
54.0k
  d[5] = _mm_cvtsi32_si128(loadu_int16(data + 5 * stride));
1530
54.0k
  const __m128i src_45a = _mm_unpacklo_epi16(d[4], d[5]);
1531
54.0k
  d[4] = _mm_cvtsi32_si128(loadu_int16(data + 6 * stride));
1532
54.0k
  const __m128i src_56a = _mm_unpacklo_epi16(d[5], d[4]);
1533
1534
54.0k
  s[2] = _mm_unpacklo_epi8(src_45a, src_56a);
1535
1536
54.0k
  *res = convolve_lowbd_6tap_ssse3(s, coeffs);
1537
54.0k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_6tap_2x2_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_6tap_2x2_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_6tap_2x2_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_6tap_2x2_ssse3
1538
1539
static inline void convolve_y_8tap_2x2_ssse3(const uint8_t *const data,
1540
                                             const ptrdiff_t stride,
1541
                                             const __m128i coeffs[4],
1542
                                             __m128i d[8], __m128i s[4],
1543
5.26k
                                             __m128i *res) {
1544
5.26k
  d[7] = _mm_cvtsi32_si128(loadu_int16(data + 7 * stride));
1545
5.26k
  const __m128i src_67a = _mm_unpacklo_epi16(d[6], d[7]);
1546
5.26k
  d[6] = _mm_cvtsi32_si128(loadu_int16(data + 8 * stride));
1547
5.26k
  const __m128i src_78a = _mm_unpacklo_epi16(d[7], d[6]);
1548
1549
5.26k
  s[3] = _mm_unpacklo_epi8(src_67a, src_78a);
1550
1551
5.26k
  *res = convolve_lowbd_ssse3(s, coeffs);
1552
5.26k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_8tap_2x2_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_8tap_2x2_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_8tap_2x2_ssse3
convolve_avx2.c:convolve_y_8tap_2x2_ssse3
Line
Count
Source
1543
5.26k
                                             __m128i *res) {
1544
5.26k
  d[7] = _mm_cvtsi32_si128(loadu_int16(data + 7 * stride));
1545
5.26k
  const __m128i src_67a = _mm_unpacklo_epi16(d[6], d[7]);
1546
5.26k
  d[6] = _mm_cvtsi32_si128(loadu_int16(data + 8 * stride));
1547
5.26k
  const __m128i src_78a = _mm_unpacklo_epi16(d[7], d[6]);
1548
1549
5.26k
  s[3] = _mm_unpacklo_epi8(src_67a, src_78a);
1550
1551
5.26k
  *res = convolve_lowbd_ssse3(s, coeffs);
1552
5.26k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_8tap_2x2_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_8tap_2x2_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_8tap_2x2_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_8tap_2x2_ssse3
1553
1554
static inline void convolve_y_2tap_4x2_ssse3(const uint8_t *const data,
1555
                                             const ptrdiff_t stride,
1556
                                             const __m128i *coeffs,
1557
14.8k
                                             __m128i d[2], __m128i *res) {
1558
14.8k
  d[1] = _mm_cvtsi32_si128(loadu_int32(data + 1 * stride));
1559
14.8k
  const __m128i src_01a = _mm_unpacklo_epi32(d[0], d[1]);
1560
14.8k
  d[0] = _mm_cvtsi32_si128(loadu_int32(data + 2 * stride));
1561
14.8k
  const __m128i src_12a = _mm_unpacklo_epi32(d[1], d[0]);
1562
1563
14.8k
  const __m128i s = _mm_unpacklo_epi8(src_01a, src_12a);
1564
1565
14.8k
  *res = _mm_maddubs_epi16(s, coeffs[0]);
1566
14.8k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_2tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_2tap_4x2_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_2tap_4x2_ssse3
convolve_avx2.c:convolve_y_2tap_4x2_ssse3
Line
Count
Source
1557
14.8k
                                             __m128i d[2], __m128i *res) {
1558
14.8k
  d[1] = _mm_cvtsi32_si128(loadu_int32(data + 1 * stride));
1559
14.8k
  const __m128i src_01a = _mm_unpacklo_epi32(d[0], d[1]);
1560
14.8k
  d[0] = _mm_cvtsi32_si128(loadu_int32(data + 2 * stride));
1561
14.8k
  const __m128i src_12a = _mm_unpacklo_epi32(d[1], d[0]);
1562
1563
14.8k
  const __m128i s = _mm_unpacklo_epi8(src_01a, src_12a);
1564
1565
14.8k
  *res = _mm_maddubs_epi16(s, coeffs[0]);
1566
14.8k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_2tap_4x2_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_2tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_2tap_4x2_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_2tap_4x2_ssse3
1567
1568
static inline void convolve_y_4tap_4x2_ssse3(const uint8_t *const data,
1569
                                             const ptrdiff_t stride,
1570
                                             const __m128i coeffs[2],
1571
                                             __m128i d[4], __m128i s[2],
1572
207k
                                             __m128i *res) {
1573
207k
  d[3] = _mm_cvtsi32_si128(loadu_int32(data + 3 * stride));
1574
207k
  const __m128i src_23a = _mm_unpacklo_epi32(d[2], d[3]);
1575
207k
  d[2] = _mm_cvtsi32_si128(loadu_int32(data + 4 * stride));
1576
207k
  const __m128i src_34a = _mm_unpacklo_epi32(d[3], d[2]);
1577
1578
207k
  s[1] = _mm_unpacklo_epi8(src_23a, src_34a);
1579
1580
207k
  *res = convolve_lowbd_4tap_ssse3(s, coeffs);
1581
207k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_4tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_4tap_4x2_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_4tap_4x2_ssse3
convolve_avx2.c:convolve_y_4tap_4x2_ssse3
Line
Count
Source
1572
207k
                                             __m128i *res) {
1573
207k
  d[3] = _mm_cvtsi32_si128(loadu_int32(data + 3 * stride));
1574
207k
  const __m128i src_23a = _mm_unpacklo_epi32(d[2], d[3]);
1575
207k
  d[2] = _mm_cvtsi32_si128(loadu_int32(data + 4 * stride));
1576
207k
  const __m128i src_34a = _mm_unpacklo_epi32(d[3], d[2]);
1577
1578
207k
  s[1] = _mm_unpacklo_epi8(src_23a, src_34a);
1579
1580
207k
  *res = convolve_lowbd_4tap_ssse3(s, coeffs);
1581
207k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_4tap_4x2_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_4tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_4tap_4x2_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_4tap_4x2_ssse3
1582
1583
static inline void convolve_y_6tap_4x2_ssse3(const uint8_t *const data,
1584
                                             const ptrdiff_t stride,
1585
                                             const __m128i coeffs[3],
1586
                                             __m128i d[6], __m128i s[3],
1587
321k
                                             __m128i *res) {
1588
321k
  d[5] = _mm_cvtsi32_si128(loadu_int32(data + 5 * stride));
1589
321k
  const __m128i src_45a = _mm_unpacklo_epi32(d[4], d[5]);
1590
321k
  d[4] = _mm_cvtsi32_si128(loadu_int32(data + 6 * stride));
1591
321k
  const __m128i src_56a = _mm_unpacklo_epi32(d[5], d[4]);
1592
1593
321k
  s[2] = _mm_unpacklo_epi8(src_45a, src_56a);
1594
1595
321k
  *res = convolve_lowbd_6tap_ssse3(s, coeffs);
1596
321k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_6tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_6tap_4x2_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_6tap_4x2_ssse3
convolve_avx2.c:convolve_y_6tap_4x2_ssse3
Line
Count
Source
1587
321k
                                             __m128i *res) {
1588
321k
  d[5] = _mm_cvtsi32_si128(loadu_int32(data + 5 * stride));
1589
321k
  const __m128i src_45a = _mm_unpacklo_epi32(d[4], d[5]);
1590
321k
  d[4] = _mm_cvtsi32_si128(loadu_int32(data + 6 * stride));
1591
321k
  const __m128i src_56a = _mm_unpacklo_epi32(d[5], d[4]);
1592
1593
321k
  s[2] = _mm_unpacklo_epi8(src_45a, src_56a);
1594
1595
321k
  *res = convolve_lowbd_6tap_ssse3(s, coeffs);
1596
321k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_6tap_4x2_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_6tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_6tap_4x2_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_6tap_4x2_ssse3
1597
1598
static inline void convolve_y_8tap_4x2_ssse3(const uint8_t *const data,
1599
                                             const ptrdiff_t stride,
1600
                                             const __m128i coeffs[4],
1601
                                             __m128i d[8], __m128i s[4],
1602
26.5k
                                             __m128i *res) {
1603
26.5k
  d[7] = _mm_cvtsi32_si128(loadu_int32(data + 7 * stride));
1604
26.5k
  const __m128i src_67a = _mm_unpacklo_epi32(d[6], d[7]);
1605
26.5k
  d[6] = _mm_cvtsi32_si128(loadu_int32(data + 8 * stride));
1606
26.5k
  const __m128i src_78a = _mm_unpacklo_epi32(d[7], d[6]);
1607
1608
26.5k
  s[3] = _mm_unpacklo_epi8(src_67a, src_78a);
1609
1610
26.5k
  res[0] = convolve_lowbd_ssse3(s, coeffs);
1611
26.5k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_8tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_8tap_4x2_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_8tap_4x2_ssse3
convolve_avx2.c:convolve_y_8tap_4x2_ssse3
Line
Count
Source
1602
26.5k
                                             __m128i *res) {
1603
26.5k
  d[7] = _mm_cvtsi32_si128(loadu_int32(data + 7 * stride));
1604
26.5k
  const __m128i src_67a = _mm_unpacklo_epi32(d[6], d[7]);
1605
26.5k
  d[6] = _mm_cvtsi32_si128(loadu_int32(data + 8 * stride));
1606
26.5k
  const __m128i src_78a = _mm_unpacklo_epi32(d[7], d[6]);
1607
1608
26.5k
  s[3] = _mm_unpacklo_epi8(src_67a, src_78a);
1609
1610
26.5k
  res[0] = convolve_lowbd_ssse3(s, coeffs);
1611
26.5k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_8tap_4x2_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_8tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_8tap_4x2_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_8tap_4x2_ssse3
1612
1613
static inline void convolve_y_2tap_8x2_avx2(const uint8_t *const data,
1614
                                            const ptrdiff_t stride,
1615
                                            const __m256i *coeffs, __m128i d[2],
1616
13.1k
                                            __m256i *res) {
1617
13.1k
  d[1] = _mm_loadu_si128((__m128i *)(data + 1 * stride));
1618
13.1k
  const __m256i src_01a = _mm256_setr_m128i(d[0], d[1]);
1619
13.1k
  d[0] = _mm_loadu_si128((__m128i *)(data + 2 * stride));
1620
13.1k
  const __m256i src_12a = _mm256_setr_m128i(d[1], d[0]);
1621
1622
13.1k
  const __m256i s = _mm256_unpacklo_epi8(src_01a, src_12a);
1623
1624
13.1k
  *res = _mm256_maddubs_epi16(s, coeffs[0]);
1625
13.1k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_2tap_8x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_2tap_8x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_2tap_8x2_avx2
convolve_avx2.c:convolve_y_2tap_8x2_avx2
Line
Count
Source
1616
13.1k
                                            __m256i *res) {
1617
13.1k
  d[1] = _mm_loadu_si128((__m128i *)(data + 1 * stride));
1618
13.1k
  const __m256i src_01a = _mm256_setr_m128i(d[0], d[1]);
1619
13.1k
  d[0] = _mm_loadu_si128((__m128i *)(data + 2 * stride));
1620
13.1k
  const __m256i src_12a = _mm256_setr_m128i(d[1], d[0]);
1621
1622
13.1k
  const __m256i s = _mm256_unpacklo_epi8(src_01a, src_12a);
1623
1624
13.1k
  *res = _mm256_maddubs_epi16(s, coeffs[0]);
1625
13.1k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_2tap_8x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_2tap_8x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_2tap_8x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_2tap_8x2_avx2
1626
1627
static inline void convolve_y_4tap_8x2_avx2(const uint8_t *const data,
1628
                                            const ptrdiff_t stride,
1629
                                            const __m256i coeffs[2],
1630
                                            __m128i d[4], __m256i s[2],
1631
181k
                                            __m256i *res) {
1632
181k
  d[3] = _mm_loadu_si128((__m128i *)(data + 3 * stride));
1633
181k
  const __m256i src_23a = _mm256_setr_m128i(d[2], d[3]);
1634
181k
  d[2] = _mm_loadu_si128((__m128i *)(data + 4 * stride));
1635
181k
  const __m256i src_34a = _mm256_setr_m128i(d[3], d[2]);
1636
1637
181k
  s[1] = _mm256_unpacklo_epi8(src_23a, src_34a);
1638
1639
181k
  *res = convolve_lowbd_4tap(s, coeffs);
1640
181k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_4tap_8x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_4tap_8x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_4tap_8x2_avx2
convolve_avx2.c:convolve_y_4tap_8x2_avx2
Line
Count
Source
1631
181k
                                            __m256i *res) {
1632
181k
  d[3] = _mm_loadu_si128((__m128i *)(data + 3 * stride));
1633
181k
  const __m256i src_23a = _mm256_setr_m128i(d[2], d[3]);
1634
181k
  d[2] = _mm_loadu_si128((__m128i *)(data + 4 * stride));
1635
181k
  const __m256i src_34a = _mm256_setr_m128i(d[3], d[2]);
1636
1637
181k
  s[1] = _mm256_unpacklo_epi8(src_23a, src_34a);
1638
1639
181k
  *res = convolve_lowbd_4tap(s, coeffs);
1640
181k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_4tap_8x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_4tap_8x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_4tap_8x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_4tap_8x2_avx2
1641
1642
static inline void convolve_y_6tap_8x2_avx2(const uint8_t *const data,
1643
                                            const ptrdiff_t stride,
1644
                                            const __m256i coeffs[3],
1645
                                            __m128i d[6], __m256i s[3],
1646
419k
                                            __m256i *res) {
1647
419k
  d[5] = _mm_loadu_si128((__m128i *)(data + 5 * stride));
1648
419k
  const __m256i src_45a = _mm256_setr_m128i(d[4], d[5]);
1649
419k
  d[4] = _mm_loadu_si128((__m128i *)(data + 6 * stride));
1650
419k
  const __m256i src_56a = _mm256_setr_m128i(d[5], d[4]);
1651
1652
419k
  s[2] = _mm256_unpacklo_epi8(src_45a, src_56a);
1653
1654
419k
  *res = convolve_lowbd_6tap(s, coeffs);
1655
419k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_6tap_8x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_6tap_8x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_6tap_8x2_avx2
convolve_avx2.c:convolve_y_6tap_8x2_avx2
Line
Count
Source
1646
419k
                                            __m256i *res) {
1647
419k
  d[5] = _mm_loadu_si128((__m128i *)(data + 5 * stride));
1648
419k
  const __m256i src_45a = _mm256_setr_m128i(d[4], d[5]);
1649
419k
  d[4] = _mm_loadu_si128((__m128i *)(data + 6 * stride));
1650
419k
  const __m256i src_56a = _mm256_setr_m128i(d[5], d[4]);
1651
1652
419k
  s[2] = _mm256_unpacklo_epi8(src_45a, src_56a);
1653
1654
419k
  *res = convolve_lowbd_6tap(s, coeffs);
1655
419k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_6tap_8x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_6tap_8x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_6tap_8x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_6tap_8x2_avx2
1656
1657
static inline void convolve_y_8tap_8x2_avx2(const uint8_t *const data,
1658
                                            const ptrdiff_t stride,
1659
                                            const __m256i coeffs[4],
1660
                                            __m128i d[8], __m256i s[4],
1661
25.9k
                                            __m256i *res) {
1662
25.9k
  d[7] = _mm_loadu_si128((__m128i *)(data + 7 * stride));
1663
25.9k
  const __m256i src_67a = _mm256_setr_m128i(d[6], d[7]);
1664
25.9k
  d[6] = _mm_loadu_si128((__m128i *)(data + 8 * stride));
1665
25.9k
  const __m256i src_78a = _mm256_setr_m128i(d[7], d[6]);
1666
1667
25.9k
  s[3] = _mm256_unpacklo_epi8(src_67a, src_78a);
1668
1669
25.9k
  *res = convolve_lowbd(s, coeffs);
1670
25.9k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_8tap_8x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_8tap_8x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_8tap_8x2_avx2
convolve_avx2.c:convolve_y_8tap_8x2_avx2
Line
Count
Source
1661
25.9k
                                            __m256i *res) {
1662
25.9k
  d[7] = _mm_loadu_si128((__m128i *)(data + 7 * stride));
1663
25.9k
  const __m256i src_67a = _mm256_setr_m128i(d[6], d[7]);
1664
25.9k
  d[6] = _mm_loadu_si128((__m128i *)(data + 8 * stride));
1665
25.9k
  const __m256i src_78a = _mm256_setr_m128i(d[7], d[6]);
1666
1667
25.9k
  s[3] = _mm256_unpacklo_epi8(src_67a, src_78a);
1668
1669
25.9k
  *res = convolve_lowbd(s, coeffs);
1670
25.9k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_8tap_8x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_8tap_8x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_8tap_8x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_8tap_8x2_avx2
1671
1672
static inline void convolve_y_2tap_16x2_avx2(const uint8_t *const data,
1673
                                             const ptrdiff_t stride,
1674
                                             const __m256i *coeffs,
1675
13.0k
                                             __m128i d[2], __m256i res[2]) {
1676
13.0k
  d[1] = _mm_loadu_si128((__m128i *)(data + 1 * stride));
1677
13.0k
  const __m256i src_01a = _mm256_setr_m128i(d[0], d[1]);
1678
13.0k
  d[0] = _mm_loadu_si128((__m128i *)(data + 2 * stride));
1679
13.0k
  const __m256i src_12a = _mm256_setr_m128i(d[1], d[0]);
1680
1681
13.0k
  const __m256i s0 = _mm256_unpacklo_epi8(src_01a, src_12a);
1682
13.0k
  const __m256i s1 = _mm256_unpackhi_epi8(src_01a, src_12a);
1683
1684
13.0k
  res[0] = _mm256_maddubs_epi16(s0, coeffs[0]);
1685
13.0k
  res[1] = _mm256_maddubs_epi16(s1, coeffs[0]);
1686
13.0k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_2tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_2tap_16x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_2tap_16x2_avx2
convolve_avx2.c:convolve_y_2tap_16x2_avx2
Line
Count
Source
1675
13.0k
                                             __m128i d[2], __m256i res[2]) {
1676
13.0k
  d[1] = _mm_loadu_si128((__m128i *)(data + 1 * stride));
1677
13.0k
  const __m256i src_01a = _mm256_setr_m128i(d[0], d[1]);
1678
13.0k
  d[0] = _mm_loadu_si128((__m128i *)(data + 2 * stride));
1679
13.0k
  const __m256i src_12a = _mm256_setr_m128i(d[1], d[0]);
1680
1681
13.0k
  const __m256i s0 = _mm256_unpacklo_epi8(src_01a, src_12a);
1682
13.0k
  const __m256i s1 = _mm256_unpackhi_epi8(src_01a, src_12a);
1683
1684
13.0k
  res[0] = _mm256_maddubs_epi16(s0, coeffs[0]);
1685
13.0k
  res[1] = _mm256_maddubs_epi16(s1, coeffs[0]);
1686
13.0k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_2tap_16x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_2tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_2tap_16x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_2tap_16x2_avx2
1687
1688
static inline void convolve_y_4tap_16x2_avx2(const uint8_t *const data,
1689
                                             const ptrdiff_t stride,
1690
                                             const __m256i coeffs[2],
1691
                                             __m128i d[4], __m256i s[4],
1692
112k
                                             __m256i res[2]) {
1693
112k
  d[3] = _mm_loadu_si128((__m128i *)(data + 3 * stride));
1694
112k
  const __m256i src_23a = _mm256_setr_m128i(d[2], d[3]);
1695
112k
  d[2] = _mm_loadu_si128((__m128i *)(data + 4 * stride));
1696
112k
  const __m256i src_34a = _mm256_setr_m128i(d[3], d[2]);
1697
1698
112k
  s[1] = _mm256_unpacklo_epi8(src_23a, src_34a);
1699
112k
  s[3] = _mm256_unpackhi_epi8(src_23a, src_34a);
1700
1701
112k
  res[0] = convolve_lowbd_4tap(s, coeffs);
1702
112k
  res[1] = convolve_lowbd_4tap(s + 2, coeffs);
1703
112k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_4tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_4tap_16x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_4tap_16x2_avx2
convolve_avx2.c:convolve_y_4tap_16x2_avx2
Line
Count
Source
1692
112k
                                             __m256i res[2]) {
1693
112k
  d[3] = _mm_loadu_si128((__m128i *)(data + 3 * stride));
1694
112k
  const __m256i src_23a = _mm256_setr_m128i(d[2], d[3]);
1695
112k
  d[2] = _mm_loadu_si128((__m128i *)(data + 4 * stride));
1696
112k
  const __m256i src_34a = _mm256_setr_m128i(d[3], d[2]);
1697
1698
112k
  s[1] = _mm256_unpacklo_epi8(src_23a, src_34a);
1699
112k
  s[3] = _mm256_unpackhi_epi8(src_23a, src_34a);
1700
1701
112k
  res[0] = convolve_lowbd_4tap(s, coeffs);
1702
112k
  res[1] = convolve_lowbd_4tap(s + 2, coeffs);
1703
112k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_4tap_16x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_4tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_4tap_16x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_4tap_16x2_avx2
1704
1705
static inline void convolve_y_6tap_16x2_avx2(const uint8_t *const data,
1706
                                             const ptrdiff_t stride,
1707
                                             const __m256i coeffs[3],
1708
                                             __m128i d[6], __m256i s[6],
1709
1.62M
                                             __m256i res[2]) {
1710
1.62M
  d[5] = _mm_loadu_si128((__m128i *)(data + 5 * stride));
1711
1.62M
  const __m256i src_45a = _mm256_setr_m128i(d[4], d[5]);
1712
1.62M
  d[4] = _mm_loadu_si128((__m128i *)(data + 6 * stride));
1713
1.62M
  const __m256i src_56a = _mm256_setr_m128i(d[5], d[4]);
1714
1715
1.62M
  s[2] = _mm256_unpacklo_epi8(src_45a, src_56a);
1716
1.62M
  s[5] = _mm256_unpackhi_epi8(src_45a, src_56a);
1717
1718
1.62M
  res[0] = convolve_lowbd_6tap(s, coeffs);
1719
1.62M
  res[1] = convolve_lowbd_6tap(s + 3, coeffs);
1720
1.62M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_6tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_6tap_16x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_6tap_16x2_avx2
convolve_avx2.c:convolve_y_6tap_16x2_avx2
Line
Count
Source
1709
1.62M
                                             __m256i res[2]) {
1710
1.62M
  d[5] = _mm_loadu_si128((__m128i *)(data + 5 * stride));
1711
1.62M
  const __m256i src_45a = _mm256_setr_m128i(d[4], d[5]);
1712
1.62M
  d[4] = _mm_loadu_si128((__m128i *)(data + 6 * stride));
1713
1.62M
  const __m256i src_56a = _mm256_setr_m128i(d[5], d[4]);
1714
1715
1.62M
  s[2] = _mm256_unpacklo_epi8(src_45a, src_56a);
1716
1.62M
  s[5] = _mm256_unpackhi_epi8(src_45a, src_56a);
1717
1718
1.62M
  res[0] = convolve_lowbd_6tap(s, coeffs);
1719
1.62M
  res[1] = convolve_lowbd_6tap(s + 3, coeffs);
1720
1.62M
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_6tap_16x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_6tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_6tap_16x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_6tap_16x2_avx2
1721
1722
static inline void convolve_y_8tap_16x2_avx2(const uint8_t *const data,
1723
                                             const ptrdiff_t stride,
1724
                                             const __m256i coeffs[4],
1725
                                             __m128i d[8], __m256i s[8],
1726
78.2k
                                             __m256i res[2]) {
1727
78.2k
  d[7] = _mm_loadu_si128((__m128i *)(data + 7 * stride));
1728
78.2k
  const __m256i src_67a = _mm256_setr_m128i(d[6], d[7]);
1729
78.2k
  d[6] = _mm_loadu_si128((__m128i *)(data + 8 * stride));
1730
78.2k
  const __m256i src_78a = _mm256_setr_m128i(d[7], d[6]);
1731
1732
78.2k
  s[3] = _mm256_unpacklo_epi8(src_67a, src_78a);
1733
78.2k
  s[7] = _mm256_unpackhi_epi8(src_67a, src_78a);
1734
1735
78.2k
  res[0] = convolve_lowbd(s, coeffs);
1736
78.2k
  res[1] = convolve_lowbd(s + 4, coeffs);
1737
78.2k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_8tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_8tap_16x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_8tap_16x2_avx2
convolve_avx2.c:convolve_y_8tap_16x2_avx2
Line
Count
Source
1726
78.2k
                                             __m256i res[2]) {
1727
78.2k
  d[7] = _mm_loadu_si128((__m128i *)(data + 7 * stride));
1728
78.2k
  const __m256i src_67a = _mm256_setr_m128i(d[6], d[7]);
1729
78.2k
  d[6] = _mm_loadu_si128((__m128i *)(data + 8 * stride));
1730
78.2k
  const __m256i src_78a = _mm256_setr_m128i(d[7], d[6]);
1731
1732
78.2k
  s[3] = _mm256_unpacklo_epi8(src_67a, src_78a);
1733
78.2k
  s[7] = _mm256_unpackhi_epi8(src_67a, src_78a);
1734
1735
78.2k
  res[0] = convolve_lowbd(s, coeffs);
1736
78.2k
  res[1] = convolve_lowbd(s + 4, coeffs);
1737
78.2k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_8tap_16x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_8tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_8tap_16x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_8tap_16x2_avx2
1738
1739
static inline void convolve_y_2tap_32x2_avx2(const uint8_t *const data,
1740
                                             const ptrdiff_t stride,
1741
                                             const __m256i *coeffs,
1742
39.6k
                                             __m256i d[2], __m256i res[4]) {
1743
39.6k
  d[1] = _mm256_loadu_si256((__m256i *)(data + 1 * stride));
1744
39.6k
  const __m256i s00 = _mm256_unpacklo_epi8(d[0], d[1]);
1745
39.6k
  const __m256i s01 = _mm256_unpackhi_epi8(d[0], d[1]);
1746
39.6k
  d[0] = _mm256_loadu_si256((__m256i *)(data + 2 * stride));
1747
39.6k
  const __m256i s10 = _mm256_unpacklo_epi8(d[1], d[0]);
1748
39.6k
  const __m256i s11 = _mm256_unpackhi_epi8(d[1], d[0]);
1749
1750
39.6k
  res[0] = _mm256_maddubs_epi16(s00, coeffs[0]);
1751
39.6k
  res[1] = _mm256_maddubs_epi16(s01, coeffs[0]);
1752
39.6k
  res[2] = _mm256_maddubs_epi16(s10, coeffs[0]);
1753
39.6k
  res[3] = _mm256_maddubs_epi16(s11, coeffs[0]);
1754
39.6k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_2tap_32x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_2tap_32x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_2tap_32x2_avx2
convolve_avx2.c:convolve_y_2tap_32x2_avx2
Line
Count
Source
1742
39.6k
                                             __m256i d[2], __m256i res[4]) {
1743
39.6k
  d[1] = _mm256_loadu_si256((__m256i *)(data + 1 * stride));
1744
39.6k
  const __m256i s00 = _mm256_unpacklo_epi8(d[0], d[1]);
1745
39.6k
  const __m256i s01 = _mm256_unpackhi_epi8(d[0], d[1]);
1746
39.6k
  d[0] = _mm256_loadu_si256((__m256i *)(data + 2 * stride));
1747
39.6k
  const __m256i s10 = _mm256_unpacklo_epi8(d[1], d[0]);
1748
39.6k
  const __m256i s11 = _mm256_unpackhi_epi8(d[1], d[0]);
1749
1750
39.6k
  res[0] = _mm256_maddubs_epi16(s00, coeffs[0]);
1751
39.6k
  res[1] = _mm256_maddubs_epi16(s01, coeffs[0]);
1752
39.6k
  res[2] = _mm256_maddubs_epi16(s10, coeffs[0]);
1753
39.6k
  res[3] = _mm256_maddubs_epi16(s11, coeffs[0]);
1754
39.6k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_2tap_32x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_2tap_32x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_2tap_32x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_2tap_32x2_avx2
1755
1756
static inline void convolve_y_4tap_32x2_avx2(const uint8_t *const data,
1757
                                             const ptrdiff_t stride,
1758
                                             const __m256i coeffs[2],
1759
                                             __m256i d[4], __m256i s1[4],
1760
141k
                                             __m256i s2[4], __m256i res[4]) {
1761
141k
  d[3] = _mm256_loadu_si256((__m256i *)(data + 3 * stride));
1762
141k
  s1[1] = _mm256_unpacklo_epi8(d[2], d[3]);
1763
141k
  s1[3] = _mm256_unpackhi_epi8(d[2], d[3]);
1764
141k
  d[2] = _mm256_loadu_si256((__m256i *)(data + 4 * stride));
1765
141k
  s2[1] = _mm256_unpacklo_epi8(d[3], d[2]);
1766
141k
  s2[3] = _mm256_unpackhi_epi8(d[3], d[2]);
1767
1768
141k
  res[0] = convolve_lowbd_4tap(s1, coeffs);
1769
141k
  res[1] = convolve_lowbd_4tap(s1 + 2, coeffs);
1770
141k
  res[2] = convolve_lowbd_4tap(s2, coeffs);
1771
141k
  res[3] = convolve_lowbd_4tap(s2 + 2, coeffs);
1772
141k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_4tap_32x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_4tap_32x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_4tap_32x2_avx2
convolve_avx2.c:convolve_y_4tap_32x2_avx2
Line
Count
Source
1760
141k
                                             __m256i s2[4], __m256i res[4]) {
1761
141k
  d[3] = _mm256_loadu_si256((__m256i *)(data + 3 * stride));
1762
141k
  s1[1] = _mm256_unpacklo_epi8(d[2], d[3]);
1763
141k
  s1[3] = _mm256_unpackhi_epi8(d[2], d[3]);
1764
141k
  d[2] = _mm256_loadu_si256((__m256i *)(data + 4 * stride));
1765
141k
  s2[1] = _mm256_unpacklo_epi8(d[3], d[2]);
1766
141k
  s2[3] = _mm256_unpackhi_epi8(d[3], d[2]);
1767
1768
141k
  res[0] = convolve_lowbd_4tap(s1, coeffs);
1769
141k
  res[1] = convolve_lowbd_4tap(s1 + 2, coeffs);
1770
141k
  res[2] = convolve_lowbd_4tap(s2, coeffs);
1771
141k
  res[3] = convolve_lowbd_4tap(s2 + 2, coeffs);
1772
141k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_4tap_32x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_4tap_32x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_4tap_32x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_4tap_32x2_avx2
1773
#endif  // AOM_AOM_DSP_X86_CONVOLVE_AVX2_H_