Coverage Report

Created: 2026-11-12 08:20

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/aom/aom_dsp/x86/convolve_avx2.h
Line
Count
Source
1
/*
2
 * Copyright (c) 2018, Alliance for Open Media. All rights reserved.
3
 *
4
 * This source code is subject to the terms of the BSD 2 Clause License and
5
 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6
 * was not distributed with this source code in the LICENSE file, you can
7
 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8
 * Media Patent License 1.0 was not distributed with this source code in the
9
 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
10
 */
11
12
#ifndef AOM_AOM_DSP_X86_CONVOLVE_AVX2_H_
13
#define AOM_AOM_DSP_X86_CONVOLVE_AVX2_H_
14
15
#include <immintrin.h>
16
17
#include "aom_ports/mem.h"
18
19
#include "aom_dsp/x86/mem_sse2.h"
20
#include "aom_dsp/x86/synonyms.h"
21
22
#include "av1/common/convolve.h"
23
#include "av1/common/filter.h"
24
25
871k
#define SECOND_32_BLK (32)
26
794k
#define THIRD_32_BLK (32 << 1)
27
397k
#define FOURTH_32_BLK (SECOND_32_BLK + THIRD_32_BLK)
28
29
// filters for 16
30
DECLARE_ALIGNED(32, static const uint8_t, filt_global_avx2[]) = {
31
  0,  1,  1,  2,  2, 3,  3,  4,  4,  5,  5,  6,  6,  7,  7,  8,  0,  1,  1,
32
  2,  2,  3,  3,  4, 4,  5,  5,  6,  6,  7,  7,  8,  2,  3,  3,  4,  4,  5,
33
  5,  6,  6,  7,  7, 8,  8,  9,  9,  10, 2,  3,  3,  4,  4,  5,  5,  6,  6,
34
  7,  7,  8,  8,  9, 9,  10, 4,  5,  5,  6,  6,  7,  7,  8,  8,  9,  9,  10,
35
  10, 11, 11, 12, 4, 5,  5,  6,  6,  7,  7,  8,  8,  9,  9,  10, 10, 11, 11,
36
  12, 6,  7,  7,  8, 8,  9,  9,  10, 10, 11, 11, 12, 12, 13, 13, 14, 6,  7,
37
  7,  8,  8,  9,  9, 10, 10, 11, 11, 12, 12, 13, 13, 14
38
};
39
40
DECLARE_ALIGNED(32, static const uint8_t, filt_d4_global_avx2[]) = {
41
  0, 1, 2, 3,  1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5, 6, 0, 1, 2, 3,  1, 2,
42
  3, 4, 2, 3,  4, 5, 3, 4, 5, 6, 4, 5, 6, 7, 5, 6, 7, 8, 6, 7,  8, 9,
43
  7, 8, 9, 10, 4, 5, 6, 7, 5, 6, 7, 8, 6, 7, 8, 9, 7, 8, 9, 10,
44
};
45
46
DECLARE_ALIGNED(32, static const uint8_t, filt4_d4_global_avx2[]) = {
47
  2, 3, 4, 5, 3, 4, 5, 6, 4, 5, 6, 7, 5, 6, 7, 8,
48
  2, 3, 4, 5, 3, 4, 5, 6, 4, 5, 6, 7, 5, 6, 7, 8,
49
};
50
51
DECLARE_ALIGNED(32, static const uint8_t, filt_center_global_avx2[32]) = {
52
  3, 255, 4, 255, 5, 255, 6, 255, 7, 255, 8, 255, 9, 255, 10, 255,
53
  3, 255, 4, 255, 5, 255, 6, 255, 7, 255, 8, 255, 9, 255, 10, 255
54
};
55
56
DECLARE_ALIGNED(32, static const uint8_t,
57
                filt1_global_sse2[16]) = { 0, 1, 1, 2,  2,  3,  3,  4,
58
                                           8, 9, 9, 10, 10, 11, 11, 12 };
59
60
DECLARE_ALIGNED(32, static const uint8_t,
61
                filt2_global_sse2[16]) = { 2,  3,  3,  4,  4,  5,  5,  6,
62
                                           10, 11, 11, 12, 12, 13, 13, 14 };
63
64
DECLARE_ALIGNED(32, static const uint8_t,
65
                filt3_global_sse2[16]) = { 0, 1, 1, 2, 8, 9, 9, 10,
66
                                           0, 0, 0, 0, 0, 0, 0, 0 };
67
68
DECLARE_ALIGNED(32, static const uint8_t,
69
                filt4_global_sse2[16]) = { 2, 3, 3, 4, 10, 11, 11, 12,
70
                                           0, 0, 0, 0, 0,  0,  0,  0 };
71
72
DECLARE_ALIGNED(32, static const uint8_t,
73
                filt5_global_sse2[16]) = { 0, 1, 1, 2, 4, 5, 5, 6,
74
                                           0, 0, 0, 0, 0, 0, 0, 0 };
75
76
DECLARE_ALIGNED(32, static const uint8_t,
77
                filt1_global_avx2[32]) = { 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5,
78
                                           6, 6, 7, 7, 8, 0, 1, 1, 2, 2, 3,
79
                                           3, 4, 4, 5, 5, 6, 6, 7, 7, 8 };
80
81
DECLARE_ALIGNED(32, static const uint8_t,
82
                filt2_global_avx2[32]) = { 2, 3, 3, 4, 4,  5, 5, 6, 6, 7, 7,
83
                                           8, 8, 9, 9, 10, 2, 3, 3, 4, 4, 5,
84
                                           5, 6, 6, 7, 7,  8, 8, 9, 9, 10 };
85
86
DECLARE_ALIGNED(32, static const uint8_t, filt3_global_avx2[32]) = {
87
  4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12,
88
  4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12
89
};
90
91
DECLARE_ALIGNED(32, static const uint8_t, filt4_global_avx2[32]) = {
92
  6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14,
93
  6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14
94
};
95
96
#define CONVOLVE_SR_HOR_FILTER_W4(CONVOLVE_LOWBD)                            \
97
3.63M
  for (i = 0; i < (im_h - 2); i += 2) {                                      \
98
2.92M
    __m128i data =                                                           \
99
2.92M
        load_8bit_8x2_to_1_reg_sse2(&src_ptr[(i * src_stride)], src_stride); \
100
2.92M
    __m128i res = CONVOLVE_LOWBD(data, coeffs_h, filt);                      \
101
2.92M
    res = _mm_srai_epi16(_mm_add_epi16(res, round_const_h), 2);              \
102
2.92M
    _mm_store_si128((__m128i *)&im_block[i * 4], res);                       \
103
2.92M
  }                                                                          \
104
710k
  __m128i data_1 = _mm_loadl_epi64((__m128i *)&src_ptr[(i * src_stride)]);   \
105
710k
  __m128i res = CONVOLVE_LOWBD(data_1, coeffs_h, filt);                      \
106
710k
  res = _mm_srai_epi16(_mm_add_epi16(res, round_const_h), 2);                \
107
710k
  _mm_storel_epi64((__m128i *)&im_block[i * 4], res);
108
109
#define CONVOLVE_SR_HOR_FILTER_2TAP_W4 \
110
27.0k
  CONVOLVE_SR_HOR_FILTER_W4(convolve_lowbd_x_2tap_ssse3)
111
112
#define CONVOLVE_SR_HOR_FILTER_4TAP_W4 \
113
683k
  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
2.01M
                                                __m256i round_const_v) {
118
2.01M
  const __m256i res_round =
119
2.01M
      _mm256_srai_epi32(_mm256_add_epi32(res, round_const_v), 11);
120
121
2.01M
  const __m256i res_16bit = _mm256_packs_epi32(res_round, res_round);
122
2.01M
  const __m256i res_8b = _mm256_packus_epi16(res_16bit, res_16bit);
123
124
2.01M
  const __m128i r0 = _mm256_castsi256_si128(res_8b);
125
2.01M
  const __m128i r1 = _mm256_extracti128_si256(res_8b, 1);
126
127
2.01M
  __m128i *const p0 = (__m128i *)dst;
128
2.01M
  __m128i *const p1 = (__m128i *)(dst + dst_stride);
129
130
2.01M
  if (w == 4) {
131
1.66M
    xx_storel_32(p0, r0);
132
1.66M
    xx_storel_32(p1, r1);
133
1.66M
  } else {
134
352k
    assert(w == 2);
135
352k
    *(uint16_t *)p0 = (uint16_t)_mm_cvtsi128_si32(r0);
136
352k
    *(uint16_t *)p1 = (uint16_t)_mm_cvtsi128_si32(r1);
137
352k
  }
138
2.01M
}
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
2.01M
                                                __m256i round_const_v) {
118
2.01M
  const __m256i res_round =
119
2.01M
      _mm256_srai_epi32(_mm256_add_epi32(res, round_const_v), 11);
120
121
2.01M
  const __m256i res_16bit = _mm256_packs_epi32(res_round, res_round);
122
2.01M
  const __m256i res_8b = _mm256_packus_epi16(res_16bit, res_16bit);
123
124
2.01M
  const __m128i r0 = _mm256_castsi256_si128(res_8b);
125
2.01M
  const __m128i r1 = _mm256_extracti128_si256(res_8b, 1);
126
127
2.01M
  __m128i *const p0 = (__m128i *)dst;
128
2.01M
  __m128i *const p1 = (__m128i *)(dst + dst_stride);
129
130
2.01M
  if (w == 4) {
131
1.66M
    xx_storel_32(p0, r0);
132
1.66M
    xx_storel_32(p1, r1);
133
1.66M
  } else {
134
352k
    assert(w == 2);
135
352k
    *(uint16_t *)p0 = (uint16_t)_mm_cvtsi128_si32(r0);
136
352k
    *(uint16_t *)p1 = (uint16_t)_mm_cvtsi128_si32(r1);
137
352k
  }
138
2.01M
}
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
27.0k
  __m128i s[2];                                                               \
142
27.0k
  s[0] = _mm_loadl_epi64((__m128i *)(im_block + 0 * 4));                      \
143
27.0k
                                                                              \
144
99.9k
  for (i = 0; i < h; i += 2) {                                                \
145
72.8k
    const int16_t *data = &im_block[i * 4];                                   \
146
72.8k
    s[1] = _mm_loadl_epi64((__m128i *)(data + 1 * 4));                        \
147
72.8k
    const __m256i src_0 = _mm256_setr_m128i(s[0], s[1]);                      \
148
72.8k
    s[0] = _mm_loadl_epi64((__m128i *)(data + 2 * 4));                        \
149
72.8k
    const __m256i src_1 = _mm256_setr_m128i(s[1], s[0]);                      \
150
72.8k
    const __m256i ss = _mm256_unpacklo_epi16(src_0, src_1);                   \
151
72.8k
                                                                              \
152
72.8k
    const __m256i res = _mm256_madd_epi16(ss, coeffs_v[0]);                   \
153
72.8k
                                                                              \
154
72.8k
    sr_2d_ver_round_and_store_w4(w, res, dst_ptr, dst_stride, round_const_v); \
155
72.8k
    dst_ptr += 2 * dst_stride;                                                \
156
72.8k
  }
157
158
#define CONVOLVE_SR_VER_FILTER_4TAP_W4                                        \
159
472k
  __m128i s[4];                                                               \
160
472k
  __m256i ss[2];                                                              \
161
472k
  s[0] = _mm_loadl_epi64((__m128i *)(im_block + 0 * 4));                      \
162
472k
  s[1] = _mm_loadl_epi64((__m128i *)(im_block + 1 * 4));                      \
163
472k
  s[2] = _mm_loadl_epi64((__m128i *)(im_block + 2 * 4));                      \
164
472k
                                                                              \
165
472k
  const __m256i src_0 = _mm256_setr_m128i(s[0], s[1]);                        \
166
472k
  const __m256i src_1 = _mm256_setr_m128i(s[1], s[2]);                        \
167
472k
                                                                              \
168
472k
  ss[0] = _mm256_unpacklo_epi16(src_0, src_1);                                \
169
472k
                                                                              \
170
1.37M
  for (i = 0; i < h; i += 2) {                                                \
171
897k
    const int16_t *data = &im_block[i * 4];                                   \
172
897k
    s[3] = _mm_loadl_epi64((__m128i *)(data + 3 * 4));                        \
173
897k
    const __m256i src_2 = _mm256_setr_m128i(s[2], s[3]);                      \
174
897k
    s[2] = _mm_loadl_epi64((__m128i *)(data + 4 * 4));                        \
175
897k
    const __m256i src_3 = _mm256_setr_m128i(s[3], s[2]);                      \
176
897k
    ss[1] = _mm256_unpacklo_epi16(src_2, src_3);                              \
177
897k
                                                                              \
178
897k
    const __m256i res = convolve_4tap(ss, coeffs_v);                          \
179
897k
                                                                              \
180
897k
    sr_2d_ver_round_and_store_w4(w, res, dst_ptr, dst_stride, round_const_v); \
181
897k
    dst_ptr += 2 * dst_stride;                                                \
182
897k
                                                                              \
183
897k
    ss[0] = ss[1];                                                            \
184
897k
  }
185
186
#define CONVOLVE_SR_VER_FILTER_6TAP_W4                                        \
187
197k
  __m128i s[6];                                                               \
188
197k
  __m256i ss[3];                                                              \
189
197k
  s[0] = _mm_loadl_epi64((__m128i *)(im_block + 0 * 4));                      \
190
197k
  s[1] = _mm_loadl_epi64((__m128i *)(im_block + 1 * 4));                      \
191
197k
  s[2] = _mm_loadl_epi64((__m128i *)(im_block + 2 * 4));                      \
192
197k
  s[3] = _mm_loadl_epi64((__m128i *)(im_block + 3 * 4));                      \
193
197k
  s[4] = _mm_loadl_epi64((__m128i *)(im_block + 4 * 4));                      \
194
197k
                                                                              \
195
197k
  const __m256i src_0 = _mm256_setr_m128i(s[0], s[1]);                        \
196
197k
  const __m256i src_1 = _mm256_setr_m128i(s[1], s[2]);                        \
197
197k
  const __m256i src_2 = _mm256_setr_m128i(s[2], s[3]);                        \
198
197k
  const __m256i src_3 = _mm256_setr_m128i(s[3], s[4]);                        \
199
197k
                                                                              \
200
197k
  ss[0] = _mm256_unpacklo_epi16(src_0, src_1);                                \
201
197k
  ss[1] = _mm256_unpacklo_epi16(src_2, src_3);                                \
202
197k
                                                                              \
203
1.17M
  for (i = 0; i < h; i += 2) {                                                \
204
980k
    const int16_t *data = &im_block[i * 4];                                   \
205
980k
    s[5] = _mm_loadl_epi64((__m128i *)(data + 5 * 4));                        \
206
980k
    const __m256i src_4 = _mm256_setr_m128i(s[4], s[5]);                      \
207
980k
    s[4] = _mm_loadl_epi64((__m128i *)(data + 6 * 4));                        \
208
980k
    const __m256i src_5 = _mm256_setr_m128i(s[5], s[4]);                      \
209
980k
    ss[2] = _mm256_unpacklo_epi16(src_4, src_5);                              \
210
980k
                                                                              \
211
980k
    const __m256i res = convolve_6tap(ss, coeffs_v);                          \
212
980k
                                                                              \
213
980k
    sr_2d_ver_round_and_store_w4(w, res, dst_ptr, dst_stride, round_const_v); \
214
980k
    dst_ptr += 2 * dst_stride;                                                \
215
980k
                                                                              \
216
980k
    ss[0] = ss[1];                                                            \
217
980k
    ss[1] = ss[2];                                                            \
218
980k
  }
219
220
#define CONVOLVE_SR_VER_FILTER_8TAP_W4                                        \
221
12.6k
  __m128i s[8];                                                               \
222
12.6k
  __m256i ss[4];                                                              \
223
12.6k
  s[0] = _mm_loadl_epi64((__m128i *)(im_block + 0 * 4));                      \
224
12.6k
  s[1] = _mm_loadl_epi64((__m128i *)(im_block + 1 * 4));                      \
225
12.6k
  s[2] = _mm_loadl_epi64((__m128i *)(im_block + 2 * 4));                      \
226
12.6k
  s[3] = _mm_loadl_epi64((__m128i *)(im_block + 3 * 4));                      \
227
12.6k
  s[4] = _mm_loadl_epi64((__m128i *)(im_block + 4 * 4));                      \
228
12.6k
  s[5] = _mm_loadl_epi64((__m128i *)(im_block + 5 * 4));                      \
229
12.6k
  s[6] = _mm_loadl_epi64((__m128i *)(im_block + 6 * 4));                      \
230
12.6k
                                                                              \
231
12.6k
  const __m256i src_0 = _mm256_setr_m128i(s[0], s[1]);                        \
232
12.6k
  const __m256i src_1 = _mm256_setr_m128i(s[1], s[2]);                        \
233
12.6k
  const __m256i src_2 = _mm256_setr_m128i(s[2], s[3]);                        \
234
12.6k
  const __m256i src_3 = _mm256_setr_m128i(s[3], s[4]);                        \
235
12.6k
  const __m256i src_4 = _mm256_setr_m128i(s[4], s[5]);                        \
236
12.6k
  const __m256i src_5 = _mm256_setr_m128i(s[5], s[6]);                        \
237
12.6k
                                                                              \
238
12.6k
  ss[0] = _mm256_unpacklo_epi16(src_0, src_1);                                \
239
12.6k
  ss[1] = _mm256_unpacklo_epi16(src_2, src_3);                                \
240
12.6k
  ss[2] = _mm256_unpacklo_epi16(src_4, src_5);                                \
241
12.6k
                                                                              \
242
77.7k
  for (i = 0; i < h; i += 2) {                                                \
243
65.1k
    const int16_t *data = &im_block[i * 4];                                   \
244
65.1k
    s[7] = _mm_loadl_epi64((__m128i *)(data + 7 * 4));                        \
245
65.1k
    const __m256i src_6 = _mm256_setr_m128i(s[6], s[7]);                      \
246
65.1k
    s[6] = _mm_loadl_epi64((__m128i *)(data + 8 * 4));                        \
247
65.1k
    const __m256i src_7 = _mm256_setr_m128i(s[7], s[6]);                      \
248
65.1k
    ss[3] = _mm256_unpacklo_epi16(src_6, src_7);                              \
249
65.1k
                                                                              \
250
65.1k
    const __m256i res = convolve(ss, coeffs_v);                               \
251
65.1k
                                                                              \
252
65.1k
    sr_2d_ver_round_and_store_w4(w, res, dst_ptr, dst_stride, round_const_v); \
253
65.1k
    dst_ptr += 2 * dst_stride;                                                \
254
65.1k
                                                                              \
255
65.1k
    ss[0] = ss[1];                                                            \
256
65.1k
    ss[1] = ss[2];                                                            \
257
65.1k
    ss[2] = ss[3];                                                            \
258
65.1k
  }
259
260
#define CONVOLVE_SR_HORIZONTAL_FILTER(CONVOLVE_LOWBD)                 \
261
  for (i = 0; i < (im_h - 2); i += 2) {                               \
262
    __m256i data = _mm256_castsi128_si256(                            \
263
        _mm_loadu_si128((__m128i *)&src_ptr[(i * src_stride) + j]));  \
264
    data = _mm256_inserti128_si256(                                   \
265
        data,                                                         \
266
        _mm_loadu_si128(                                              \
267
            (__m128i *)&src_ptr[(i * src_stride) + j + src_stride]),  \
268
        1);                                                           \
269
    __m256i res = CONVOLVE_LOWBD(data, coeffs_h, filt);               \
270
    res = _mm256_srai_epi16(_mm256_add_epi16(res, round_const_h), 2); \
271
    _mm256_store_si256((__m256i *)&im_block[i * im_stride], res);     \
272
  }                                                                   \
273
  __m256i data_1 = _mm256_castsi128_si256(                            \
274
      _mm_loadu_si128((__m128i *)&src_ptr[(i * src_stride) + j]));    \
275
  __m256i res = CONVOLVE_LOWBD(data_1, coeffs_h, filt);               \
276
  res = _mm256_srai_epi16(_mm256_add_epi16(res, round_const_h), 2);   \
277
  _mm256_store_si256((__m256i *)&im_block[i * im_stride], res);
278
279
#define CONVOLVE_SR_HORIZONTAL_FILTER_2TAP \
280
  CONVOLVE_SR_HORIZONTAL_FILTER(convolve_lowbd_x_2tap)
281
282
#define CONVOLVE_SR_HORIZONTAL_FILTER_4TAP \
283
  CONVOLVE_SR_HORIZONTAL_FILTER(convolve_lowbd_x_4tap)
284
285
#define CONVOLVE_SR_HORIZONTAL_FILTER_6TAP \
286
  CONVOLVE_SR_HORIZONTAL_FILTER(convolve_lowbd_x_6tap)
287
288
#define CONVOLVE_SR_HORIZONTAL_FILTER_8TAP \
289
  CONVOLVE_SR_HORIZONTAL_FILTER(convolve_lowbd_x)
290
291
static inline void sr_2d_ver_round_and_store(__m256i res_a, __m256i res_b,
292
                                             uint8_t *dst, int dst_stride,
293
12.6M
                                             __m256i round_const_v) {
294
12.6M
  const __m256i res_a_round =
295
12.6M
      _mm256_srai_epi32(_mm256_add_epi32(res_a, round_const_v), 11);
296
12.6M
  const __m256i res_b_round =
297
12.6M
      _mm256_srai_epi32(_mm256_add_epi32(res_b, round_const_v), 11);
298
12.6M
  const __m256i r16 = _mm256_packs_epi32(res_a_round, res_b_round);
299
12.6M
  const __m256i r8 = _mm256_packus_epi16(r16, r16);
300
301
12.6M
  _mm_storel_epi64((__m128i *)dst, _mm256_castsi256_si128(r8));
302
12.6M
  _mm_storel_epi64((__m128i *)(dst + dst_stride),
303
12.6M
                   _mm256_extracti128_si256(r8, 1));
304
12.6M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:sr_2d_ver_round_and_store
Unexecuted instantiation: highbd_convolve_avx2.c:sr_2d_ver_round_and_store
convolve_2d_avx2.c:sr_2d_ver_round_and_store
Line
Count
Source
293
12.6M
                                             __m256i round_const_v) {
294
12.6M
  const __m256i res_a_round =
295
12.6M
      _mm256_srai_epi32(_mm256_add_epi32(res_a, round_const_v), 11);
296
12.6M
  const __m256i res_b_round =
297
12.6M
      _mm256_srai_epi32(_mm256_add_epi32(res_b, round_const_v), 11);
298
12.6M
  const __m256i r16 = _mm256_packs_epi32(res_a_round, res_b_round);
299
12.6M
  const __m256i r8 = _mm256_packus_epi16(r16, r16);
300
301
12.6M
  _mm_storel_epi64((__m128i *)dst, _mm256_castsi256_si128(r8));
302
12.6M
  _mm_storel_epi64((__m128i *)(dst + dst_stride),
303
                   _mm256_extracti128_si256(r8, 1));
304
12.6M
}
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
390k
  for (i = 0; i < h; i += 2) {                                                \
308
354k
    __m256i s[2];                                                             \
309
354k
    const int16_t *data = &im_block[i * im_stride];                           \
310
354k
    const __m256i s1 = _mm256_loadu_si256((__m256i *)(data + 0 * im_stride)); \
311
354k
    const __m256i s2 = _mm256_loadu_si256((__m256i *)(data + 1 * im_stride)); \
312
354k
    s[0] = _mm256_unpacklo_epi16(s1, s2);                                     \
313
354k
    s[1] = _mm256_unpackhi_epi16(s1, s2);                                     \
314
354k
                                                                              \
315
354k
    __m256i res_a = _mm256_madd_epi16(s[0], coeffs_v[0]);                     \
316
354k
    __m256i res_b = _mm256_madd_epi16(s[1], coeffs_v[0]);                     \
317
354k
                                                                              \
318
354k
    sr_2d_ver_round_and_store(res_a, res_b, dst_ptr, dst_stride,              \
319
354k
                              round_const_v);                                 \
320
354k
    dst_ptr += 2 * dst_stride;                                                \
321
354k
  }
322
323
#define CONVOLVE_SR_VERTICAL_FILTER_4TAP                                      \
324
552k
  __m256i s[6];                                                               \
325
552k
  __m256i src_0 = _mm256_loadu_si256((__m256i *)(im_block + 0 * im_stride));  \
326
552k
  __m256i src_1 = _mm256_loadu_si256((__m256i *)(im_block + 1 * im_stride));  \
327
552k
                                                                              \
328
552k
  s[0] = _mm256_unpacklo_epi16(src_0, src_1);                                 \
329
552k
  s[2] = _mm256_unpackhi_epi16(src_0, src_1);                                 \
330
552k
                                                                              \
331
2.25M
  for (i = 0; i < h; i += 2) {                                                \
332
1.69M
    const int16_t *data = &im_block[i * im_stride];                           \
333
1.69M
    const __m256i s4 = _mm256_loadu_si256((__m256i *)(data + 2 * im_stride)); \
334
1.69M
    const __m256i s5 = _mm256_loadu_si256((__m256i *)(data + 3 * im_stride)); \
335
1.69M
    s[1] = _mm256_unpacklo_epi16(s4, s5);                                     \
336
1.69M
    s[3] = _mm256_unpackhi_epi16(s4, s5);                                     \
337
1.69M
                                                                              \
338
1.69M
    __m256i res_a = convolve_4tap(s, coeffs_v);                               \
339
1.69M
    __m256i res_b = convolve_4tap(s + 2, coeffs_v);                           \
340
1.69M
                                                                              \
341
1.69M
    sr_2d_ver_round_and_store(res_a, res_b, dst_ptr, dst_stride,              \
342
1.69M
                              round_const_v);                                 \
343
1.69M
    dst_ptr += 2 * dst_stride;                                                \
344
1.69M
                                                                              \
345
1.69M
    s[0] = s[1];                                                              \
346
1.69M
    s[2] = s[3];                                                              \
347
1.69M
  }
348
349
#define CONVOLVE_SR_VERTICAL_FILTER_6TAP                                      \
350
724k
  __m256i src_0 = _mm256_loadu_si256((__m256i *)(im_block + 0 * im_stride));  \
351
724k
  __m256i src_1 = _mm256_loadu_si256((__m256i *)(im_block + 1 * im_stride));  \
352
724k
  __m256i src_2 = _mm256_loadu_si256((__m256i *)(im_block + 2 * im_stride));  \
353
724k
  __m256i src_3 = _mm256_loadu_si256((__m256i *)(im_block + 3 * im_stride));  \
354
724k
                                                                              \
355
724k
  __m256i s[8];                                                               \
356
724k
  s[0] = _mm256_unpacklo_epi16(src_0, src_1);                                 \
357
724k
  s[1] = _mm256_unpacklo_epi16(src_2, src_3);                                 \
358
724k
                                                                              \
359
724k
  s[3] = _mm256_unpackhi_epi16(src_0, src_1);                                 \
360
724k
  s[4] = _mm256_unpackhi_epi16(src_2, src_3);                                 \
361
724k
                                                                              \
362
9.33M
  for (i = 0; i < h; i += 2) {                                                \
363
8.60M
    const int16_t *data = &im_block[i * im_stride];                           \
364
8.60M
                                                                              \
365
8.60M
    const __m256i s6 = _mm256_loadu_si256((__m256i *)(data + 4 * im_stride)); \
366
8.60M
    const __m256i s7 = _mm256_loadu_si256((__m256i *)(data + 5 * im_stride)); \
367
8.60M
                                                                              \
368
8.60M
    s[2] = _mm256_unpacklo_epi16(s6, s7);                                     \
369
8.60M
    s[5] = _mm256_unpackhi_epi16(s6, s7);                                     \
370
8.60M
                                                                              \
371
8.60M
    __m256i res_a = convolve_6tap(s, coeffs_v);                               \
372
8.60M
    __m256i res_b = convolve_6tap(s + 3, coeffs_v);                           \
373
8.60M
                                                                              \
374
8.60M
    sr_2d_ver_round_and_store(res_a, res_b, dst_ptr, dst_stride,              \
375
8.60M
                              round_const_v);                                 \
376
8.60M
    dst_ptr += 2 * dst_stride;                                                \
377
8.60M
                                                                              \
378
8.60M
    s[0] = s[1];                                                              \
379
8.60M
    s[1] = s[2];                                                              \
380
8.60M
                                                                              \
381
8.60M
    s[3] = s[4];                                                              \
382
8.60M
    s[4] = s[5];                                                              \
383
8.60M
  }
384
385
#define CONVOLVE_SR_VERTICAL_FILTER_8TAP                                      \
386
168k
  __m256i src_0 = _mm256_loadu_si256((__m256i *)(im_block + 0 * im_stride));  \
387
168k
  __m256i src_1 = _mm256_loadu_si256((__m256i *)(im_block + 1 * im_stride));  \
388
168k
  __m256i src_2 = _mm256_loadu_si256((__m256i *)(im_block + 2 * im_stride));  \
389
168k
  __m256i src_3 = _mm256_loadu_si256((__m256i *)(im_block + 3 * im_stride));  \
390
168k
  __m256i src_4 = _mm256_loadu_si256((__m256i *)(im_block + 4 * im_stride));  \
391
168k
  __m256i src_5 = _mm256_loadu_si256((__m256i *)(im_block + 5 * im_stride));  \
392
168k
                                                                              \
393
168k
  __m256i s[8];                                                               \
394
168k
  s[0] = _mm256_unpacklo_epi16(src_0, src_1);                                 \
395
168k
  s[1] = _mm256_unpacklo_epi16(src_2, src_3);                                 \
396
168k
  s[2] = _mm256_unpacklo_epi16(src_4, src_5);                                 \
397
168k
                                                                              \
398
168k
  s[4] = _mm256_unpackhi_epi16(src_0, src_1);                                 \
399
168k
  s[5] = _mm256_unpackhi_epi16(src_2, src_3);                                 \
400
168k
  s[6] = _mm256_unpackhi_epi16(src_4, src_5);                                 \
401
168k
                                                                              \
402
2.20M
  for (i = 0; i < h; i += 2) {                                                \
403
2.03M
    const int16_t *data = &im_block[i * im_stride];                           \
404
2.03M
                                                                              \
405
2.03M
    const __m256i s6 = _mm256_loadu_si256((__m256i *)(data + 6 * im_stride)); \
406
2.03M
    const __m256i s7 = _mm256_loadu_si256((__m256i *)(data + 7 * im_stride)); \
407
2.03M
                                                                              \
408
2.03M
    s[3] = _mm256_unpacklo_epi16(s6, s7);                                     \
409
2.03M
    s[7] = _mm256_unpackhi_epi16(s6, s7);                                     \
410
2.03M
                                                                              \
411
2.03M
    __m256i res_a = convolve(s, coeffs_v);                                    \
412
2.03M
    __m256i res_b = convolve(s + 4, coeffs_v);                                \
413
2.03M
                                                                              \
414
2.03M
    sr_2d_ver_round_and_store(res_a, res_b, dst_ptr, dst_stride,              \
415
2.03M
                              round_const_v);                                 \
416
2.03M
    dst_ptr += 2 * dst_stride;                                                \
417
2.03M
                                                                              \
418
2.03M
    s[0] = s[1];                                                              \
419
2.03M
    s[1] = s[2];                                                              \
420
2.03M
    s[2] = s[3];                                                              \
421
2.03M
                                                                              \
422
2.03M
    s[4] = s[5];                                                              \
423
2.03M
    s[5] = s[6];                                                              \
424
2.03M
    s[6] = s[7];                                                              \
425
2.03M
  }
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.08M
  do {                                                                         \
507
2.08M
    if (do_average) {                                                          \
508
870k
      const __m256i data_ref_0 =                                               \
509
870k
          load_line2_avx2(&dst[i * dst_stride + (j_off)],                      \
510
870k
                          &dst[i * dst_stride + (j_off) + dst_stride]);        \
511
870k
      const __m256i comp_avg_res =                                             \
512
870k
          comp_avg(&data_ref_0, &(res_unsigned), &wt, use_dist_wtd_comp_avg);  \
513
870k
      const __m256i res_signed = _mm256_sub_epi16(comp_avg_res, offset_const); \
514
870k
      const __m256i round_result =                                             \
515
870k
          _mm256_srai_epi16(_mm256_add_epi16(res_signed, rounding_const), 4);  \
516
870k
      const __m256i res_8 = _mm256_packus_epi16(round_result, round_result);   \
517
870k
      const __m128i res_0 = _mm256_castsi256_si128(res_8);                     \
518
870k
      const __m128i res_1 = _mm256_extracti128_si256(res_8, 1);                \
519
870k
      if (w - (j_off) > 4) {                                                   \
520
844k
        _mm_storel_epi64((__m128i *)(&dst0[i * dst_stride0 + (j_off)]),        \
521
844k
                         res_0);                                               \
522
844k
        _mm_storel_epi64(                                                      \
523
844k
            (__m128i *)(&dst0[i * dst_stride0 + (j_off) + dst_stride0]),       \
524
844k
            res_1);                                                            \
525
844k
      } else {                                                                 \
526
26.6k
        *(int *)(&dst0[i * dst_stride0 + (j_off)]) = _mm_cvtsi128_si32(res_0); \
527
26.6k
        *(int *)(&dst0[i * dst_stride0 + (j_off) + dst_stride0]) =             \
528
26.6k
            _mm_cvtsi128_si32(res_1);                                          \
529
26.6k
      }                                                                        \
530
1.21M
    } else {                                                                   \
531
1.21M
      const __m128i res_0 = _mm256_castsi256_si128(res_unsigned);              \
532
1.21M
      _mm_store_si128((__m128i *)(&dst[i * dst_stride + (j_off)]), res_0);     \
533
1.21M
      const __m128i res_1 = _mm256_extracti128_si256(res_unsigned, 1);         \
534
1.21M
      _mm_store_si128(                                                         \
535
1.21M
          (__m128i *)(&dst[i * dst_stride + (j_off) + dst_stride]), res_1);    \
536
1.21M
    }                                                                          \
537
2.08M
  } while (0)
538
539
#define JNT_CONVOLVE_HORIZONTAL_FILTER(src_h_start, convolve_fn, coeffs) \
540
305k
  do {                                                                   \
541
305k
    const uint8_t *src_h = (src_h_start);                                \
542
4.45M
    for (i = 0; i < im_h; i += 2) {                                      \
543
4.15M
      const __m256i data = load_line2_avx2(src_h, src_h + src_stride);   \
544
4.15M
      src_h += (src_stride << 1);                                        \
545
4.15M
      __m256i res = convolve_fn(data, coeffs, filt);                     \
546
4.15M
      res = _mm256_srai_epi16(_mm256_add_epi16(res, round_const_h), 2);  \
547
4.15M
      _mm256_store_si256((__m256i *)&im_block[i * im_stride], res);      \
548
4.15M
    }                                                                    \
549
305k
  } while (0)
550
551
#define JNT_CONVOLVE_VERTICAL_FILTER_8TAP                                     \
552
181k
  do {                                                                        \
553
181k
    __m256i s[8];                                                             \
554
181k
    __m256i s0 = _mm256_loadu_si256((__m256i *)(im_block + 0 * im_stride));   \
555
181k
    __m256i s1 = _mm256_loadu_si256((__m256i *)(im_block + 1 * im_stride));   \
556
181k
    __m256i s2 = _mm256_loadu_si256((__m256i *)(im_block + 2 * im_stride));   \
557
181k
    __m256i s3 = _mm256_loadu_si256((__m256i *)(im_block + 3 * im_stride));   \
558
181k
    __m256i s4 = _mm256_loadu_si256((__m256i *)(im_block + 4 * im_stride));   \
559
181k
    __m256i s5 = _mm256_loadu_si256((__m256i *)(im_block + 5 * im_stride));   \
560
181k
                                                                              \
561
181k
    s[0] = _mm256_unpacklo_epi16(s0, s1);                                     \
562
181k
    s[1] = _mm256_unpacklo_epi16(s2, s3);                                     \
563
181k
    s[2] = _mm256_unpacklo_epi16(s4, s5);                                     \
564
181k
                                                                              \
565
181k
    s[4] = _mm256_unpackhi_epi16(s0, s1);                                     \
566
181k
    s[5] = _mm256_unpackhi_epi16(s2, s3);                                     \
567
181k
    s[6] = _mm256_unpackhi_epi16(s4, s5);                                     \
568
181k
                                                                              \
569
2.26M
    for (i = 0; i < h; i += 2) {                                              \
570
2.08M
      const int16_t *data = &im_block[i * im_stride];                         \
571
2.08M
                                                                              \
572
2.08M
      const __m256i s6 =                                                      \
573
2.08M
          _mm256_loadu_si256((__m256i *)(data + 6 * im_stride));              \
574
2.08M
      const __m256i s7 =                                                      \
575
2.08M
          _mm256_loadu_si256((__m256i *)(data + 7 * im_stride));              \
576
2.08M
                                                                              \
577
2.08M
      s[3] = _mm256_unpacklo_epi16(s6, s7);                                   \
578
2.08M
      s[7] = _mm256_unpackhi_epi16(s6, s7);                                   \
579
2.08M
                                                                              \
580
2.08M
      const __m256i res_a = convolve(s, coeffs_y);                            \
581
2.08M
      const __m256i res_a_round =                                             \
582
2.08M
          _mm256_srai_epi32(_mm256_add_epi32(res_a, round_const_v), 7);       \
583
2.08M
                                                                              \
584
2.08M
      if (w - j > 4) {                                                        \
585
2.02M
        const __m256i res_b = convolve(s + 4, coeffs_y);                      \
586
2.02M
        const __m256i res_b_round =                                           \
587
2.02M
            _mm256_srai_epi32(_mm256_add_epi32(res_b, round_const_v), 7);     \
588
2.02M
        const __m256i res_16b = _mm256_packs_epi32(res_a_round, res_b_round); \
589
2.02M
        const __m256i res_unsigned = _mm256_add_epi16(res_16b, offset_const); \
590
2.02M
        JNT_CONVOLVE_PROCESS_OUTPUT(res_unsigned, j);                         \
591
2.02M
      } else {                                                                \
592
63.7k
        const __m256i res_16b = _mm256_packs_epi32(res_a_round, res_a_round); \
593
63.7k
        const __m256i res_unsigned = _mm256_add_epi16(res_16b, offset_const); \
594
63.7k
        JNT_CONVOLVE_PROCESS_OUTPUT(res_unsigned, j);                         \
595
63.7k
      }                                                                       \
596
2.08M
                                                                              \
597
2.08M
      s[0] = s[1];                                                            \
598
2.08M
      s[1] = s[2];                                                            \
599
2.08M
      s[2] = s[3];                                                            \
600
2.08M
                                                                              \
601
2.08M
      s[4] = s[5];                                                            \
602
2.08M
      s[5] = s[6];                                                            \
603
2.08M
      s[6] = s[7];                                                            \
604
2.08M
    }                                                                         \
605
181k
  } while (0)
606
607
static inline void prepare_coeffs_2t_ssse3(
608
    const InterpFilterParams *const filter_params, const int32_t subpel_q4,
609
54.2k
    __m128i *const coeffs /* [4] */) {
610
54.2k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
611
54.2k
      filter_params, subpel_q4 & SUBPEL_MASK);
612
54.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
54.2k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
620
54.2k
                            _mm_set1_epi16((short)0xffff)));
621
622
54.2k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
623
624
  // coeffs 3 4 3 4 3 4 3 4
625
54.2k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0806u));
626
54.2k
}
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
27.0k
    __m128i *const coeffs /* [4] */) {
610
27.0k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
611
27.0k
      filter_params, subpel_q4 & SUBPEL_MASK);
612
27.0k
  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
27.0k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
620
27.0k
                            _mm_set1_epi16((short)0xffff)));
621
622
27.0k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
623
624
  // coeffs 3 4 3 4 3 4 3 4
625
27.0k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0806u));
626
27.0k
}
convolve_avx2.c:prepare_coeffs_2t_ssse3
Line
Count
Source
609
27.1k
    __m128i *const coeffs /* [4] */) {
610
27.1k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
611
27.1k
      filter_params, subpel_q4 & SUBPEL_MASK);
612
27.1k
  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
27.1k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
620
27.1k
                            _mm_set1_epi16((short)0xffff)));
621
622
27.1k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
623
624
  // coeffs 3 4 3 4 3 4 3 4
625
27.1k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0806u));
626
27.1k
}
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
1.09M
    __m128i *const coeffs /* [4] */) {
631
1.09M
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
632
1.09M
      filter_params, subpel_q4 & SUBPEL_MASK);
633
1.09M
  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
1.09M
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
641
1.09M
                            _mm_set1_epi16((short)0xffff)));
642
643
1.09M
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
644
645
  // coeffs 2 3 2 3 2 3 2 3
646
1.09M
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0604u));
647
  // coeffs 4 5 4 5 4 5 4 5
648
1.09M
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0a08u));
649
1.09M
}
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
683k
    __m128i *const coeffs /* [4] */) {
631
683k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
632
683k
      filter_params, subpel_q4 & SUBPEL_MASK);
633
683k
  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
683k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
641
683k
                            _mm_set1_epi16((short)0xffff)));
642
643
683k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
644
645
  // coeffs 2 3 2 3 2 3 2 3
646
683k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0604u));
647
  // coeffs 4 5 4 5 4 5 4 5
648
683k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0a08u));
649
683k
}
convolve_avx2.c:prepare_coeffs_4t_ssse3
Line
Count
Source
630
413k
    __m128i *const coeffs /* [4] */) {
631
413k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
632
413k
      filter_params, subpel_q4 & SUBPEL_MASK);
633
413k
  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
413k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
641
413k
                            _mm_set1_epi16((short)0xffff)));
642
643
413k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
644
645
  // coeffs 2 3 2 3 2 3 2 3
646
413k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0604u));
647
  // coeffs 4 5 4 5 4 5 4 5
648
413k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0a08u));
649
413k
}
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
73.0k
    __m128i *const coeffs /* [4] */) {
654
73.0k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
655
73.0k
      filter_params, subpel_q4 & SUBPEL_MASK);
656
73.0k
  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
73.0k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
664
73.0k
                            _mm_set1_epi16((short)0xffff)));
665
666
73.0k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
667
668
  // coeffs 2 3 2 3 2 3 2 3
669
73.0k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0402u));
670
  // coeffs 4 5 4 5 4 5 4 5
671
73.0k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0806u));
672
  // coeffs 5 6 5 6 5 6 5 6
673
73.0k
  coeffs[2] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0c0au));
674
73.0k
}
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
73.0k
    __m128i *const coeffs /* [4] */) {
654
73.0k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
655
73.0k
      filter_params, subpel_q4 & SUBPEL_MASK);
656
73.0k
  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
73.0k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
664
73.0k
                            _mm_set1_epi16((short)0xffff)));
665
666
73.0k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
667
668
  // coeffs 2 3 2 3 2 3 2 3
669
73.0k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0402u));
670
  // coeffs 4 5 4 5 4 5 4 5
671
73.0k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0806u));
672
  // coeffs 5 6 5 6 5 6 5 6
673
73.0k
  coeffs[2] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0c0au));
674
73.0k
}
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
5.56k
    __m128i *const coeffs /* [4] */) {
679
5.56k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
680
5.56k
      filter_params, subpel_q4 & SUBPEL_MASK);
681
5.56k
  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
5.56k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
689
5.56k
                            _mm_set1_epi16((short)0xffff)));
690
691
5.56k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
692
693
  // coeffs 0 1 0 1 0 1 0 1
694
5.56k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0200u));
695
  // coeffs 2 3 2 3 2 3 2 3
696
5.56k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0604u));
697
  // coeffs 4 5 4 5 4 5 4 5
698
5.56k
  coeffs[2] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0a08u));
699
  // coeffs 6 7 6 7 6 7 6 7
700
5.56k
  coeffs[3] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0e0cu));
701
5.56k
}
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
5.56k
    __m128i *const coeffs /* [4] */) {
679
5.56k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
680
5.56k
      filter_params, subpel_q4 & SUBPEL_MASK);
681
5.56k
  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
5.56k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
689
5.56k
                            _mm_set1_epi16((short)0xffff)));
690
691
5.56k
  const __m128i coeffs_1 = _mm_srai_epi16(coeffs_8, 1);
692
693
  // coeffs 0 1 0 1 0 1 0 1
694
5.56k
  coeffs[0] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0200u));
695
  // coeffs 2 3 2 3 2 3 2 3
696
5.56k
  coeffs[1] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0604u));
697
  // coeffs 4 5 4 5 4 5 4 5
698
5.56k
  coeffs[2] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0a08u));
699
  // coeffs 6 7 6 7 6 7 6 7
700
5.56k
  coeffs[3] = _mm_shuffle_epi8(coeffs_1, _mm_set1_epi16(0x0e0cu));
701
5.56k
}
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
33.7k
    __m256i *const coeffs /* [4] */) {
706
33.7k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
707
33.7k
      filter_params, subpel_q4 & SUBPEL_MASK);
708
33.7k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
709
33.7k
  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
33.7k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
717
33.7k
                            _mm_set1_epi16((int16_t)0xffff)));
718
719
33.7k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
720
721
  // coeffs 3 4 3 4 3 4 3 4
722
33.7k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
723
33.7k
}
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
21.3k
    __m256i *const coeffs /* [4] */) {
706
21.3k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
707
21.3k
      filter_params, subpel_q4 & SUBPEL_MASK);
708
21.3k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
709
21.3k
  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
21.3k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
717
21.3k
                            _mm_set1_epi16((int16_t)0xffff)));
718
719
21.3k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
720
721
  // coeffs 3 4 3 4 3 4 3 4
722
21.3k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
723
21.3k
}
convolve_avx2.c:prepare_coeffs_2t_lowbd
Line
Count
Source
705
12.3k
    __m256i *const coeffs /* [4] */) {
706
12.3k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
707
12.3k
      filter_params, subpel_q4 & SUBPEL_MASK);
708
12.3k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
709
12.3k
  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
12.3k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
717
12.3k
                            _mm_set1_epi16((int16_t)0xffff)));
718
719
12.3k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
720
721
  // coeffs 3 4 3 4 3 4 3 4
722
12.3k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
723
12.3k
}
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
210k
    __m256i *const coeffs /* [4] */) {
728
210k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
729
210k
      filter_params, subpel_q4 & SUBPEL_MASK);
730
210k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
731
210k
  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
210k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
739
210k
                            _mm_set1_epi16((short)0xffff)));
740
741
210k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
742
743
  // coeffs 2 3 2 3 2 3 2 3
744
210k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
745
  // coeffs 4 5 4 5 4 5 4 5
746
210k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
747
210k
}
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
59.0k
    __m256i *const coeffs /* [4] */) {
728
59.0k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
729
59.0k
      filter_params, subpel_q4 & SUBPEL_MASK);
730
59.0k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
731
59.0k
  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
59.0k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
739
59.0k
                            _mm_set1_epi16((short)0xffff)));
740
741
59.0k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
742
743
  // coeffs 2 3 2 3 2 3 2 3
744
59.0k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
745
  // coeffs 4 5 4 5 4 5 4 5
746
59.0k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
747
59.0k
}
convolve_avx2.c:prepare_coeffs_4t_lowbd
Line
Count
Source
727
151k
    __m256i *const coeffs /* [4] */) {
728
151k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
729
151k
      filter_params, subpel_q4 & SUBPEL_MASK);
730
151k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
731
151k
  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
151k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
739
151k
                            _mm_set1_epi16((short)0xffff)));
740
741
151k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
742
743
  // coeffs 2 3 2 3 2 3 2 3
744
151k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
745
  // coeffs 4 5 4 5 4 5 4 5
746
151k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
747
151k
}
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.13M
    __m256i *const coeffs /* [4] */) {
752
1.13M
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
753
1.13M
      filter_params, subpel_q4 & SUBPEL_MASK);
754
1.13M
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
755
1.13M
  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.13M
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
763
1.13M
                            _mm_set1_epi16((int16_t)0xffff)));
764
765
1.13M
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
766
767
  // coeffs 1 2 1 2 1 2 1 2
768
1.13M
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0402u));
769
  // coeffs 3 4 3 4 3 4 3 4
770
1.13M
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
771
  // coeffs 5 6 5 6 5 6 5 6
772
1.13M
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0c0au));
773
1.13M
}
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
693k
    __m256i *const coeffs /* [4] */) {
752
693k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
753
693k
      filter_params, subpel_q4 & SUBPEL_MASK);
754
693k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
755
693k
  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
693k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
763
693k
                            _mm_set1_epi16((int16_t)0xffff)));
764
765
693k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
766
767
  // coeffs 1 2 1 2 1 2 1 2
768
693k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0402u));
769
  // coeffs 3 4 3 4 3 4 3 4
770
693k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
771
  // coeffs 5 6 5 6 5 6 5 6
772
693k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0c0au));
773
693k
}
convolve_avx2.c:prepare_coeffs_6t_lowbd
Line
Count
Source
751
445k
    __m256i *const coeffs /* [4] */) {
752
445k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
753
445k
      filter_params, subpel_q4 & SUBPEL_MASK);
754
445k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
755
445k
  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
445k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
763
445k
                            _mm_set1_epi16((int16_t)0xffff)));
764
765
445k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
766
767
  // coeffs 1 2 1 2 1 2 1 2
768
445k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0402u));
769
  // coeffs 3 4 3 4 3 4 3 4
770
445k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0806u));
771
  // coeffs 5 6 5 6 5 6 5 6
772
445k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0c0au));
773
445k
}
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
480k
    __m256i *const coeffs /* [4] */) {
778
480k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
779
480k
      filter_params, subpel_q4 & SUBPEL_MASK);
780
480k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
781
480k
  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
480k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
789
480k
                            _mm_set1_epi16((short)0xffff)));
790
791
480k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
792
793
  // coeffs 0 1 0 1 0 1 0 1
794
480k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0200u));
795
  // coeffs 2 3 2 3 2 3 2 3
796
480k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
797
  // coeffs 4 5 4 5 4 5 4 5
798
480k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
799
  // coeffs 6 7 6 7 6 7 6 7
800
480k
  coeffs[3] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0e0cu));
801
480k
}
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
65.4k
    __m256i *const coeffs /* [4] */) {
778
65.4k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
779
65.4k
      filter_params, subpel_q4 & SUBPEL_MASK);
780
65.4k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
781
65.4k
  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
65.4k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
789
65.4k
                            _mm_set1_epi16((short)0xffff)));
790
791
65.4k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
792
793
  // coeffs 0 1 0 1 0 1 0 1
794
65.4k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0200u));
795
  // coeffs 2 3 2 3 2 3 2 3
796
65.4k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
797
  // coeffs 4 5 4 5 4 5 4 5
798
65.4k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
799
  // coeffs 6 7 6 7 6 7 6 7
800
65.4k
  coeffs[3] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0e0cu));
801
65.4k
}
convolve_avx2.c:prepare_coeffs_lowbd
Line
Count
Source
777
59.3k
    __m256i *const coeffs /* [4] */) {
778
59.3k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
779
59.3k
      filter_params, subpel_q4 & SUBPEL_MASK);
780
59.3k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
781
59.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
59.3k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
789
59.3k
                            _mm_set1_epi16((short)0xffff)));
790
791
59.3k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
792
793
  // coeffs 0 1 0 1 0 1 0 1
794
59.3k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0200u));
795
  // coeffs 2 3 2 3 2 3 2 3
796
59.3k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
797
  // coeffs 4 5 4 5 4 5 4 5
798
59.3k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
799
  // coeffs 6 7 6 7 6 7 6 7
800
59.3k
  coeffs[3] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0e0cu));
801
59.3k
}
jnt_convolve_avx2.c:prepare_coeffs_lowbd
Line
Count
Source
777
355k
    __m256i *const coeffs /* [4] */) {
778
355k
  const int16_t *const filter = av1_get_interp_filter_subpel_kernel(
779
355k
      filter_params, subpel_q4 & SUBPEL_MASK);
780
355k
  const __m128i coeffs_8 = _mm_loadu_si128((__m128i *)filter);
781
355k
  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
355k
  assert(_mm_test_all_zeros(_mm_and_si128(coeffs_8, _mm_set1_epi16(1)),
789
355k
                            _mm_set1_epi16((short)0xffff)));
790
791
355k
  const __m256i coeffs_1 = _mm256_srai_epi16(filter_coeffs, 1);
792
793
  // coeffs 0 1 0 1 0 1 0 1
794
355k
  coeffs[0] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0200u));
795
  // coeffs 2 3 2 3 2 3 2 3
796
355k
  coeffs[1] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0604u));
797
  // coeffs 4 5 4 5 4 5 4 5
798
355k
  coeffs[2] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0a08u));
799
  // coeffs 6 7 6 7 6 7 6 7
800
355k
  coeffs[3] = _mm256_shuffle_epi8(coeffs_1, _mm256_set1_epi16(0x0e0cu));
801
355k
}
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
48.4k
    __m256i *const coeffs /* [4] */) {
806
48.4k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
807
48.4k
      filter_params, subpel_q4 & SUBPEL_MASK);
808
809
48.4k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)(filter + 1));
810
48.4k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
811
812
  // coeffs 3 4 3 4 3 4 3 4
813
48.4k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x55);
814
48.4k
}
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
48.4k
    __m256i *const coeffs /* [4] */) {
806
48.4k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
807
48.4k
      filter_params, subpel_q4 & SUBPEL_MASK);
808
809
48.4k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)(filter + 1));
810
48.4k
  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
48.4k
}
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
881k
    __m256i *const coeffs /* [4] */) {
819
881k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
820
881k
      filter_params, subpel_q4 & SUBPEL_MASK);
821
822
881k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
823
881k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
824
  // coeffs 2 3 2 3 2 3 2 3
825
881k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x55);
826
  // coeffs 4 5 4 5 4 5 4 5
827
881k
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0xaa);
828
881k
}
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
881k
    __m256i *const coeffs /* [4] */) {
819
881k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
820
881k
      filter_params, subpel_q4 & SUBPEL_MASK);
821
822
881k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
823
881k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
824
  // coeffs 2 3 2 3 2 3 2 3
825
881k
  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
881k
}
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
562k
    __m256i *const coeffs /* [4] */) {
833
562k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
834
562k
      filter_params, subpel_q4 & SUBPEL_MASK);
835
836
562k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)(filter + 1));
837
562k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
838
839
  // coeffs 1 2 1 2 1 2 1 2
840
562k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
841
  // coeffs 3 4 3 4 3 4 3 4
842
562k
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
843
  // coeffs 5 6 5 6 5 6 5 6
844
562k
  coeffs[2] = _mm256_shuffle_epi32(coeff, 0xaa);
845
562k
}
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
562k
    __m256i *const coeffs /* [4] */) {
833
562k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
834
562k
      filter_params, subpel_q4 & SUBPEL_MASK);
835
836
562k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)(filter + 1));
837
562k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
838
839
  // coeffs 1 2 1 2 1 2 1 2
840
562k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
841
  // coeffs 3 4 3 4 3 4 3 4
842
562k
  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
562k
}
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
7.15M
                                  __m256i *const coeffs /* [4] */) {
850
7.15M
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
7.15M
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
7.15M
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
7.15M
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
7.15M
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
7.15M
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
7.15M
  coeffs[2] = _mm256_shuffle_epi32(coeff, 0xaa);
862
  // coeffs 6 7 6 7 6 7 6 7
863
7.15M
  coeffs[3] = _mm256_shuffle_epi32(coeff, 0xff);
864
7.15M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:prepare_coeffs
highbd_convolve_avx2.c:prepare_coeffs
Line
Count
Source
849
1.49M
                                  __m256i *const coeffs /* [4] */) {
850
1.49M
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
1.49M
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
1.49M
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
1.49M
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
1.49M
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
1.49M
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
1.49M
  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.49M
}
convolve_2d_avx2.c:prepare_coeffs
Line
Count
Source
849
57.4k
                                  __m256i *const coeffs /* [4] */) {
850
57.4k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
57.4k
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
57.4k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
57.4k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
57.4k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
57.4k
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
57.4k
  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
57.4k
}
Unexecuted instantiation: convolve_avx2.c:prepare_coeffs
jnt_convolve_avx2.c:prepare_coeffs
Line
Count
Source
849
177k
                                  __m256i *const coeffs /* [4] */) {
850
177k
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
177k
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
177k
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
177k
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
177k
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
177k
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
177k
  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
177k
}
Unexecuted instantiation: wiener_convolve_avx2.c:prepare_coeffs
highbd_convolve_2d_avx2.c:prepare_coeffs
Line
Count
Source
849
4.23M
                                  __m256i *const coeffs /* [4] */) {
850
4.23M
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
4.23M
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
4.23M
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
4.23M
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
4.23M
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
4.23M
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
4.23M
  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
4.23M
}
highbd_jnt_convolve_avx2.c:prepare_coeffs
Line
Count
Source
849
1.19M
                                  __m256i *const coeffs /* [4] */) {
850
1.19M
  const int16_t *filter = av1_get_interp_filter_subpel_kernel(
851
1.19M
      filter_params, subpel_q4 & SUBPEL_MASK);
852
853
1.19M
  const __m128i coeff_8 = _mm_loadu_si128((__m128i *)filter);
854
1.19M
  const __m256i coeff = _mm256_broadcastsi128_si256(coeff_8);
855
856
  // coeffs 0 1 0 1 0 1 0 1
857
1.19M
  coeffs[0] = _mm256_shuffle_epi32(coeff, 0x00);
858
  // coeffs 2 3 2 3 2 3 2 3
859
1.19M
  coeffs[1] = _mm256_shuffle_epi32(coeff, 0x55);
860
  // coeffs 4 5 4 5 4 5 4 5
861
1.19M
  coeffs[2] = _mm256_shuffle_epi32(coeff, 0xaa);
862
  // coeffs 6 7 6 7 6 7 6 7
863
  coeffs[3] = _mm256_shuffle_epi32(coeff, 0xff);
864
1.19M
}
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
4.61M
                                                const __m128i coeffs[2]) {
892
4.61M
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
893
4.61M
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
894
895
4.61M
  return _mm_add_epi16(res_01, res_23);
896
4.61M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_4tap_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_4tap_ssse3
convolve_2d_avx2.c:convolve_lowbd_4tap_ssse3
Line
Count
Source
891
3.53M
                                                const __m128i coeffs[2]) {
892
3.53M
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
893
3.53M
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
894
895
3.53M
  return _mm_add_epi16(res_01, res_23);
896
3.53M
}
convolve_avx2.c:convolve_lowbd_4tap_ssse3
Line
Count
Source
891
1.07M
                                                const __m128i coeffs[2]) {
892
1.07M
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
893
1.07M
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
894
895
1.07M
  return _mm_add_epi16(res_01, res_23);
896
1.07M
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_lowbd_4tap_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_lowbd_4tap_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd_4tap_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd_4tap_ssse3
897
898
static inline __m128i convolve_lowbd_6tap_ssse3(const __m128i ss[3],
899
375k
                                                const __m128i coeffs[3]) {
900
375k
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
901
375k
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
902
375k
  const __m128i res_45 = _mm_maddubs_epi16(ss[2], coeffs[2]);
903
904
375k
  const __m128i res = _mm_add_epi16(_mm_add_epi16(res_01, res_45), res_23);
905
906
375k
  return res;
907
375k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_6tap_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_6tap_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_lowbd_6tap_ssse3
convolve_avx2.c:convolve_lowbd_6tap_ssse3
Line
Count
Source
899
375k
                                                const __m128i coeffs[3]) {
900
375k
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
901
375k
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
902
375k
  const __m128i res_45 = _mm_maddubs_epi16(ss[2], coeffs[2]);
903
904
375k
  const __m128i res = _mm_add_epi16(_mm_add_epi16(res_01, res_45), res_23);
905
906
375k
  return res;
907
375k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_lowbd_6tap_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_lowbd_6tap_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd_6tap_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd_6tap_ssse3
908
909
static inline __m128i convolve_lowbd_ssse3(const __m128i ss[4],
910
28.5k
                                           const __m128i coeffs[4]) {
911
28.5k
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
912
28.5k
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
913
28.5k
  const __m128i res_45 = _mm_maddubs_epi16(ss[2], coeffs[2]);
914
28.5k
  const __m128i res_67 = _mm_maddubs_epi16(ss[3], coeffs[3]);
915
916
28.5k
  const __m128i res = _mm_add_epi16(_mm_add_epi16(res_01, res_45),
917
28.5k
                                    _mm_add_epi16(res_23, res_67));
918
919
28.5k
  return res;
920
28.5k
}
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
28.5k
                                           const __m128i coeffs[4]) {
911
28.5k
  const __m128i res_01 = _mm_maddubs_epi16(ss[0], coeffs[0]);
912
28.5k
  const __m128i res_23 = _mm_maddubs_epi16(ss[1], coeffs[1]);
913
28.5k
  const __m128i res_45 = _mm_maddubs_epi16(ss[2], coeffs[2]);
914
28.5k
  const __m128i res_67 = _mm_maddubs_epi16(ss[3], coeffs[3]);
915
916
28.5k
  const __m128i res = _mm_add_epi16(_mm_add_epi16(res_01, res_45),
917
28.5k
                                    _mm_add_epi16(res_23, res_67));
918
919
28.5k
  return res;
920
28.5k
}
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
26.0M
                                     const __m256i *const coeffs) {
924
26.0M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
925
26.0M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
926
26.0M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
927
26.0M
  const __m256i res_67 = _mm256_maddubs_epi16(s[3], coeffs[3]);
928
929
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
930
26.0M
  const __m256i res = _mm256_add_epi16(_mm256_add_epi16(res_01, res_45),
931
26.0M
                                       _mm256_add_epi16(res_23, res_67));
932
933
26.0M
  return res;
934
26.0M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd
convolve_2d_avx2.c:convolve_lowbd
Line
Count
Source
923
2.81M
                                     const __m256i *const coeffs) {
924
2.81M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
925
2.81M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
926
2.81M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
927
2.81M
  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.81M
  const __m256i res = _mm256_add_epi16(_mm256_add_epi16(res_01, res_45),
931
2.81M
                                       _mm256_add_epi16(res_23, res_67));
932
933
2.81M
  return res;
934
2.81M
}
convolve_avx2.c:convolve_lowbd
Line
Count
Source
923
796k
                                     const __m256i *const coeffs) {
924
796k
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
925
796k
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
926
796k
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
927
796k
  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
796k
  const __m256i res = _mm256_add_epi16(_mm256_add_epi16(res_01, res_45),
931
796k
                                       _mm256_add_epi16(res_23, res_67));
932
933
796k
  return res;
934
796k
}
jnt_convolve_avx2.c:convolve_lowbd
Line
Count
Source
923
5.54M
                                     const __m256i *const coeffs) {
924
5.54M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
925
5.54M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
926
5.54M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
927
5.54M
  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.54M
  const __m256i res = _mm256_add_epi16(_mm256_add_epi16(res_01, res_45),
931
5.54M
                                       _mm256_add_epi16(res_23, res_67));
932
933
5.54M
  return res;
934
5.54M
}
wiener_convolve_avx2.c:convolve_lowbd
Line
Count
Source
923
16.9M
                                     const __m256i *const coeffs) {
924
16.9M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
925
16.9M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
926
16.9M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
927
16.9M
  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
16.9M
  const __m256i res = _mm256_add_epi16(_mm256_add_epi16(res_01, res_45),
931
16.9M
                                       _mm256_add_epi16(res_23, res_67));
932
933
16.9M
  return res;
934
16.9M
}
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd
935
936
static inline __m256i convolve_lowbd_6tap(const __m256i *const s,
937
20.5M
                                          const __m256i *const coeffs) {
938
20.5M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
939
20.5M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
940
20.5M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
941
942
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
943
20.5M
  const __m256i res =
944
20.5M
      _mm256_add_epi16(_mm256_add_epi16(res_01, res_45), res_23);
945
946
20.5M
  return res;
947
20.5M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_6tap
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_6tap
convolve_2d_avx2.c:convolve_lowbd_6tap
Line
Count
Source
937
12.1M
                                          const __m256i *const coeffs) {
938
12.1M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
939
12.1M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
940
12.1M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
941
942
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
943
12.1M
  const __m256i res =
944
12.1M
      _mm256_add_epi16(_mm256_add_epi16(res_01, res_45), res_23);
945
946
12.1M
  return res;
947
12.1M
}
convolve_avx2.c:convolve_lowbd_6tap
Line
Count
Source
937
8.37M
                                          const __m256i *const coeffs) {
938
8.37M
  const __m256i res_01 = _mm256_maddubs_epi16(s[0], coeffs[0]);
939
8.37M
  const __m256i res_23 = _mm256_maddubs_epi16(s[1], coeffs[1]);
940
8.37M
  const __m256i res_45 = _mm256_maddubs_epi16(s[2], coeffs[2]);
941
942
  // order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
943
8.37M
  const __m256i res =
944
8.37M
      _mm256_add_epi16(_mm256_add_epi16(res_01, res_45), res_23);
945
946
8.37M
  return res;
947
8.37M
}
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
6.48M
                                          const __m256i *const coeffs) {
951
6.48M
  const __m256i res_23 = _mm256_maddubs_epi16(s[0], coeffs[0]);
952
6.48M
  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
6.48M
  const __m256i res = _mm256_add_epi16(res_45, res_23);
956
957
6.48M
  return res;
958
6.48M
}
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.33M
                                          const __m256i *const coeffs) {
951
1.33M
  const __m256i res_23 = _mm256_maddubs_epi16(s[0], coeffs[0]);
952
1.33M
  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.33M
  const __m256i res = _mm256_add_epi16(res_45, res_23);
956
957
1.33M
  return res;
958
1.33M
}
convolve_avx2.c:convolve_lowbd_4tap
Line
Count
Source
950
2.11M
                                          const __m256i *const coeffs) {
951
2.11M
  const __m256i res_23 = _mm256_maddubs_epi16(s[0], coeffs[0]);
952
2.11M
  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.11M
  const __m256i res = _mm256_add_epi16(res_45, res_23);
956
957
2.11M
  return res;
958
2.11M
}
jnt_convolve_avx2.c:convolve_lowbd_4tap
Line
Count
Source
950
3.02M
                                          const __m256i *const coeffs) {
951
3.02M
  const __m256i res_23 = _mm256_maddubs_epi16(s[0], coeffs[0]);
952
3.02M
  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
3.02M
  const __m256i res = _mm256_add_epi16(res_45, res_23);
956
957
3.02M
  return res;
958
3.02M
}
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
18.2M
                                    const __m256i *const coeffs) {
962
18.2M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
963
18.2M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
964
18.2M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
965
966
18.2M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1), res_2);
967
968
18.2M
  return res;
969
18.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
18.2M
                                    const __m256i *const coeffs) {
962
18.2M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
963
18.2M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
964
18.2M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
965
966
18.2M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1), res_2);
967
968
18.2M
  return res;
969
18.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
226M
                               const __m256i *const coeffs) {
989
226M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
226M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
226M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
226M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
226M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
226M
                                       _mm256_add_epi32(res_2, res_3));
996
997
226M
  return res;
998
226M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve
highbd_convolve_avx2.c:convolve
Line
Count
Source
988
29.1M
                               const __m256i *const coeffs) {
989
29.1M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
29.1M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
29.1M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
29.1M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
29.1M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
29.1M
                                       _mm256_add_epi32(res_2, res_3));
996
997
29.1M
  return res;
998
29.1M
}
convolve_2d_avx2.c:convolve
Line
Count
Source
988
4.12M
                               const __m256i *const coeffs) {
989
4.12M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
4.12M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
4.12M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
4.12M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
4.12M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
4.12M
                                       _mm256_add_epi32(res_2, res_3));
996
997
4.12M
  return res;
998
4.12M
}
Unexecuted instantiation: convolve_avx2.c:convolve
jnt_convolve_avx2.c:convolve
Line
Count
Source
988
4.10M
                               const __m256i *const coeffs) {
989
4.10M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
4.10M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
4.10M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
4.10M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
4.10M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
4.10M
                                       _mm256_add_epi32(res_2, res_3));
996
997
4.10M
  return res;
998
4.10M
}
wiener_convolve_avx2.c:convolve
Line
Count
Source
988
31.5M
                               const __m256i *const coeffs) {
989
31.5M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
31.5M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
31.5M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
31.5M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
31.5M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
31.5M
                                       _mm256_add_epi32(res_2, res_3));
996
997
31.5M
  return res;
998
31.5M
}
highbd_convolve_2d_avx2.c:convolve
Line
Count
Source
988
98.1M
                               const __m256i *const coeffs) {
989
98.1M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
98.1M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
98.1M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
98.1M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
98.1M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
98.1M
                                       _mm256_add_epi32(res_2, res_3));
996
997
98.1M
  return res;
998
98.1M
}
highbd_jnt_convolve_avx2.c:convolve
Line
Count
Source
988
59.4M
                               const __m256i *const coeffs) {
989
59.4M
  const __m256i res_0 = _mm256_madd_epi16(s[0], coeffs[0]);
990
59.4M
  const __m256i res_1 = _mm256_madd_epi16(s[1], coeffs[1]);
991
59.4M
  const __m256i res_2 = _mm256_madd_epi16(s[2], coeffs[2]);
992
59.4M
  const __m256i res_3 = _mm256_madd_epi16(s[3], coeffs[3]);
993
994
59.4M
  const __m256i res = _mm256_add_epi32(_mm256_add_epi32(res_0, res_1),
995
59.4M
                                       _mm256_add_epi32(res_2, res_3));
996
997
59.4M
  return res;
998
59.4M
}
999
1000
static inline __m256i convolve_4tap(const __m256i *const s,
1001
4.29M
                                    const __m256i *const coeffs) {
1002
4.29M
  const __m256i res_1 = _mm256_madd_epi16(s[0], coeffs[0]);
1003
4.29M
  const __m256i res_2 = _mm256_madd_epi16(s[1], coeffs[1]);
1004
1005
4.29M
  const __m256i res = _mm256_add_epi32(res_1, res_2);
1006
4.29M
  return res;
1007
4.29M
}
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
4.29M
                                    const __m256i *const coeffs) {
1002
4.29M
  const __m256i res_1 = _mm256_madd_epi16(s[0], coeffs[0]);
1003
4.29M
  const __m256i res_2 = _mm256_madd_epi16(s[1], coeffs[1]);
1004
1005
4.29M
  const __m256i res = _mm256_add_epi32(res_1, res_2);
1006
4.29M
  return res;
1007
4.29M
}
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
99.9k
                                                  const __m128i *const filt) {
1012
99.9k
  __m128i s;
1013
99.9k
  s = _mm_shuffle_epi8(data, filt[0]);
1014
1015
99.9k
  return _mm_maddubs_epi16(s, coeffs[0]);
1016
99.9k
}
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
99.9k
                                                  const __m128i *const filt) {
1012
99.9k
  __m128i s;
1013
99.9k
  s = _mm_shuffle_epi8(data, filt[0]);
1014
1015
99.9k
  return _mm_maddubs_epi16(s, coeffs[0]);
1016
99.9k
}
Unexecuted instantiation: convolve_avx2.c:convolve_lowbd_x_2tap_ssse3
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_lowbd_x_2tap_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_lowbd_x_2tap_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd_x_2tap_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd_x_2tap_ssse3
1017
1018
static inline __m128i convolve_lowbd_x_4tap_ssse3(const __m128i data,
1019
                                                  const __m128i *const coeffs,
1020
3.53M
                                                  const __m128i *const filt) {
1021
3.53M
  __m128i s[2];
1022
1023
3.53M
  s[0] = _mm_shuffle_epi8(data, filt[0]);
1024
3.53M
  s[1] = _mm_shuffle_epi8(data, filt[1]);
1025
1026
3.53M
  return convolve_lowbd_4tap_ssse3(s, coeffs);
1027
3.53M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_x_4tap_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_x_4tap_ssse3
convolve_2d_avx2.c:convolve_lowbd_x_4tap_ssse3
Line
Count
Source
1020
3.53M
                                                  const __m128i *const filt) {
1021
3.53M
  __m128i s[2];
1022
1023
3.53M
  s[0] = _mm_shuffle_epi8(data, filt[0]);
1024
3.53M
  s[1] = _mm_shuffle_epi8(data, filt[1]);
1025
1026
3.53M
  return convolve_lowbd_4tap_ssse3(s, coeffs);
1027
3.53M
}
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
25.0M
                                       const __m256i *const filt) {
1032
25.0M
  __m256i s[4];
1033
1034
25.0M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1035
25.0M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1036
25.0M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1037
25.0M
  s[3] = _mm256_shuffle_epi8(data, filt[3]);
1038
1039
25.0M
  return convolve_lowbd(s, coeffs);
1040
25.0M
}
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.81M
                                       const __m256i *const filt) {
1032
2.81M
  __m256i s[4];
1033
1034
2.81M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1035
2.81M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1036
2.81M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1037
2.81M
  s[3] = _mm256_shuffle_epi8(data, filt[3]);
1038
1039
2.81M
  return convolve_lowbd(s, coeffs);
1040
2.81M
}
convolve_avx2.c:convolve_lowbd_x
Line
Count
Source
1031
500k
                                       const __m256i *const filt) {
1032
500k
  __m256i s[4];
1033
1034
500k
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1035
500k
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1036
500k
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1037
500k
  s[3] = _mm256_shuffle_epi8(data, filt[3]);
1038
1039
500k
  return convolve_lowbd(s, coeffs);
1040
500k
}
jnt_convolve_avx2.c:convolve_lowbd_x
Line
Count
Source
1031
4.76M
                                       const __m256i *const filt) {
1032
4.76M
  __m256i s[4];
1033
1034
4.76M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1035
4.76M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1036
4.76M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1037
4.76M
  s[3] = _mm256_shuffle_epi8(data, filt[3]);
1038
1039
4.76M
  return convolve_lowbd(s, coeffs);
1040
4.76M
}
wiener_convolve_avx2.c:convolve_lowbd_x
Line
Count
Source
1031
16.9M
                                       const __m256i *const filt) {
1032
16.9M
  __m256i s[4];
1033
1034
16.9M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1035
16.9M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1036
16.9M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1037
16.9M
  s[3] = _mm256_shuffle_epi8(data, filt[3]);
1038
1039
16.9M
  return convolve_lowbd(s, coeffs);
1040
16.9M
}
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_lowbd_x
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_lowbd_x
1041
1042
static inline __m256i convolve_lowbd_x_6tap(const __m256i data,
1043
                                            const __m256i *const coeffs,
1044
16.8M
                                            const __m256i *const filt) {
1045
16.8M
  __m256i s[4];
1046
1047
16.8M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1048
16.8M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1049
16.8M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1050
1051
16.8M
  return convolve_lowbd_6tap(s, coeffs);
1052
16.8M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_lowbd_x_6tap
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_lowbd_x_6tap
convolve_2d_avx2.c:convolve_lowbd_x_6tap
Line
Count
Source
1044
12.1M
                                            const __m256i *const filt) {
1045
12.1M
  __m256i s[4];
1046
1047
12.1M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1048
12.1M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1049
12.1M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1050
1051
12.1M
  return convolve_lowbd_6tap(s, coeffs);
1052
12.1M
}
convolve_avx2.c:convolve_lowbd_x_6tap
Line
Count
Source
1044
4.76M
                                            const __m256i *const filt) {
1045
4.76M
  __m256i s[4];
1046
1047
4.76M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1048
4.76M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1049
4.76M
  s[2] = _mm256_shuffle_epi8(data, filt[2]);
1050
1051
4.76M
  return convolve_lowbd_6tap(s, coeffs);
1052
4.76M
}
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
4.77M
                                            const __m256i *const filt) {
1057
4.77M
  __m256i s[2];
1058
1059
4.77M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1060
4.77M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1061
1062
4.77M
  return convolve_lowbd_4tap(s, coeffs);
1063
4.77M
}
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.33M
                                            const __m256i *const filt) {
1057
1.33M
  __m256i s[2];
1058
1059
1.33M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1060
1.33M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1061
1062
1.33M
  return convolve_lowbd_4tap(s, coeffs);
1063
1.33M
}
convolve_avx2.c:convolve_lowbd_x_4tap
Line
Count
Source
1056
924k
                                            const __m256i *const filt) {
1057
924k
  __m256i s[2];
1058
1059
924k
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1060
924k
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1061
1062
924k
  return convolve_lowbd_4tap(s, coeffs);
1063
924k
}
jnt_convolve_avx2.c:convolve_lowbd_x_4tap
Line
Count
Source
1056
2.50M
                                            const __m256i *const filt) {
1057
2.50M
  __m256i s[2];
1058
1059
2.50M
  s[0] = _mm256_shuffle_epi8(data, filt[0]);
1060
2.50M
  s[1] = _mm256_shuffle_epi8(data, filt[1]);
1061
1062
2.50M
  return convolve_lowbd_4tap(s, coeffs);
1063
2.50M
}
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
390k
                                            const __m256i *const filt) {
1068
390k
  __m256i s;
1069
390k
  s = _mm256_shuffle_epi8(data, filt[0]);
1070
1071
390k
  return _mm256_maddubs_epi16(s, coeffs[0]);
1072
390k
}
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
390k
                                            const __m256i *const filt) {
1068
390k
  __m256i s;
1069
390k
  s = _mm256_shuffle_epi8(data, filt[0]);
1070
1071
390k
  return _mm256_maddubs_epi16(s, coeffs[0]);
1072
390k
}
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
213M
                               const int use_dist_wtd_comp_avg) {
1092
213M
  __m256i res;
1093
213M
  if (use_dist_wtd_comp_avg) {
1094
1.41M
    const __m256i data_lo = _mm256_unpacklo_epi16(*data_ref_0, *res_unsigned);
1095
1.41M
    const __m256i data_hi = _mm256_unpackhi_epi16(*data_ref_0, *res_unsigned);
1096
1097
1.41M
    const __m256i wt_res_lo = _mm256_madd_epi16(data_lo, *wt);
1098
1.41M
    const __m256i wt_res_hi = _mm256_madd_epi16(data_hi, *wt);
1099
1100
1.41M
    const __m256i res_lo = _mm256_srai_epi32(wt_res_lo, DIST_PRECISION_BITS);
1101
1.41M
    const __m256i res_hi = _mm256_srai_epi32(wt_res_hi, DIST_PRECISION_BITS);
1102
1103
1.41M
    res = _mm256_packs_epi32(res_lo, res_hi);
1104
212M
  } else {
1105
212M
    const __m256i wt_res = _mm256_add_epi16(*data_ref_0, *res_unsigned);
1106
212M
    res = _mm256_srai_epi16(wt_res, 1);
1107
212M
  }
1108
213M
  return res;
1109
213M
}
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
213M
                               const int use_dist_wtd_comp_avg) {
1092
213M
  __m256i res;
1093
213M
  if (use_dist_wtd_comp_avg) {
1094
1.41M
    const __m256i data_lo = _mm256_unpacklo_epi16(*data_ref_0, *res_unsigned);
1095
1.41M
    const __m256i data_hi = _mm256_unpackhi_epi16(*data_ref_0, *res_unsigned);
1096
1097
1.41M
    const __m256i wt_res_lo = _mm256_madd_epi16(data_lo, *wt);
1098
1.41M
    const __m256i wt_res_hi = _mm256_madd_epi16(data_hi, *wt);
1099
1100
1.41M
    const __m256i res_lo = _mm256_srai_epi32(wt_res_lo, DIST_PRECISION_BITS);
1101
1.41M
    const __m256i res_hi = _mm256_srai_epi32(wt_res_hi, DIST_PRECISION_BITS);
1102
1103
1.41M
    res = _mm256_packs_epi32(res_lo, res_hi);
1104
212M
  } else {
1105
212M
    const __m256i wt_res = _mm256_add_epi16(*data_ref_0, *res_unsigned);
1106
212M
    res = _mm256_srai_epi16(wt_res, 1);
1107
212M
  }
1108
213M
  return res;
1109
213M
}
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
212M
                                        const int round_shift) {
1115
212M
  const __m256i res_signed = _mm256_sub_epi16(*res_unsigned, *offset_const);
1116
212M
  const __m256i res_round = _mm256_srai_epi16(
1117
212M
      _mm256_add_epi16(res_signed, *round_const), round_shift);
1118
212M
  return res_round;
1119
212M
}
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
212M
                                        const int round_shift) {
1115
212M
  const __m256i res_signed = _mm256_sub_epi16(*res_unsigned, *offset_const);
1116
212M
  const __m256i res_round = _mm256_srai_epi16(
1117
212M
      _mm256_add_epi16(res_signed, *round_const), round_shift);
1118
212M
  return res_round;
1119
212M
}
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
17.9M
                                      const int use_dist_wtd_comp_avg) {
1126
17.9M
  __m256i res;
1127
17.9M
  if (use_dist_wtd_comp_avg) {
1128
2.27M
    const __m256i wt0_res = _mm256_mullo_epi32(*data_ref_0, *wt0);
1129
2.27M
    const __m256i wt1_res = _mm256_mullo_epi32(*res_unsigned, *wt1);
1130
2.27M
    const __m256i wt_res = _mm256_add_epi32(wt0_res, wt1_res);
1131
2.27M
    res = _mm256_srai_epi32(wt_res, DIST_PRECISION_BITS);
1132
15.6M
  } else {
1133
15.6M
    const __m256i wt_res = _mm256_add_epi32(*data_ref_0, *res_unsigned);
1134
15.6M
    res = _mm256_srai_epi32(wt_res, 1);
1135
15.6M
  }
1136
17.9M
  return res;
1137
17.9M
}
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
17.9M
                                      const int use_dist_wtd_comp_avg) {
1126
17.9M
  __m256i res;
1127
17.9M
  if (use_dist_wtd_comp_avg) {
1128
2.27M
    const __m256i wt0_res = _mm256_mullo_epi32(*data_ref_0, *wt0);
1129
2.27M
    const __m256i wt1_res = _mm256_mullo_epi32(*res_unsigned, *wt1);
1130
2.27M
    const __m256i wt_res = _mm256_add_epi32(wt0_res, wt1_res);
1131
2.27M
    res = _mm256_srai_epi32(wt_res, DIST_PRECISION_BITS);
1132
15.6M
  } else {
1133
15.6M
    const __m256i wt_res = _mm256_add_epi32(*data_ref_0, *res_unsigned);
1134
15.6M
    res = _mm256_srai_epi32(wt_res, 1);
1135
15.6M
  }
1136
17.9M
  return res;
1137
17.9M
}
1138
1139
static inline __m256i highbd_convolve_rounding(
1140
    const __m256i *const res_unsigned, const __m256i *const offset_const,
1141
17.9M
    const __m256i *const round_const, const int round_shift) {
1142
17.9M
  const __m256i res_signed = _mm256_sub_epi32(*res_unsigned, *offset_const);
1143
17.9M
  const __m256i res_round = _mm256_srai_epi32(
1144
17.9M
      _mm256_add_epi32(res_signed, *round_const), round_shift);
1145
1146
17.9M
  return res_round;
1147
17.9M
}
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
17.9M
    const __m256i *const round_const, const int round_shift) {
1142
17.9M
  const __m256i res_signed = _mm256_sub_epi32(*res_unsigned, *offset_const);
1143
17.9M
  const __m256i res_round = _mm256_srai_epi32(
1144
17.9M
      _mm256_add_epi32(res_signed, *round_const), round_shift);
1145
1146
17.9M
  return res_round;
1147
17.9M
}
1148
1149
6.46M
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
6.46M
  const __m256i value = _mm256_set1_epi16(34);
1156
6.46M
  const __m256i reg = _mm256_add_epi16(data, value);
1157
6.46M
  return _mm256_srai_epi16(reg, 6);
1158
6.46M
}
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
6.46M
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
6.46M
  const __m256i value = _mm256_set1_epi16(34);
1156
6.46M
  const __m256i reg = _mm256_add_epi16(data, value);
1157
6.46M
  return _mm256_srai_epi16(reg, 6);
1158
6.46M
}
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
652k
                                                __m128i *const coeffs) {
1163
652k
  __m128i data[2];
1164
652k
  const __m128i f_l0 = _mm_load_si128((__m128i const *)filt1_global_sse2);
1165
652k
  const __m128i f_l1 = _mm_load_si128((__m128i const *)filt2_global_sse2);
1166
652k
  const __m128i src_1 =
1167
652k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * src_stride));
1168
1169
652k
  data[0] = _mm_shuffle_epi8(src_1, f_l0);
1170
652k
  data[1] = _mm_shuffle_epi8(src_1, f_l1);
1171
652k
  return convolve_lowbd_4tap_ssse3(data, coeffs);
1172
652k
}
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
652k
                                                __m128i *const coeffs) {
1163
652k
  __m128i data[2];
1164
652k
  const __m128i f_l0 = _mm_load_si128((__m128i const *)filt1_global_sse2);
1165
652k
  const __m128i f_l1 = _mm_load_si128((__m128i const *)filt2_global_sse2);
1166
652k
  const __m128i src_1 =
1167
652k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * src_stride));
1168
1169
652k
  data[0] = _mm_shuffle_epi8(src_1, f_l0);
1170
652k
  data[1] = _mm_shuffle_epi8(src_1, f_l1);
1171
652k
  return convolve_lowbd_4tap_ssse3(data, coeffs);
1172
652k
}
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
858k
static inline __m128i round_sr_x_ssse3(const __m128i data) {
1175
858k
  const __m128i val = _mm_set1_epi16(34);
1176
858k
  const __m128i reg = _mm_add_epi16(data, val);
1177
858k
  return _mm_srai_epi16(reg, 6);
1178
858k
}
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
858k
static inline __m128i round_sr_x_ssse3(const __m128i data) {
1175
858k
  const __m128i val = _mm_set1_epi16(34);
1176
858k
  const __m128i reg = _mm_add_epi16(data, val);
1177
858k
  return _mm_srai_epi16(reg, 6);
1178
858k
}
Unexecuted instantiation: jnt_convolve_avx2.c:round_sr_x_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:round_sr_x_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:round_sr_x_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:round_sr_x_ssse3
1179
1180
static inline void store_8bit_4x2_sse2(const __m128i reg, uint8_t *const dst,
1181
1.28M
                                       const ptrdiff_t dst_stride) {
1182
1.28M
  xx_storel_32(dst, reg);
1183
1.28M
  *(uint32_t *)(dst + dst_stride) =
1184
1.28M
      ((uint32_t)_mm_extract_epi16(reg, 3) << 16) | _mm_extract_epi16(reg, 2);
1185
1.28M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:store_8bit_4x2_sse2
Unexecuted instantiation: highbd_convolve_avx2.c:store_8bit_4x2_sse2
Unexecuted instantiation: convolve_2d_avx2.c:store_8bit_4x2_sse2
convolve_avx2.c:store_8bit_4x2_sse2
Line
Count
Source
1181
1.28M
                                       const ptrdiff_t dst_stride) {
1182
1.28M
  xx_storel_32(dst, reg);
1183
1.28M
  *(uint32_t *)(dst + dst_stride) =
1184
1.28M
      ((uint32_t)_mm_extract_epi16(reg, 3) << 16) | _mm_extract_epi16(reg, 2);
1185
1.28M
}
Unexecuted instantiation: jnt_convolve_avx2.c:store_8bit_4x2_sse2
Unexecuted instantiation: wiener_convolve_avx2.c:store_8bit_4x2_sse2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:store_8bit_4x2_sse2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:store_8bit_4x2_sse2
1186
1187
static inline void pack_store_u8_4x2_sse2(const __m128i reg, uint8_t *const dst,
1188
1.28M
                                          const ptrdiff_t dst_stride) {
1189
1.28M
  const __m128i reg_pack = _mm_packus_epi16(reg, reg);
1190
1.28M
  store_8bit_4x2_sse2(reg_pack, dst, dst_stride);
1191
1.28M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:pack_store_u8_4x2_sse2
Unexecuted instantiation: highbd_convolve_avx2.c:pack_store_u8_4x2_sse2
Unexecuted instantiation: convolve_2d_avx2.c:pack_store_u8_4x2_sse2
convolve_avx2.c:pack_store_u8_4x2_sse2
Line
Count
Source
1188
1.28M
                                          const ptrdiff_t dst_stride) {
1189
1.28M
  const __m128i reg_pack = _mm_packus_epi16(reg, reg);
1190
1.28M
  store_8bit_4x2_sse2(reg_pack, dst, dst_stride);
1191
1.28M
}
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
128k
                                                __m128i *const coeffs) {
1196
128k
  __m128i data[2];
1197
128k
  const __m128i f_0 = _mm_load_si128((__m128i const *)filt3_global_sse2);
1198
128k
  const __m128i f_1 = _mm_load_si128((__m128i const *)filt4_global_sse2);
1199
128k
  const __m128i reg =
1200
128k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * src_stride));
1201
1202
128k
  data[0] = _mm_shuffle_epi8(reg, f_0);
1203
128k
  data[1] = _mm_shuffle_epi8(reg, f_1);
1204
128k
  return convolve_lowbd_4tap_ssse3(data, coeffs);
1205
128k
}
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
128k
                                                __m128i *const coeffs) {
1196
128k
  __m128i data[2];
1197
128k
  const __m128i f_0 = _mm_load_si128((__m128i const *)filt3_global_sse2);
1198
128k
  const __m128i f_1 = _mm_load_si128((__m128i const *)filt4_global_sse2);
1199
128k
  const __m128i reg =
1200
128k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * src_stride));
1201
1202
128k
  data[0] = _mm_shuffle_epi8(reg, f_0);
1203
128k
  data[1] = _mm_shuffle_epi8(reg, f_1);
1204
128k
  return convolve_lowbd_4tap_ssse3(data, coeffs);
1205
128k
}
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
246k
                                          const ptrdiff_t dst_stride) {
1209
246k
  const __m128i data = _mm_packus_epi16(reg, reg);
1210
246k
  *(int16_t *)dst = (int16_t)_mm_cvtsi128_si32(data);
1211
246k
  *(int16_t *)(dst + dst_stride) = (int16_t)_mm_extract_epi16(data, 1);
1212
246k
}
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
246k
                                          const ptrdiff_t dst_stride) {
1209
246k
  const __m128i data = _mm_packus_epi16(reg, reg);
1210
246k
  *(int16_t *)dst = (int16_t)_mm_cvtsi128_si32(data);
1211
  *(int16_t *)(dst + dst_stride) = (int16_t)_mm_extract_epi16(data, 1);
1212
246k
}
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
77.6k
                                            const __m128i *coeff) {
1216
77.6k
  return _mm_maddubs_epi16(data[0], coeff[0]);
1217
77.6k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_x_2tap_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_x_2tap_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_x_2tap_ssse3
convolve_avx2.c:convolve_x_2tap_ssse3
Line
Count
Source
1215
77.6k
                                            const __m128i *coeff) {
1216
77.6k
  return _mm_maddubs_epi16(data[0], coeff[0]);
1217
77.6k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_x_2tap_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_x_2tap_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_x_2tap_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_x_2tap_ssse3
1218
1219
static inline __m128i load8_x_4x2_sse4(const void *const src,
1220
17.4k
                                       const ptrdiff_t offset) {
1221
17.4k
  const __m128i s = _mm_cvtsi32_si128(loadu_int32(src));
1222
17.4k
  return _mm_insert_epi32(s, loadu_int32((uint8_t *)src + offset), 1);
1223
17.4k
}
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
17.4k
                                       const ptrdiff_t offset) {
1221
17.4k
  const __m128i s = _mm_cvtsi32_si128(loadu_int32(src));
1222
  return _mm_insert_epi32(s, loadu_int32((uint8_t *)src + offset), 1);
1223
17.4k
}
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
17.4k
                                         const ptrdiff_t stride) {
1227
17.4k
  return load8_x_4x2_sse4(src, sizeof(*src) * stride);
1228
17.4k
}
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
17.4k
                                         const ptrdiff_t stride) {
1227
17.4k
  return load8_x_4x2_sse4(src, sizeof(*src) * stride);
1228
17.4k
}
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
7.70k
                                                const __m128i *coeffs) {
1233
7.70k
  const __m128i flt = _mm_load_si128((__m128i const *)filt5_global_sse2);
1234
7.70k
  const __m128i reg = load_x_u8_4x2_sse4(src, stride);
1235
7.70k
  const __m128i data = _mm_shuffle_epi8(reg, flt);
1236
7.70k
  return convolve_x_2tap_ssse3(&data, coeffs);
1237
7.70k
}
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
7.70k
                                                const __m128i *coeffs) {
1233
7.70k
  const __m128i flt = _mm_load_si128((__m128i const *)filt5_global_sse2);
1234
7.70k
  const __m128i reg = load_x_u8_4x2_sse4(src, stride);
1235
7.70k
  const __m128i data = _mm_shuffle_epi8(reg, flt);
1236
7.70k
  return convolve_x_2tap_ssse3(&data, coeffs);
1237
7.70k
}
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
25.6k
                                                const __m128i *coeffs) {
1242
25.6k
  const __m128i flt = _mm_load_si128((__m128i const *)filt1_global_sse2);
1243
25.6k
  const __m128i data =
1244
25.6k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * stride));
1245
25.6k
  const __m128i res = _mm_shuffle_epi8(data, flt);
1246
25.6k
  return convolve_x_2tap_ssse3(&res, coeffs);
1247
25.6k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_x_2tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_x_2tap_4x2_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_x_2tap_4x2_ssse3
convolve_avx2.c:convolve_x_2tap_4x2_ssse3
Line
Count
Source
1241
25.6k
                                                const __m128i *coeffs) {
1242
25.6k
  const __m128i flt = _mm_load_si128((__m128i const *)filt1_global_sse2);
1243
25.6k
  const __m128i data =
1244
25.6k
      load_8bit_8x2_to_1_reg_sse2(src, (int)(sizeof(*src) * stride));
1245
25.6k
  const __m128i res = _mm_shuffle_epi8(data, flt);
1246
25.6k
  return convolve_x_2tap_ssse3(&res, coeffs);
1247
25.6k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_x_2tap_4x2_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_x_2tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_x_2tap_4x2_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_x_2tap_4x2_ssse3
1248
1249
static inline void convolve_x_2tap_8x2_ssse3(const uint8_t *const src,
1250
                                             const ptrdiff_t stride,
1251
                                             const __m128i *coeffs,
1252
22.1k
                                             __m128i *data) {
1253
22.1k
  __m128i res[2];
1254
22.1k
  const __m128i reg_00 = _mm_loadu_si128((__m128i *)src);
1255
22.1k
  const __m128i reg_10 = _mm_loadu_si128((__m128i *)(src + stride));
1256
22.1k
  const __m128i reg_01 = _mm_srli_si128(reg_00, 1);
1257
22.1k
  const __m128i reg_11 = _mm_srli_si128(reg_10, 1);
1258
22.1k
  res[0] = _mm_unpacklo_epi8(reg_00, reg_01);
1259
22.1k
  res[1] = _mm_unpacklo_epi8(reg_10, reg_11);
1260
1261
22.1k
  data[0] = convolve_x_2tap_ssse3(&res[0], coeffs);
1262
22.1k
  data[1] = convolve_x_2tap_ssse3(&res[1], coeffs);
1263
22.1k
}
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
22.1k
                                             __m128i *data) {
1253
22.1k
  __m128i res[2];
1254
22.1k
  const __m128i reg_00 = _mm_loadu_si128((__m128i *)src);
1255
22.1k
  const __m128i reg_10 = _mm_loadu_si128((__m128i *)(src + stride));
1256
22.1k
  const __m128i reg_01 = _mm_srli_si128(reg_00, 1);
1257
22.1k
  const __m128i reg_11 = _mm_srli_si128(reg_10, 1);
1258
22.1k
  res[0] = _mm_unpacklo_epi8(reg_00, reg_01);
1259
22.1k
  res[1] = _mm_unpacklo_epi8(reg_10, reg_11);
1260
1261
22.1k
  data[0] = convolve_x_2tap_ssse3(&res[0], coeffs);
1262
22.1k
  data[1] = convolve_x_2tap_ssse3(&res[1], coeffs);
1263
22.1k
}
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
1.02M
                                             const ptrdiff_t offset) {
1267
1.02M
  const __m128i reg0 = _mm_loadu_si128((__m128i *)src);
1268
1.02M
  const __m128i reg1 = _mm_loadu_si128((__m128i *)((uint8_t *)src + offset));
1269
1.02M
  return _mm256_setr_m128i(reg0, reg1);
1270
1.02M
}
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
1.02M
                                             const ptrdiff_t offset) {
1267
1.02M
  const __m128i reg0 = _mm_loadu_si128((__m128i *)src);
1268
1.02M
  const __m128i reg1 = _mm_loadu_si128((__m128i *)((uint8_t *)src + offset));
1269
1.02M
  return _mm256_setr_m128i(reg0, reg1);
1270
1.02M
}
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
275k
                                           const __m256i *coeffs) {
1274
275k
  return _mm256_maddubs_epi16(data[0], coeffs[0]);
1275
275k
}
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
275k
                                           const __m256i *coeffs) {
1274
275k
  return _mm256_maddubs_epi16(data[0], coeffs[0]);
1275
275k
}
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
15.6k
                                             __m256i *data) {
1281
15.6k
  const __m256i reg0 = loadu_x_8bit_16x2_avx2(src, stride);
1282
15.6k
  const __m256i reg1 = loadu_x_8bit_16x2_avx2(src + 1, stride);
1283
15.6k
  const __m256i res0 = _mm256_unpacklo_epi8(reg0, reg1);
1284
15.6k
  const __m256i res1 = _mm256_unpackhi_epi8(reg0, reg1);
1285
15.6k
  data[0] = convolve_x_2tap_avx2(&res0, coeffs);
1286
15.6k
  data[1] = convolve_x_2tap_avx2(&res1, coeffs);
1287
15.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
15.6k
                                             __m256i *data) {
1281
15.6k
  const __m256i reg0 = loadu_x_8bit_16x2_avx2(src, stride);
1282
15.6k
  const __m256i reg1 = loadu_x_8bit_16x2_avx2(src + 1, stride);
1283
15.6k
  const __m256i res0 = _mm256_unpacklo_epi8(reg0, reg1);
1284
15.6k
  const __m256i res1 = _mm256_unpackhi_epi8(reg0, reg1);
1285
15.6k
  data[0] = convolve_x_2tap_avx2(&res0, coeffs);
1286
15.6k
  data[1] = convolve_x_2tap_avx2(&res1, coeffs);
1287
15.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.36M
                                      const ptrdiff_t stride) {
1291
2.36M
  const __m128i reg0 = _mm256_castsi256_si128(src);
1292
2.36M
  const __m128i reg1 = _mm256_extracti128_si256(src, 1);
1293
2.36M
  _mm_storeu_si128((__m128i *)dst, reg0);
1294
2.36M
  _mm_storeu_si128((__m128i *)((uint8_t *)dst + stride), reg1);
1295
2.36M
}
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.36M
                                      const ptrdiff_t stride) {
1291
2.36M
  const __m128i reg0 = _mm256_castsi256_si128(src);
1292
  const __m128i reg1 = _mm256_extracti128_si256(src, 1);
1293
2.36M
  _mm_storeu_si128((__m128i *)dst, reg0);
1294
2.36M
  _mm_storeu_si128((__m128i *)((uint8_t *)dst + stride), reg1);
1295
2.36M
}
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
675k
                                     const ptrdiff_t stride) {
1299
675k
  const __m128i reg0 = _mm256_castsi256_si128(src);
1300
675k
  const __m128i reg1 = _mm256_extracti128_si256(src, 1);
1301
675k
  _mm_storel_epi64((__m128i *)dst, reg0);
1302
675k
  _mm_storel_epi64((__m128i *)(dst + stride), reg1);
1303
675k
}
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
675k
                                     const ptrdiff_t stride) {
1299
675k
  const __m128i reg0 = _mm256_castsi256_si128(src);
1300
  const __m128i reg1 = _mm256_extracti128_si256(src, 1);
1301
675k
  _mm_storel_epi64((__m128i *)dst, reg0);
1302
675k
  _mm_storel_epi64((__m128i *)(dst + stride), reg1);
1303
675k
}
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.36M
                                        const ptrdiff_t stride) {
1308
2.36M
  const __m256i res = _mm256_packus_epi16(data0, data1);
1309
2.36M
  store_u8_16x2_avx2(res, dst, stride);
1310
2.36M
}
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.36M
                                        const ptrdiff_t stride) {
1308
2.36M
  const __m256i res = _mm256_packus_epi16(data0, data1);
1309
2.36M
  store_u8_16x2_avx2(res, dst, stride);
1310
2.36M
}
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
675k
                                       const ptrdiff_t stride) {
1314
675k
  const __m256i res = _mm256_packus_epi16(data, data);
1315
675k
  store_u8_8x2_avx2(res, dst, stride);
1316
675k
}
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
675k
                                       const ptrdiff_t stride) {
1314
675k
  const __m256i res = _mm256_packus_epi16(data, data);
1315
675k
  store_u8_8x2_avx2(res, dst, stride);
1316
675k
}
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
512k
                                              const ptrdiff_t dst_stride) {
1321
512k
  __m256i reg[2];
1322
1323
512k
  reg[0] = round_sr_x_avx2(data[0]);
1324
512k
  reg[1] = round_sr_x_avx2(data[1]);
1325
512k
  pack_store_16x2_avx2(reg[0], reg[1], dst, dst_stride);
1326
512k
}
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
512k
                                              const ptrdiff_t dst_stride) {
1321
512k
  __m256i reg[2];
1322
1323
512k
  reg[0] = round_sr_x_avx2(data[0]);
1324
512k
  reg[1] = round_sr_x_avx2(data[1]);
1325
512k
  pack_store_16x2_avx2(reg[0], reg[1], dst, dst_stride);
1326
512k
}
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
122k
                                           __m256i *data) {
1331
122k
  const __m256i res0 = _mm256_loadu_si256((__m256i *)src);
1332
122k
  const __m256i res1 = _mm256_loadu_si256((__m256i *)(src + 1));
1333
122k
  const __m256i reg0 = _mm256_unpacklo_epi8(res0, res1);
1334
122k
  const __m256i reg1 = _mm256_unpackhi_epi8(res0, res1);
1335
1336
122k
  data[0] = convolve_x_2tap_avx2(&reg0, coeffs);
1337
122k
  data[1] = convolve_x_2tap_avx2(&reg1, coeffs);
1338
122k
}
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
122k
                                           __m256i *data) {
1331
122k
  const __m256i res0 = _mm256_loadu_si256((__m256i *)src);
1332
122k
  const __m256i res1 = _mm256_loadu_si256((__m256i *)(src + 1));
1333
122k
  const __m256i reg0 = _mm256_unpacklo_epi8(res0, res1);
1334
122k
  const __m256i reg1 = _mm256_unpackhi_epi8(res0, res1);
1335
1336
122k
  data[0] = convolve_x_2tap_avx2(&reg0, coeffs);
1337
122k
  data[1] = convolve_x_2tap_avx2(&reg1, coeffs);
1338
122k
}
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.40M
                                      uint8_t *const dst) {
1342
2.40M
  const __m256i reg = _mm256_packus_epi16(data0, data1);
1343
2.40M
  _mm256_storeu_si256((__m256i *)dst, reg);
1344
2.40M
}
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.40M
                                      uint8_t *const dst) {
1342
2.40M
  const __m256i reg = _mm256_packus_epi16(data0, data1);
1343
2.40M
  _mm256_storeu_si256((__m256i *)dst, reg);
1344
2.40M
}
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.93M
                                            uint8_t *const dst) {
1348
1.93M
  __m256i reg[2];
1349
1350
1.93M
  reg[0] = round_sr_x_avx2(data[0]);
1351
1.93M
  reg[1] = round_sr_x_avx2(data[1]);
1352
1.93M
  pack_store_32_avx2(reg[0], reg[1], dst);
1353
1.93M
}
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.93M
                                            uint8_t *const dst) {
1348
1.93M
  __m256i reg[2];
1349
1350
1.93M
  reg[0] = round_sr_x_avx2(data[0]);
1351
1.93M
  reg[1] = round_sr_x_avx2(data[1]);
1352
1.93M
  pack_store_32_avx2(reg[0], reg[1], dst);
1353
1.93M
}
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
122k
                                               uint8_t *const dst) {
1358
122k
  __m256i data[2];
1359
1360
122k
  convolve_x_2tap_32_avx2(src, coeffs, data);
1361
122k
  round_pack_store_32_avx2(data, dst);
1362
122k
}
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
122k
                                               uint8_t *const dst) {
1358
122k
  __m256i data[2];
1359
1360
122k
  convolve_x_2tap_32_avx2(src, coeffs, data);
1361
122k
  round_pack_store_32_avx2(data, dst);
1362
122k
}
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
94.9k
                                               uint8_t *const dst) {
1366
94.9k
  const __m256i res0 = _mm256_loadu_si256((__m256i *)src);
1367
94.9k
  const __m256i res1 = _mm256_loadu_si256((__m256i *)(src + 1));
1368
94.9k
  const __m256i data = _mm256_avg_epu8(res0, res1);
1369
94.9k
  _mm256_storeu_si256((__m256i *)dst, data);
1370
94.9k
}
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
94.9k
                                               uint8_t *const dst) {
1366
94.9k
  const __m256i res0 = _mm256_loadu_si256((__m256i *)src);
1367
94.9k
  const __m256i res1 = _mm256_loadu_si256((__m256i *)(src + 1));
1368
94.9k
  const __m256i data = _mm256_avg_epu8(res0, res1);
1369
94.9k
  _mm256_storeu_si256((__m256i *)dst, data);
1370
94.9k
}
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
81.6k
                                                  const __m256i *flt) {
1376
81.6k
  const __m256i res = loadu_x_8bit_16x2_avx2(src, stride);
1377
81.6k
  return convolve_lowbd_x(res, coeffs, flt);
1378
81.6k
}
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
81.6k
                                                  const __m256i *flt) {
1376
81.6k
  const __m256i res = loadu_x_8bit_16x2_avx2(src, stride);
1377
81.6k
  return convolve_lowbd_x(res, coeffs, flt);
1378
81.6k
}
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
40.8k
                                                __m256i *reg) {
1385
40.8k
  reg[0] = load_convolve_8tap_8x2_avx2(src + 0, src_stride, coeffs, flt);
1386
40.8k
  reg[1] = load_convolve_8tap_8x2_avx2(src + 8, src_stride, coeffs, flt);
1387
40.8k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:load_convolve_8tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:load_convolve_8tap_16x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:load_convolve_8tap_16x2_avx2
convolve_avx2.c:load_convolve_8tap_16x2_avx2
Line
Count
Source
1384
40.8k
                                                __m256i *reg) {
1385
40.8k
  reg[0] = load_convolve_8tap_8x2_avx2(src + 0, src_stride, coeffs, flt);
1386
40.8k
  reg[1] = load_convolve_8tap_8x2_avx2(src + 8, src_stride, coeffs, flt);
1387
40.8k
}
Unexecuted instantiation: jnt_convolve_avx2.c:load_convolve_8tap_16x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:load_convolve_8tap_16x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:load_convolve_8tap_16x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:load_convolve_8tap_16x2_avx2
1388
1389
static inline void load_convolve_8tap_32_avx2(const uint8_t *const src,
1390
                                              const __m256i *coeffs,
1391
                                              const __m256i *filt,
1392
184k
                                              __m256i *data) {
1393
184k
  const __m256i reg_0 = _mm256_loadu_si256((__m256i *)src);
1394
184k
  const __m256i reg_8 = _mm256_loadu_si256((__m256i *)(src + 8));
1395
1396
184k
  data[0] = convolve_lowbd_x(reg_0, coeffs, filt);
1397
184k
  data[1] = convolve_lowbd_x(reg_8, coeffs, filt);
1398
184k
}
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
184k
                                              __m256i *data) {
1393
184k
  const __m256i reg_0 = _mm256_loadu_si256((__m256i *)src);
1394
184k
  const __m256i reg_8 = _mm256_loadu_si256((__m256i *)(src + 8));
1395
1396
184k
  data[0] = convolve_lowbd_x(reg_0, coeffs, filt);
1397
184k
  data[1] = convolve_lowbd_x(reg_8, coeffs, filt);
1398
184k
}
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
184k
                                                    uint8_t *const dst) {
1404
184k
  __m256i data[2];
1405
1406
184k
  load_convolve_8tap_32_avx2(src, coeffs, filt, data);
1407
184k
  round_pack_store_32_avx2(data, dst);
1408
184k
}
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
184k
                                                    uint8_t *const dst) {
1404
184k
  __m256i data[2];
1405
1406
184k
  load_convolve_8tap_32_avx2(src, coeffs, filt, data);
1407
184k
  round_pack_store_32_avx2(data, dst);
1408
184k
}
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.62M
                                              __m256i *data) {
1414
1.62M
  const __m256i reg0 = _mm256_loadu_si256((__m256i *)src);
1415
1.62M
  const __m256i reg1 = _mm256_loadu_si256((__m256i *)(src + 8));
1416
1417
1.62M
  data[0] = convolve_lowbd_x_6tap(reg0, coeffs, filt);
1418
1.62M
  data[1] = convolve_lowbd_x_6tap(reg1, coeffs, filt);
1419
1.62M
}
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.62M
                                              __m256i *data) {
1414
1.62M
  const __m256i reg0 = _mm256_loadu_si256((__m256i *)src);
1415
1.62M
  const __m256i reg1 = _mm256_loadu_si256((__m256i *)(src + 8));
1416
1417
1.62M
  data[0] = convolve_lowbd_x_6tap(reg0, coeffs, filt);
1418
1.62M
  data[1] = convolve_lowbd_x_6tap(reg1, coeffs, filt);
1419
1.62M
}
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.62M
                                                  uint8_t *const dst) {
1425
1.62M
  __m256i data[2];
1426
1427
1.62M
  load_convolve_6tap_32_avx2(src, coeffs, filt, data);
1428
1.62M
  round_pack_store_32_avx2(data, dst);
1429
1.62M
}
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.62M
                                                  uint8_t *const dst) {
1425
1.62M
  __m256i data[2];
1426
1427
1.62M
  load_convolve_6tap_32_avx2(src, coeffs, filt, data);
1428
1.62M
  round_pack_store_32_avx2(data, dst);
1429
1.62M
}
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
912k
                                                  const __m256i *filt) {
1435
912k
  const __m256i data = loadu_x_8bit_16x2_avx2(src, stride);
1436
912k
  return convolve_lowbd_x_6tap(data, coeffs, filt);
1437
912k
}
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
912k
                                                  const __m256i *filt) {
1435
912k
  const __m256i data = loadu_x_8bit_16x2_avx2(src, stride);
1436
912k
  return convolve_lowbd_x_6tap(data, coeffs, filt);
1437
912k
}
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
456k
                                                __m256i *data) {
1444
456k
  data[0] = load_convolve_6tap_8x2_avx2(src + 0, src_stride, coeffs, filt);
1445
456k
  data[1] = load_convolve_6tap_8x2_avx2(src + 8, src_stride, coeffs, filt);
1446
456k
}
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
456k
                                                __m256i *data) {
1444
456k
  data[0] = load_convolve_6tap_8x2_avx2(src + 0, src_stride, coeffs, filt);
1445
456k
  data[1] = load_convolve_6tap_8x2_avx2(src + 8, src_stride, coeffs, filt);
1446
456k
}
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
721k
static inline __m128i round_sr_y_ssse3(const __m128i data) {
1449
721k
  const __m128i value = _mm_set1_epi16(32);
1450
721k
  const __m128i reg = _mm_add_epi16(data, value);
1451
721k
  return _mm_srai_epi16(reg, FILTER_BITS - 1);
1452
721k
}
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
721k
static inline __m128i round_sr_y_ssse3(const __m128i data) {
1449
721k
  const __m128i value = _mm_set1_epi16(32);
1450
721k
  const __m128i reg = _mm_add_epi16(data, value);
1451
721k
  return _mm_srai_epi16(reg, FILTER_BITS - 1);
1452
721k
}
Unexecuted instantiation: jnt_convolve_avx2.c:round_sr_y_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:round_sr_y_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:round_sr_y_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:round_sr_y_ssse3
1453
1454
5.31M
static inline __m256i round_sr_y_avx2(const __m256i data) {
1455
5.31M
  const __m256i value = _mm256_set1_epi16(32);
1456
5.31M
  const __m256i reg = _mm256_add_epi16(data, value);
1457
5.31M
  return _mm256_srai_epi16(reg, FILTER_BITS - 1);
1458
5.31M
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:round_sr_y_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:round_sr_y_avx2
Unexecuted instantiation: convolve_2d_avx2.c:round_sr_y_avx2
convolve_avx2.c:round_sr_y_avx2
Line
Count
Source
1454
5.31M
static inline __m256i round_sr_y_avx2(const __m256i data) {
1455
5.31M
  const __m256i value = _mm256_set1_epi16(32);
1456
5.31M
  const __m256i reg = _mm256_add_epi16(data, value);
1457
5.31M
  return _mm256_srai_epi16(reg, FILTER_BITS - 1);
1458
5.31M
}
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
675k
                                               const ptrdiff_t dst_stride) {
1463
675k
  __m256i r;
1464
1465
675k
  r = round_sr_y_avx2(res);
1466
675k
  pack_store_8x2_avx2(r, dst, dst_stride);
1467
675k
}
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
675k
                                               const ptrdiff_t dst_stride) {
1463
675k
  __m256i r;
1464
1465
675k
  r = round_sr_y_avx2(res);
1466
675k
  pack_store_8x2_avx2(r, dst, dst_stride);
1467
675k
}
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.85M
                                                const ptrdiff_t dst_stride) {
1472
1.85M
  __m256i r[2];
1473
1474
1.85M
  r[0] = round_sr_y_avx2(res[0]);
1475
1.85M
  r[1] = round_sr_y_avx2(res[1]);
1476
1.85M
  pack_store_16x2_avx2(r[0], r[1], dst, dst_stride);
1477
1.85M
}
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.85M
                                                const ptrdiff_t dst_stride) {
1472
1.85M
  __m256i r[2];
1473
1474
1.85M
  r[0] = round_sr_y_avx2(res[0]);
1475
1.85M
  r[1] = round_sr_y_avx2(res[1]);
1476
1.85M
  pack_store_16x2_avx2(r[0], r[1], dst, dst_stride);
1477
1.85M
}
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
464k
                                              uint8_t *const dst) {
1481
464k
  __m256i r[2];
1482
1483
464k
  r[0] = round_sr_y_avx2(res[0]);
1484
464k
  r[1] = round_sr_y_avx2(res[1]);
1485
464k
  pack_store_32_avx2(r[0], r[1], dst);
1486
464k
}
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
464k
                                              uint8_t *const dst) {
1481
464k
  __m256i r[2];
1482
1483
464k
  r[0] = round_sr_y_avx2(res[0]);
1484
464k
  r[1] = round_sr_y_avx2(res[1]);
1485
464k
  pack_store_32_avx2(r[0], r[1], dst);
1486
464k
}
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
232k
                                                const ptrdiff_t dst_stride) {
1491
232k
  round_pack_store_y_32_avx2(res, dst);
1492
232k
  round_pack_store_y_32_avx2(res + 2, dst + dst_stride);
1493
232k
}
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
232k
                                                const ptrdiff_t dst_stride) {
1491
232k
  round_pack_store_y_32_avx2(res, dst);
1492
232k
  round_pack_store_y_32_avx2(res + 2, dst + dst_stride);
1493
232k
}
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.37k
                                             __m128i d[2], __m128i *res) {
1499
4.37k
  d[1] = _mm_cvtsi32_si128(loadu_int16(data + 1 * stride));
1500
4.37k
  const __m128i src_01a = _mm_unpacklo_epi16(d[0], d[1]);
1501
4.37k
  d[0] = _mm_cvtsi32_si128(loadu_int16(data + 2 * stride));
1502
4.37k
  const __m128i src_12a = _mm_unpacklo_epi16(d[1], d[0]);
1503
1504
4.37k
  const __m128i s = _mm_unpacklo_epi8(src_01a, src_12a);
1505
1506
4.37k
  *res = _mm_maddubs_epi16(s, coeffs[0]);
1507
4.37k
}
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.37k
                                             __m128i d[2], __m128i *res) {
1499
4.37k
  d[1] = _mm_cvtsi32_si128(loadu_int16(data + 1 * stride));
1500
4.37k
  const __m128i src_01a = _mm_unpacklo_epi16(d[0], d[1]);
1501
4.37k
  d[0] = _mm_cvtsi32_si128(loadu_int16(data + 2 * stride));
1502
4.37k
  const __m128i src_12a = _mm_unpacklo_epi16(d[1], d[0]);
1503
1504
4.37k
  const __m128i s = _mm_unpacklo_epi8(src_01a, src_12a);
1505
1506
4.37k
  *res = _mm_maddubs_epi16(s, coeffs[0]);
1507
4.37k
}
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
47.2k
                                             __m128i *res) {
1514
47.2k
  d[3] = _mm_cvtsi32_si128(loadu_int16(data + 3 * stride));
1515
47.2k
  const __m128i src_23a = _mm_unpacklo_epi16(d[2], d[3]);
1516
47.2k
  d[2] = _mm_cvtsi32_si128(loadu_int16(data + 4 * stride));
1517
47.2k
  const __m128i src_34a = _mm_unpacklo_epi16(d[3], d[2]);
1518
1519
47.2k
  s[1] = _mm_unpacklo_epi8(src_23a, src_34a);
1520
1521
47.2k
  *res = convolve_lowbd_4tap_ssse3(s, coeffs);
1522
47.2k
}
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
47.2k
                                             __m128i *res) {
1514
47.2k
  d[3] = _mm_cvtsi32_si128(loadu_int16(data + 3 * stride));
1515
47.2k
  const __m128i src_23a = _mm_unpacklo_epi16(d[2], d[3]);
1516
47.2k
  d[2] = _mm_cvtsi32_si128(loadu_int16(data + 4 * stride));
1517
47.2k
  const __m128i src_34a = _mm_unpacklo_epi16(d[3], d[2]);
1518
1519
47.2k
  s[1] = _mm_unpacklo_epi8(src_23a, src_34a);
1520
1521
47.2k
  *res = convolve_lowbd_4tap_ssse3(s, coeffs);
1522
47.2k
}
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
52.2k
                                             __m128i *res) {
1529
52.2k
  d[5] = _mm_cvtsi32_si128(loadu_int16(data + 5 * stride));
1530
52.2k
  const __m128i src_45a = _mm_unpacklo_epi16(d[4], d[5]);
1531
52.2k
  d[4] = _mm_cvtsi32_si128(loadu_int16(data + 6 * stride));
1532
52.2k
  const __m128i src_56a = _mm_unpacklo_epi16(d[5], d[4]);
1533
1534
52.2k
  s[2] = _mm_unpacklo_epi8(src_45a, src_56a);
1535
1536
52.2k
  *res = convolve_lowbd_6tap_ssse3(s, coeffs);
1537
52.2k
}
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
52.2k
                                             __m128i *res) {
1529
52.2k
  d[5] = _mm_cvtsi32_si128(loadu_int16(data + 5 * stride));
1530
52.2k
  const __m128i src_45a = _mm_unpacklo_epi16(d[4], d[5]);
1531
52.2k
  d[4] = _mm_cvtsi32_si128(loadu_int16(data + 6 * stride));
1532
52.2k
  const __m128i src_56a = _mm_unpacklo_epi16(d[5], d[4]);
1533
1534
52.2k
  s[2] = _mm_unpacklo_epi8(src_45a, src_56a);
1535
1536
52.2k
  *res = convolve_lowbd_6tap_ssse3(s, coeffs);
1537
52.2k
}
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
6.11k
                                             __m128i *res) {
1544
6.11k
  d[7] = _mm_cvtsi32_si128(loadu_int16(data + 7 * stride));
1545
6.11k
  const __m128i src_67a = _mm_unpacklo_epi16(d[6], d[7]);
1546
6.11k
  d[6] = _mm_cvtsi32_si128(loadu_int16(data + 8 * stride));
1547
6.11k
  const __m128i src_78a = _mm_unpacklo_epi16(d[7], d[6]);
1548
1549
6.11k
  s[3] = _mm_unpacklo_epi8(src_67a, src_78a);
1550
1551
6.11k
  *res = convolve_lowbd_ssse3(s, coeffs);
1552
6.11k
}
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
6.11k
                                             __m128i *res) {
1544
6.11k
  d[7] = _mm_cvtsi32_si128(loadu_int16(data + 7 * stride));
1545
6.11k
  const __m128i src_67a = _mm_unpacklo_epi16(d[6], d[7]);
1546
6.11k
  d[6] = _mm_cvtsi32_si128(loadu_int16(data + 8 * stride));
1547
6.11k
  const __m128i src_78a = _mm_unpacklo_epi16(d[7], d[6]);
1548
1549
6.11k
  s[3] = _mm_unpacklo_epi8(src_67a, src_78a);
1550
1551
6.11k
  *res = convolve_lowbd_ssse3(s, coeffs);
1552
6.11k
}
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
16.8k
                                             __m128i d[2], __m128i *res) {
1558
16.8k
  d[1] = _mm_cvtsi32_si128(loadu_int32(data + 1 * stride));
1559
16.8k
  const __m128i src_01a = _mm_unpacklo_epi32(d[0], d[1]);
1560
16.8k
  d[0] = _mm_cvtsi32_si128(loadu_int32(data + 2 * stride));
1561
16.8k
  const __m128i src_12a = _mm_unpacklo_epi32(d[1], d[0]);
1562
1563
16.8k
  const __m128i s = _mm_unpacklo_epi8(src_01a, src_12a);
1564
1565
16.8k
  *res = _mm_maddubs_epi16(s, coeffs[0]);
1566
16.8k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_2tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_2tap_4x2_ssse3
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_2tap_4x2_ssse3
convolve_avx2.c:convolve_y_2tap_4x2_ssse3
Line
Count
Source
1557
16.8k
                                             __m128i d[2], __m128i *res) {
1558
16.8k
  d[1] = _mm_cvtsi32_si128(loadu_int32(data + 1 * stride));
1559
16.8k
  const __m128i src_01a = _mm_unpacklo_epi32(d[0], d[1]);
1560
16.8k
  d[0] = _mm_cvtsi32_si128(loadu_int32(data + 2 * stride));
1561
16.8k
  const __m128i src_12a = _mm_unpacklo_epi32(d[1], d[0]);
1562
1563
16.8k
  const __m128i s = _mm_unpacklo_epi8(src_01a, src_12a);
1564
1565
16.8k
  *res = _mm_maddubs_epi16(s, coeffs[0]);
1566
16.8k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_2tap_4x2_ssse3
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_2tap_4x2_ssse3
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_2tap_4x2_ssse3
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_2tap_4x2_ssse3
1567
1568
static inline void convolve_y_4tap_4x2_ssse3(const uint8_t *const data,
1569
                                             const ptrdiff_t stride,
1570
                                             const __m128i coeffs[2],
1571
                                             __m128i d[4], __m128i s[2],
1572
249k
                                             __m128i *res) {
1573
249k
  d[3] = _mm_cvtsi32_si128(loadu_int32(data + 3 * stride));
1574
249k
  const __m128i src_23a = _mm_unpacklo_epi32(d[2], d[3]);
1575
249k
  d[2] = _mm_cvtsi32_si128(loadu_int32(data + 4 * stride));
1576
249k
  const __m128i src_34a = _mm_unpacklo_epi32(d[3], d[2]);
1577
1578
249k
  s[1] = _mm_unpacklo_epi8(src_23a, src_34a);
1579
1580
249k
  *res = convolve_lowbd_4tap_ssse3(s, coeffs);
1581
249k
}
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
249k
                                             __m128i *res) {
1573
249k
  d[3] = _mm_cvtsi32_si128(loadu_int32(data + 3 * stride));
1574
249k
  const __m128i src_23a = _mm_unpacklo_epi32(d[2], d[3]);
1575
249k
  d[2] = _mm_cvtsi32_si128(loadu_int32(data + 4 * stride));
1576
249k
  const __m128i src_34a = _mm_unpacklo_epi32(d[3], d[2]);
1577
1578
249k
  s[1] = _mm_unpacklo_epi8(src_23a, src_34a);
1579
1580
249k
  *res = convolve_lowbd_4tap_ssse3(s, coeffs);
1581
249k
}
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
323k
                                             __m128i *res) {
1588
323k
  d[5] = _mm_cvtsi32_si128(loadu_int32(data + 5 * stride));
1589
323k
  const __m128i src_45a = _mm_unpacklo_epi32(d[4], d[5]);
1590
323k
  d[4] = _mm_cvtsi32_si128(loadu_int32(data + 6 * stride));
1591
323k
  const __m128i src_56a = _mm_unpacklo_epi32(d[5], d[4]);
1592
1593
323k
  s[2] = _mm_unpacklo_epi8(src_45a, src_56a);
1594
1595
323k
  *res = convolve_lowbd_6tap_ssse3(s, coeffs);
1596
323k
}
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
323k
                                             __m128i *res) {
1588
323k
  d[5] = _mm_cvtsi32_si128(loadu_int32(data + 5 * stride));
1589
323k
  const __m128i src_45a = _mm_unpacklo_epi32(d[4], d[5]);
1590
323k
  d[4] = _mm_cvtsi32_si128(loadu_int32(data + 6 * stride));
1591
323k
  const __m128i src_56a = _mm_unpacklo_epi32(d[5], d[4]);
1592
1593
323k
  s[2] = _mm_unpacklo_epi8(src_45a, src_56a);
1594
1595
323k
  *res = convolve_lowbd_6tap_ssse3(s, coeffs);
1596
323k
}
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
22.4k
                                             __m128i *res) {
1603
22.4k
  d[7] = _mm_cvtsi32_si128(loadu_int32(data + 7 * stride));
1604
22.4k
  const __m128i src_67a = _mm_unpacklo_epi32(d[6], d[7]);
1605
22.4k
  d[6] = _mm_cvtsi32_si128(loadu_int32(data + 8 * stride));
1606
22.4k
  const __m128i src_78a = _mm_unpacklo_epi32(d[7], d[6]);
1607
1608
22.4k
  s[3] = _mm_unpacklo_epi8(src_67a, src_78a);
1609
1610
22.4k
  res[0] = convolve_lowbd_ssse3(s, coeffs);
1611
22.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
22.4k
                                             __m128i *res) {
1603
22.4k
  d[7] = _mm_cvtsi32_si128(loadu_int32(data + 7 * stride));
1604
22.4k
  const __m128i src_67a = _mm_unpacklo_epi32(d[6], d[7]);
1605
22.4k
  d[6] = _mm_cvtsi32_si128(loadu_int32(data + 8 * stride));
1606
22.4k
  const __m128i src_78a = _mm_unpacklo_epi32(d[7], d[6]);
1607
1608
22.4k
  s[3] = _mm_unpacklo_epi8(src_67a, src_78a);
1609
1610
22.4k
  res[0] = convolve_lowbd_ssse3(s, coeffs);
1611
22.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
14.7k
                                            __m256i *res) {
1617
14.7k
  d[1] = _mm_loadu_si128((__m128i *)(data + 1 * stride));
1618
14.7k
  const __m256i src_01a = _mm256_setr_m128i(d[0], d[1]);
1619
14.7k
  d[0] = _mm_loadu_si128((__m128i *)(data + 2 * stride));
1620
14.7k
  const __m256i src_12a = _mm256_setr_m128i(d[1], d[0]);
1621
1622
14.7k
  const __m256i s = _mm256_unpacklo_epi8(src_01a, src_12a);
1623
1624
14.7k
  *res = _mm256_maddubs_epi16(s, coeffs[0]);
1625
14.7k
}
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
14.7k
                                            __m256i *res) {
1617
14.7k
  d[1] = _mm_loadu_si128((__m128i *)(data + 1 * stride));
1618
14.7k
  const __m256i src_01a = _mm256_setr_m128i(d[0], d[1]);
1619
14.7k
  d[0] = _mm_loadu_si128((__m128i *)(data + 2 * stride));
1620
14.7k
  const __m256i src_12a = _mm256_setr_m128i(d[1], d[0]);
1621
1622
14.7k
  const __m256i s = _mm256_unpacklo_epi8(src_01a, src_12a);
1623
1624
14.7k
  *res = _mm256_maddubs_epi16(s, coeffs[0]);
1625
14.7k
}
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
199k
                                            __m256i *res) {
1632
199k
  d[3] = _mm_loadu_si128((__m128i *)(data + 3 * stride));
1633
199k
  const __m256i src_23a = _mm256_setr_m128i(d[2], d[3]);
1634
199k
  d[2] = _mm_loadu_si128((__m128i *)(data + 4 * stride));
1635
199k
  const __m256i src_34a = _mm256_setr_m128i(d[3], d[2]);
1636
1637
199k
  s[1] = _mm256_unpacklo_epi8(src_23a, src_34a);
1638
1639
199k
  *res = convolve_lowbd_4tap(s, coeffs);
1640
199k
}
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
199k
                                            __m256i *res) {
1632
199k
  d[3] = _mm_loadu_si128((__m128i *)(data + 3 * stride));
1633
199k
  const __m256i src_23a = _mm256_setr_m128i(d[2], d[3]);
1634
199k
  d[2] = _mm_loadu_si128((__m128i *)(data + 4 * stride));
1635
199k
  const __m256i src_34a = _mm256_setr_m128i(d[3], d[2]);
1636
1637
199k
  s[1] = _mm256_unpacklo_epi8(src_23a, src_34a);
1638
1639
199k
  *res = convolve_lowbd_4tap(s, coeffs);
1640
199k
}
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
435k
                                            __m256i *res) {
1647
435k
  d[5] = _mm_loadu_si128((__m128i *)(data + 5 * stride));
1648
435k
  const __m256i src_45a = _mm256_setr_m128i(d[4], d[5]);
1649
435k
  d[4] = _mm_loadu_si128((__m128i *)(data + 6 * stride));
1650
435k
  const __m256i src_56a = _mm256_setr_m128i(d[5], d[4]);
1651
1652
435k
  s[2] = _mm256_unpacklo_epi8(src_45a, src_56a);
1653
1654
435k
  *res = convolve_lowbd_6tap(s, coeffs);
1655
435k
}
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
435k
                                            __m256i *res) {
1647
435k
  d[5] = _mm_loadu_si128((__m128i *)(data + 5 * stride));
1648
435k
  const __m256i src_45a = _mm256_setr_m128i(d[4], d[5]);
1649
435k
  d[4] = _mm_loadu_si128((__m128i *)(data + 6 * stride));
1650
435k
  const __m256i src_56a = _mm256_setr_m128i(d[5], d[4]);
1651
1652
435k
  s[2] = _mm256_unpacklo_epi8(src_45a, src_56a);
1653
1654
435k
  *res = convolve_lowbd_6tap(s, coeffs);
1655
435k
}
Unexecuted instantiation: jnt_convolve_avx2.c:convolve_y_6tap_8x2_avx2
Unexecuted instantiation: wiener_convolve_avx2.c:convolve_y_6tap_8x2_avx2
Unexecuted instantiation: highbd_convolve_2d_avx2.c:convolve_y_6tap_8x2_avx2
Unexecuted instantiation: highbd_jnt_convolve_avx2.c:convolve_y_6tap_8x2_avx2
1656
1657
static inline void convolve_y_8tap_8x2_avx2(const uint8_t *const data,
1658
                                            const ptrdiff_t stride,
1659
                                            const __m256i coeffs[4],
1660
                                            __m128i d[8], __m256i s[4],
1661
25.4k
                                            __m256i *res) {
1662
25.4k
  d[7] = _mm_loadu_si128((__m128i *)(data + 7 * stride));
1663
25.4k
  const __m256i src_67a = _mm256_setr_m128i(d[6], d[7]);
1664
25.4k
  d[6] = _mm_loadu_si128((__m128i *)(data + 8 * stride));
1665
25.4k
  const __m256i src_78a = _mm256_setr_m128i(d[7], d[6]);
1666
1667
25.4k
  s[3] = _mm256_unpacklo_epi8(src_67a, src_78a);
1668
1669
25.4k
  *res = convolve_lowbd(s, coeffs);
1670
25.4k
}
Unexecuted instantiation: aom_subpixel_8t_intrin_avx2.c:convolve_y_8tap_8x2_avx2
Unexecuted instantiation: highbd_convolve_avx2.c:convolve_y_8tap_8x2_avx2
Unexecuted instantiation: convolve_2d_avx2.c:convolve_y_8tap_8x2_avx2
convolve_avx2.c:convolve_y_8tap_8x2_avx2
Line
Count
Source
1661
25.4k
                                            __m256i *res) {
1662
25.4k
  d[7] = _mm_loadu_si128((__m128i *)(data + 7 * stride));
1663
25.4k
  const __m256i src_67a = _mm256_setr_m128i(d[6], d[7]);
1664
25.4k
  d[6] = _mm_loadu_si128((__m128i *)(data + 8 * stride));
1665
25.4k
  const __m256i src_78a = _mm256_setr_m128i(d[7], d[6]);
1666
1667
25.4k
  s[3] = _mm256_unpacklo_epi8(src_67a, src_78a);
1668
1669
25.4k
  *res = convolve_lowbd(s, coeffs);
1670
25.4k
}
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.1k
                                             __m128i d[2], __m256i res[2]) {
1676
13.1k
  d[1] = _mm_loadu_si128((__m128i *)(data + 1 * stride));
1677
13.1k
  const __m256i src_01a = _mm256_setr_m128i(d[0], d[1]);
1678
13.1k
  d[0] = _mm_loadu_si128((__m128i *)(data + 2 * stride));
1679
13.1k
  const __m256i src_12a = _mm256_setr_m128i(d[1], d[0]);
1680
1681
13.1k
  const __m256i s0 = _mm256_unpacklo_epi8(src_01a, src_12a);
1682
13.1k
  const __m256i s1 = _mm256_unpackhi_epi8(src_01a, src_12a);
1683
1684
13.1k
  res[0] = _mm256_maddubs_epi16(s0, coeffs[0]);
1685
13.1k
  res[1] = _mm256_maddubs_epi16(s1, coeffs[0]);
1686
13.1k
}
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.1k
                                             __m128i d[2], __m256i res[2]) {
1676
13.1k
  d[1] = _mm_loadu_si128((__m128i *)(data + 1 * stride));
1677
13.1k
  const __m256i src_01a = _mm256_setr_m128i(d[0], d[1]);
1678
13.1k
  d[0] = _mm_loadu_si128((__m128i *)(data + 2 * stride));
1679
13.1k
  const __m256i src_12a = _mm256_setr_m128i(d[1], d[0]);
1680
1681
13.1k
  const __m256i s0 = _mm256_unpacklo_epi8(src_01a, src_12a);
1682
13.1k
  const __m256i s1 = _mm256_unpackhi_epi8(src_01a, src_12a);
1683
1684
13.1k
  res[0] = _mm256_maddubs_epi16(s0, coeffs[0]);
1685
13.1k
  res[1] = _mm256_maddubs_epi16(s1, coeffs[0]);
1686
13.1k
}
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
116k
                                             __m256i res[2]) {
1693
116k
  d[3] = _mm_loadu_si128((__m128i *)(data + 3 * stride));
1694
116k
  const __m256i src_23a = _mm256_setr_m128i(d[2], d[3]);
1695
116k
  d[2] = _mm_loadu_si128((__m128i *)(data + 4 * stride));
1696
116k
  const __m256i src_34a = _mm256_setr_m128i(d[3], d[2]);
1697
1698
116k
  s[1] = _mm256_unpacklo_epi8(src_23a, src_34a);
1699
116k
  s[3] = _mm256_unpackhi_epi8(src_23a, src_34a);
1700
1701
116k
  res[0] = convolve_lowbd_4tap(s, coeffs);
1702
116k
  res[1] = convolve_lowbd_4tap(s + 2, coeffs);
1703
116k
}
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
116k
                                             __m256i res[2]) {
1693
116k
  d[3] = _mm_loadu_si128((__m128i *)(data + 3 * stride));
1694
116k
  const __m256i src_23a = _mm256_setr_m128i(d[2], d[3]);
1695
116k
  d[2] = _mm_loadu_si128((__m128i *)(data + 4 * stride));
1696
116k
  const __m256i src_34a = _mm256_setr_m128i(d[3], d[2]);
1697
1698
116k
  s[1] = _mm256_unpacklo_epi8(src_23a, src_34a);
1699
116k
  s[3] = _mm256_unpackhi_epi8(src_23a, src_34a);
1700
1701
116k
  res[0] = convolve_lowbd_4tap(s, coeffs);
1702
116k
  res[1] = convolve_lowbd_4tap(s + 2, coeffs);
1703
116k
}
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.59M
                                             __m256i res[2]) {
1710
1.59M
  d[5] = _mm_loadu_si128((__m128i *)(data + 5 * stride));
1711
1.59M
  const __m256i src_45a = _mm256_setr_m128i(d[4], d[5]);
1712
1.59M
  d[4] = _mm_loadu_si128((__m128i *)(data + 6 * stride));
1713
1.59M
  const __m256i src_56a = _mm256_setr_m128i(d[5], d[4]);
1714
1715
1.59M
  s[2] = _mm256_unpacklo_epi8(src_45a, src_56a);
1716
1.59M
  s[5] = _mm256_unpackhi_epi8(src_45a, src_56a);
1717
1718
1.59M
  res[0] = convolve_lowbd_6tap(s, coeffs);
1719
1.59M
  res[1] = convolve_lowbd_6tap(s + 3, coeffs);
1720
1.59M
}
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.59M
                                             __m256i res[2]) {
1710
1.59M
  d[5] = _mm_loadu_si128((__m128i *)(data + 5 * stride));
1711
1.59M
  const __m256i src_45a = _mm256_setr_m128i(d[4], d[5]);
1712
1.59M
  d[4] = _mm_loadu_si128((__m128i *)(data + 6 * stride));
1713
1.59M
  const __m256i src_56a = _mm256_setr_m128i(d[5], d[4]);
1714
1715
1.59M
  s[2] = _mm256_unpacklo_epi8(src_45a, src_56a);
1716
1.59M
  s[5] = _mm256_unpackhi_epi8(src_45a, src_56a);
1717
1718
1.59M
  res[0] = convolve_lowbd_6tap(s, coeffs);
1719
1.59M
  res[1] = convolve_lowbd_6tap(s + 3, coeffs);
1720
1.59M
}
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
135k
                                             __m256i res[2]) {
1727
135k
  d[7] = _mm_loadu_si128((__m128i *)(data + 7 * stride));
1728
135k
  const __m256i src_67a = _mm256_setr_m128i(d[6], d[7]);
1729
135k
  d[6] = _mm_loadu_si128((__m128i *)(data + 8 * stride));
1730
135k
  const __m256i src_78a = _mm256_setr_m128i(d[7], d[6]);
1731
1732
135k
  s[3] = _mm256_unpacklo_epi8(src_67a, src_78a);
1733
135k
  s[7] = _mm256_unpackhi_epi8(src_67a, src_78a);
1734
1735
135k
  res[0] = convolve_lowbd(s, coeffs);
1736
135k
  res[1] = convolve_lowbd(s + 4, coeffs);
1737
135k
}
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
135k
                                             __m256i res[2]) {
1727
135k
  d[7] = _mm_loadu_si128((__m128i *)(data + 7 * stride));
1728
135k
  const __m256i src_67a = _mm256_setr_m128i(d[6], d[7]);
1729
135k
  d[6] = _mm_loadu_si128((__m128i *)(data + 8 * stride));
1730
135k
  const __m256i src_78a = _mm256_setr_m128i(d[7], d[6]);
1731
1732
135k
  s[3] = _mm256_unpacklo_epi8(src_67a, src_78a);
1733
135k
  s[7] = _mm256_unpackhi_epi8(src_67a, src_78a);
1734
1735
135k
  res[0] = convolve_lowbd(s, coeffs);
1736
135k
  res[1] = convolve_lowbd(s + 4, coeffs);
1737
135k
}
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
41.8k
                                             __m256i d[2], __m256i res[4]) {
1743
41.8k
  d[1] = _mm256_loadu_si256((__m256i *)(data + 1 * stride));
1744
41.8k
  const __m256i s00 = _mm256_unpacklo_epi8(d[0], d[1]);
1745
41.8k
  const __m256i s01 = _mm256_unpackhi_epi8(d[0], d[1]);
1746
41.8k
  d[0] = _mm256_loadu_si256((__m256i *)(data + 2 * stride));
1747
41.8k
  const __m256i s10 = _mm256_unpacklo_epi8(d[1], d[0]);
1748
41.8k
  const __m256i s11 = _mm256_unpackhi_epi8(d[1], d[0]);
1749
1750
41.8k
  res[0] = _mm256_maddubs_epi16(s00, coeffs[0]);
1751
41.8k
  res[1] = _mm256_maddubs_epi16(s01, coeffs[0]);
1752
41.8k
  res[2] = _mm256_maddubs_epi16(s10, coeffs[0]);
1753
41.8k
  res[3] = _mm256_maddubs_epi16(s11, coeffs[0]);
1754
41.8k
}
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
41.8k
                                             __m256i d[2], __m256i res[4]) {
1743
41.8k
  d[1] = _mm256_loadu_si256((__m256i *)(data + 1 * stride));
1744
41.8k
  const __m256i s00 = _mm256_unpacklo_epi8(d[0], d[1]);
1745
41.8k
  const __m256i s01 = _mm256_unpackhi_epi8(d[0], d[1]);
1746
41.8k
  d[0] = _mm256_loadu_si256((__m256i *)(data + 2 * stride));
1747
41.8k
  const __m256i s10 = _mm256_unpacklo_epi8(d[1], d[0]);
1748
41.8k
  const __m256i s11 = _mm256_unpackhi_epi8(d[1], d[0]);
1749
1750
41.8k
  res[0] = _mm256_maddubs_epi16(s00, coeffs[0]);
1751
41.8k
  res[1] = _mm256_maddubs_epi16(s01, coeffs[0]);
1752
41.8k
  res[2] = _mm256_maddubs_epi16(s10, coeffs[0]);
1753
41.8k
  res[3] = _mm256_maddubs_epi16(s11, coeffs[0]);
1754
41.8k
}
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
190k
                                             __m256i s2[4], __m256i res[4]) {
1761
190k
  d[3] = _mm256_loadu_si256((__m256i *)(data + 3 * stride));
1762
190k
  s1[1] = _mm256_unpacklo_epi8(d[2], d[3]);
1763
190k
  s1[3] = _mm256_unpackhi_epi8(d[2], d[3]);
1764
190k
  d[2] = _mm256_loadu_si256((__m256i *)(data + 4 * stride));
1765
190k
  s2[1] = _mm256_unpacklo_epi8(d[3], d[2]);
1766
190k
  s2[3] = _mm256_unpackhi_epi8(d[3], d[2]);
1767
1768
190k
  res[0] = convolve_lowbd_4tap(s1, coeffs);
1769
190k
  res[1] = convolve_lowbd_4tap(s1 + 2, coeffs);
1770
190k
  res[2] = convolve_lowbd_4tap(s2, coeffs);
1771
190k
  res[3] = convolve_lowbd_4tap(s2 + 2, coeffs);
1772
190k
}
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
190k
                                             __m256i s2[4], __m256i res[4]) {
1761
190k
  d[3] = _mm256_loadu_si256((__m256i *)(data + 3 * stride));
1762
190k
  s1[1] = _mm256_unpacklo_epi8(d[2], d[3]);
1763
190k
  s1[3] = _mm256_unpackhi_epi8(d[2], d[3]);
1764
190k
  d[2] = _mm256_loadu_si256((__m256i *)(data + 4 * stride));
1765
190k
  s2[1] = _mm256_unpacklo_epi8(d[3], d[2]);
1766
190k
  s2[3] = _mm256_unpackhi_epi8(d[3], d[2]);
1767
1768
190k
  res[0] = convolve_lowbd_4tap(s1, coeffs);
1769
190k
  res[1] = convolve_lowbd_4tap(s1 + 2, coeffs);
1770
190k
  res[2] = convolve_lowbd_4tap(s2, coeffs);
1771
190k
  res[3] = convolve_lowbd_4tap(s2 + 2, coeffs);
1772
190k
}
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_