Coverage Report

Created: 2026-08-14 06:18

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
1.01M
#define SECOND_32_BLK (32)
26
902k
#define THIRD_32_BLK (32 << 1)
27
451k
#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
2.83M
  for (i = 0; i < (im_h - 2); i += 2) {                                      \
98
2.30M
    __m128i data =                                                           \
99
2.30M
        load_8bit_8x2_to_1_reg_sse2(&src_ptr[(i * src_stride)], src_stride); \
100
2.30M
    __m128i res = CONVOLVE_LOWBD(data, coeffs_h, filt);                      \
101
2.30M
    res = _mm_srai_epi16(_mm_add_epi16(res, round_const_h), 2);              \
102
2.30M
    _mm_store_si128((__m128i *)&im_block[i * 4], res);                       \
103
2.30M
  }                                                                          \
104
536k
  __m128i data_1 = _mm_loadl_epi64((__m128i *)&src_ptr[(i * src_stride)]);   \
105
536k
  __m128i res = CONVOLVE_LOWBD(data_1, coeffs_h, filt);                      \
106
536k
  res = _mm_srai_epi16(_mm_add_epi16(res, round_const_h), 2);                \
107
536k
  _mm_storel_epi64((__m128i *)&im_block[i * 4], res);
108
109
#define CONVOLVE_SR_HOR_FILTER_2TAP_W4 \
110
23.3k
  CONVOLVE_SR_HOR_FILTER_W4(convolve_lowbd_x_2tap_ssse3)
111
112
#define CONVOLVE_SR_HOR_FILTER_4TAP_W4 \
113
513k
  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.59M
                                                __m256i round_const_v) {
118
1.59M
  const __m256i res_round =
119
1.59M
      _mm256_srai_epi32(_mm256_add_epi32(res, round_const_v), 11);
120
121
1.59M
  const __m256i res_16bit = _mm256_packs_epi32(res_round, res_round);
122
1.59M
  const __m256i res_8b = _mm256_packus_epi16(res_16bit, res_16bit);
123
124
1.59M
  const __m128i r0 = _mm256_castsi256_si128(res_8b);
125
1.59M
  const __m128i r1 = _mm256_extracti128_si256(res_8b, 1);
126
127
1.59M
  __m128i *const p0 = (__m128i *)dst;
128
1.59M
  __m128i *const p1 = (__m128i *)(dst + dst_stride);
129
130
1.59M
  if (w == 4) {
131
1.30M
    xx_storel_32(p0, r0);
132
1.30M
    xx_storel_32(p1, r1);
133
1.30M
  } else {
134
296k
    assert(w == 2);
135
296k
    *(uint16_t *)p0 = (uint16_t)_mm_cvtsi128_si32(r0);
136
296k
    *(uint16_t *)p1 = (uint16_t)_mm_cvtsi128_si32(r1);
137
296k
  }
138
1.59M
}
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.59M
                                                __m256i round_const_v) {
118
1.59M
  const __m256i res_round =
119
1.59M
      _mm256_srai_epi32(_mm256_add_epi32(res, round_const_v), 11);
120
121
1.59M
  const __m256i res_16bit = _mm256_packs_epi32(res_round, res_round);
122
1.59M
  const __m256i res_8b = _mm256_packus_epi16(res_16bit, res_16bit);
123
124
1.59M
  const __m128i r0 = _mm256_castsi256_si128(res_8b);
125
1.59M
  const __m128i r1 = _mm256_extracti128_si256(res_8b, 1);
126
127
1.59M
  __m128i *const p0 = (__m128i *)dst;
128
1.59M
  __m128i *const p1 = (__m128i *)(dst + dst_stride);
129
130
1.59M
  if (w == 4) {
131
1.30M
    xx_storel_32(p0, r0);
132
1.30M
    xx_storel_32(p1, r1);
133
1.30M
  } else {
134
296k
    assert(w == 2);
135
296k
    *(uint16_t *)p0 = (uint16_t)_mm_cvtsi128_si32(r0);
136
296k
    *(uint16_t *)p1 = (uint16_t)_mm_cvtsi128_si32(r1);
137
296k
  }
138
1.59M
}
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
23.3k
  __m128i s[2];                                                               \
142
23.3k
  s[0] = _mm_loadl_epi64((__m128i *)(im_block + 0 * 4));                      \
143
23.3k
                                                                              \
144
84.5k
  for (i = 0; i < h; i += 2) {                                                \
145
61.1k
    const int16_t *data = &im_block[i * 4];                                   \
146
61.1k
    s[1] = _mm_loadl_epi64((__m128i *)(data + 1 * 4));                        \
147
61.1k
    const __m256i src_0 = _mm256_setr_m128i(s[0], s[1]);                      \
148
61.1k
    s[0] = _mm_loadl_epi64((__m128i *)(data + 2 * 4));                        \
149
61.1k
    const __m256i src_1 = _mm256_setr_m128i(s[1], s[0]);                      \
150
61.1k
    const __m256i ss = _mm256_unpacklo_epi16(src_0, src_1);                   \
151
61.1k
                                                                              \
152
61.1k
    const __m256i res = _mm256_madd_epi16(ss, coeffs_v[0]);                   \
153
61.1k
                                                                              \
154
61.1k
    sr_2d_ver_round_and_store_w4(w, res, dst_ptr, dst_stride, round_const_v); \
155
61.1k
    dst_ptr += 2 * dst_stride;                                                \
156
61.1k
  }
157
158
#define CONVOLVE_SR_VER_FILTER_4TAP_W4                                        \
159
332k
  __m128i s[4];                                                               \
160
332k
  __m256i ss[2];                                                              \
161
332k
  s[0] = _mm_loadl_epi64((__m128i *)(im_block + 0 * 4));                      \
162
332k
  s[1] = _mm_loadl_epi64((__m128i *)(im_block + 1 * 4));                      \
163
332k
  s[2] = _mm_loadl_epi64((__m128i *)(im_block + 2 * 4));                      \
164
332k
                                                                              \
165
332k
  const __m256i src_0 = _mm256_setr_m128i(s[0], s[1]);                        \
166
332k
  const __m256i src_1 = _mm256_setr_m128i(s[1], s[2]);                        \
167
332k
                                                                              \
168
332k
  ss[0] = _mm256_unpacklo_epi16(src_0, src_1);                                \
169
332k
                                                                              \
170
956k
  for (i = 0; i < h; i += 2) {                                                \
171
624k
    const int16_t *data = &im_block[i * 4];                                   \
172
624k
    s[3] = _mm_loadl_epi64((__m128i *)(data + 3 * 4));                        \
173
624k
    const __m256i src_2 = _mm256_setr_m128i(s[2], s[3]);                      \
174
624k
    s[2] = _mm_loadl_epi64((__m128i *)(data + 4 * 4));                        \
175
624k
    const __m256i src_3 = _mm256_setr_m128i(s[3], s[2]);                      \
176
624k
    ss[1] = _mm256_unpacklo_epi16(src_2, src_3);                              \
177
624k
                                                                              \
178
624k
    const __m256i res = convolve_4tap(ss, coeffs_v);                          \
179
624k
                                                                              \
180
624k
    sr_2d_ver_round_and_store_w4(w, res, dst_ptr, dst_stride, round_const_v); \
181
624k
    dst_ptr += 2 * dst_stride;                                                \
182
624k
                                                                              \
183
624k
    ss[0] = ss[1];                                                            \
184
624k
  }
185
186
#define CONVOLVE_SR_VER_FILTER_6TAP_W4                                        \
187
170k
  __m128i s[6];                                                               \
188
170k
  __m256i ss[3];                                                              \
189
170k
  s[0] = _mm_loadl_epi64((__m128i *)(im_block + 0 * 4));                      \
190
170k
  s[1] = _mm_loadl_epi64((__m128i *)(im_block + 1 * 4));                      \
191
170k
  s[2] = _mm_loadl_epi64((__m128i *)(im_block + 2 * 4));                      \
192
170k
  s[3] = _mm_loadl_epi64((__m128i *)(im_block + 3 * 4));                      \
193
170k
  s[4] = _mm_loadl_epi64((__m128i *)(im_block + 4 * 4));                      \
194
170k
                                                                              \
195
170k
  const __m256i src_0 = _mm256_setr_m128i(s[0], s[1]);                        \
196
170k
  const __m256i src_1 = _mm256_setr_m128i(s[1], s[2]);                        \
197
170k
  const __m256i src_2 = _mm256_setr_m128i(s[2], s[3]);                        \
198
170k
  const __m256i src_3 = _mm256_setr_m128i(s[3], s[4]);                        \
199
170k
                                                                              \
200
170k
  ss[0] = _mm256_unpacklo_epi16(src_0, src_1);                                \
201
170k
  ss[1] = _mm256_unpacklo_epi16(src_2, src_3);                                \
202
170k
                                                                              \
203
1.03M
  for (i = 0; i < h; i += 2) {                                                \
204
860k
    const int16_t *data = &im_block[i * 4];                                   \
205
860k
    s[5] = _mm_loadl_epi64((__m128i *)(data + 5 * 4));                        \
206
860k
    const __m256i src_4 = _mm256_setr_m128i(s[4], s[5]);                      \
207
860k
    s[4] = _mm_loadl_epi64((__m128i *)(data + 6 * 4));                        \
208
860k
    const __m256i src_5 = _mm256_setr_m128i(s[5], s[4]);                      \
209
860k
    ss[2] = _mm256_unpacklo_epi16(src_4, src_5);                              \
210
860k
                                                                              \
211
860k
    const __m256i res = convolve_6tap(ss, coeffs_v);                          \
212
860k
                                                                              \
213
860k
    sr_2d_ver_round_and_store_w4(w, res, dst_ptr, dst_stride, round_const_v); \
214
860k
    dst_ptr += 2 * dst_stride;                                                \
215
860k
                                                                              \
216
860k
    ss[0] = ss[1];                                                            \
217
860k
    ss[1] = ss[2];                                                            \
218
860k
  }
219
220
#define CONVOLVE_SR_VER_FILTER_8TAP_W4                                        \
221
10.2k
  __m128i s[8];                                                               \
222
10.2k
  __m256i ss[4];                                                              \
223
10.2k
  s[0] = _mm_loadl_epi64((__m128i *)(im_block + 0 * 4));                      \
224
10.2k
  s[1] = _mm_loadl_epi64((__m128i *)(im_block + 1 * 4));                      \
225
10.2k
  s[2] = _mm_loadl_epi64((__m128i *)(im_block + 2 * 4));                      \
226
10.2k
  s[3] = _mm_loadl_epi64((__m128i *)(im_block + 3 * 4));                      \
227
10.2k
  s[4] = _mm_loadl_epi64((__m128i *)(im_block + 4 * 4));                      \
228
10.2k
  s[5] = _mm_loadl_epi64((__m128i *)(im_block + 5 * 4));                      \
229
10.2k
  s[6] = _mm_loadl_epi64((__m128i *)(im_block + 6 * 4));                      \
230
10.2k
                                                                              \
231
10.2k
  const __m256i src_0 = _mm256_setr_m128i(s[0], s[1]);                        \
232
10.2k
  const __m256i src_1 = _mm256_setr_m128i(s[1], s[2]);                        \
233
10.2k
  const __m256i src_2 = _mm256_setr_m128i(s[2], s[3]);                        \
234
10.2k
  const __m256i src_3 = _mm256_setr_m128i(s[3], s[4]);                        \
235
10.2k
  const __m256i src_4 = _mm256_setr_m128i(s[4], s[5]);                        \
236
10.2k
  const __m256i src_5 = _mm256_setr_m128i(s[5], s[6]);                        \
237
10.2k
                                                                              \
238
10.2k
  ss[0] = _mm256_unpacklo_epi16(src_0, src_1);                                \
239
10.2k
  ss[1] = _mm256_unpacklo_epi16(src_2, src_3);                                \
240
10.2k
  ss[2] = _mm256_unpacklo_epi16(src_4, src_5);                                \
241
10.2k
                                                                              \
242
61.5k
  for (i = 0; i < h; i += 2) {                                                \
243
51.2k
    const int16_t *data = &im_block[i * 4];                                   \
244
51.2k
    s[7] = _mm_loadl_epi64((__m128i *)(data + 7 * 4));                        \
245
51.2k
    const __m256i src_6 = _mm256_setr_m128i(s[6], s[7]);                      \
246
51.2k
    s[6] = _mm_loadl_epi64((__m128i *)(data + 8 * 4));                        \
247
51.2k
    const __m256i src_7 = _mm256_setr_m128i(s[7], s[6]);                      \
248
51.2k
    ss[3] = _mm256_unpacklo_epi16(src_6, src_7);                              \
249
51.2k
                                                                              \
250
51.2k
    const __m256i res = convolve(ss, coeffs_v);                               \
251
51.2k
                                                                              \
252
51.2k
    sr_2d_ver_round_and_store_w4(w, res, dst_ptr, dst_stride, round_const_v); \
253
51.2k
    dst_ptr += 2 * dst_stride;                                                \
254
51.2k
                                                                              \
255
51.2k
    ss[0] = ss[1];                                                            \
256
51.2k
    ss[1] = ss[2];                                                            \
257
51.2k
    ss[2] = ss[3];                                                            \
258
51.2k
  }
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
11.4M
                                             __m256i round_const_v) {
294
11.4M
  const __m256i res_a_round =
295
11.4M
      _mm256_srai_epi32(_mm256_add_epi32(res_a, round_const_v), 11);
296
11.4M
  const __m256i res_b_round =
297
11.4M
      _mm256_srai_epi32(_mm256_add_epi32(res_b, round_const_v), 11);
298
11.4M
  const __m256i r16 = _mm256_packs_epi32(res_a_round, res_b_round);
299
11.4M
  const __m256i r8 = _mm256_packus_epi16(r16, r16);
300
301
11.4M
  _mm_storel_epi64((__m128i *)dst, _mm256_castsi256_si128(r8));
302
11.4M
  _mm_storel_epi64((__m128i *)(dst + dst_stride),
303
11.4M
                   _mm256_extracti128_si256(r8, 1));
304
11.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
11.4M
                                             __m256i round_const_v) {
294
11.4M
  const __m256i res_a_round =
295
11.4M
      _mm256_srai_epi32(_mm256_add_epi32(res_a, round_const_v), 11);
296
11.4M
  const __m256i res_b_round =
297
11.4M
      _mm256_srai_epi32(_mm256_add_epi32(res_b, round_const_v), 11);
298
11.4M
  const __m256i r16 = _mm256_packs_epi32(res_a_round, res_b_round);
299
11.4M
  const __m256i r8 = _mm256_packus_epi16(r16, r16);
300
301
11.4M
  _mm_storel_epi64((__m128i *)dst, _mm256_castsi256_si128(r8));
302
11.4M
  _mm_storel_epi64((__m128i *)(dst + dst_stride),
303
                   _mm256_extracti128_si256(r8, 1));
304
11.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
561k
  for (i = 0; i < h; i += 2) {                                                \
308
520k
    __m256i s[2];                                                             \
309
520k
    const int16_t *data = &im_block[i * im_stride];                           \
310
520k
    const __m256i s1 = _mm256_loadu_si256((__m256i *)(data + 0 * im_stride)); \
311
520k
    const __m256i s2 = _mm256_loadu_si256((__m256i *)(data + 1 * im_stride)); \
312
520k
    s[0] = _mm256_unpacklo_epi16(s1, s2);                                     \
313
520k
    s[1] = _mm256_unpackhi_epi16(s1, s2);                                     \
314
520k
                                                                              \
315
520k
    __m256i res_a = _mm256_madd_epi16(s[0], coeffs_v[0]);                     \
316
520k
    __m256i res_b = _mm256_madd_epi16(s[1], coeffs_v[0]);                     \
317
520k
                                                                              \
318
520k
    sr_2d_ver_round_and_store(res_a, res_b, dst_ptr, dst_stride,              \
319
520k
                              round_const_v);                                 \
320
520k
    dst_ptr += 2 * dst_stride;                                                \
321
520k
  }
322
323
#define CONVOLVE_SR_VERTICAL_FILTER_4TAP                                      \
324
493k
  __m256i s[6];                                                               \
325
493k
  __m256i src_0 = _mm256_loadu_si256((__m256i *)(im_block + 0 * im_stride));  \
326
493k
  __m256i src_1 = _mm256_loadu_si256((__m256i *)(im_block + 1 * im_stride));  \
327
493k
                                                                              \
328
493k
  s[0] = _mm256_unpacklo_epi16(src_0, src_1);                                 \
329
493k
  s[2] = _mm256_unpackhi_epi16(src_0, src_1);                                 \
330
493k
                                                                              \
331
1.93M
  for (i = 0; i < h; i += 2) {                                                \
332
1.44M
    const int16_t *data = &im_block[i * im_stride];                           \
333
1.44M
    const __m256i s4 = _mm256_loadu_si256((__m256i *)(data + 2 * im_stride)); \
334
1.44M
    const __m256i s5 = _mm256_loadu_si256((__m256i *)(data + 3 * im_stride)); \
335
1.44M
    s[1] = _mm256_unpacklo_epi16(s4, s5);                                     \
336
1.44M
    s[3] = _mm256_unpackhi_epi16(s4, s5);                                     \
337
1.44M
                                                                              \
338
1.44M
    __m256i res_a = convolve_4tap(s, coeffs_v);                               \
339
1.44M
    __m256i res_b = convolve_4tap(s + 2, coeffs_v);                           \
340
1.44M
                                                                              \
341
1.44M
    sr_2d_ver_round_and_store(res_a, res_b, dst_ptr, dst_stride,              \
342
1.44M
                              round_const_v);                                 \
343
1.44M
    dst_ptr += 2 * dst_stride;                                                \
344
1.44M
                                                                              \
345
1.44M
    s[0] = s[1];                                                              \
346
1.44M
    s[2] = s[3];                                                              \
347
1.44M
  }
348
349
#define CONVOLVE_SR_VERTICAL_FILTER_6TAP                                      \
350
680k
  __m256i src_0 = _mm256_loadu_si256((__m256i *)(im_block + 0 * im_stride));  \
351
680k
  __m256i src_1 = _mm256_loadu_si256((__m256i *)(im_block + 1 * im_stride));  \
352
680k
  __m256i src_2 = _mm256_loadu_si256((__m256i *)(im_block + 2 * im_stride));  \
353
680k
  __m256i src_3 = _mm256_loadu_si256((__m256i *)(im_block + 3 * im_stride));  \
354
680k
                                                                              \
355
680k
  __m256i s[8];                                                               \
356
680k
  s[0] = _mm256_unpacklo_epi16(src_0, src_1);                                 \
357
680k
  s[1] = _mm256_unpacklo_epi16(src_2, src_3);                                 \
358
680k
                                                                              \
359
680k
  s[3] = _mm256_unpackhi_epi16(src_0, src_1);                                 \
360
680k
  s[4] = _mm256_unpackhi_epi16(src_2, src_3);                                 \
361
680k
                                                                              \
362
8.36M
  for (i = 0; i < h; i += 2) {                                                \
363
7.68M
    const int16_t *data = &im_block[i * im_stride];                           \
364
7.68M
                                                                              \
365
7.68M
    const __m256i s6 = _mm256_loadu_si256((__m256i *)(data + 4 * im_stride)); \
366
7.68M
    const __m256i s7 = _mm256_loadu_si256((__m256i *)(data + 5 * im_stride)); \
367
7.68M
                                                                              \
368
7.68M
    s[2] = _mm256_unpacklo_epi16(s6, s7);                                     \
369
7.68M
    s[5] = _mm256_unpackhi_epi16(s6, s7);                                     \
370
7.68M
                                                                              \
371
7.68M
    __m256i res_a = convolve_6tap(s, coeffs_v);                               \
372
7.68M
    __m256i res_b = convolve_6tap(s + 3, coeffs_v);                           \
373
7.68M
                                                                              \
374
7.68M
    sr_2d_ver_round_and_store(res_a, res_b, dst_ptr, dst_stride,              \
375
7.68M
                              round_const_v);                                 \
376
7.68M
    dst_ptr += 2 * dst_stride;                                                \
377
7.68M
                                                                              \
378
7.68M
    s[0] = s[1];                                                              \
379
7.68M
    s[1] = s[2];                                                              \
380
7.68M
                                                                              \
381
7.68M
    s[3] = s[4];                                                              \
382
7.68M
    s[4] = s[5];                                                              \
383
7.68M
  }
384
385
#define CONVOLVE_SR_VERTICAL_FILTER_8TAP                                      \
386
146k
  __m256i src_0 = _mm256_loadu_si256((__m256i *)(im_block + 0 * im_stride));  \
387
146k
  __m256i src_1 = _mm256_loadu_si256((__m256i *)(im_block + 1 * im_stride));  \
388
146k
  __m256i src_2 = _mm256_loadu_si256((__m256i *)(im_block + 2 * im_stride));  \
389
146k
  __m256i src_3 = _mm256_loadu_si256((__m256i *)(im_block + 3 * im_stride));  \
390
146k
  __m256i src_4 = _mm256_loadu_si256((__m256i *)(im_block + 4 * im_stride));  \
391
146k
  __m256i src_5 = _mm256_loadu_si256((__m256i *)(im_block + 5 * im_stride));  \
392
146k
                                                                              \
393
146k
  __m256i s[8];                                                               \
394
146k
  s[0] = _mm256_unpacklo_epi16(src_0, src_1);                                 \
395
146k
  s[1] = _mm256_unpacklo_epi16(src_2, src_3);                                 \
396
146k
  s[2] = _mm256_unpacklo_epi16(src_4, src_5);                                 \
397
146k
                                                                              \
398
146k
  s[4] = _mm256_unpackhi_epi16(src_0, src_1);                                 \
399
146k
  s[5] = _mm256_unpackhi_epi16(src_2, src_3);                                 \
400
146k
  s[6] = _mm256_unpackhi_epi16(src_4, src_5);                                 \
401
146k
                                                                              \
402
1.96M
  for (i = 0; i < h; i += 2) {                                                \
403
1.81M
    const int16_t *data = &im_block[i * im_stride];                           \
404
1.81M
                                                                              \
405
1.81M
    const __m256i s6 = _mm256_loadu_si256((__m256i *)(data + 6 * im_stride)); \
406
1.81M
    const __m256i s7 = _mm256_loadu_si256((__m256i *)(data + 7 * im_stride)); \
407
1.81M
                                                                              \
408
1.81M
    s[3] = _mm256_unpacklo_epi16(s6, s7);                                     \
409
1.81M
    s[7] = _mm256_unpackhi_epi16(s6, s7);                                     \
410
1.81M
                                                                              \
411
1.81M
    __m256i res_a = convolve(s, coeffs_v);                                    \
412
1.81M
    __m256i res_b = convolve(s + 4, coeffs_v);                                \
413
1.81M
                                                                              \
414
1.81M
    sr_2d_ver_round_and_store(res_a, res_b, dst_ptr, dst_stride,              \
415
1.81M
                              round_const_v);                                 \
416
1.81M
    dst_ptr += 2 * dst_stride;                                                \
417
1.81M
                                                                              \
418
1.81M
    s[0] = s[1];                                                              \
419
1.81M
    s[1] = s[2];                                                              \
420
1.81M
    s[2] = s[3];                                                              \
421
1.81M
                                                                              \
422
1.81M
    s[4] = s[5];                                                              \
423
1.81M
    s[5] = s[6];                                                              \
424
1.81M
    s[6] = s[7];                                                              \
425
1.81M
  }
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.24M
  do {                                                                         \
507
2.24M
    if (do_average) {                                                          \
508
925k
      const __m256i data_ref_0 =                                               \
509
925k
          load_line2_avx2(&dst[i * dst_stride + (j_off)],                      \
510
925k
                          &dst[i * dst_stride + (j_off) + dst_stride]);        \
511
925k
      const __m256i comp_avg_res =                                             \
512
925k
          comp_avg(&data_ref_0, &(res_unsigned), &wt, use_dist_wtd_comp_avg);  \
513
925k
      const __m256i res_signed = _mm256_sub_epi16(comp_avg_res, offset_const); \
514
925k
      const __m256i round_result =                                             \
515
925k
          _mm256_srai_epi16(_mm256_add_epi16(res_signed, rounding_const), 4);  \
516
925k
      const __m256i res_8 = _mm256_packus_epi16(round_result, round_result);   \
517
925k
      const __m128i res_0 = _mm256_castsi256_si128(res_8);                     \
518
925k
      const __m128i res_1 = _mm256_extracti128_si256(res_8, 1);                \
519
925k
      if (w - (j_off) > 4) {                                                   \
520
897k
        _mm_storel_epi64((__m128i *)(&dst0[i * dst_stride0 + (j_off)]),        \
521
897k
                         res_0);                                               \
522
897k
        _mm_storel_epi64(                                                      \
523
897k
            (__m128i *)(&dst0[i * dst_stride0 + (j_off) + dst_stride0]),       \
524
897k
            res_1);                                                            \
525
897k
      } else {                                                                 \
526
28.7k
        *(int *)(&dst0[i * dst_stride0 + (j_off)]) = _mm_cvtsi128_si32(res_0); \
527
28.7k
        *(int *)(&dst0[i * dst_stride0 + (j_off) + dst_stride0]) =             \
528
28.7k
            _mm_cvtsi128_si32(res_1);                                          \
529
28.7k
      }                                                                        \
530
1.31M
    } else {                                                                   \
531
1.31M
      const __m128i res_0 = _mm256_castsi256_si128(res_unsigned);              \
532
1.31M
      _mm_store_si128((__m128i *)(&dst[i * dst_stride + (j_off)]), res_0);     \
533
1.31M
      const __m128i res_1 = _mm256_extracti128_si256(res_unsigned, 1);         \
534
1.31M
      _mm_store_si128(                                                         \
535
1.31M
          (__m128i *)(&dst[i * dst_stride + (j_off) + dst_stride]), res_1);    \
536
1.31M
    }                                                                          \
537
2.24M
  } while (0)
538
539
#define JNT_CONVOLVE_HORIZONTAL_FILTER(src_h_start, convolve_fn, coeffs) \
540
303k
  do {                                                                   \
541
303k
    const uint8_t *src_h = (src_h_start);                                \
542
4.40M
    for (i = 0; i < im_h; i += 2) {                                      \
543
4.09M
      const __m256i data = load_line2_avx2(src_h, src_h + src_stride);   \
544
4.09M
      src_h += (src_stride << 1);                                        \
545
4.09M
      __m256i res = convolve_fn(data, coeffs, filt);                     \
546
4.09M
      res = _mm256_srai_epi16(_mm256_add_epi16(res, round_const_h), 2);  \
547
4.09M
      _mm256_store_si256((__m256i *)&im_block[i * im_stride], res);      \
548
4.09M
    }                                                                    \
549
303k
  } while (0)
550
551
#define JNT_CONVOLVE_VERTICAL_FILTER_8TAP                                     \
552
192k
  do {                                                                        \
553
192k
    __m256i s[8];                                                             \
554
192k
    __m256i s0 = _mm256_loadu_si256((__m256i *)(im_block + 0 * im_stride));   \
555
192k
    __m256i s1 = _mm256_loadu_si256((__m256i *)(im_block + 1 * im_stride));   \
556
192k
    __m256i s2 = _mm256_loadu_si256((__m256i *)(im_block + 2 * im_stride));   \
557
192k
    __m256i s3 = _mm256_loadu_si256((__m256i *)(im_block + 3 * im_stride));   \
558
192k
    __m256i s4 = _mm256_loadu_si256((__m256i *)(im_block + 4 * im_stride));   \
559
192k
    __m256i s5 = _mm256_loadu_si256((__m256i *)(im_block + 5 * im_stride));   \
560
192k
                                                                              \
561
192k
    s[0] = _mm256_unpacklo_epi16(s0, s1);                                     \
562
192k
    s[1] = _mm256_unpacklo_epi16(s2, s3);                                     \
563
192k
    s[2] = _mm256_unpacklo_epi16(s4, s5);                                     \
564
192k
                                                                              \
565
192k
    s[4] = _mm256_unpackhi_epi16(s0, s1);                                     \
566
192k
    s[5] = _mm256_unpackhi_epi16(s2, s3);                                     \
567
192k
    s[6] = _mm256_unpackhi_epi16(s4, s5);                                     \
568
192k
                                                                              \
569
2.43M
    for (i = 0; i < h; i += 2) {                                              \
570
2.24M
      const int16_t *data = &im_block[i * im_stride];                         \
571
2.24M
                                                                              \
572
2.24M
      const __m256i s6 =                                                      \
573
2.24M
          _mm256_loadu_si256((__m256i *)(data + 6 * im_stride));              \
574
2.24M
      const __m256i s7 =                                                      \
575
2.24M
          _mm256_loadu_si256((__m256i *)(data + 7 * im_stride));              \
576
2.24M
                                                                              \
577
2.24M
      s[3] = _mm256_unpacklo_epi16(s6, s7);                                   \
578
2.24M
      s[7] = _mm256_unpackhi_epi16(s6, s7);                                   \
579
2.24M
                                                                              \
580
2.24M
      const __m256i res_a = convolve(s, coeffs_y);                            \
581
2.24M
      const __m256i res_a_round =                                             \
582
2.24M
          _mm256_srai_epi32(_mm256_add_epi32(res_a, round_const_v), 7);       \
583
2.24M
                                                                              \
584
2.24M
      if (w - j > 4) {                                                        \
585
2.17M
        const __m256i res_b = convolve(s + 4, coeffs_y);                      \
586
2.17M
        const __m256i res_b_round =                                           \
587
2.17M
            _mm256_srai_epi32(_mm256_add_epi32(res_b, round_const_v), 7);     \
588
2.17M
        const __m256i res_16b = _mm256_packs_epi32(res_a_round, res_b_round); \
589
2.17M
        const __m256i res_unsigned = _mm256_add_epi16(res_16b, offset_const); \
590
2.17M
        JNT_CONVOLVE_PROCESS_OUTPUT(res_unsigned, j);                         \
591
2.17M
      } else {                                                                \
592
65.0k
        const __m256i res_16b = _mm256_packs_epi32(res_a_round, res_a_round); \
593
65.0k
        const __m256i res_unsigned = _mm256_add_epi16(res_16b, offset_const); \
594
65.0k
        JNT_CONVOLVE_PROCESS_OUTPUT(res_unsigned, j);                         \
595
65.0k
      }                                                                       \
596
2.24M
                                                                              \
597
2.24M
      s[0] = s[1];                                                            \
598
2.24M
      s[1] = s[2];                                                            \
599
2.24M
      s[2] = s[3];                                                            \
600
2.24M
                                                                              \
601
2.24M
      s[4] = s[5];                                                            \
602
2.24M
      s[5] = s[6];                                                            \
603
2.24M
      s[6] = s[7];                                                            \
604
2.24M
    }                                                                         \
605
192k
  } while (0)
606
607
static inline void prepare_coeffs_2t_ssse3(
608
    const InterpFilterParams *const filter_params, const int32_t subpel_q4,
609
46.6k
    __m128i *const coeffs /* [4] */) {
610
46.6k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
611
46.6k
      filter_params, subpel_q4 & SUBPEL_MASK);
612
46.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
46.6k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
620
46.6k
                            _mm_set1_epi16((short)0xffff)));
621
622
46.6k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
623
624
  // coeffs 3 4 3 4 3 4 3 4
625
46.6k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0806u));
626
46.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
23.3k
    __m128i *const coeffs /* [4] */) {
610
23.3k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
611
23.3k
      filter_params, subpel_q4 & SUBPEL_MASK);
612
23.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
23.3k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
620
23.3k
                            _mm_set1_epi16((short)0xffff)));
621
622
23.3k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
623
624
  // coeffs 3 4 3 4 3 4 3 4
625
23.3k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0806u));
626
23.3k
}
convolve_avx2.c:prepare_coeffs_2t_ssse3
Line
Count
Source
609
23.2k
    __m128i *const coeffs /* [4] */) {
610
23.2k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
611
23.2k
      filter_params, subpel_q4 & SUBPEL_MASK);
612
23.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
23.2k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
620
23.2k
                            _mm_set1_epi16((short)0xffff)));
621
622
23.2k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
623
624
  // coeffs 3 4 3 4 3 4 3 4
625
23.2k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0806u));
626
23.2k
}
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
773k
    __m128i *const coeffs /* [4] */) {
631
773k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
632
773k
      filter_params, subpel_q4 & SUBPEL_MASK);
633
773k
  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
773k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
641
773k
                            _mm_set1_epi16((short)0xffff)));
642
643
773k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
644
645
  // coeffs 2 3 2 3 2 3 2 3
646
773k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0604u));
647
  // coeffs 4 5 4 5 4 5 4 5
648
773k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0a08u));
649
773k
}
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
513k
    __m128i *const coeffs /* [4] */) {
631
513k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
632
513k
      filter_params, subpel_q4 & SUBPEL_MASK);
633
513k
  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
513k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
641
513k
                            _mm_set1_epi16((short)0xffff)));
642
643
513k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
644
645
  // coeffs 2 3 2 3 2 3 2 3
646
513k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0604u));
647
  // coeffs 4 5 4 5 4 5 4 5
648
513k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0a08u));
649
513k
}
convolve_avx2.c:prepare_coeffs_4t_ssse3
Line
Count
Source
630
260k
    __m128i *const coeffs /* [4] */) {
631
260k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
632
260k
      filter_params, subpel_q4 & SUBPEL_MASK);
633
260k
  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
260k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
641
260k
                            _mm_set1_epi16((short)0xffff)));
642
643
260k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
644
645
  // coeffs 2 3 2 3 2 3 2 3
646
260k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0604u));
647
  // coeffs 4 5 4 5 4 5 4 5
648
260k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0a08u));
649
260k
}
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
63.7k
    __m128i *const coeffs /* [4] */) {
654
63.7k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
655
63.7k
      filter_params, subpel_q4 & SUBPEL_MASK);
656
63.7k
  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
63.7k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
664
63.7k
                            _mm_set1_epi16((short)0xffff)));
665
666
63.7k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
667
668
  // coeffs 2 3 2 3 2 3 2 3
669
63.7k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0402u));
670
  // coeffs 4 5 4 5 4 5 4 5
671
63.7k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0806u));
672
  // coeffs 5 6 5 6 5 6 5 6
673
63.7k
  coeffs[2] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0c0au));
674
63.7k
}
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
63.7k
    __m128i *const coeffs /* [4] */) {
654
63.7k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
655
63.7k
      filter_params, subpel_q4 & SUBPEL_MASK);
656
63.7k
  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
63.7k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
664
63.7k
                            _mm_set1_epi16((short)0xffff)));
665
666
63.7k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
667
668
  // coeffs 2 3 2 3 2 3 2 3
669
63.7k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0402u));
670
  // coeffs 4 5 4 5 4 5 4 5
671
63.7k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0806u));
672
  // coeffs 5 6 5 6 5 6 5 6
673
63.7k
  coeffs[2] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0c0au));
674
63.7k
}
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.61k
    __m128i *const coeffs /* [4] */) {
679
6.61k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
680
6.61k
      filter_params, subpel_q4 & SUBPEL_MASK);
681
6.61k
  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.61k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
689
6.61k
                            _mm_set1_epi16((short)0xffff)));
690
691
6.61k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
692
693
  // coeffs 0 1 0 1 0 1 0 1
694
6.61k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0200u));
695
  // coeffs 2 3 2 3 2 3 2 3
696
6.61k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0604u));
697
  // coeffs 4 5 4 5 4 5 4 5
698
6.61k
  coeffs[2] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0a08u));
699
  // coeffs 6 7 6 7 6 7 6 7
700
6.61k
  coeffs[3] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0e0cu));
701
6.61k
}
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.61k
    __m128i *const coeffs /* [4] */) {
679
6.61k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
680
6.61k
      filter_params, subpel_q4 & SUBPEL_MASK);
681
6.61k
  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.61k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
689
6.61k
                            _mm_set1_epi16((short)0xffff)));
690
691
6.61k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
692
693
  // coeffs 0 1 0 1 0 1 0 1
694
6.61k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0200u));
695
  // coeffs 2 3 2 3 2 3 2 3
696
6.61k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0604u));
697
  // coeffs 4 5 4 5 4 5 4 5
698
6.61k
  coeffs[2] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0a08u));
699
  // coeffs 6 7 6 7 6 7 6 7
700
6.61k
  coeffs[3] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0e0cu));
701
6.61k
}
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
32.0k
    __m256i *const coeffs /* [4] */) {
706
32.0k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
707
32.0k
      filter_params, subpel_q4 & SUBPEL_MASK);
708
32.0k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
709
32.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
32.0k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
717
32.0k
                            _mm_set1_epi16((int16_t)0xffff)));
718
719
32.0k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
720
721
  // coeffs 3 4 3 4 3 4 3 4
722
32.0k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
723
32.0k
}
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
20.2k
    __m256i *const coeffs /* [4] */) {
706
20.2k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
707
20.2k
      filter_params, subpel_q4 & SUBPEL_MASK);
708
20.2k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
709
20.2k
  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
20.2k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
717
20.2k
                            _mm_set1_epi16((int16_t)0xffff)));
718
719
20.2k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
720
721
  // coeffs 3 4 3 4 3 4 3 4
722
20.2k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
723
20.2k
}
convolve_avx2.c:prepare_coeffs_2t_lowbd
Line
Count
Source
705
11.8k
    __m256i *const coeffs /* [4] */) {
706
11.8k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
707
11.8k
      filter_params, subpel_q4 & SUBPEL_MASK);
708
11.8k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
709
11.8k
  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.8k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
717
11.8k
                            _mm_set1_epi16((int16_t)0xffff)));
718
719
11.8k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
720
721
  // coeffs 3 4 3 4 3 4 3 4
722
11.8k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
723
11.8k
}
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
165k
    __m256i *const coeffs /* [4] */) {
728
165k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
729
165k
      filter_params, subpel_q4 & SUBPEL_MASK);
730
165k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
731
165k
  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
165k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
739
165k
                            _mm_set1_epi16((short)0xffff)));
740
741
165k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
742
743
  // coeffs 2 3 2 3 2 3 2 3
744
165k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
745
  // coeffs 4 5 4 5 4 5 4 5
746
165k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
747
165k
}
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
30.9k
    __m256i *const coeffs /* [4] */) {
728
30.9k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
729
30.9k
      filter_params, subpel_q4 & SUBPEL_MASK);
730
30.9k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
731
30.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
30.9k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
739
30.9k
                            _mm_set1_epi16((short)0xffff)));
740
741
30.9k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
742
743
  // coeffs 2 3 2 3 2 3 2 3
744
30.9k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
745
  // coeffs 4 5 4 5 4 5 4 5
746
30.9k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
747
30.9k
}
convolve_avx2.c:prepare_coeffs_4t_lowbd
Line
Count
Source
727
134k
    __m256i *const coeffs /* [4] */) {
728
134k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
729
134k
      filter_params, subpel_q4 & SUBPEL_MASK);
730
134k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
731
134k
  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
134k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
739
134k
                            _mm_set1_epi16((short)0xffff)));
740
741
134k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
742
743
  // coeffs 2 3 2 3 2 3 2 3
744
134k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
745
  // coeffs 4 5 4 5 4 5 4 5
746
134k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
747
134k
}
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.02M
    __m256i *const coeffs /* [4] */) {
752
1.02M
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
753
1.02M
      filter_params, subpel_q4 & SUBPEL_MASK);
754
1.02M
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
755
1.02M
  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.02M
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
763
1.02M
                            _mm_set1_epi16((int16_t)0xffff)));
764
765
1.02M
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
766
767
  // coeffs 1 2 1 2 1 2 1 2
768
1.02M
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0402u));
769
  // coeffs 3 4 3 4 3 4 3 4
770
1.02M
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
771
  // coeffs 5 6 5 6 5 6 5 6
772
1.02M
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0c0au));
773
1.02M
}
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
653k
    __m256i *const coeffs /* [4] */) {
752
653k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
753
653k
      filter_params, subpel_q4 & SUBPEL_MASK);
754
653k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
755
653k
  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
653k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
763
653k
                            _mm_set1_epi16((int16_t)0xffff)));
764
765
653k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
766
767
  // coeffs 1 2 1 2 1 2 1 2
768
653k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0402u));
769
  // coeffs 3 4 3 4 3 4 3 4
770
653k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
771
  // coeffs 5 6 5 6 5 6 5 6
772
653k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0c0au));
773
653k
}
convolve_avx2.c:prepare_coeffs_6t_lowbd
Line
Count
Source
751
370k
    __m256i *const coeffs /* [4] */) {
752
370k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
753
370k
      filter_params, subpel_q4 & SUBPEL_MASK);
754
370k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
755
370k
  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
370k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
763
370k
                            _mm_set1_epi16((int16_t)0xffff)));
764
765
370k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
766
767
  // coeffs 1 2 1 2 1 2 1 2
768
370k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0402u));
769
  // coeffs 3 4 3 4 3 4 3 4
770
370k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
771
  // coeffs 5 6 5 6 5 6 5 6
772
370k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0c0au));
773
370k
}
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
431k
    __m256i *const coeffs /* [4] */) {
778
431k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
779
431k
      filter_params, subpel_q4 & SUBPEL_MASK);
780
431k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
781
431k
  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
431k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
789
431k
                            _mm_set1_epi16((short)0xffff)));
790
791
431k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
792
793
  // coeffs 0 1 0 1 0 1 0 1
794
431k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0200u));
795
  // coeffs 2 3 2 3 2 3 2 3
796
431k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
797
  // coeffs 4 5 4 5 4 5 4 5
798
431k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
799
  // coeffs 6 7 6 7 6 7 6 7
800
431k
  coeffs[3] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0e0cu));
801
431k
}
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
53.5k
    __m256i *const coeffs /* [4] */) {
778
53.5k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
779
53.5k
      filter_params, subpel_q4 & SUBPEL_MASK);
780
53.5k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
781
53.5k
  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
53.5k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
789
53.5k
                            _mm_set1_epi16((short)0xffff)));
790
791
53.5k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
792
793
  // coeffs 0 1 0 1 0 1 0 1
794
53.5k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0200u));
795
  // coeffs 2 3 2 3 2 3 2 3
796
53.5k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
797
  // coeffs 4 5 4 5 4 5 4 5
798
53.5k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
799
  // coeffs 6 7 6 7 6 7 6 7
800
53.5k
  coeffs[3] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0e0cu));
801
53.5k
}
convolve_avx2.c:prepare_coeffs_lowbd
Line
Count
Source
777
36.3k
    __m256i *const coeffs /* [4] */) {
778
36.3k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
779
36.3k
      filter_params, subpel_q4 & SUBPEL_MASK);
780
36.3k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
781
36.3k
  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
36.3k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
789
36.3k
                            _mm_set1_epi16((short)0xffff)));
790
791
36.3k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
792
793
  // coeffs 0 1 0 1 0 1 0 1
794
36.3k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0200u));
795
  // coeffs 2 3 2 3 2 3 2 3
796
36.3k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
797
  // coeffs 4 5 4 5 4 5 4 5
798
36.3k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
799
  // coeffs 6 7 6 7 6 7 6 7
800
36.3k
  coeffs[3] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0e0cu));
801
36.3k
}
jnt_convolve_avx2.c:prepare_coeffs_lowbd
Line
Count
Source
777
341k
    __m256i *const coeffs /* [4] */) {
778
341k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
779
341k
      filter_params, subpel_q4 & SUBPEL_MASK);
780
341k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
781
341k
  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
341k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
789
341k
                            _mm_set1_epi16((short)0xffff)));
790
791
341k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
792
793
  // coeffs 0 1 0 1 0 1 0 1
794
341k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0200u));
795
  // coeffs 2 3 2 3 2 3 2 3
796
341k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
797
  // coeffs 4 5 4 5 4 5 4 5
798
341k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
799
  // coeffs 6 7 6 7 6 7 6 7
800
341k
  coeffs[3] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0e0cu));
801
341k
}
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
43.6k
    __m256i *const coeffs /* [4] */) {
806
43.6k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
807
43.6k
      filter_params, subpel_q4 & SUBPEL_MASK);
808
809
43.6k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)(filter + 1));
810
43.6k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
811
812
  // coeffs 3 4 3 4 3 4 3 4
813
43.6k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x55);
814
43.6k
}
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
43.6k
    __m256i *const coeffs /* [4] */) {
806
43.6k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
807
43.6k
      filter_params, subpel_q4 & SUBPEL_MASK);
808
809
43.6k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)(filter + 1));
810
43.6k
  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
43.6k
}
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
694k
    __m256i *const coeffs /* [4] */) {
819
694k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
820
694k
      filter_params, subpel_q4 & SUBPEL_MASK);
821
822
694k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
823
694k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
824
  // coeffs 2 3 2 3 2 3 2 3
825
694k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x55);
826
  // coeffs 4 5 4 5 4 5 4 5
827
694k
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0xaa);
828
694k
}
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
694k
    __m256i *const coeffs /* [4] */) {
819
694k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
820
694k
      filter_params, subpel_q4 & SUBPEL_MASK);
821
822
694k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
823
694k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
824
  // coeffs 2 3 2 3 2 3 2 3
825
694k
  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
694k
}
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
510k
    __m256i *const coeffs /* [4] */) {
833
510k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
834
510k
      filter_params, subpel_q4 & SUBPEL_MASK);
835
836
510k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)(filter + 1));
837
510k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
838
839
  // coeffs 1 2 1 2 1 2 1 2
840
510k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
841
  // coeffs 3 4 3 4 3 4 3 4
842
510k
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
843
  // coeffs 5 6 5 6 5 6 5 6
844
510k
  coeffs[2] = _mm256_shuffle_epi32(coeff, 0xaa);
845
510k
}
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
510k
    __m256i *const coeffs /* [4] */) {
833
510k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
834
510k
      filter_params, subpel_q4 & SUBPEL_MASK);
835
836
510k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)(filter + 1));
837
510k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
838
839
  // coeffs 1 2 1 2 1 2 1 2
840
510k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
841
  // coeffs 3 4 3 4 3 4 3 4
842
510k
  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
510k
}
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.20M
                                  __m256i *const coeffs /* [4] */) {
850
9.20M
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
9.20M
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
9.20M
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
9.20M
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
9.20M
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
9.20M
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
9.20M
  coeffs[2] = _mm256_shuffle_epi32(coeff, 0xaa);
862
  // coeffs 6 7 6 7 6 7 6 7
863
9.20M
  coeffs[3] = _mm256_shuffle_epi32(coeff, 0xff);
864
9.20M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:prepare_coeffs
highbd_convolve_avx2.c:prepare_coeffs
Line
Count
Source
849
1.84M
                                  __m256i *const coeffs /* [4] */) {
850
1.84M
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
1.84M
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
1.84M
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
1.84M
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
1.84M
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
1.84M
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
1.84M
  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.84M
}
convolve_2d_avx2.c:prepare_coeffs
Line
Count
Source
849
46.8k
                                  __m256i *const coeffs /* [4] */) {
850
46.8k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
46.8k
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
46.8k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
46.8k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
46.8k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
46.8k
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
46.8k
  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
46.8k
}
Unexecuted instantiation: convolve_avx2.c:prepare_coeffs
jnt_convolve_avx2.c:prepare_coeffs
Line
Count
Source
849
172k
                                  __m256i *const coeffs /* [4] */) {
850
172k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
172k
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
172k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
172k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
172k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
172k
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
172k
  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
172k
}
Unexecuted instantiation: wiener_convolve_avx2.c:prepare_coeffs
highbd_convolve_2d_avx2.c:prepare_coeffs
Line
Count
Source
849
6.00M
                                  __m256i *const coeffs /* [4] */) {
850
6.00M
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
6.00M
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
6.00M
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
6.00M
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
6.00M
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
6.00M
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
6.00M
  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.00M
}
highbd_jnt_convolve_avx2.c:prepare_coeffs
Line
Count
Source
849
1.14M
                                  __m256i *const coeffs /* [4] */) {
850
1.14M
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
1.14M
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
1.14M
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
1.14M
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
1.14M
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
1.14M
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
1.14M
  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.14M
}
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.44M
                                                const __m128i coeffs[2]) {
892
3.44M
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
893
3.44M
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
894
895
3.44M
  return _mm_add_epi16(res_01, res_23);
896
3.44M
}
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
2.75M
                                                const __m128i coeffs[2]) {
892
2.75M
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
893
2.75M
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
894
895
2.75M
  return _mm_add_epi16(res_01, res_23);
896
2.75M
}
convolve_avx2.c:convolve_lowbd_4tap_ssse3
Line
Count
Source
891
687k
                                                const __m128i coeffs[2]) {
892
687k
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
893
687k
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
894
895
687k
  return _mm_add_epi16(res_01, res_23);
896
687k
}
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
330k
                                                const __m128i coeffs[3]) {
900
330k
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
901
330k
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
902
330k
  const __m128i res_45 = _mm_maddubs_epi16(ss[2], coeffs[2]);
903
904
330k
  const __m128i res = _mm_add_epi16(_mm_add_epi16(res_01, res_45), res_23);
905
906
330k
  return res;
907
330k
}
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
330k
                                                const __m128i coeffs[3]) {
900
330k
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
901
330k
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
902
330k
  const __m128i res_45 = _mm_maddubs_epi16(ss[2], coeffs[2]);
903
904
330k
  const __m128i res = _mm_add_epi16(_mm_add_epi16(res_01, res_45), res_23);
905
906
330k
  return res;
907
330k
}
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
34.1k
                                           const __m128i coeffs[4]) {
911
34.1k
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
912
34.1k
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
913
34.1k
  const __m128i res_45 = _mm_maddubs_epi16(ss[2], coeffs[2]);
914
34.1k
  const __m128i res_67 = _mm_maddubs_epi16(ss[3], coeffs[3]);
915
916
34.1k
  const __m128i res = _mm_add_epi16(_mm_add_epi16(res_01, res_45),
917
34.1k
                                    _mm_add_epi16(res_23, res_67));
918
919
34.1k
  return res;
920
34.1k
}
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
34.1k
                                           const __m128i coeffs[4]) {
911
34.1k
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
912
34.1k
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
913
34.1k
  const __m128i res_45 = _mm_maddubs_epi16(ss[2], coeffs[2]);
914
34.1k
  const __m128i res_67 = _mm_maddubs_epi16(ss[3], coeffs[3]);
915
916
34.1k
  const __m128i res = _mm_add_epi16(_mm_add_epi16(res_01, res_45),
917
34.1k
                                    _mm_add_epi16(res_23, res_67));
918
919
34.1k
  return res;
920
34.1k
}
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.8M
                                     const __m256i *const coeffs) {
924
22.8M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
925
22.8M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
926
22.8M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
927
22.8M
  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.8M
  const __m256i res = _mm256_add_epi16(_mm256_add_epi16(res_01, res_45),
931
22.8M
                                       _mm256_add_epi16(res_23, res_67));
932
933
22.8M
  return res;
934
22.8M
}
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.49M
                                     const __m256i *const coeffs) {
924
2.49M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
925
2.49M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
926
2.49M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
927
2.49M
  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.49M
  const __m256i res = _mm256_add_epi16(_mm256_add_epi16(res_01, res_45),
931
2.49M
                                       _mm256_add_epi16(res_23, res_67));
932
933
2.49M
  return res;
934
2.49M
}
convolve_avx2.c:convolve_lowbd
Line
Count
Source
923
696k
                                     const __m256i *const coeffs) {
924
696k
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
925
696k
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
926
696k
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
927
696k
  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
696k
  const __m256i res = _mm256_add_epi16(_mm256_add_epi16(res_01, res_45),
931
696k
                                       _mm256_add_epi16(res_23, res_67));
932
933
696k
  return res;
934
696k
}
jnt_convolve_avx2.c:convolve_lowbd
Line
Count
Source
923
5.83M
                                     const __m256i *const coeffs) {
924
5.83M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
925
5.83M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
926
5.83M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
927
5.83M
  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
5.83M
  const __m256i res = _mm256_add_epi16(_mm256_add_epi16(res_01, res_45),
931
5.83M
                                       _mm256_add_epi16(res_23, res_67));
932
933
5.83M
  return res;
934
5.83M
}
wiener_convolve_avx2.c:convolve_lowbd
Line
Count
Source
923
13.8M
                                     const __m256i *const coeffs) {
924
13.8M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
925
13.8M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
926
13.8M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
927
13.8M
  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
13.8M
  const __m256i res = _mm256_add_epi16(_mm256_add_epi16(res_01, res_45),
931
13.8M
                                       _mm256_add_epi16(res_23, res_67));
932
933
13.8M
  return res;
934
13.8M
}
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
18.7M
                                          const __m256i *const coeffs) {
938
18.7M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
939
18.7M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
940
18.7M
  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
18.7M
  const __m256i res =
944
18.7M
      _mm256_add_epi16(_mm256_add_epi16(res_01, res_45), res_23);
945
946
18.7M
  return res;
947
18.7M
}
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
10.9M
                                          const __m256i *const coeffs) {
938
10.9M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
939
10.9M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
940
10.9M
  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
10.9M
  const __m256i res =
944
10.9M
      _mm256_add_epi16(_mm256_add_epi16(res_01, res_45), res_23);
945
946
10.9M
  return res;
947
10.9M
}
convolve_avx2.c:convolve_lowbd_6tap
Line
Count
Source
937
7.71M
                                          const __m256i *const coeffs) {
938
7.71M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
939
7.71M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
940
7.71M
  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
7.71M
  const __m256i res =
944
7.71M
      _mm256_add_epi16(_mm256_add_epi16(res_01, res_45), res_23);
945
946
7.71M
  return res;
947
7.71M
}
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
5.30M
                                          const __m256i *const coeffs) {
951
5.30M
  const __m256i res_23 = _mm256_maddubs_epi16(s[0], coeffs[0]);
952
5.30M
  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
5.30M
  const __m256i res = _mm256_add_epi16(res_45, res_23);
956
957
5.30M
  return res;
958
5.30M
}
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.04M
                                          const __m256i *const coeffs) {
951
1.04M
  const __m256i res_23 = _mm256_maddubs_epi16(s[0], coeffs[0]);
952
1.04M
  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.04M
  const __m256i res = _mm256_add_epi16(res_45, res_23);
956
957
1.04M
  return res;
958
1.04M
}
convolve_avx2.c:convolve_lowbd_4tap
Line
Count
Source
950
1.85M
                                          const __m256i *const coeffs) {
951
1.85M
  const __m256i res_23 = _mm256_maddubs_epi16(s[0], coeffs[0]);
952
1.85M
  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.85M
  const __m256i res = _mm256_add_epi16(res_45, res_23);
956
957
1.85M
  return res;
958
1.85M
}
jnt_convolve_avx2.c:convolve_lowbd_4tap
Line
Count
Source
950
2.39M
                                          const __m256i *const coeffs) {
951
2.39M
  const __m256i res_23 = _mm256_maddubs_epi16(s[0], coeffs[0]);
952
2.39M
  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.39M
  const __m256i res = _mm256_add_epi16(res_45, res_23);
956
957
2.39M
  return res;
958
2.39M
}
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
16.2M
                                    const __m256i *const coeffs) {
962
16.2M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
963
16.2M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
964
16.2M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
965
966
16.2M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1), res_2);
967
968
16.2M
  return res;
969
16.2M
}
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
16.2M
                                    const __m256i *const coeffs) {
962
16.2M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
963
16.2M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
964
16.2M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
965
966
16.2M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1), res_2);
967
968
16.2M
  return res;
969
16.2M
}
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
252M
                               const __m256i *const coeffs) {
989
252M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
252M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
252M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
252M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
252M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
252M
                                       _mm256_add_epi32(res_2, res_3));
996
997
252M
  return res;
998
252M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve
highbd_convolve_avx2.c:convolve
Line
Count
Source
988
34.8M
                               const __m256i *const coeffs) {
989
34.8M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
34.8M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
34.8M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
34.8M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
34.8M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
34.8M
                                       _mm256_add_epi32(res_2, res_3));
996
997
34.8M
  return res;
998
34.8M
}
convolve_2d_avx2.c:convolve
Line
Count
Source
988
3.68M
                               const __m256i *const coeffs) {
989
3.68M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
3.68M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
3.68M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
3.68M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
3.68M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
3.68M
                                       _mm256_add_epi32(res_2, res_3));
996
997
3.68M
  return res;
998
3.68M
}
Unexecuted instantiation: convolve_avx2.c:convolve
jnt_convolve_avx2.c:convolve
Line
Count
Source
988
4.40M
                               const __m256i *const coeffs) {
989
4.40M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
4.40M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
4.40M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
4.40M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
4.40M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
4.40M
                                       _mm256_add_epi32(res_2, res_3));
996
997
4.40M
  return res;
998
4.40M
}
wiener_convolve_avx2.c:convolve
Line
Count
Source
988
24.9M
                               const __m256i *const coeffs) {
989
24.9M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
24.9M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
24.9M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
24.9M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
24.9M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
24.9M
                                       _mm256_add_epi32(res_2, res_3));
996
997
24.9M
  return res;
998
24.9M
}
highbd_convolve_2d_avx2.c:convolve
Line
Count
Source
988
129M
                               const __m256i *const coeffs) {
989
129M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
129M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
129M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
129M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
129M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
129M
                                       _mm256_add_epi32(res_2, res_3));
996
997
129M
  return res;
998
129M
}
highbd_jnt_convolve_avx2.c:convolve
Line
Count
Source
988
55.1M
                               const __m256i *const coeffs) {
989
55.1M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
55.1M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
55.1M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
55.1M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
55.1M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
55.1M
                                       _mm256_add_epi32(res_2, res_3));
996
997
55.1M
  return res;
998
55.1M
}
999
1000
static inline __m256i convolve_4tap(const __m256i *const s,
1001
3.51M
                                    const __m256i *const coeffs) {
1002
3.51M
  const __m256i res_1 = _mm256_madd_epi16(s[0], coeffs[0]);
1003
3.51M
  const __m256i res_2 = _mm256_madd_epi16(s[1], coeffs[1]);
1004
1005
3.51M
  const __m256i res = _mm256_add_epi32(res_1, res_2);
1006
3.51M
  return res;
1007
3.51M
}
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.51M
                                    const __m256i *const coeffs) {
1002
3.51M
  const __m256i res_1 = _mm256_madd_epi16(s[0], coeffs[0]);
1003
3.51M
  const __m256i res_2 = _mm256_madd_epi16(s[1], coeffs[1]);
1004
1005
3.51M
  const __m256i res = _mm256_add_epi32(res_1, res_2);
1006
3.51M
  return res;
1007
3.51M
}
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
84.5k
                                                  const __m128i *const filt) {
1012
84.5k
  __m128i s;
1013
84.5k
  s = _mm_shuffle_epi8(data, filt[0]);
1014
1015
84.5k
  return _mm_maddubs_epi16(s, coeffs[0]);
1016
84.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
84.5k
                                                  const __m128i *const filt) {
1012
84.5k
  __m128i s;
1013
84.5k
  s = _mm_shuffle_epi8(data, filt[0]);
1014
1015
84.5k
  return _mm_maddubs_epi16(s, coeffs[0]);
1016
84.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
2.75M
                                                  const __m128i *const filt) {
1021
2.75M
  __m128i s[2];
1022
1023
2.75M
  s[0] = _mm_shuffle_epi8(data, filt[0]);
1024
2.75M
  s[1] = _mm_shuffle_epi8(data, filt[1]);
1025
1026
2.75M
  return convolve_lowbd_4tap_ssse3(s, coeffs);
1027
2.75M
}
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
2.75M
                                                  const __m128i *const filt) {
1021
2.75M
  __m128i s[2];
1022
1023
2.75M
  s[0] = _mm_shuffle_epi8(data, filt[0]);
1024
2.75M
  s[1] = _mm_shuffle_epi8(data, filt[1]);
1025
1026
2.75M
  return convolve_lowbd_4tap_ssse3(s, coeffs);
1027
2.75M
}
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
21.8M
                                       const __m256i *const filt) {
1032
21.8M
  __m256i s[4];
1033
1034
21.8M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1035
21.8M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1036
21.8M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1037
21.8M
  s[3] = _mm256_shuffle_epi8(data, filt[3]);
1038
1039
21.8M
  return convolve_lowbd(s, coeffs);
1040
21.8M
}
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.49M
                                       const __m256i *const filt) {
1032
2.49M
  __m256i s[4];
1033
1034
2.49M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1035
2.49M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1036
2.49M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1037
2.49M
  s[3] = _mm256_shuffle_epi8(data, filt[3]);
1038
1039
2.49M
  return convolve_lowbd(s, coeffs);
1040
2.49M
}
convolve_avx2.c:convolve_lowbd_x
Line
Count
Source
1031
485k
                                       const __m256i *const filt) {
1032
485k
  __m256i s[4];
1033
1034
485k
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1035
485k
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1036
485k
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1037
485k
  s[3] = _mm256_shuffle_epi8(data, filt[3]);
1038
1039
485k
  return convolve_lowbd(s, coeffs);
1040
485k
}
jnt_convolve_avx2.c:convolve_lowbd_x
Line
Count
Source
1031
5.00M
                                       const __m256i *const filt) {
1032
5.00M
  __m256i s[4];
1033
1034
5.00M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1035
5.00M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1036
5.00M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1037
5.00M
  s[3] = _mm256_shuffle_epi8(data, filt[3]);
1038
1039
5.00M
  return convolve_lowbd(s, coeffs);
1040
5.00M
}
wiener_convolve_avx2.c:convolve_lowbd_x
Line
Count
Source
1031
13.8M
                                       const __m256i *const filt) {
1032
13.8M
  __m256i s[4];
1033
1034
13.8M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1035
13.8M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1036
13.8M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1037
13.8M
  s[3] = _mm256_shuffle_epi8(data, filt[3]);
1038
1039
13.8M
  return convolve_lowbd(s, coeffs);
1040
13.8M
}
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
15.2M
                                            const __m256i *const filt) {
1045
15.2M
  __m256i s[4];
1046
1047
15.2M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1048
15.2M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1049
15.2M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1050
1051
15.2M
  return convolve_lowbd_6tap(s, coeffs);
1052
15.2M
}
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
10.9M
                                            const __m256i *const filt) {
1045
10.9M
  __m256i s[4];
1046
1047
10.9M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1048
10.9M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1049
10.9M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1050
1051
10.9M
  return convolve_lowbd_6tap(s, coeffs);
1052
10.9M
}
convolve_avx2.c:convolve_lowbd_x_6tap
Line
Count
Source
1044
4.29M
                                            const __m256i *const filt) {
1045
4.29M
  __m256i s[4];
1046
1047
4.29M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1048
4.29M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1049
4.29M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1050
1051
4.29M
  return convolve_lowbd_6tap(s, coeffs);
1052
4.29M
}
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.93M
                                            const __m256i *const filt) {
1057
3.93M
  __m256i s[2];
1058
1059
3.93M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1060
3.93M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1061
1062
3.93M
  return convolve_lowbd_4tap(s, coeffs);
1063
3.93M
}
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.04M
                                            const __m256i *const filt) {
1057
1.04M
  __m256i s[2];
1058
1059
1.04M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1060
1.04M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1061
1062
1.04M
  return convolve_lowbd_4tap(s, coeffs);
1063
1.04M
}
convolve_avx2.c:convolve_lowbd_x_4tap
Line
Count
Source
1056
855k
                                            const __m256i *const filt) {
1057
855k
  __m256i s[2];
1058
1059
855k
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1060
855k
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1061
1062
855k
  return convolve_lowbd_4tap(s, coeffs);
1063
855k
}
jnt_convolve_avx2.c:convolve_lowbd_x_4tap
Line
Count
Source
1056
2.03M
                                            const __m256i *const filt) {
1057
2.03M
  __m256i s[2];
1058
1059
2.03M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1060
2.03M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1061
1062
2.03M
  return convolve_lowbd_4tap(s, coeffs);
1063
2.03M
}
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
561k
                                            const __m256i *const filt) {
1068
561k
  __m256i s;
1069
561k
  s = _mm256_shuffle_epi8(data, filt[0]);
1070
1071
561k
  return _mm256_maddubs_epi16(s, coeffs[0]);
1072
561k
}
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
561k
                                            const __m256i *const filt) {
1068
561k
  __m256i s;
1069
561k
  s = _mm256_shuffle_epi8(data, filt[0]);
1070
1071
561k
  return _mm256_maddubs_epi16(s, coeffs[0]);
1072
561k
}
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
289M
                               const int use_dist_wtd_comp_avg) {
1092
289M
  __m256i res;
1093
289M
  if (use_dist_wtd_comp_avg) {
1094
1.73M
    const __m256i data_lo = _mm256_unpacklo_epi16(*data_ref_0, *res_unsigned);
1095
1.73M
    const __m256i data_hi = _mm256_unpackhi_epi16(*data_ref_0, *res_unsigned);
1096
1097
1.73M
    const __m256i wt_res_lo = _mm256_madd_epi16(data_lo, *wt);
1098
1.73M
    const __m256i wt_res_hi = _mm256_madd_epi16(data_hi, *wt);
1099
1100
1.73M
    const __m256i res_lo = _mm256_srai_epi32(wt_res_lo, DIST_PRECISION_BITS);
1101
1.73M
    const __m256i res_hi = _mm256_srai_epi32(wt_res_hi, DIST_PRECISION_BITS);
1102
1103
1.73M
    res = _mm256_packs_epi32(res_lo, res_hi);
1104
287M
  } else {
1105
287M
    const __m256i wt_res = _mm256_add_epi16(*data_ref_0, *res_unsigned);
1106
287M
    res = _mm256_srai_epi16(wt_res, 1);
1107
287M
  }
1108
289M
  return res;
1109
289M
}
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
289M
                               const int use_dist_wtd_comp_avg) {
1092
289M
  __m256i res;
1093
289M
  if (use_dist_wtd_comp_avg) {
1094
1.73M
    const __m256i data_lo = _mm256_unpacklo_epi16(*data_ref_0, *res_unsigned);
1095
1.73M
    const __m256i data_hi = _mm256_unpackhi_epi16(*data_ref_0, *res_unsigned);
1096
1097
1.73M
    const __m256i wt_res_lo = _mm256_madd_epi16(data_lo, *wt);
1098
1.73M
    const __m256i wt_res_hi = _mm256_madd_epi16(data_hi, *wt);
1099
1100
1.73M
    const __m256i res_lo = _mm256_srai_epi32(wt_res_lo, DIST_PRECISION_BITS);
1101
1.73M
    const __m256i res_hi = _mm256_srai_epi32(wt_res_hi, DIST_PRECISION_BITS);
1102
1103
1.73M
    res = _mm256_packs_epi32(res_lo, res_hi);
1104
287M
  } else {
1105
287M
    const __m256i wt_res = _mm256_add_epi16(*data_ref_0, *res_unsigned);
1106
287M
    res = _mm256_srai_epi16(wt_res, 1);
1107
287M
  }
1108
289M
  return res;
1109
289M
}
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
287M
                                        const int round_shift) {
1115
287M
  const __m256i res_signed = _mm256_sub_epi16(*res_unsigned, *offset_const);
1116
287M
  const __m256i res_round = _mm256_srai_epi16(
1117
287M
      _mm256_add_epi16(res_signed, *round_const), round_shift);
1118
287M
  return res_round;
1119
287M
}
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
287M
                                        const int round_shift) {
1115
287M
  const __m256i res_signed = _mm256_sub_epi16(*res_unsigned, *offset_const);
1116
287M
  const __m256i res_round = _mm256_srai_epi16(
1117
287M
      _mm256_add_epi16(res_signed, *round_const), round_shift);
1118
287M
  return res_round;
1119
287M
}
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
16.5M
                                      const int use_dist_wtd_comp_avg) {
1126
16.5M
  __m256i res;
1127
16.5M
  if (use_dist_wtd_comp_avg) {
1128
2.61M
    const __m256i wt0_res = _mm256_mullo_epi32(*data_ref_0, *wt0);
1129
2.61M
    const __m256i wt1_res = _mm256_mullo_epi32(*res_unsigned, *wt1);
1130
2.61M
    const __m256i wt_res = _mm256_add_epi32(wt0_res, wt1_res);
1131
2.61M
    res = _mm256_srai_epi32(wt_res, DIST_PRECISION_BITS);
1132
13.9M
  } else {
1133
13.9M
    const __m256i wt_res = _mm256_add_epi32(*data_ref_0, *res_unsigned);
1134
13.9M
    res = _mm256_srai_epi32(wt_res, 1);
1135
13.9M
  }
1136
16.5M
  return res;
1137
16.5M
}
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
16.5M
                                      const int use_dist_wtd_comp_avg) {
1126
16.5M
  __m256i res;
1127
16.5M
  if (use_dist_wtd_comp_avg) {
1128
2.61M
    const __m256i wt0_res = _mm256_mullo_epi32(*data_ref_0, *wt0);
1129
2.61M
    const __m256i wt1_res = _mm256_mullo_epi32(*res_unsigned, *wt1);
1130
2.61M
    const __m256i wt_res = _mm256_add_epi32(wt0_res, wt1_res);
1131
2.61M
    res = _mm256_srai_epi32(wt_res, DIST_PRECISION_BITS);
1132
13.9M
  } else {
1133
13.9M
    const __m256i wt_res = _mm256_add_epi32(*data_ref_0, *res_unsigned);
1134
13.9M
    res = _mm256_srai_epi32(wt_res, 1);
1135
13.9M
  }
1136
16.5M
  return res;
1137
16.5M
}
1138
1139
static inline __m256i highbd_convolve_rounding(
1140
    const __m256i *const res_unsigned, const __m256i *const offset_const,
1141
16.5M
    const __m256i *const round_const, const int round_shift) {
1142
16.5M
  const __m256i res_signed = _mm256_sub_epi32(*res_unsigned, *offset_const);
1143
16.5M
  const __m256i res_round = _mm256_srai_epi32(
1144
16.5M
      _mm256_add_epi32(res_signed, *round_const), round_shift);
1145
1146
16.5M
  return res_round;
1147
16.5M
}
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
16.5M
    const __m256i *const round_const, const int round_shift) {
1142
16.5M
  const __m256i res_signed = _mm256_sub_epi32(*res_unsigned, *offset_const);
1143
16.5M
  const __m256i res_round = _mm256_srai_epi32(
1144
16.5M
      _mm256_add_epi32(res_signed, *round_const), round_shift);
1145
1146
16.5M
  return res_round;
1147
16.5M
}
1148
1149
5.97M
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.97M
  const __m256i value = _mm256_set1_epi16(34);
1156
5.97M
  const __m256i reg = _mm256_add_epi16(data, value);
1157
5.97M
  return _mm256_srai_epi16(reg, 6);
1158
5.97M
}
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.97M
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.97M
  const __m256i value = _mm256_set1_epi16(34);
1156
5.97M
  const __m256i reg = _mm256_add_epi16(data, value);
1157
5.97M
  return _mm256_srai_epi16(reg, 6);
1158
5.97M
}
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
400k
                                                __m128i *const coeffs) {
1163
400k
  __m128i data[2];
1164
400k
  const __m128i f_l0 = _mm_load_si128((__m128i const *)filt1_global_sse2);
1165
400k
  const __m128i f_l1 = _mm_load_si128((__m128i const *)filt2_global_sse2);
1166
400k
  const __m128i src_1 =
1167
400k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * src_stride));
1168
1169
400k
  data[0] = _mm_shuffle_epi8(src_1, f_l0);
1170
400k
  data[1] = _mm_shuffle_epi8(src_1, f_l1);
1171
400k
  return convolve_lowbd_4tap_ssse3(data, coeffs);
1172
400k
}
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
400k
                                                __m128i *const coeffs) {
1163
400k
  __m128i data[2];
1164
400k
  const __m128i f_l0 = _mm_load_si128((__m128i const *)filt1_global_sse2);
1165
400k
  const __m128i f_l1 = _mm_load_si128((__m128i const *)filt2_global_sse2);
1166
400k
  const __m128i src_1 =
1167
400k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * src_stride));
1168
1169
400k
  data[0] = _mm_shuffle_epi8(src_1, f_l0);
1170
400k
  data[1] = _mm_shuffle_epi8(src_1, f_l1);
1171
400k
  return convolve_lowbd_4tap_ssse3(data, coeffs);
1172
400k
}
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
542k
static inline __m128i round_sr_x_ssse3(const __m128i data) {
1175
542k
  const __m128i val = _mm_set1_epi16(34);
1176
542k
  const __m128i reg = _mm_add_epi16(data, val);
1177
542k
  return _mm_srai_epi16(reg, 6);
1178
542k
}
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
542k
static inline __m128i round_sr_x_ssse3(const __m128i data) {
1175
542k
  const __m128i val = _mm_set1_epi16(34);
1176
542k
  const __m128i reg = _mm_add_epi16(data, val);
1177
542k
  return _mm_srai_epi16(reg, 6);
1178
542k
}
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
919k
                                       const ptrdiff_t dst_stride) {
1182
919k
  xx_storel_32(dst, reg);
1183
919k
  *(uint32_t *)(dst + dst_stride) =
1184
919k
      ((uint32_t)_mm_extract_epi16(reg, 3) << 16) | _mm_extract_epi16(reg, 2);
1185
919k
}
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
919k
                                       const ptrdiff_t dst_stride) {
1182
919k
  xx_storel_32(dst, reg);
1183
919k
  *(uint32_t *)(dst + dst_stride) =
1184
919k
      ((uint32_t)_mm_extract_epi16(reg, 3) << 16) | _mm_extract_epi16(reg, 2);
1185
919k
}
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
919k
                                          const ptrdiff_t dst_stride) {
1189
919k
  const __m128i reg_pack = _mm_packus_epi16(reg, reg);
1190
919k
  store_8bit_4x2_sse2(reg_pack, dst, dst_stride);
1191
919k
}
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
919k
                                          const ptrdiff_t dst_stride) {
1189
919k
  const __m128i reg_pack = _mm_packus_epi16(reg, reg);
1190
919k
  store_8bit_4x2_sse2(reg_pack, dst, dst_stride);
1191
919k
}
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
74.7k
                                                __m128i *const coeffs) {
1196
74.7k
  __m128i data[2];
1197
74.7k
  const __m128i f_0 = _mm_load_si128((__m128i const *)filt3_global_sse2);
1198
74.7k
  const __m128i f_1 = _mm_load_si128((__m128i const *)filt4_global_sse2);
1199
74.7k
  const __m128i reg =
1200
74.7k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * src_stride));
1201
1202
74.7k
  data[0] = _mm_shuffle_epi8(reg, f_0);
1203
74.7k
  data[1] = _mm_shuffle_epi8(reg, f_1);
1204
74.7k
  return convolve_lowbd_4tap_ssse3(data, coeffs);
1205
74.7k
}
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
74.7k
                                                __m128i *const coeffs) {
1196
74.7k
  __m128i data[2];
1197
74.7k
  const __m128i f_0 = _mm_load_si128((__m128i const *)filt3_global_sse2);
1198
74.7k
  const __m128i f_1 = _mm_load_si128((__m128i const *)filt4_global_sse2);
1199
74.7k
  const __m128i reg =
1200
74.7k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * src_stride));
1201
1202
74.7k
  data[0] = _mm_shuffle_epi8(reg, f_0);
1203
74.7k
  data[1] = _mm_shuffle_epi8(reg, f_1);
1204
74.7k
  return convolve_lowbd_4tap_ssse3(data, coeffs);
1205
74.7k
}
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
178k
                                          const ptrdiff_t dst_stride) {
1209
178k
  const __m128i data = _mm_packus_epi16(reg, reg);
1210
178k
  *(int16_t *)dst = (int16_t)_mm_cvtsi128_si32(data);
1211
178k
  *(int16_t *)(dst + dst_stride) = (int16_t)_mm_extract_epi16(data, 1);
1212
178k
}
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
178k
                                          const ptrdiff_t dst_stride) {
1209
178k
  const __m128i data = _mm_packus_epi16(reg, reg);
1210
178k
  *(int16_t *)dst = (int16_t)_mm_cvtsi128_si32(data);
1211
  *(int16_t *)(dst + dst_stride) = (int16_t)_mm_extract_epi16(data, 1);
1212
178k
}
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
67.4k
                                            const __m128i *coeff) {
1216
67.4k
  return _mm_maddubs_epi16(data[0], coeff[0]);
1217
67.4k
}
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
67.4k
                                            const __m128i *coeff) {
1216
67.4k
  return _mm_maddubs_epi16(data[0], coeff[0]);
1217
67.4k
}
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
13.0k
                                       const ptrdiff_t offset) {
1221
13.0k
  const __m128i s = _mm_cvtsi32_si128(loadu_int32(src));
1222
13.0k
  return _mm_insert_epi32(s, loadu_int32((uint8_t *)src + offset), 1);
1223
13.0k
}
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
13.0k
                                       const ptrdiff_t offset) {
1221
13.0k
  const __m128i s = _mm_cvtsi32_si128(loadu_int32(src));
1222
  return _mm_insert_epi32(s, loadu_int32((uint8_t *)src + offset), 1);
1223
13.0k
}
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
13.0k
                                         const ptrdiff_t stride) {
1227
13.0k
  return load8_x_4x2_sse4(src, sizeof(*src) * stride);
1228
13.0k
}
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
13.0k
                                         const ptrdiff_t stride) {
1227
13.0k
  return load8_x_4x2_sse4(src, sizeof(*src) * stride);
1228
13.0k
}
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
4.72k
                                                const __m128i *coeffs) {
1233
4.72k
  const __m128i flt = _mm_load_si128((__m128i const *)filt5_global_sse2);
1234
4.72k
  const __m128i reg = load_x_u8_4x2_sse4(src, stride);
1235
4.72k
  const __m128i data = _mm_shuffle_epi8(reg, flt);
1236
4.72k
  return convolve_x_2tap_ssse3(&data, coeffs);
1237
4.72k
}
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
4.72k
                                                const __m128i *coeffs) {
1233
4.72k
  const __m128i flt = _mm_load_si128((__m128i const *)filt5_global_sse2);
1234
4.72k
  const __m128i reg = load_x_u8_4x2_sse4(src, stride);
1235
4.72k
  const __m128i data = _mm_shuffle_epi8(reg, flt);
1236
4.72k
  return convolve_x_2tap_ssse3(&data, coeffs);
1237
4.72k
}
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
20.9k
                                                const __m128i *coeffs) {
1242
20.9k
  const __m128i flt = _mm_load_si128((__m128i const *)filt1_global_sse2);
1243
20.9k
  const __m128i data =
1244
20.9k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * stride));
1245
20.9k
  const __m128i res = _mm_shuffle_epi8(data, flt);
1246
20.9k
  return convolve_x_2tap_ssse3(&res, coeffs);
1247
20.9k
}
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
20.9k
                                                const __m128i *coeffs) {
1242
20.9k
  const __m128i flt = _mm_load_si128((__m128i const *)filt1_global_sse2);
1243
20.9k
  const __m128i data =
1244
20.9k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * stride));
1245
20.9k
  const __m128i res = _mm_shuffle_epi8(data, flt);
1246
20.9k
  return convolve_x_2tap_ssse3(&res, coeffs);
1247
20.9k
}
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
20.8k
                                             __m128i *data) {
1253
20.8k
  __m128i res[2];
1254
20.8k
  const __m128i reg_00 = _mm_loadu_si128((__m128i *)src);
1255
20.8k
  const __m128i reg_10 = _mm_loadu_si128((__m128i *)(src + stride));
1256
20.8k
  const __m128i reg_01 = _mm_srli_si128(reg_00, 1);
1257
20.8k
  const __m128i reg_11 = _mm_srli_si128(reg_10, 1);
1258
20.8k
  res[0] = _mm_unpacklo_epi8(reg_00, reg_01);
1259
20.8k
  res[1] = _mm_unpacklo_epi8(reg_10, reg_11);
1260
1261
20.8k
  data[0] = convolve_x_2tap_ssse3(&res[0], coeffs);
1262
20.8k
  data[1] = convolve_x_2tap_ssse3(&res[1], coeffs);
1263
20.8k
}
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
20.8k
                                             __m128i *data) {
1253
20.8k
  __m128i res[2];
1254
20.8k
  const __m128i reg_00 = _mm_loadu_si128((__m128i *)src);
1255
20.8k
  const __m128i reg_10 = _mm_loadu_si128((__m128i *)(src + stride));
1256
20.8k
  const __m128i reg_01 = _mm_srli_si128(reg_00, 1);
1257
20.8k
  const __m128i reg_11 = _mm_srli_si128(reg_10, 1);
1258
20.8k
  res[0] = _mm_unpacklo_epi8(reg_00, reg_01);
1259
20.8k
  res[1] = _mm_unpacklo_epi8(reg_10, reg_11);
1260
1261
20.8k
  data[0] = convolve_x_2tap_ssse3(&res[0], coeffs);
1262
20.8k
  data[1] = convolve_x_2tap_ssse3(&res[1], coeffs);
1263
20.8k
}
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
872k
                                             const ptrdiff_t offset) {
1267
872k
  const __m128i reg0 = _mm_loadu_si128((__m128i *)src);
1268
872k
  const __m128i reg1 = _mm_loadu_si128((__m128i *)((uint8_t *)src + offset));
1269
872k
  return _mm256_setr_m128i(reg0, reg1);
1270
872k
}
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
872k
                                             const ptrdiff_t offset) {
1267
872k
  const __m128i reg0 = _mm_loadu_si128((__m128i *)src);
1268
872k
  const __m128i reg1 = _mm_loadu_si128((__m128i *)((uint8_t *)src + offset));
1269
872k
  return _mm256_setr_m128i(reg0, reg1);
1270
872k
}
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
337k
                                           const __m256i *coeffs) {
1274
337k
  return _mm256_maddubs_epi16(data[0], coeffs[0]);
1275
337k
}
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
337k
                                           const __m256i *coeffs) {
1274
337k
  return _mm256_maddubs_epi16(data[0], coeffs[0]);
1275
337k
}
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
13.6k
                                             __m256i *data) {
1281
13.6k
  const __m256i reg0 = loadu_x_8bit_16x2_avx2(src, stride);
1282
13.6k
  const __m256i reg1 = loadu_x_8bit_16x2_avx2(src + 1, stride);
1283
13.6k
  const __m256i res0 = _mm256_unpacklo_epi8(reg0, reg1);
1284
13.6k
  const __m256i res1 = _mm256_unpackhi_epi8(reg0, reg1);
1285
13.6k
  data[0] = convolve_x_2tap_avx2(&res0, coeffs);
1286
13.6k
  data[1] = convolve_x_2tap_avx2(&res1, coeffs);
1287
13.6k
}
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
13.6k
                                             __m256i *data) {
1281
13.6k
  const __m256i reg0 = loadu_x_8bit_16x2_avx2(src, stride);
1282
13.6k
  const __m256i reg1 = loadu_x_8bit_16x2_avx2(src + 1, stride);
1283
13.6k
  const __m256i res0 = _mm256_unpacklo_epi8(reg0, reg1);
1284
13.6k
  const __m256i res1 = _mm256_unpackhi_epi8(reg0, reg1);
1285
13.6k
  data[0] = convolve_x_2tap_avx2(&res0, coeffs);
1286
13.6k
  data[1] = convolve_x_2tap_avx2(&res1, coeffs);
1287
13.6k
}
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.17M
                                      const ptrdiff_t stride) {
1291
2.17M
  const __m128i reg0 = _mm256_castsi256_si128(src);
1292
2.17M
  const __m128i reg1 = _mm256_extracti128_si256(src, 1);
1293
2.17M
  _mm_storeu_si128((__m128i *)dst, reg0);
1294
2.17M
  _mm_storeu_si128((__m128i *)((uint8_t *)dst + stride), reg1);
1295
2.17M
}
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.17M
                                      const ptrdiff_t stride) {
1291
2.17M
  const __m128i reg0 = _mm256_castsi256_si128(src);
1292
  const __m128i reg1 = _mm256_extracti128_si256(src, 1);
1293
2.17M
  _mm_storeu_si128((__m128i *)dst, reg0);
1294
2.17M
  _mm_storeu_si128((__m128i *)((uint8_t *)dst + stride), reg1);
1295
2.17M
}
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
568k
                                     const ptrdiff_t stride) {
1299
568k
  const __m128i reg0 = _mm256_castsi256_si128(src);
1300
568k
  const __m128i reg1 = _mm256_extracti128_si256(src, 1);
1301
568k
  _mm_storel_epi64((__m128i *)dst, reg0);
1302
568k
  _mm_storel_epi64((__m128i *)(dst + stride), reg1);
1303
568k
}
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
568k
                                     const ptrdiff_t stride) {
1299
568k
  const __m128i reg0 = _mm256_castsi256_si128(src);
1300
  const __m128i reg1 = _mm256_extracti128_si256(src, 1);
1301
568k
  _mm_storel_epi64((__m128i *)dst, reg0);
1302
568k
  _mm_storel_epi64((__m128i *)(dst + stride), reg1);
1303
568k
}
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.17M
                                        const ptrdiff_t stride) {
1308
2.17M
  const __m256i res = _mm256_packus_epi16(data0, data1);
1309
2.17M
  store_u8_16x2_avx2(res, dst, stride);
1310
2.17M
}
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.17M
                                        const ptrdiff_t stride) {
1308
2.17M
  const __m256i res = _mm256_packus_epi16(data0, data1);
1309
2.17M
  store_u8_16x2_avx2(res, dst, stride);
1310
2.17M
}
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
568k
                                       const ptrdiff_t stride) {
1314
568k
  const __m256i res = _mm256_packus_epi16(data, data);
1315
568k
  store_u8_8x2_avx2(res, dst, stride);
1316
568k
}
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
568k
                                       const ptrdiff_t stride) {
1314
568k
  const __m256i res = _mm256_packus_epi16(data, data);
1315
568k
  store_u8_8x2_avx2(res, dst, stride);
1316
568k
}
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
436k
                                              const ptrdiff_t dst_stride) {
1321
436k
  __m256i reg[2];
1322
1323
436k
  reg[0] = round_sr_x_avx2(data[0]);
1324
436k
  reg[1] = round_sr_x_avx2(data[1]);
1325
436k
  pack_store_16x2_avx2(reg[0], reg[1], dst, dst_stride);
1326
436k
}
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
436k
                                              const ptrdiff_t dst_stride) {
1321
436k
  __m256i reg[2];
1322
1323
436k
  reg[0] = round_sr_x_avx2(data[0]);
1324
436k
  reg[1] = round_sr_x_avx2(data[1]);
1325
436k
  pack_store_16x2_avx2(reg[0], reg[1], dst, dst_stride);
1326
436k
}
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
155k
                                           __m256i *data) {
1331
155k
  const __m256i res0 = _mm256_loadu_si256((__m256i *)src);
1332
155k
  const __m256i res1 = _mm256_loadu_si256((__m256i *)(src + 1));
1333
155k
  const __m256i reg0 = _mm256_unpacklo_epi8(res0, res1);
1334
155k
  const __m256i reg1 = _mm256_unpackhi_epi8(res0, res1);
1335
1336
155k
  data[0] = convolve_x_2tap_avx2(&reg0, coeffs);
1337
155k
  data[1] = convolve_x_2tap_avx2(&reg1, coeffs);
1338
155k
}
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
155k
                                           __m256i *data) {
1331
155k
  const __m256i res0 = _mm256_loadu_si256((__m256i *)src);
1332
155k
  const __m256i res1 = _mm256_loadu_si256((__m256i *)(src + 1));
1333
155k
  const __m256i reg0 = _mm256_unpacklo_epi8(res0, res1);
1334
155k
  const __m256i reg1 = _mm256_unpackhi_epi8(res0, res1);
1335
1336
155k
  data[0] = convolve_x_2tap_avx2(&reg0, coeffs);
1337
155k
  data[1] = convolve_x_2tap_avx2(&reg1, coeffs);
1338
155k
}
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.28M
                                      uint8_t *const dst) {
1342
2.28M
  const __m256i reg = _mm256_packus_epi16(data0, data1);
1343
2.28M
  _mm256_storeu_si256((__m256i *)dst, reg);
1344
2.28M
}
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.28M
                                      uint8_t *const dst) {
1342
2.28M
  const __m256i reg = _mm256_packus_epi16(data0, data1);
1343
2.28M
  _mm256_storeu_si256((__m256i *)dst, reg);
1344
2.28M
}
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.89M
                                            uint8_t *const dst) {
1348
1.89M
  __m256i reg[2];
1349
1350
1.89M
  reg[0] = round_sr_x_avx2(data[0]);
1351
1.89M
  reg[1] = round_sr_x_avx2(data[1]);
1352
1.89M
  pack_store_32_avx2(reg[0], reg[1], dst);
1353
1.89M
}
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.89M
                                            uint8_t *const dst) {
1348
1.89M
  __m256i reg[2];
1349
1350
1.89M
  reg[0] = round_sr_x_avx2(data[0]);
1351
1.89M
  reg[1] = round_sr_x_avx2(data[1]);
1352
1.89M
  pack_store_32_avx2(reg[0], reg[1], dst);
1353
1.89M
}
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
155k
                                               uint8_t *const dst) {
1358
155k
  __m256i data[2];
1359
1360
155k
  convolve_x_2tap_32_avx2(src, coeffs, data);
1361
155k
  round_pack_store_32_avx2(data, dst);
1362
155k
}
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
155k
                                               uint8_t *const dst) {
1358
155k
  __m256i data[2];
1359
1360
155k
  convolve_x_2tap_32_avx2(src, coeffs, data);
1361
155k
  round_pack_store_32_avx2(data, dst);
1362
155k
}
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
163k
                                               uint8_t *const dst) {
1366
163k
  const __m256i res0 = _mm256_loadu_si256((__m256i *)src);
1367
163k
  const __m256i res1 = _mm256_loadu_si256((__m256i *)(src + 1));
1368
163k
  const __m256i data = _mm256_avg_epu8(res0, res1);
1369
163k
  _mm256_storeu_si256((__m256i *)dst, data);
1370
163k
}
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
163k
                                               uint8_t *const dst) {
1366
163k
  const __m256i res0 = _mm256_loadu_si256((__m256i *)src);
1367
163k
  const __m256i res1 = _mm256_loadu_si256((__m256i *)(src + 1));
1368
163k
  const __m256i data = _mm256_avg_epu8(res0, res1);
1369
163k
  _mm256_storeu_si256((__m256i *)dst, data);
1370
163k
}
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
50.0k
                                                  const __m256i *flt) {
1376
50.0k
  const __m256i res = loadu_x_8bit_16x2_avx2(src, stride);
1377
50.0k
  return convolve_lowbd_x(res, coeffs, flt);
1378
50.0k
}
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
50.0k
                                                  const __m256i *flt) {
1376
50.0k
  const __m256i res = loadu_x_8bit_16x2_avx2(src, stride);
1377
50.0k
  return convolve_lowbd_x(res, coeffs, flt);
1378
50.0k
}
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
25.0k
                                                __m256i *reg) {
1385
25.0k
  reg[0] = load_convolve_8tap_8x2_avx2(src + 0, src_stride, coeffs, flt);
1386
25.0k
  reg[1] = load_convolve_8tap_8x2_avx2(src + 8, src_stride, coeffs, flt);
1387
25.0k
}
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
25.0k
                                                __m256i *reg) {
1385
25.0k
  reg[0] = load_convolve_8tap_8x2_avx2(src + 0, src_stride, coeffs, flt);
1386
25.0k
  reg[1] = load_convolve_8tap_8x2_avx2(src + 8, src_stride, coeffs, flt);
1387
25.0k
}
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
204k
                                              __m256i *data) {
1393
204k
  const __m256i reg_0 = _mm256_loadu_si256((__m256i *)src);
1394
204k
  const __m256i reg_8 = _mm256_loadu_si256((__m256i *)(src + 8));
1395
1396
204k
  data[0] = convolve_lowbd_x(reg_0, coeffs, filt);
1397
204k
  data[1] = convolve_lowbd_x(reg_8, coeffs, filt);
1398
204k
}
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
204k
                                              __m256i *data) {
1393
204k
  const __m256i reg_0 = _mm256_loadu_si256((__m256i *)src);
1394
204k
  const __m256i reg_8 = _mm256_loadu_si256((__m256i *)(src + 8));
1395
1396
204k
  data[0] = convolve_lowbd_x(reg_0, coeffs, filt);
1397
204k
  data[1] = convolve_lowbd_x(reg_8, coeffs, filt);
1398
204k
}
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
204k
                                                    uint8_t *const dst) {
1404
204k
  __m256i data[2];
1405
1406
204k
  load_convolve_8tap_32_avx2(src, coeffs, filt, data);
1407
204k
  round_pack_store_32_avx2(data, dst);
1408
204k
}
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
204k
                                                    uint8_t *const dst) {
1404
204k
  __m256i data[2];
1405
1406
204k
  load_convolve_8tap_32_avx2(src, coeffs, filt, data);
1407
204k
  round_pack_store_32_avx2(data, dst);
1408
204k
}
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.53M
                                              __m256i *data) {
1414
1.53M
  const __m256i reg0 = _mm256_loadu_si256((__m256i *)src);
1415
1.53M
  const __m256i reg1 = _mm256_loadu_si256((__m256i *)(src + 8));
1416
1417
1.53M
  data[0] = convolve_lowbd_x_6tap(reg0, coeffs, filt);
1418
1.53M
  data[1] = convolve_lowbd_x_6tap(reg1, coeffs, filt);
1419
1.53M
}
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.53M
                                              __m256i *data) {
1414
1.53M
  const __m256i reg0 = _mm256_loadu_si256((__m256i *)src);
1415
1.53M
  const __m256i reg1 = _mm256_loadu_si256((__m256i *)(src + 8));
1416
1417
1.53M
  data[0] = convolve_lowbd_x_6tap(reg0, coeffs, filt);
1418
1.53M
  data[1] = convolve_lowbd_x_6tap(reg1, coeffs, filt);
1419
1.53M
}
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.53M
                                                  uint8_t *const dst) {
1425
1.53M
  __m256i data[2];
1426
1427
1.53M
  load_convolve_6tap_32_avx2(src, coeffs, filt, data);
1428
1.53M
  round_pack_store_32_avx2(data, dst);
1429
1.53M
}
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.53M
                                                  uint8_t *const dst) {
1425
1.53M
  __m256i data[2];
1426
1427
1.53M
  load_convolve_6tap_32_avx2(src, coeffs, filt, data);
1428
1.53M
  round_pack_store_32_avx2(data, dst);
1429
1.53M
}
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
795k
                                                  const __m256i *filt) {
1435
795k
  const __m256i data = loadu_x_8bit_16x2_avx2(src, stride);
1436
795k
  return convolve_lowbd_x_6tap(data, coeffs, filt);
1437
795k
}
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
795k
                                                  const __m256i *filt) {
1435
795k
  const __m256i data = loadu_x_8bit_16x2_avx2(src, stride);
1436
795k
  return convolve_lowbd_x_6tap(data, coeffs, filt);
1437
795k
}
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
397k
                                                __m256i *data) {
1444
397k
  data[0] = load_convolve_6tap_8x2_avx2(src + 0, src_stride, coeffs, filt);
1445
397k
  data[1] = load_convolve_6tap_8x2_avx2(src + 8, src_stride, coeffs, filt);
1446
397k
}
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
397k
                                                __m256i *data) {
1444
397k
  data[0] = load_convolve_6tap_8x2_avx2(src + 0, src_stride, coeffs, filt);
1445
397k
  data[1] = load_convolve_6tap_8x2_avx2(src + 8, src_stride, coeffs, filt);
1446
397k
}
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
597k
static inline __m128i round_sr_y_ssse3(const __m128i data) {
1449
597k
  const __m128i value = _mm_set1_epi16(32);
1450
597k
  const __m128i reg = _mm_add_epi16(data, value);
1451
597k
  return _mm_srai_epi16(reg, FILTER_BITS - 1);
1452
597k
}
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
597k
static inline __m128i round_sr_y_ssse3(const __m128i data) {
1449
597k
  const __m128i value = _mm_set1_epi16(32);
1450
597k
  const __m128i reg = _mm_add_epi16(data, value);
1451
597k
  return _mm_srai_epi16(reg, FILTER_BITS - 1);
1452
597k
}
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
4.84M
static inline __m256i round_sr_y_avx2(const __m256i data) {
1455
4.84M
  const __m256i value = _mm256_set1_epi16(32);
1456
4.84M
  const __m256i reg = _mm256_add_epi16(data, value);
1457
4.84M
  return _mm256_srai_epi16(reg, FILTER_BITS - 1);
1458
4.84M
}
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
4.84M
static inline __m256i round_sr_y_avx2(const __m256i data) {
1455
4.84M
  const __m256i value = _mm256_set1_epi16(32);
1456
4.84M
  const __m256i reg = _mm256_add_epi16(data, value);
1457
4.84M
  return _mm256_srai_epi16(reg, FILTER_BITS - 1);
1458
4.84M
}
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
568k
                                               const ptrdiff_t dst_stride) {
1463
568k
  __m256i r;
1464
1465
568k
  r = round_sr_y_avx2(res);
1466
568k
  pack_store_8x2_avx2(r, dst, dst_stride);
1467
568k
}
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
568k
                                               const ptrdiff_t dst_stride) {
1463
568k
  __m256i r;
1464
1465
568k
  r = round_sr_y_avx2(res);
1466
568k
  pack_store_8x2_avx2(r, dst, dst_stride);
1467
568k
}
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.74M
                                                const ptrdiff_t dst_stride) {
1472
1.74M
  __m256i r[2];
1473
1474
1.74M
  r[0] = round_sr_y_avx2(res[0]);
1475
1.74M
  r[1] = round_sr_y_avx2(res[1]);
1476
1.74M
  pack_store_16x2_avx2(r[0], r[1], dst, dst_stride);
1477
1.74M
}
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.74M
                                                const ptrdiff_t dst_stride) {
1472
1.74M
  __m256i r[2];
1473
1474
1.74M
  r[0] = round_sr_y_avx2(res[0]);
1475
1.74M
  r[1] = round_sr_y_avx2(res[1]);
1476
1.74M
  pack_store_16x2_avx2(r[0], r[1], dst, dst_stride);
1477
1.74M
}
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
395k
                                              uint8_t *const dst) {
1481
395k
  __m256i r[2];
1482
1483
395k
  r[0] = round_sr_y_avx2(res[0]);
1484
395k
  r[1] = round_sr_y_avx2(res[1]);
1485
395k
  pack_store_32_avx2(r[0], r[1], dst);
1486
395k
}
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
395k
                                              uint8_t *const dst) {
1481
395k
  __m256i r[2];
1482
1483
395k
  r[0] = round_sr_y_avx2(res[0]);
1484
395k
  r[1] = round_sr_y_avx2(res[1]);
1485
395k
  pack_store_32_avx2(r[0], r[1], dst);
1486
395k
}
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
197k
                                                const ptrdiff_t dst_stride) {
1491
197k
  round_pack_store_y_32_avx2(res, dst);
1492
197k
  round_pack_store_y_32_avx2(res + 2, dst + dst_stride);
1493
197k
}
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
197k
                                                const ptrdiff_t dst_stride) {
1491
197k
  round_pack_store_y_32_avx2(res, dst);
1492
197k
  round_pack_store_y_32_avx2(res + 2, dst + dst_stride);
1493
197k
}
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
4.18k
                                             __m128i d[2], __m128i *res) {
1499
4.18k
  d[1] = _mm_cvtsi32_si128(loadu_int16(data + 1 * stride));
1500
4.18k
  const __m128i src_01a = _mm_unpacklo_epi16(d[0], d[1]);
1501
4.18k
  d[0] = _mm_cvtsi32_si128(loadu_int16(data + 2 * stride));
1502
4.18k
  const __m128i src_12a = _mm_unpacklo_epi16(d[1], d[0]);
1503
1504
4.18k
  const __m128i s = _mm_unpacklo_epi8(src_01a, src_12a);
1505
1506
4.18k
  *res = _mm_maddubs_epi16(s, coeffs[0]);
1507
4.18k
}
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
4.18k
                                             __m128i d[2], __m128i *res) {
1499
4.18k
  d[1] = _mm_cvtsi32_si128(loadu_int16(data + 1 * stride));
1500
4.18k
  const __m128i src_01a = _mm_unpacklo_epi16(d[0], d[1]);
1501
4.18k
  d[0] = _mm_cvtsi32_si128(loadu_int16(data + 2 * stride));
1502
4.18k
  const __m128i src_12a = _mm_unpacklo_epi16(d[1], d[0]);
1503
1504
4.18k
  const __m128i s = _mm_unpacklo_epi8(src_01a, src_12a);
1505
1506
4.18k
  *res = _mm_maddubs_epi16(s, coeffs[0]);
1507
4.18k
}
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
34.4k
                                             __m128i *res) {
1514
34.4k
  d[3] = _mm_cvtsi32_si128(loadu_int16(data + 3 * stride));
1515
34.4k
  const __m128i src_23a = _mm_unpacklo_epi16(d[2], d[3]);
1516
34.4k
  d[2] = _mm_cvtsi32_si128(loadu_int16(data + 4 * stride));
1517
34.4k
  const __m128i src_34a = _mm_unpacklo_epi16(d[3], d[2]);
1518
1519
34.4k
  s[1] = _mm_unpacklo_epi8(src_23a, src_34a);
1520
1521
34.4k
  *res = convolve_lowbd_4tap_ssse3(s, coeffs);
1522
34.4k
}
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
34.4k
                                             __m128i *res) {
1514
34.4k
  d[3] = _mm_cvtsi32_si128(loadu_int16(data + 3 * stride));
1515
34.4k
  const __m128i src_23a = _mm_unpacklo_epi16(d[2], d[3]);
1516
34.4k
  d[2] = _mm_cvtsi32_si128(loadu_int16(data + 4 * stride));
1517
34.4k
  const __m128i src_34a = _mm_unpacklo_epi16(d[3], d[2]);
1518
1519
34.4k
  s[1] = _mm_unpacklo_epi8(src_23a, src_34a);
1520
1521
34.4k
  *res = convolve_lowbd_4tap_ssse3(s, coeffs);
1522
34.4k
}
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.4k
                                             __m128i *res) {
1529
54.4k
  d[5] = _mm_cvtsi32_si128(loadu_int16(data + 5 * stride));
1530
54.4k
  const __m128i src_45a = _mm_unpacklo_epi16(d[4], d[5]);
1531
54.4k
  d[4] = _mm_cvtsi32_si128(loadu_int16(data + 6 * stride));
1532
54.4k
  const __m128i src_56a = _mm_unpacklo_epi16(d[5], d[4]);
1533
1534
54.4k
  s[2] = _mm_unpacklo_epi8(src_45a, src_56a);
1535
1536
54.4k
  *res = convolve_lowbd_6tap_ssse3(s, coeffs);
1537
54.4k
}
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.4k
                                             __m128i *res) {
1529
54.4k
  d[5] = _mm_cvtsi32_si128(loadu_int16(data + 5 * stride));
1530
54.4k
  const __m128i src_45a = _mm_unpacklo_epi16(d[4], d[5]);
1531
54.4k
  d[4] = _mm_cvtsi32_si128(loadu_int16(data + 6 * stride));
1532
54.4k
  const __m128i src_56a = _mm_unpacklo_epi16(d[5], d[4]);
1533
1534
54.4k
  s[2] = _mm_unpacklo_epi8(src_45a, src_56a);
1535
1536
54.4k
  *res = convolve_lowbd_6tap_ssse3(s, coeffs);
1537
54.4k
}
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.70k
                                             __m128i *res) {
1544
5.70k
  d[7] = _mm_cvtsi32_si128(loadu_int16(data + 7 * stride));
1545
5.70k
  const __m128i src_67a = _mm_unpacklo_epi16(d[6], d[7]);
1546
5.70k
  d[6] = _mm_cvtsi32_si128(loadu_int16(data + 8 * stride));
1547
5.70k
  const __m128i src_78a = _mm_unpacklo_epi16(d[7], d[6]);
1548
1549
5.70k
  s[3] = _mm_unpacklo_epi8(src_67a, src_78a);
1550
1551
5.70k
  *res = convolve_lowbd_ssse3(s, coeffs);
1552
5.70k
}
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.70k
                                             __m128i *res) {
1544
5.70k
  d[7] = _mm_cvtsi32_si128(loadu_int16(data + 7 * stride));
1545
5.70k
  const __m128i src_67a = _mm_unpacklo_epi16(d[6], d[7]);
1546
5.70k
  d[6] = _mm_cvtsi32_si128(loadu_int16(data + 8 * stride));
1547
5.70k
  const __m128i src_78a = _mm_unpacklo_epi16(d[7], d[6]);
1548
1549
5.70k
  s[3] = _mm_unpacklo_epi8(src_67a, src_78a);
1550
1551
5.70k
  *res = convolve_lowbd_ssse3(s, coeffs);
1552
5.70k
}
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
15.5k
                                             __m128i d[2], __m128i *res) {
1558
15.5k
  d[1] = _mm_cvtsi32_si128(loadu_int32(data + 1 * stride));
1559
15.5k
  const __m128i src_01a = _mm_unpacklo_epi32(d[0], d[1]);
1560
15.5k
  d[0] = _mm_cvtsi32_si128(loadu_int32(data + 2 * stride));
1561
15.5k
  const __m128i src_12a = _mm_unpacklo_epi32(d[1], d[0]);
1562
1563
15.5k
  const __m128i s = _mm_unpacklo_epi8(src_01a, src_12a);
1564
1565
15.5k
  *res = _mm_maddubs_epi16(s, coeffs[0]);
1566
15.5k
}
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
15.5k
                                             __m128i d[2], __m128i *res) {
1558
15.5k
  d[1] = _mm_cvtsi32_si128(loadu_int32(data + 1 * stride));
1559
15.5k
  const __m128i src_01a = _mm_unpacklo_epi32(d[0], d[1]);
1560
15.5k
  d[0] = _mm_cvtsi32_si128(loadu_int32(data + 2 * stride));
1561
15.5k
  const __m128i src_12a = _mm_unpacklo_epi32(d[1], d[0]);
1562
1563
15.5k
  const __m128i s = _mm_unpacklo_epi8(src_01a, src_12a);
1564
1565
15.5k
  *res = _mm_maddubs_epi16(s, coeffs[0]);
1566
15.5k
}
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
178k
                                             __m128i *res) {
1573
178k
  d[3] = _mm_cvtsi32_si128(loadu_int32(data + 3 * stride));
1574
178k
  const __m128i src_23a = _mm_unpacklo_epi32(d[2], d[3]);
1575
178k
  d[2] = _mm_cvtsi32_si128(loadu_int32(data + 4 * stride));
1576
178k
  const __m128i src_34a = _mm_unpacklo_epi32(d[3], d[2]);
1577
1578
178k
  s[1] = _mm_unpacklo_epi8(src_23a, src_34a);
1579
1580
178k
  *res = convolve_lowbd_4tap_ssse3(s, coeffs);
1581
178k
}
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
178k
                                             __m128i *res) {
1573
178k
  d[3] = _mm_cvtsi32_si128(loadu_int32(data + 3 * stride));
1574
178k
  const __m128i src_23a = _mm_unpacklo_epi32(d[2], d[3]);
1575
178k
  d[2] = _mm_cvtsi32_si128(loadu_int32(data + 4 * stride));
1576
178k
  const __m128i src_34a = _mm_unpacklo_epi32(d[3], d[2]);
1577
1578
178k
  s[1] = _mm_unpacklo_epi8(src_23a, src_34a);
1579
1580
178k
  *res = convolve_lowbd_4tap_ssse3(s, coeffs);
1581
178k
}
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
276k
                                             __m128i *res) {
1588
276k
  d[5] = _mm_cvtsi32_si128(loadu_int32(data + 5 * stride));
1589
276k
  const __m128i src_45a = _mm_unpacklo_epi32(d[4], d[5]);
1590
276k
  d[4] = _mm_cvtsi32_si128(loadu_int32(data + 6 * stride));
1591
276k
  const __m128i src_56a = _mm_unpacklo_epi32(d[5], d[4]);
1592
1593
276k
  s[2] = _mm_unpacklo_epi8(src_45a, src_56a);
1594
1595
276k
  *res = convolve_lowbd_6tap_ssse3(s, coeffs);
1596
276k
}
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
276k
                                             __m128i *res) {
1588
276k
  d[5] = _mm_cvtsi32_si128(loadu_int32(data + 5 * stride));
1589
276k
  const __m128i src_45a = _mm_unpacklo_epi32(d[4], d[5]);
1590
276k
  d[4] = _mm_cvtsi32_si128(loadu_int32(data + 6 * stride));
1591
276k
  const __m128i src_56a = _mm_unpacklo_epi32(d[5], d[4]);
1592
1593
276k
  s[2] = _mm_unpacklo_epi8(src_45a, src_56a);
1594
1595
276k
  *res = convolve_lowbd_6tap_ssse3(s, coeffs);
1596
276k
}
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
28.4k
                                             __m128i *res) {
1603
28.4k
  d[7] = _mm_cvtsi32_si128(loadu_int32(data + 7 * stride));
1604
28.4k
  const __m128i src_67a = _mm_unpacklo_epi32(d[6], d[7]);
1605
28.4k
  d[6] = _mm_cvtsi32_si128(loadu_int32(data + 8 * stride));
1606
28.4k
  const __m128i src_78a = _mm_unpacklo_epi32(d[7], d[6]);
1607
1608
28.4k
  s[3] = _mm_unpacklo_epi8(src_67a, src_78a);
1609
1610
28.4k
  res[0] = convolve_lowbd_ssse3(s, coeffs);
1611
28.4k
}
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
28.4k
                                             __m128i *res) {
1603
28.4k
  d[7] = _mm_cvtsi32_si128(loadu_int32(data + 7 * stride));
1604
28.4k
  const __m128i src_67a = _mm_unpacklo_epi32(d[6], d[7]);
1605
28.4k
  d[6] = _mm_cvtsi32_si128(loadu_int32(data + 8 * stride));
1606
28.4k
  const __m128i src_78a = _mm_unpacklo_epi32(d[7], d[6]);
1607
1608
28.4k
  s[3] = _mm_unpacklo_epi8(src_67a, src_78a);
1609
1610
28.4k
  res[0] = convolve_lowbd_ssse3(s, coeffs);
1611
28.4k
}
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.6k
                                            __m256i *res) {
1617
13.6k
  d[1] = _mm_loadu_si128((__m128i *)(data + 1 * stride));
1618
13.6k
  const __m256i src_01a = _mm256_setr_m128i(d[0], d[1]);
1619
13.6k
  d[0] = _mm_loadu_si128((__m128i *)(data + 2 * stride));
1620
13.6k
  const __m256i src_12a = _mm256_setr_m128i(d[1], d[0]);
1621
1622
13.6k
  const __m256i s = _mm256_unpacklo_epi8(src_01a, src_12a);
1623
1624
13.6k
  *res = _mm256_maddubs_epi16(s, coeffs[0]);
1625
13.6k
}
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.6k
                                            __m256i *res) {
1617
13.6k
  d[1] = _mm_loadu_si128((__m128i *)(data + 1 * stride));
1618
13.6k
  const __m256i src_01a = _mm256_setr_m128i(d[0], d[1]);
1619
13.6k
  d[0] = _mm_loadu_si128((__m128i *)(data + 2 * stride));
1620
13.6k
  const __m256i src_12a = _mm256_setr_m128i(d[1], d[0]);
1621
1622
13.6k
  const __m256i s = _mm256_unpacklo_epi8(src_01a, src_12a);
1623
1624
13.6k
  *res = _mm256_maddubs_epi16(s, coeffs[0]);
1625
13.6k
}
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
162k
                                            __m256i *res) {
1632
162k
  d[3] = _mm_loadu_si128((__m128i *)(data + 3 * stride));
1633
162k
  const __m256i src_23a = _mm256_setr_m128i(d[2], d[3]);
1634
162k
  d[2] = _mm_loadu_si128((__m128i *)(data + 4 * stride));
1635
162k
  const __m256i src_34a = _mm256_setr_m128i(d[3], d[2]);
1636
1637
162k
  s[1] = _mm256_unpacklo_epi8(src_23a, src_34a);
1638
1639
162k
  *res = convolve_lowbd_4tap(s, coeffs);
1640
162k
}
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
162k
                                            __m256i *res) {
1632
162k
  d[3] = _mm_loadu_si128((__m128i *)(data + 3 * stride));
1633
162k
  const __m256i src_23a = _mm256_setr_m128i(d[2], d[3]);
1634
162k
  d[2] = _mm_loadu_si128((__m128i *)(data + 4 * stride));
1635
162k
  const __m256i src_34a = _mm256_setr_m128i(d[3], d[2]);
1636
1637
162k
  s[1] = _mm256_unpacklo_epi8(src_23a, src_34a);
1638
1639
162k
  *res = convolve_lowbd_4tap(s, coeffs);
1640
162k
}
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
362k
                                            __m256i *res) {
1647
362k
  d[5] = _mm_loadu_si128((__m128i *)(data + 5 * stride));
1648
362k
  const __m256i src_45a = _mm256_setr_m128i(d[4], d[5]);
1649
362k
  d[4] = _mm_loadu_si128((__m128i *)(data + 6 * stride));
1650
362k
  const __m256i src_56a = _mm256_setr_m128i(d[5], d[4]);
1651
1652
362k
  s[2] = _mm256_unpacklo_epi8(src_45a, src_56a);
1653
1654
362k
  *res = convolve_lowbd_6tap(s, coeffs);
1655
362k
}
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
362k
                                            __m256i *res) {
1647
362k
  d[5] = _mm_loadu_si128((__m128i *)(data + 5 * stride));
1648
362k
  const __m256i src_45a = _mm256_setr_m128i(d[4], d[5]);
1649
362k
  d[4] = _mm_loadu_si128((__m128i *)(data + 6 * stride));
1650
362k
  const __m256i src_56a = _mm256_setr_m128i(d[5], d[4]);
1651
1652
362k
  s[2] = _mm256_unpacklo_epi8(src_45a, src_56a);
1653
1654
362k
  *res = convolve_lowbd_6tap(s, coeffs);
1655
362k
}
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
30.1k
                                            __m256i *res) {
1662
30.1k
  d[7] = _mm_loadu_si128((__m128i *)(data + 7 * stride));
1663
30.1k
  const __m256i src_67a = _mm256_setr_m128i(d[6], d[7]);
1664
30.1k
  d[6] = _mm_loadu_si128((__m128i *)(data + 8 * stride));
1665
30.1k
  const __m256i src_78a = _mm256_setr_m128i(d[7], d[6]);
1666
1667
30.1k
  s[3] = _mm256_unpacklo_epi8(src_67a, src_78a);
1668
1669
30.1k
  *res = convolve_lowbd(s, coeffs);
1670
30.1k
}
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
30.1k
                                            __m256i *res) {
1662
30.1k
  d[7] = _mm_loadu_si128((__m128i *)(data + 7 * stride));
1663
30.1k
  const __m256i src_67a = _mm256_setr_m128i(d[6], d[7]);
1664
30.1k
  d[6] = _mm_loadu_si128((__m128i *)(data + 8 * stride));
1665
30.1k
  const __m256i src_78a = _mm256_setr_m128i(d[7], d[6]);
1666
1667
30.1k
  s[3] = _mm256_unpacklo_epi8(src_67a, src_78a);
1668
1669
30.1k
  *res = convolve_lowbd(s, coeffs);
1670
30.1k
}
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.8k
                                             __m128i d[2], __m256i res[2]) {
1676
13.8k
  d[1] = _mm_loadu_si128((__m128i *)(data + 1 * stride));
1677
13.8k
  const __m256i src_01a = _mm256_setr_m128i(d[0], d[1]);
1678
13.8k
  d[0] = _mm_loadu_si128((__m128i *)(data + 2 * stride));
1679
13.8k
  const __m256i src_12a = _mm256_setr_m128i(d[1], d[0]);
1680
1681
13.8k
  const __m256i s0 = _mm256_unpacklo_epi8(src_01a, src_12a);
1682
13.8k
  const __m256i s1 = _mm256_unpackhi_epi8(src_01a, src_12a);
1683
1684
13.8k
  res[0] = _mm256_maddubs_epi16(s0, coeffs[0]);
1685
13.8k
  res[1] = _mm256_maddubs_epi16(s1, coeffs[0]);
1686
13.8k
}
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.8k
                                             __m128i d[2], __m256i res[2]) {
1676
13.8k
  d[1] = _mm_loadu_si128((__m128i *)(data + 1 * stride));
1677
13.8k
  const __m256i src_01a = _mm256_setr_m128i(d[0], d[1]);
1678
13.8k
  d[0] = _mm_loadu_si128((__m128i *)(data + 2 * stride));
1679
13.8k
  const __m256i src_12a = _mm256_setr_m128i(d[1], d[0]);
1680
1681
13.8k
  const __m256i s0 = _mm256_unpacklo_epi8(src_01a, src_12a);
1682
13.8k
  const __m256i s1 = _mm256_unpackhi_epi8(src_01a, src_12a);
1683
1684
13.8k
  res[0] = _mm256_maddubs_epi16(s0, coeffs[0]);
1685
13.8k
  res[1] = _mm256_maddubs_epi16(s1, coeffs[0]);
1686
13.8k
}
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
99.4k
                                             __m256i res[2]) {
1693
99.4k
  d[3] = _mm_loadu_si128((__m128i *)(data + 3 * stride));
1694
99.4k
  const __m256i src_23a = _mm256_setr_m128i(d[2], d[3]);
1695
99.4k
  d[2] = _mm_loadu_si128((__m128i *)(data + 4 * stride));
1696
99.4k
  const __m256i src_34a = _mm256_setr_m128i(d[3], d[2]);
1697
1698
99.4k
  s[1] = _mm256_unpacklo_epi8(src_23a, src_34a);
1699
99.4k
  s[3] = _mm256_unpackhi_epi8(src_23a, src_34a);
1700
1701
99.4k
  res[0] = convolve_lowbd_4tap(s, coeffs);
1702
99.4k
  res[1] = convolve_lowbd_4tap(s + 2, coeffs);
1703
99.4k
}
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
99.4k
                                             __m256i res[2]) {
1693
99.4k
  d[3] = _mm_loadu_si128((__m128i *)(data + 3 * stride));
1694
99.4k
  const __m256i src_23a = _mm256_setr_m128i(d[2], d[3]);
1695
99.4k
  d[2] = _mm_loadu_si128((__m128i *)(data + 4 * stride));
1696
99.4k
  const __m256i src_34a = _mm256_setr_m128i(d[3], d[2]);
1697
1698
99.4k
  s[1] = _mm256_unpacklo_epi8(src_23a, src_34a);
1699
99.4k
  s[3] = _mm256_unpackhi_epi8(src_23a, src_34a);
1700
1701
99.4k
  res[0] = convolve_lowbd_4tap(s, coeffs);
1702
99.4k
  res[1] = convolve_lowbd_4tap(s + 2, coeffs);
1703
99.4k
}
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.53M
                                             __m256i res[2]) {
1710
1.53M
  d[5] = _mm_loadu_si128((__m128i *)(data + 5 * stride));
1711
1.53M
  const __m256i src_45a = _mm256_setr_m128i(d[4], d[5]);
1712
1.53M
  d[4] = _mm_loadu_si128((__m128i *)(data + 6 * stride));
1713
1.53M
  const __m256i src_56a = _mm256_setr_m128i(d[5], d[4]);
1714
1715
1.53M
  s[2] = _mm256_unpacklo_epi8(src_45a, src_56a);
1716
1.53M
  s[5] = _mm256_unpackhi_epi8(src_45a, src_56a);
1717
1718
1.53M
  res[0] = convolve_lowbd_6tap(s, coeffs);
1719
1.53M
  res[1] = convolve_lowbd_6tap(s + 3, coeffs);
1720
1.53M
}
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.53M
                                             __m256i res[2]) {
1710
1.53M
  d[5] = _mm_loadu_si128((__m128i *)(data + 5 * stride));
1711
1.53M
  const __m256i src_45a = _mm256_setr_m128i(d[4], d[5]);
1712
1.53M
  d[4] = _mm_loadu_si128((__m128i *)(data + 6 * stride));
1713
1.53M
  const __m256i src_56a = _mm256_setr_m128i(d[5], d[4]);
1714
1715
1.53M
  s[2] = _mm256_unpacklo_epi8(src_45a, src_56a);
1716
1.53M
  s[5] = _mm256_unpackhi_epi8(src_45a, src_56a);
1717
1718
1.53M
  res[0] = convolve_lowbd_6tap(s, coeffs);
1719
1.53M
  res[1] = convolve_lowbd_6tap(s + 3, coeffs);
1720
1.53M
}
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
90.8k
                                             __m256i res[2]) {
1727
90.8k
  d[7] = _mm_loadu_si128((__m128i *)(data + 7 * stride));
1728
90.8k
  const __m256i src_67a = _mm256_setr_m128i(d[6], d[7]);
1729
90.8k
  d[6] = _mm_loadu_si128((__m128i *)(data + 8 * stride));
1730
90.8k
  const __m256i src_78a = _mm256_setr_m128i(d[7], d[6]);
1731
1732
90.8k
  s[3] = _mm256_unpacklo_epi8(src_67a, src_78a);
1733
90.8k
  s[7] = _mm256_unpackhi_epi8(src_67a, src_78a);
1734
1735
90.8k
  res[0] = convolve_lowbd(s, coeffs);
1736
90.8k
  res[1] = convolve_lowbd(s + 4, coeffs);
1737
90.8k
}
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
90.8k
                                             __m256i res[2]) {
1727
90.8k
  d[7] = _mm_loadu_si128((__m128i *)(data + 7 * stride));
1728
90.8k
  const __m256i src_67a = _mm256_setr_m128i(d[6], d[7]);
1729
90.8k
  d[6] = _mm_loadu_si128((__m128i *)(data + 8 * stride));
1730
90.8k
  const __m256i src_78a = _mm256_setr_m128i(d[7], d[6]);
1731
1732
90.8k
  s[3] = _mm256_unpacklo_epi8(src_67a, src_78a);
1733
90.8k
  s[7] = _mm256_unpackhi_epi8(src_67a, src_78a);
1734
1735
90.8k
  res[0] = convolve_lowbd(s, coeffs);
1736
90.8k
  res[1] = convolve_lowbd(s + 4, coeffs);
1737
90.8k
}
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
36.9k
                                             __m256i d[2], __m256i res[4]) {
1743
36.9k
  d[1] = _mm256_loadu_si256((__m256i *)(data + 1 * stride));
1744
36.9k
  const __m256i s00 = _mm256_unpacklo_epi8(d[0], d[1]);
1745
36.9k
  const __m256i s01 = _mm256_unpackhi_epi8(d[0], d[1]);
1746
36.9k
  d[0] = _mm256_loadu_si256((__m256i *)(data + 2 * stride));
1747
36.9k
  const __m256i s10 = _mm256_unpacklo_epi8(d[1], d[0]);
1748
36.9k
  const __m256i s11 = _mm256_unpackhi_epi8(d[1], d[0]);
1749
1750
36.9k
  res[0] = _mm256_maddubs_epi16(s00, coeffs[0]);
1751
36.9k
  res[1] = _mm256_maddubs_epi16(s01, coeffs[0]);
1752
36.9k
  res[2] = _mm256_maddubs_epi16(s10, coeffs[0]);
1753
36.9k
  res[3] = _mm256_maddubs_epi16(s11, coeffs[0]);
1754
36.9k
}
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
36.9k
                                             __m256i d[2], __m256i res[4]) {
1743
36.9k
  d[1] = _mm256_loadu_si256((__m256i *)(data + 1 * stride));
1744
36.9k
  const __m256i s00 = _mm256_unpacklo_epi8(d[0], d[1]);
1745
36.9k
  const __m256i s01 = _mm256_unpackhi_epi8(d[0], d[1]);
1746
36.9k
  d[0] = _mm256_loadu_si256((__m256i *)(data + 2 * stride));
1747
36.9k
  const __m256i s10 = _mm256_unpacklo_epi8(d[1], d[0]);
1748
36.9k
  const __m256i s11 = _mm256_unpackhi_epi8(d[1], d[0]);
1749
1750
36.9k
  res[0] = _mm256_maddubs_epi16(s00, coeffs[0]);
1751
36.9k
  res[1] = _mm256_maddubs_epi16(s01, coeffs[0]);
1752
36.9k
  res[2] = _mm256_maddubs_epi16(s10, coeffs[0]);
1753
36.9k
  res[3] = _mm256_maddubs_epi16(s11, coeffs[0]);
1754
36.9k
}
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
160k
                                             __m256i s2[4], __m256i res[4]) {
1761
160k
  d[3] = _mm256_loadu_si256((__m256i *)(data + 3 * stride));
1762
160k
  s1[1] = _mm256_unpacklo_epi8(d[2], d[3]);
1763
160k
  s1[3] = _mm256_unpackhi_epi8(d[2], d[3]);
1764
160k
  d[2] = _mm256_loadu_si256((__m256i *)(data + 4 * stride));
1765
160k
  s2[1] = _mm256_unpacklo_epi8(d[3], d[2]);
1766
160k
  s2[3] = _mm256_unpackhi_epi8(d[3], d[2]);
1767
1768
160k
  res[0] = convolve_lowbd_4tap(s1, coeffs);
1769
160k
  res[1] = convolve_lowbd_4tap(s1 + 2, coeffs);
1770
160k
  res[2] = convolve_lowbd_4tap(s2, coeffs);
1771
160k
  res[3] = convolve_lowbd_4tap(s2 + 2, coeffs);
1772
160k
}
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
160k
                                             __m256i s2[4], __m256i res[4]) {
1761
160k
  d[3] = _mm256_loadu_si256((__m256i *)(data + 3 * stride));
1762
160k
  s1[1] = _mm256_unpacklo_epi8(d[2], d[3]);
1763
160k
  s1[3] = _mm256_unpackhi_epi8(d[2], d[3]);
1764
160k
  d[2] = _mm256_loadu_si256((__m256i *)(data + 4 * stride));
1765
160k
  s2[1] = _mm256_unpacklo_epi8(d[3], d[2]);
1766
160k
  s2[3] = _mm256_unpackhi_epi8(d[3], d[2]);
1767
1768
160k
  res[0] = convolve_lowbd_4tap(s1, coeffs);
1769
160k
  res[1] = convolve_lowbd_4tap(s1 + 2, coeffs);
1770
160k
  res[2] = convolve_lowbd_4tap(s2, coeffs);
1771
160k
  res[3] = convolve_lowbd_4tap(s2 + 2, coeffs);
1772
160k
}
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_