Coverage Report

Created: 2026-07-16 07:20

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libvpx/vpx_dsp/x86/transpose_sse2.h
Line
Count
Source
1
/*
2
 *  Copyright (c) 2015 The WebM project authors. All Rights Reserved.
3
 *
4
 *  Use of this source code is governed by a BSD-style license
5
 *  that can be found in the LICENSE file in the root of the source
6
 *  tree. An additional intellectual property rights grant can be found
7
 *  in the file PATENTS.  All contributing project authors may
8
 *  be found in the AUTHORS file in the root of the source tree.
9
 */
10
11
#ifndef VPX_VPX_DSP_X86_TRANSPOSE_SSE2_H_
12
#define VPX_VPX_DSP_X86_TRANSPOSE_SSE2_H_
13
14
#include <emmintrin.h>  // SSE2
15
16
#include "./vpx_config.h"
17
18
6.41M
static INLINE __m128i transpose_8bit_4x4(const __m128i *const in) {
19
  // Unpack 8 bit elements. Goes from:
20
  // in[0]: 00 01 02 03
21
  // in[1]: 10 11 12 13
22
  // in[2]: 20 21 22 23
23
  // in[3]: 30 31 32 33
24
  // to:
25
  // a0:    00 10 01 11  02 12 03 13
26
  // a1:    20 30 21 31  22 32 23 33
27
6.41M
  const __m128i a0 = _mm_unpacklo_epi8(in[0], in[1]);
28
6.41M
  const __m128i a1 = _mm_unpacklo_epi8(in[2], in[3]);
29
30
  // Unpack 16 bit elements resulting in:
31
  // 00 10 20 30  01 11 21 31  02 12 22 32  03 13 23 33
32
6.41M
  return _mm_unpacklo_epi16(a0, a1);
33
6.41M
}
vpx_subpixel_8t_intrin_ssse3.c:transpose_8bit_4x4
Line
Count
Source
18
6.41M
static INLINE __m128i transpose_8bit_4x4(const __m128i *const in) {
19
  // Unpack 8 bit elements. Goes from:
20
  // in[0]: 00 01 02 03
21
  // in[1]: 10 11 12 13
22
  // in[2]: 20 21 22 23
23
  // in[3]: 30 31 32 33
24
  // to:
25
  // a0:    00 10 01 11  02 12 03 13
26
  // a1:    20 30 21 31  22 32 23 33
27
6.41M
  const __m128i a0 = _mm_unpacklo_epi8(in[0], in[1]);
28
6.41M
  const __m128i a1 = _mm_unpacklo_epi8(in[2], in[3]);
29
30
  // Unpack 16 bit elements resulting in:
31
  // 00 10 20 30  01 11 21 31  02 12 22 32  03 13 23 33
32
6.41M
  return _mm_unpacklo_epi16(a0, a1);
33
6.41M
}
Unexecuted instantiation: inv_txfm_sse2.c:transpose_8bit_4x4
Unexecuted instantiation: inv_txfm_ssse3.c:transpose_8bit_4x4
Unexecuted instantiation: highbd_idct4x4_add_sse2.c:transpose_8bit_4x4
Unexecuted instantiation: highbd_idct8x8_add_sse2.c:transpose_8bit_4x4
Unexecuted instantiation: highbd_idct16x16_add_sse2.c:transpose_8bit_4x4
Unexecuted instantiation: highbd_idct32x32_add_sse2.c:transpose_8bit_4x4
Unexecuted instantiation: highbd_idct4x4_add_sse4.c:transpose_8bit_4x4
Unexecuted instantiation: highbd_idct8x8_add_sse4.c:transpose_8bit_4x4
Unexecuted instantiation: highbd_idct16x16_add_sse4.c:transpose_8bit_4x4
Unexecuted instantiation: highbd_idct32x32_add_sse4.c:transpose_8bit_4x4
Unexecuted instantiation: vp9_idct_intrin_sse2.c:transpose_8bit_4x4
Unexecuted instantiation: vp9_highbd_iht4x4_add_sse4.c:transpose_8bit_4x4
Unexecuted instantiation: vp9_highbd_iht8x8_add_sse4.c:transpose_8bit_4x4
Unexecuted instantiation: vp9_highbd_iht16x16_add_sse4.c:transpose_8bit_4x4
Unexecuted instantiation: vp9_dct_intrin_sse2.c:transpose_8bit_4x4
Unexecuted instantiation: vp9_frame_scale_ssse3.c:transpose_8bit_4x4
34
35
static INLINE void transpose_8bit_8x8(const __m128i *const in,
36
20.4M
                                      __m128i *const out) {
37
  // Unpack 8 bit elements. Goes from:
38
  // in[0]: 00 01 02 03 04 05 06 07
39
  // in[1]: 10 11 12 13 14 15 16 17
40
  // in[2]: 20 21 22 23 24 25 26 27
41
  // in[3]: 30 31 32 33 34 35 36 37
42
  // in[4]: 40 41 42 43 44 45 46 47
43
  // in[5]: 50 51 52 53 54 55 56 57
44
  // in[6]: 60 61 62 63 64 65 66 67
45
  // in[7]: 70 71 72 73 74 75 76 77
46
  // to:
47
  // a0:    00 10 01 11 02 12 03 13  04 14 05 15 06 16 07 17
48
  // a1:    20 30 21 31 22 32 23 33  24 34 25 35 26 36 27 37
49
  // a2:    40 50 41 51 42 52 43 53  44 54 45 55 46 56 47 57
50
  // a3:    60 70 61 71 62 72 63 73  64 74 65 75 66 76 67 77
51
20.4M
  const __m128i a0 = _mm_unpacklo_epi8(in[0], in[1]);
52
20.4M
  const __m128i a1 = _mm_unpacklo_epi8(in[2], in[3]);
53
20.4M
  const __m128i a2 = _mm_unpacklo_epi8(in[4], in[5]);
54
20.4M
  const __m128i a3 = _mm_unpacklo_epi8(in[6], in[7]);
55
56
  // Unpack 16 bit elements resulting in:
57
  // b0: 00 10 20 30 01 11 21 31  02 12 22 32 03 13 23 33
58
  // b1: 40 50 60 70 41 51 61 71  42 52 62 72 43 53 63 73
59
  // b2: 04 14 24 34 05 15 25 35  06 16 26 36 07 17 27 37
60
  // b3: 44 54 64 74 45 55 65 75  46 56 66 76 47 57 67 77
61
20.4M
  const __m128i b0 = _mm_unpacklo_epi16(a0, a1);
62
20.4M
  const __m128i b1 = _mm_unpackhi_epi16(a0, a1);
63
20.4M
  const __m128i b2 = _mm_unpacklo_epi16(a2, a3);
64
20.4M
  const __m128i b3 = _mm_unpackhi_epi16(a2, a3);
65
66
  // Unpack 32 bit elements resulting in:
67
  // c0: 00 10 20 30 40 50 60 70  01 11 21 31 41 51 61 71
68
  // c1: 02 12 22 32 42 52 62 72  03 13 23 33 43 53 63 73
69
  // c2: 04 14 24 34 44 54 64 74  05 15 25 35 45 55 65 75
70
  // c3: 06 16 26 36 46 56 66 76  07 17 27 37 47 57 67 77
71
20.4M
  const __m128i c0 = _mm_unpacklo_epi32(b0, b2);
72
20.4M
  const __m128i c1 = _mm_unpackhi_epi32(b0, b2);
73
20.4M
  const __m128i c2 = _mm_unpacklo_epi32(b1, b3);
74
20.4M
  const __m128i c3 = _mm_unpackhi_epi32(b1, b3);
75
76
  // Unpack 64 bit elements resulting in:
77
  // out[0]: 00 10 20 30 40 50 60 70
78
  // out[1]: 01 11 21 31 41 51 61 71
79
  // out[2]: 02 12 22 32 42 52 62 72
80
  // out[3]: 03 13 23 33 43 53 63 73
81
  // out[4]: 04 14 24 34 44 54 64 74
82
  // out[5]: 05 15 25 35 45 55 65 75
83
  // out[6]: 06 16 26 36 46 56 66 76
84
  // out[7]: 07 17 27 37 47 57 67 77
85
20.4M
  out[0] = _mm_unpacklo_epi64(c0, c0);
86
20.4M
  out[1] = _mm_unpackhi_epi64(c0, c0);
87
20.4M
  out[2] = _mm_unpacklo_epi64(c1, c1);
88
20.4M
  out[3] = _mm_unpackhi_epi64(c1, c1);
89
20.4M
  out[4] = _mm_unpacklo_epi64(c2, c2);
90
20.4M
  out[5] = _mm_unpackhi_epi64(c2, c2);
91
20.4M
  out[6] = _mm_unpacklo_epi64(c3, c3);
92
20.4M
  out[7] = _mm_unpackhi_epi64(c3, c3);
93
20.4M
}
vpx_subpixel_8t_intrin_ssse3.c:transpose_8bit_8x8
Line
Count
Source
36
20.4M
                                      __m128i *const out) {
37
  // Unpack 8 bit elements. Goes from:
38
  // in[0]: 00 01 02 03 04 05 06 07
39
  // in[1]: 10 11 12 13 14 15 16 17
40
  // in[2]: 20 21 22 23 24 25 26 27
41
  // in[3]: 30 31 32 33 34 35 36 37
42
  // in[4]: 40 41 42 43 44 45 46 47
43
  // in[5]: 50 51 52 53 54 55 56 57
44
  // in[6]: 60 61 62 63 64 65 66 67
45
  // in[7]: 70 71 72 73 74 75 76 77
46
  // to:
47
  // a0:    00 10 01 11 02 12 03 13  04 14 05 15 06 16 07 17
48
  // a1:    20 30 21 31 22 32 23 33  24 34 25 35 26 36 27 37
49
  // a2:    40 50 41 51 42 52 43 53  44 54 45 55 46 56 47 57
50
  // a3:    60 70 61 71 62 72 63 73  64 74 65 75 66 76 67 77
51
20.4M
  const __m128i a0 = _mm_unpacklo_epi8(in[0], in[1]);
52
20.4M
  const __m128i a1 = _mm_unpacklo_epi8(in[2], in[3]);
53
20.4M
  const __m128i a2 = _mm_unpacklo_epi8(in[4], in[5]);
54
20.4M
  const __m128i a3 = _mm_unpacklo_epi8(in[6], in[7]);
55
56
  // Unpack 16 bit elements resulting in:
57
  // b0: 00 10 20 30 01 11 21 31  02 12 22 32 03 13 23 33
58
  // b1: 40 50 60 70 41 51 61 71  42 52 62 72 43 53 63 73
59
  // b2: 04 14 24 34 05 15 25 35  06 16 26 36 07 17 27 37
60
  // b3: 44 54 64 74 45 55 65 75  46 56 66 76 47 57 67 77
61
20.4M
  const __m128i b0 = _mm_unpacklo_epi16(a0, a1);
62
20.4M
  const __m128i b1 = _mm_unpackhi_epi16(a0, a1);
63
20.4M
  const __m128i b2 = _mm_unpacklo_epi16(a2, a3);
64
20.4M
  const __m128i b3 = _mm_unpackhi_epi16(a2, a3);
65
66
  // Unpack 32 bit elements resulting in:
67
  // c0: 00 10 20 30 40 50 60 70  01 11 21 31 41 51 61 71
68
  // c1: 02 12 22 32 42 52 62 72  03 13 23 33 43 53 63 73
69
  // c2: 04 14 24 34 44 54 64 74  05 15 25 35 45 55 65 75
70
  // c3: 06 16 26 36 46 56 66 76  07 17 27 37 47 57 67 77
71
20.4M
  const __m128i c0 = _mm_unpacklo_epi32(b0, b2);
72
20.4M
  const __m128i c1 = _mm_unpackhi_epi32(b0, b2);
73
20.4M
  const __m128i c2 = _mm_unpacklo_epi32(b1, b3);
74
20.4M
  const __m128i c3 = _mm_unpackhi_epi32(b1, b3);
75
76
  // Unpack 64 bit elements resulting in:
77
  // out[0]: 00 10 20 30 40 50 60 70
78
  // out[1]: 01 11 21 31 41 51 61 71
79
  // out[2]: 02 12 22 32 42 52 62 72
80
  // out[3]: 03 13 23 33 43 53 63 73
81
  // out[4]: 04 14 24 34 44 54 64 74
82
  // out[5]: 05 15 25 35 45 55 65 75
83
  // out[6]: 06 16 26 36 46 56 66 76
84
  // out[7]: 07 17 27 37 47 57 67 77
85
20.4M
  out[0] = _mm_unpacklo_epi64(c0, c0);
86
20.4M
  out[1] = _mm_unpackhi_epi64(c0, c0);
87
20.4M
  out[2] = _mm_unpacklo_epi64(c1, c1);
88
20.4M
  out[3] = _mm_unpackhi_epi64(c1, c1);
89
20.4M
  out[4] = _mm_unpacklo_epi64(c2, c2);
90
20.4M
  out[5] = _mm_unpackhi_epi64(c2, c2);
91
20.4M
  out[6] = _mm_unpacklo_epi64(c3, c3);
92
20.4M
  out[7] = _mm_unpackhi_epi64(c3, c3);
93
20.4M
}
Unexecuted instantiation: inv_txfm_sse2.c:transpose_8bit_8x8
Unexecuted instantiation: inv_txfm_ssse3.c:transpose_8bit_8x8
Unexecuted instantiation: highbd_idct4x4_add_sse2.c:transpose_8bit_8x8
Unexecuted instantiation: highbd_idct8x8_add_sse2.c:transpose_8bit_8x8
Unexecuted instantiation: highbd_idct16x16_add_sse2.c:transpose_8bit_8x8
Unexecuted instantiation: highbd_idct32x32_add_sse2.c:transpose_8bit_8x8
Unexecuted instantiation: highbd_idct4x4_add_sse4.c:transpose_8bit_8x8
Unexecuted instantiation: highbd_idct8x8_add_sse4.c:transpose_8bit_8x8
Unexecuted instantiation: highbd_idct16x16_add_sse4.c:transpose_8bit_8x8
Unexecuted instantiation: highbd_idct32x32_add_sse4.c:transpose_8bit_8x8
Unexecuted instantiation: vp9_idct_intrin_sse2.c:transpose_8bit_8x8
Unexecuted instantiation: vp9_highbd_iht4x4_add_sse4.c:transpose_8bit_8x8
Unexecuted instantiation: vp9_highbd_iht8x8_add_sse4.c:transpose_8bit_8x8
Unexecuted instantiation: vp9_highbd_iht16x16_add_sse4.c:transpose_8bit_8x8
Unexecuted instantiation: vp9_dct_intrin_sse2.c:transpose_8bit_8x8
Unexecuted instantiation: vp9_frame_scale_ssse3.c:transpose_8bit_8x8
94
95
static INLINE void transpose_16bit_4x4(const __m128i *const in,
96
25.1M
                                       __m128i *const out) {
97
  // Unpack 16 bit elements. Goes from:
98
  // in[0]: 00 01 02 03  XX XX XX XX
99
  // in[1]: 10 11 12 13  XX XX XX XX
100
  // in[2]: 20 21 22 23  XX XX XX XX
101
  // in[3]: 30 31 32 33  XX XX XX XX
102
  // to:
103
  // a0:    00 10 01 11  02 12 03 13
104
  // a1:    20 30 21 31  22 32 23 33
105
25.1M
  const __m128i a0 = _mm_unpacklo_epi16(in[0], in[1]);
106
25.1M
  const __m128i a1 = _mm_unpacklo_epi16(in[2], in[3]);
107
108
  // Unpack 32 bit elements resulting in:
109
  // out[0]: 00 10 20 30  01 11 21 31
110
  // out[1]: 02 12 22 32  03 13 23 33
111
25.1M
  out[0] = _mm_unpacklo_epi32(a0, a1);
112
25.1M
  out[1] = _mm_unpackhi_epi32(a0, a1);
113
25.1M
}
vpx_subpixel_8t_intrin_ssse3.c:transpose_16bit_4x4
Line
Count
Source
96
22.7M
                                       __m128i *const out) {
97
  // Unpack 16 bit elements. Goes from:
98
  // in[0]: 00 01 02 03  XX XX XX XX
99
  // in[1]: 10 11 12 13  XX XX XX XX
100
  // in[2]: 20 21 22 23  XX XX XX XX
101
  // in[3]: 30 31 32 33  XX XX XX XX
102
  // to:
103
  // a0:    00 10 01 11  02 12 03 13
104
  // a1:    20 30 21 31  22 32 23 33
105
22.7M
  const __m128i a0 = _mm_unpacklo_epi16(in[0], in[1]);
106
22.7M
  const __m128i a1 = _mm_unpacklo_epi16(in[2], in[3]);
107
108
  // Unpack 32 bit elements resulting in:
109
  // out[0]: 00 10 20 30  01 11 21 31
110
  // out[1]: 02 12 22 32  03 13 23 33
111
22.7M
  out[0] = _mm_unpacklo_epi32(a0, a1);
112
22.7M
  out[1] = _mm_unpackhi_epi32(a0, a1);
113
22.7M
}
inv_txfm_sse2.c:transpose_16bit_4x4
Line
Count
Source
96
671k
                                       __m128i *const out) {
97
  // Unpack 16 bit elements. Goes from:
98
  // in[0]: 00 01 02 03  XX XX XX XX
99
  // in[1]: 10 11 12 13  XX XX XX XX
100
  // in[2]: 20 21 22 23  XX XX XX XX
101
  // in[3]: 30 31 32 33  XX XX XX XX
102
  // to:
103
  // a0:    00 10 01 11  02 12 03 13
104
  // a1:    20 30 21 31  22 32 23 33
105
671k
  const __m128i a0 = _mm_unpacklo_epi16(in[0], in[1]);
106
671k
  const __m128i a1 = _mm_unpacklo_epi16(in[2], in[3]);
107
108
  // Unpack 32 bit elements resulting in:
109
  // out[0]: 00 10 20 30  01 11 21 31
110
  // out[1]: 02 12 22 32  03 13 23 33
111
671k
  out[0] = _mm_unpacklo_epi32(a0, a1);
112
671k
  out[1] = _mm_unpackhi_epi32(a0, a1);
113
671k
}
inv_txfm_ssse3.c:transpose_16bit_4x4
Line
Count
Source
96
1.76M
                                       __m128i *const out) {
97
  // Unpack 16 bit elements. Goes from:
98
  // in[0]: 00 01 02 03  XX XX XX XX
99
  // in[1]: 10 11 12 13  XX XX XX XX
100
  // in[2]: 20 21 22 23  XX XX XX XX
101
  // in[3]: 30 31 32 33  XX XX XX XX
102
  // to:
103
  // a0:    00 10 01 11  02 12 03 13
104
  // a1:    20 30 21 31  22 32 23 33
105
1.76M
  const __m128i a0 = _mm_unpacklo_epi16(in[0], in[1]);
106
1.76M
  const __m128i a1 = _mm_unpacklo_epi16(in[2], in[3]);
107
108
  // Unpack 32 bit elements resulting in:
109
  // out[0]: 00 10 20 30  01 11 21 31
110
  // out[1]: 02 12 22 32  03 13 23 33
111
1.76M
  out[0] = _mm_unpacklo_epi32(a0, a1);
112
1.76M
  out[1] = _mm_unpackhi_epi32(a0, a1);
113
1.76M
}
Unexecuted instantiation: highbd_idct4x4_add_sse2.c:transpose_16bit_4x4
Unexecuted instantiation: highbd_idct8x8_add_sse2.c:transpose_16bit_4x4
Unexecuted instantiation: highbd_idct16x16_add_sse2.c:transpose_16bit_4x4
Unexecuted instantiation: highbd_idct32x32_add_sse2.c:transpose_16bit_4x4
Unexecuted instantiation: highbd_idct4x4_add_sse4.c:transpose_16bit_4x4
Unexecuted instantiation: highbd_idct8x8_add_sse4.c:transpose_16bit_4x4
Unexecuted instantiation: highbd_idct16x16_add_sse4.c:transpose_16bit_4x4
Unexecuted instantiation: highbd_idct32x32_add_sse4.c:transpose_16bit_4x4
Unexecuted instantiation: vp9_idct_intrin_sse2.c:transpose_16bit_4x4
Unexecuted instantiation: vp9_highbd_iht4x4_add_sse4.c:transpose_16bit_4x4
Unexecuted instantiation: vp9_highbd_iht8x8_add_sse4.c:transpose_16bit_4x4
Unexecuted instantiation: vp9_highbd_iht16x16_add_sse4.c:transpose_16bit_4x4
Unexecuted instantiation: vp9_dct_intrin_sse2.c:transpose_16bit_4x4
Unexecuted instantiation: vp9_frame_scale_ssse3.c:transpose_16bit_4x4
114
115
static INLINE void transpose_16bit_4x8(const __m128i *const in,
116
152M
                                       __m128i *const out) {
117
  // Unpack 16 bit elements. Goes from:
118
  // in[0]: 00 01 02 03  XX XX XX XX
119
  // in[1]: 10 11 12 13  XX XX XX XX
120
  // in[2]: 20 21 22 23  XX XX XX XX
121
  // in[3]: 30 31 32 33  XX XX XX XX
122
  // in[4]: 40 41 42 43  XX XX XX XX
123
  // in[5]: 50 51 52 53  XX XX XX XX
124
  // in[6]: 60 61 62 63  XX XX XX XX
125
  // in[7]: 70 71 72 73  XX XX XX XX
126
  // to:
127
  // a0:    00 10 01 11  02 12 03 13
128
  // a1:    20 30 21 31  22 32 23 33
129
  // a2:    40 50 41 51  42 52 43 53
130
  // a3:    60 70 61 71  62 72 63 73
131
152M
  const __m128i a0 = _mm_unpacklo_epi16(in[0], in[1]);
132
152M
  const __m128i a1 = _mm_unpacklo_epi16(in[2], in[3]);
133
152M
  const __m128i a2 = _mm_unpacklo_epi16(in[4], in[5]);
134
152M
  const __m128i a3 = _mm_unpacklo_epi16(in[6], in[7]);
135
136
  // Unpack 32 bit elements resulting in:
137
  // b0: 00 10 20 30  01 11 21 31
138
  // b1: 40 50 60 70  41 51 61 71
139
  // b2: 02 12 22 32  03 13 23 33
140
  // b3: 42 52 62 72  43 53 63 73
141
152M
  const __m128i b0 = _mm_unpacklo_epi32(a0, a1);
142
152M
  const __m128i b1 = _mm_unpacklo_epi32(a2, a3);
143
152M
  const __m128i b2 = _mm_unpackhi_epi32(a0, a1);
144
152M
  const __m128i b3 = _mm_unpackhi_epi32(a2, a3);
145
146
  // Unpack 64 bit elements resulting in:
147
  // out[0]: 00 10 20 30  40 50 60 70
148
  // out[1]: 01 11 21 31  41 51 61 71
149
  // out[2]: 02 12 22 32  42 52 62 72
150
  // out[3]: 03 13 23 33  43 53 63 73
151
152M
  out[0] = _mm_unpacklo_epi64(b0, b1);
152
152M
  out[1] = _mm_unpackhi_epi64(b0, b1);
153
152M
  out[2] = _mm_unpacklo_epi64(b2, b3);
154
152M
  out[3] = _mm_unpackhi_epi64(b2, b3);
155
152M
}
vpx_subpixel_8t_intrin_ssse3.c:transpose_16bit_4x8
Line
Count
Source
116
151M
                                       __m128i *const out) {
117
  // Unpack 16 bit elements. Goes from:
118
  // in[0]: 00 01 02 03  XX XX XX XX
119
  // in[1]: 10 11 12 13  XX XX XX XX
120
  // in[2]: 20 21 22 23  XX XX XX XX
121
  // in[3]: 30 31 32 33  XX XX XX XX
122
  // in[4]: 40 41 42 43  XX XX XX XX
123
  // in[5]: 50 51 52 53  XX XX XX XX
124
  // in[6]: 60 61 62 63  XX XX XX XX
125
  // in[7]: 70 71 72 73  XX XX XX XX
126
  // to:
127
  // a0:    00 10 01 11  02 12 03 13
128
  // a1:    20 30 21 31  22 32 23 33
129
  // a2:    40 50 41 51  42 52 43 53
130
  // a3:    60 70 61 71  62 72 63 73
131
151M
  const __m128i a0 = _mm_unpacklo_epi16(in[0], in[1]);
132
151M
  const __m128i a1 = _mm_unpacklo_epi16(in[2], in[3]);
133
151M
  const __m128i a2 = _mm_unpacklo_epi16(in[4], in[5]);
134
151M
  const __m128i a3 = _mm_unpacklo_epi16(in[6], in[7]);
135
136
  // Unpack 32 bit elements resulting in:
137
  // b0: 00 10 20 30  01 11 21 31
138
  // b1: 40 50 60 70  41 51 61 71
139
  // b2: 02 12 22 32  03 13 23 33
140
  // b3: 42 52 62 72  43 53 63 73
141
151M
  const __m128i b0 = _mm_unpacklo_epi32(a0, a1);
142
151M
  const __m128i b1 = _mm_unpacklo_epi32(a2, a3);
143
151M
  const __m128i b2 = _mm_unpackhi_epi32(a0, a1);
144
151M
  const __m128i b3 = _mm_unpackhi_epi32(a2, a3);
145
146
  // Unpack 64 bit elements resulting in:
147
  // out[0]: 00 10 20 30  40 50 60 70
148
  // out[1]: 01 11 21 31  41 51 61 71
149
  // out[2]: 02 12 22 32  42 52 62 72
150
  // out[3]: 03 13 23 33  43 53 63 73
151
151M
  out[0] = _mm_unpacklo_epi64(b0, b1);
152
151M
  out[1] = _mm_unpackhi_epi64(b0, b1);
153
151M
  out[2] = _mm_unpacklo_epi64(b2, b3);
154
151M
  out[3] = _mm_unpackhi_epi64(b2, b3);
155
151M
}
inv_txfm_sse2.c:transpose_16bit_4x8
Line
Count
Source
116
1.34M
                                       __m128i *const out) {
117
  // Unpack 16 bit elements. Goes from:
118
  // in[0]: 00 01 02 03  XX XX XX XX
119
  // in[1]: 10 11 12 13  XX XX XX XX
120
  // in[2]: 20 21 22 23  XX XX XX XX
121
  // in[3]: 30 31 32 33  XX XX XX XX
122
  // in[4]: 40 41 42 43  XX XX XX XX
123
  // in[5]: 50 51 52 53  XX XX XX XX
124
  // in[6]: 60 61 62 63  XX XX XX XX
125
  // in[7]: 70 71 72 73  XX XX XX XX
126
  // to:
127
  // a0:    00 10 01 11  02 12 03 13
128
  // a1:    20 30 21 31  22 32 23 33
129
  // a2:    40 50 41 51  42 52 43 53
130
  // a3:    60 70 61 71  62 72 63 73
131
1.34M
  const __m128i a0 = _mm_unpacklo_epi16(in[0], in[1]);
132
1.34M
  const __m128i a1 = _mm_unpacklo_epi16(in[2], in[3]);
133
1.34M
  const __m128i a2 = _mm_unpacklo_epi16(in[4], in[5]);
134
1.34M
  const __m128i a3 = _mm_unpacklo_epi16(in[6], in[7]);
135
136
  // Unpack 32 bit elements resulting in:
137
  // b0: 00 10 20 30  01 11 21 31
138
  // b1: 40 50 60 70  41 51 61 71
139
  // b2: 02 12 22 32  03 13 23 33
140
  // b3: 42 52 62 72  43 53 63 73
141
1.34M
  const __m128i b0 = _mm_unpacklo_epi32(a0, a1);
142
1.34M
  const __m128i b1 = _mm_unpacklo_epi32(a2, a3);
143
1.34M
  const __m128i b2 = _mm_unpackhi_epi32(a0, a1);
144
1.34M
  const __m128i b3 = _mm_unpackhi_epi32(a2, a3);
145
146
  // Unpack 64 bit elements resulting in:
147
  // out[0]: 00 10 20 30  40 50 60 70
148
  // out[1]: 01 11 21 31  41 51 61 71
149
  // out[2]: 02 12 22 32  42 52 62 72
150
  // out[3]: 03 13 23 33  43 53 63 73
151
1.34M
  out[0] = _mm_unpacklo_epi64(b0, b1);
152
1.34M
  out[1] = _mm_unpackhi_epi64(b0, b1);
153
1.34M
  out[2] = _mm_unpacklo_epi64(b2, b3);
154
1.34M
  out[3] = _mm_unpackhi_epi64(b2, b3);
155
1.34M
}
Unexecuted instantiation: inv_txfm_ssse3.c:transpose_16bit_4x8
Unexecuted instantiation: highbd_idct4x4_add_sse2.c:transpose_16bit_4x8
Unexecuted instantiation: highbd_idct8x8_add_sse2.c:transpose_16bit_4x8
Unexecuted instantiation: highbd_idct16x16_add_sse2.c:transpose_16bit_4x8
Unexecuted instantiation: highbd_idct32x32_add_sse2.c:transpose_16bit_4x8
Unexecuted instantiation: highbd_idct4x4_add_sse4.c:transpose_16bit_4x8
Unexecuted instantiation: highbd_idct8x8_add_sse4.c:transpose_16bit_4x8
Unexecuted instantiation: highbd_idct16x16_add_sse4.c:transpose_16bit_4x8
Unexecuted instantiation: highbd_idct32x32_add_sse4.c:transpose_16bit_4x8
Unexecuted instantiation: vp9_idct_intrin_sse2.c:transpose_16bit_4x8
Unexecuted instantiation: vp9_highbd_iht4x4_add_sse4.c:transpose_16bit_4x8
Unexecuted instantiation: vp9_highbd_iht8x8_add_sse4.c:transpose_16bit_4x8
Unexecuted instantiation: vp9_highbd_iht16x16_add_sse4.c:transpose_16bit_4x8
Unexecuted instantiation: vp9_dct_intrin_sse2.c:transpose_16bit_4x8
Unexecuted instantiation: vp9_frame_scale_ssse3.c:transpose_16bit_4x8
156
157
static INLINE void transpose_16bit_8x8(const __m128i *const in,
158
254M
                                       __m128i *const out) {
159
  // Unpack 16 bit elements. Goes from:
160
  // in[0]: 00 01 02 03  04 05 06 07
161
  // in[1]: 10 11 12 13  14 15 16 17
162
  // in[2]: 20 21 22 23  24 25 26 27
163
  // in[3]: 30 31 32 33  34 35 36 37
164
  // in[4]: 40 41 42 43  44 45 46 47
165
  // in[5]: 50 51 52 53  54 55 56 57
166
  // in[6]: 60 61 62 63  64 65 66 67
167
  // in[7]: 70 71 72 73  74 75 76 77
168
  // to:
169
  // a0:    00 10 01 11  02 12 03 13
170
  // a1:    20 30 21 31  22 32 23 33
171
  // a2:    40 50 41 51  42 52 43 53
172
  // a3:    60 70 61 71  62 72 63 73
173
  // a4:    04 14 05 15  06 16 07 17
174
  // a5:    24 34 25 35  26 36 27 37
175
  // a6:    44 54 45 55  46 56 47 57
176
  // a7:    64 74 65 75  66 76 67 77
177
254M
  const __m128i a0 = _mm_unpacklo_epi16(in[0], in[1]);
178
254M
  const __m128i a1 = _mm_unpacklo_epi16(in[2], in[3]);
179
254M
  const __m128i a2 = _mm_unpacklo_epi16(in[4], in[5]);
180
254M
  const __m128i a3 = _mm_unpacklo_epi16(in[6], in[7]);
181
254M
  const __m128i a4 = _mm_unpackhi_epi16(in[0], in[1]);
182
254M
  const __m128i a5 = _mm_unpackhi_epi16(in[2], in[3]);
183
254M
  const __m128i a6 = _mm_unpackhi_epi16(in[4], in[5]);
184
254M
  const __m128i a7 = _mm_unpackhi_epi16(in[6], in[7]);
185
186
  // Unpack 32 bit elements resulting in:
187
  // b0: 00 10 20 30  01 11 21 31
188
  // b1: 40 50 60 70  41 51 61 71
189
  // b2: 04 14 24 34  05 15 25 35
190
  // b3: 44 54 64 74  45 55 65 75
191
  // b4: 02 12 22 32  03 13 23 33
192
  // b5: 42 52 62 72  43 53 63 73
193
  // b6: 06 16 26 36  07 17 27 37
194
  // b7: 46 56 66 76  47 57 67 77
195
254M
  const __m128i b0 = _mm_unpacklo_epi32(a0, a1);
196
254M
  const __m128i b1 = _mm_unpacklo_epi32(a2, a3);
197
254M
  const __m128i b2 = _mm_unpacklo_epi32(a4, a5);
198
254M
  const __m128i b3 = _mm_unpacklo_epi32(a6, a7);
199
254M
  const __m128i b4 = _mm_unpackhi_epi32(a0, a1);
200
254M
  const __m128i b5 = _mm_unpackhi_epi32(a2, a3);
201
254M
  const __m128i b6 = _mm_unpackhi_epi32(a4, a5);
202
254M
  const __m128i b7 = _mm_unpackhi_epi32(a6, a7);
203
204
  // Unpack 64 bit elements resulting in:
205
  // out[0]: 00 10 20 30  40 50 60 70
206
  // out[1]: 01 11 21 31  41 51 61 71
207
  // out[2]: 02 12 22 32  42 52 62 72
208
  // out[3]: 03 13 23 33  43 53 63 73
209
  // out[4]: 04 14 24 34  44 54 64 74
210
  // out[5]: 05 15 25 35  45 55 65 75
211
  // out[6]: 06 16 26 36  46 56 66 76
212
  // out[7]: 07 17 27 37  47 57 67 77
213
254M
  out[0] = _mm_unpacklo_epi64(b0, b1);
214
254M
  out[1] = _mm_unpackhi_epi64(b0, b1);
215
254M
  out[2] = _mm_unpacklo_epi64(b4, b5);
216
254M
  out[3] = _mm_unpackhi_epi64(b4, b5);
217
254M
  out[4] = _mm_unpacklo_epi64(b2, b3);
218
254M
  out[5] = _mm_unpackhi_epi64(b2, b3);
219
254M
  out[6] = _mm_unpacklo_epi64(b6, b7);
220
254M
  out[7] = _mm_unpackhi_epi64(b6, b7);
221
254M
}
Unexecuted instantiation: vpx_subpixel_8t_intrin_ssse3.c:transpose_16bit_8x8
inv_txfm_sse2.c:transpose_16bit_8x8
Line
Count
Source
158
160M
                                       __m128i *const out) {
159
  // Unpack 16 bit elements. Goes from:
160
  // in[0]: 00 01 02 03  04 05 06 07
161
  // in[1]: 10 11 12 13  14 15 16 17
162
  // in[2]: 20 21 22 23  24 25 26 27
163
  // in[3]: 30 31 32 33  34 35 36 37
164
  // in[4]: 40 41 42 43  44 45 46 47
165
  // in[5]: 50 51 52 53  54 55 56 57
166
  // in[6]: 60 61 62 63  64 65 66 67
167
  // in[7]: 70 71 72 73  74 75 76 77
168
  // to:
169
  // a0:    00 10 01 11  02 12 03 13
170
  // a1:    20 30 21 31  22 32 23 33
171
  // a2:    40 50 41 51  42 52 43 53
172
  // a3:    60 70 61 71  62 72 63 73
173
  // a4:    04 14 05 15  06 16 07 17
174
  // a5:    24 34 25 35  26 36 27 37
175
  // a6:    44 54 45 55  46 56 47 57
176
  // a7:    64 74 65 75  66 76 67 77
177
160M
  const __m128i a0 = _mm_unpacklo_epi16(in[0], in[1]);
178
160M
  const __m128i a1 = _mm_unpacklo_epi16(in[2], in[3]);
179
160M
  const __m128i a2 = _mm_unpacklo_epi16(in[4], in[5]);
180
160M
  const __m128i a3 = _mm_unpacklo_epi16(in[6], in[7]);
181
160M
  const __m128i a4 = _mm_unpackhi_epi16(in[0], in[1]);
182
160M
  const __m128i a5 = _mm_unpackhi_epi16(in[2], in[3]);
183
160M
  const __m128i a6 = _mm_unpackhi_epi16(in[4], in[5]);
184
160M
  const __m128i a7 = _mm_unpackhi_epi16(in[6], in[7]);
185
186
  // Unpack 32 bit elements resulting in:
187
  // b0: 00 10 20 30  01 11 21 31
188
  // b1: 40 50 60 70  41 51 61 71
189
  // b2: 04 14 24 34  05 15 25 35
190
  // b3: 44 54 64 74  45 55 65 75
191
  // b4: 02 12 22 32  03 13 23 33
192
  // b5: 42 52 62 72  43 53 63 73
193
  // b6: 06 16 26 36  07 17 27 37
194
  // b7: 46 56 66 76  47 57 67 77
195
160M
  const __m128i b0 = _mm_unpacklo_epi32(a0, a1);
196
160M
  const __m128i b1 = _mm_unpacklo_epi32(a2, a3);
197
160M
  const __m128i b2 = _mm_unpacklo_epi32(a4, a5);
198
160M
  const __m128i b3 = _mm_unpacklo_epi32(a6, a7);
199
160M
  const __m128i b4 = _mm_unpackhi_epi32(a0, a1);
200
160M
  const __m128i b5 = _mm_unpackhi_epi32(a2, a3);
201
160M
  const __m128i b6 = _mm_unpackhi_epi32(a4, a5);
202
160M
  const __m128i b7 = _mm_unpackhi_epi32(a6, a7);
203
204
  // Unpack 64 bit elements resulting in:
205
  // out[0]: 00 10 20 30  40 50 60 70
206
  // out[1]: 01 11 21 31  41 51 61 71
207
  // out[2]: 02 12 22 32  42 52 62 72
208
  // out[3]: 03 13 23 33  43 53 63 73
209
  // out[4]: 04 14 24 34  44 54 64 74
210
  // out[5]: 05 15 25 35  45 55 65 75
211
  // out[6]: 06 16 26 36  46 56 66 76
212
  // out[7]: 07 17 27 37  47 57 67 77
213
160M
  out[0] = _mm_unpacklo_epi64(b0, b1);
214
160M
  out[1] = _mm_unpackhi_epi64(b0, b1);
215
160M
  out[2] = _mm_unpacklo_epi64(b4, b5);
216
160M
  out[3] = _mm_unpackhi_epi64(b4, b5);
217
160M
  out[4] = _mm_unpacklo_epi64(b2, b3);
218
160M
  out[5] = _mm_unpackhi_epi64(b2, b3);
219
160M
  out[6] = _mm_unpacklo_epi64(b6, b7);
220
160M
  out[7] = _mm_unpackhi_epi64(b6, b7);
221
160M
}
inv_txfm_ssse3.c:transpose_16bit_8x8
Line
Count
Source
158
3.47M
                                       __m128i *const out) {
159
  // Unpack 16 bit elements. Goes from:
160
  // in[0]: 00 01 02 03  04 05 06 07
161
  // in[1]: 10 11 12 13  14 15 16 17
162
  // in[2]: 20 21 22 23  24 25 26 27
163
  // in[3]: 30 31 32 33  34 35 36 37
164
  // in[4]: 40 41 42 43  44 45 46 47
165
  // in[5]: 50 51 52 53  54 55 56 57
166
  // in[6]: 60 61 62 63  64 65 66 67
167
  // in[7]: 70 71 72 73  74 75 76 77
168
  // to:
169
  // a0:    00 10 01 11  02 12 03 13
170
  // a1:    20 30 21 31  22 32 23 33
171
  // a2:    40 50 41 51  42 52 43 53
172
  // a3:    60 70 61 71  62 72 63 73
173
  // a4:    04 14 05 15  06 16 07 17
174
  // a5:    24 34 25 35  26 36 27 37
175
  // a6:    44 54 45 55  46 56 47 57
176
  // a7:    64 74 65 75  66 76 67 77
177
3.47M
  const __m128i a0 = _mm_unpacklo_epi16(in[0], in[1]);
178
3.47M
  const __m128i a1 = _mm_unpacklo_epi16(in[2], in[3]);
179
3.47M
  const __m128i a2 = _mm_unpacklo_epi16(in[4], in[5]);
180
3.47M
  const __m128i a3 = _mm_unpacklo_epi16(in[6], in[7]);
181
3.47M
  const __m128i a4 = _mm_unpackhi_epi16(in[0], in[1]);
182
3.47M
  const __m128i a5 = _mm_unpackhi_epi16(in[2], in[3]);
183
3.47M
  const __m128i a6 = _mm_unpackhi_epi16(in[4], in[5]);
184
3.47M
  const __m128i a7 = _mm_unpackhi_epi16(in[6], in[7]);
185
186
  // Unpack 32 bit elements resulting in:
187
  // b0: 00 10 20 30  01 11 21 31
188
  // b1: 40 50 60 70  41 51 61 71
189
  // b2: 04 14 24 34  05 15 25 35
190
  // b3: 44 54 64 74  45 55 65 75
191
  // b4: 02 12 22 32  03 13 23 33
192
  // b5: 42 52 62 72  43 53 63 73
193
  // b6: 06 16 26 36  07 17 27 37
194
  // b7: 46 56 66 76  47 57 67 77
195
3.47M
  const __m128i b0 = _mm_unpacklo_epi32(a0, a1);
196
3.47M
  const __m128i b1 = _mm_unpacklo_epi32(a2, a3);
197
3.47M
  const __m128i b2 = _mm_unpacklo_epi32(a4, a5);
198
3.47M
  const __m128i b3 = _mm_unpacklo_epi32(a6, a7);
199
3.47M
  const __m128i b4 = _mm_unpackhi_epi32(a0, a1);
200
3.47M
  const __m128i b5 = _mm_unpackhi_epi32(a2, a3);
201
3.47M
  const __m128i b6 = _mm_unpackhi_epi32(a4, a5);
202
3.47M
  const __m128i b7 = _mm_unpackhi_epi32(a6, a7);
203
204
  // Unpack 64 bit elements resulting in:
205
  // out[0]: 00 10 20 30  40 50 60 70
206
  // out[1]: 01 11 21 31  41 51 61 71
207
  // out[2]: 02 12 22 32  42 52 62 72
208
  // out[3]: 03 13 23 33  43 53 63 73
209
  // out[4]: 04 14 24 34  44 54 64 74
210
  // out[5]: 05 15 25 35  45 55 65 75
211
  // out[6]: 06 16 26 36  46 56 66 76
212
  // out[7]: 07 17 27 37  47 57 67 77
213
3.47M
  out[0] = _mm_unpacklo_epi64(b0, b1);
214
3.47M
  out[1] = _mm_unpackhi_epi64(b0, b1);
215
3.47M
  out[2] = _mm_unpacklo_epi64(b4, b5);
216
3.47M
  out[3] = _mm_unpackhi_epi64(b4, b5);
217
3.47M
  out[4] = _mm_unpacklo_epi64(b2, b3);
218
3.47M
  out[5] = _mm_unpackhi_epi64(b2, b3);
219
3.47M
  out[6] = _mm_unpacklo_epi64(b6, b7);
220
3.47M
  out[7] = _mm_unpackhi_epi64(b6, b7);
221
3.47M
}
Unexecuted instantiation: highbd_idct4x4_add_sse2.c:transpose_16bit_8x8
Unexecuted instantiation: highbd_idct8x8_add_sse2.c:transpose_16bit_8x8
Unexecuted instantiation: highbd_idct16x16_add_sse2.c:transpose_16bit_8x8
Unexecuted instantiation: highbd_idct32x32_add_sse2.c:transpose_16bit_8x8
Unexecuted instantiation: highbd_idct4x4_add_sse4.c:transpose_16bit_8x8
Unexecuted instantiation: highbd_idct8x8_add_sse4.c:transpose_16bit_8x8
Unexecuted instantiation: highbd_idct16x16_add_sse4.c:transpose_16bit_8x8
Unexecuted instantiation: highbd_idct32x32_add_sse4.c:transpose_16bit_8x8
Unexecuted instantiation: vp9_idct_intrin_sse2.c:transpose_16bit_8x8
Unexecuted instantiation: vp9_highbd_iht4x4_add_sse4.c:transpose_16bit_8x8
Unexecuted instantiation: vp9_highbd_iht8x8_add_sse4.c:transpose_16bit_8x8
Unexecuted instantiation: vp9_highbd_iht16x16_add_sse4.c:transpose_16bit_8x8
vp9_dct_intrin_sse2.c:transpose_16bit_8x8
Line
Count
Source
158
90.5M
                                       __m128i *const out) {
159
  // Unpack 16 bit elements. Goes from:
160
  // in[0]: 00 01 02 03  04 05 06 07
161
  // in[1]: 10 11 12 13  14 15 16 17
162
  // in[2]: 20 21 22 23  24 25 26 27
163
  // in[3]: 30 31 32 33  34 35 36 37
164
  // in[4]: 40 41 42 43  44 45 46 47
165
  // in[5]: 50 51 52 53  54 55 56 57
166
  // in[6]: 60 61 62 63  64 65 66 67
167
  // in[7]: 70 71 72 73  74 75 76 77
168
  // to:
169
  // a0:    00 10 01 11  02 12 03 13
170
  // a1:    20 30 21 31  22 32 23 33
171
  // a2:    40 50 41 51  42 52 43 53
172
  // a3:    60 70 61 71  62 72 63 73
173
  // a4:    04 14 05 15  06 16 07 17
174
  // a5:    24 34 25 35  26 36 27 37
175
  // a6:    44 54 45 55  46 56 47 57
176
  // a7:    64 74 65 75  66 76 67 77
177
90.5M
  const __m128i a0 = _mm_unpacklo_epi16(in[0], in[1]);
178
90.5M
  const __m128i a1 = _mm_unpacklo_epi16(in[2], in[3]);
179
90.5M
  const __m128i a2 = _mm_unpacklo_epi16(in[4], in[5]);
180
90.5M
  const __m128i a3 = _mm_unpacklo_epi16(in[6], in[7]);
181
90.5M
  const __m128i a4 = _mm_unpackhi_epi16(in[0], in[1]);
182
90.5M
  const __m128i a5 = _mm_unpackhi_epi16(in[2], in[3]);
183
90.5M
  const __m128i a6 = _mm_unpackhi_epi16(in[4], in[5]);
184
90.5M
  const __m128i a7 = _mm_unpackhi_epi16(in[6], in[7]);
185
186
  // Unpack 32 bit elements resulting in:
187
  // b0: 00 10 20 30  01 11 21 31
188
  // b1: 40 50 60 70  41 51 61 71
189
  // b2: 04 14 24 34  05 15 25 35
190
  // b3: 44 54 64 74  45 55 65 75
191
  // b4: 02 12 22 32  03 13 23 33
192
  // b5: 42 52 62 72  43 53 63 73
193
  // b6: 06 16 26 36  07 17 27 37
194
  // b7: 46 56 66 76  47 57 67 77
195
90.5M
  const __m128i b0 = _mm_unpacklo_epi32(a0, a1);
196
90.5M
  const __m128i b1 = _mm_unpacklo_epi32(a2, a3);
197
90.5M
  const __m128i b2 = _mm_unpacklo_epi32(a4, a5);
198
90.5M
  const __m128i b3 = _mm_unpacklo_epi32(a6, a7);
199
90.5M
  const __m128i b4 = _mm_unpackhi_epi32(a0, a1);
200
90.5M
  const __m128i b5 = _mm_unpackhi_epi32(a2, a3);
201
90.5M
  const __m128i b6 = _mm_unpackhi_epi32(a4, a5);
202
90.5M
  const __m128i b7 = _mm_unpackhi_epi32(a6, a7);
203
204
  // Unpack 64 bit elements resulting in:
205
  // out[0]: 00 10 20 30  40 50 60 70
206
  // out[1]: 01 11 21 31  41 51 61 71
207
  // out[2]: 02 12 22 32  42 52 62 72
208
  // out[3]: 03 13 23 33  43 53 63 73
209
  // out[4]: 04 14 24 34  44 54 64 74
210
  // out[5]: 05 15 25 35  45 55 65 75
211
  // out[6]: 06 16 26 36  46 56 66 76
212
  // out[7]: 07 17 27 37  47 57 67 77
213
90.5M
  out[0] = _mm_unpacklo_epi64(b0, b1);
214
90.5M
  out[1] = _mm_unpackhi_epi64(b0, b1);
215
90.5M
  out[2] = _mm_unpacklo_epi64(b4, b5);
216
90.5M
  out[3] = _mm_unpackhi_epi64(b4, b5);
217
90.5M
  out[4] = _mm_unpacklo_epi64(b2, b3);
218
90.5M
  out[5] = _mm_unpackhi_epi64(b2, b3);
219
90.5M
  out[6] = _mm_unpacklo_epi64(b6, b7);
220
90.5M
  out[7] = _mm_unpackhi_epi64(b6, b7);
221
90.5M
}
Unexecuted instantiation: vp9_frame_scale_ssse3.c:transpose_16bit_8x8
222
223
// Transpose in-place
224
static INLINE void transpose_16bit_16x16(__m128i *const left,
225
22.3M
                                         __m128i *const right) {
226
22.3M
  __m128i tbuf[8];
227
22.3M
  transpose_16bit_8x8(left, left);
228
22.3M
  transpose_16bit_8x8(right, tbuf);
229
22.3M
  transpose_16bit_8x8(left + 8, right);
230
22.3M
  transpose_16bit_8x8(right + 8, right + 8);
231
232
22.3M
  left[8] = tbuf[0];
233
22.3M
  left[9] = tbuf[1];
234
22.3M
  left[10] = tbuf[2];
235
22.3M
  left[11] = tbuf[3];
236
22.3M
  left[12] = tbuf[4];
237
22.3M
  left[13] = tbuf[5];
238
22.3M
  left[14] = tbuf[6];
239
22.3M
  left[15] = tbuf[7];
240
22.3M
}
Unexecuted instantiation: vpx_subpixel_8t_intrin_ssse3.c:transpose_16bit_16x16
inv_txfm_sse2.c:transpose_16bit_16x16
Line
Count
Source
225
11.0M
                                         __m128i *const right) {
226
11.0M
  __m128i tbuf[8];
227
11.0M
  transpose_16bit_8x8(left, left);
228
11.0M
  transpose_16bit_8x8(right, tbuf);
229
11.0M
  transpose_16bit_8x8(left + 8, right);
230
11.0M
  transpose_16bit_8x8(right + 8, right + 8);
231
232
11.0M
  left[8] = tbuf[0];
233
11.0M
  left[9] = tbuf[1];
234
11.0M
  left[10] = tbuf[2];
235
11.0M
  left[11] = tbuf[3];
236
11.0M
  left[12] = tbuf[4];
237
11.0M
  left[13] = tbuf[5];
238
11.0M
  left[14] = tbuf[6];
239
11.0M
  left[15] = tbuf[7];
240
11.0M
}
Unexecuted instantiation: inv_txfm_ssse3.c:transpose_16bit_16x16
Unexecuted instantiation: highbd_idct4x4_add_sse2.c:transpose_16bit_16x16
Unexecuted instantiation: highbd_idct8x8_add_sse2.c:transpose_16bit_16x16
Unexecuted instantiation: highbd_idct16x16_add_sse2.c:transpose_16bit_16x16
Unexecuted instantiation: highbd_idct32x32_add_sse2.c:transpose_16bit_16x16
Unexecuted instantiation: highbd_idct4x4_add_sse4.c:transpose_16bit_16x16
Unexecuted instantiation: highbd_idct8x8_add_sse4.c:transpose_16bit_16x16
Unexecuted instantiation: highbd_idct16x16_add_sse4.c:transpose_16bit_16x16
Unexecuted instantiation: highbd_idct32x32_add_sse4.c:transpose_16bit_16x16
Unexecuted instantiation: vp9_idct_intrin_sse2.c:transpose_16bit_16x16
Unexecuted instantiation: vp9_highbd_iht4x4_add_sse4.c:transpose_16bit_16x16
Unexecuted instantiation: vp9_highbd_iht8x8_add_sse4.c:transpose_16bit_16x16
Unexecuted instantiation: vp9_highbd_iht16x16_add_sse4.c:transpose_16bit_16x16
vp9_dct_intrin_sse2.c:transpose_16bit_16x16
Line
Count
Source
225
11.2M
                                         __m128i *const right) {
226
11.2M
  __m128i tbuf[8];
227
11.2M
  transpose_16bit_8x8(left, left);
228
11.2M
  transpose_16bit_8x8(right, tbuf);
229
11.2M
  transpose_16bit_8x8(left + 8, right);
230
11.2M
  transpose_16bit_8x8(right + 8, right + 8);
231
232
11.2M
  left[8] = tbuf[0];
233
11.2M
  left[9] = tbuf[1];
234
11.2M
  left[10] = tbuf[2];
235
11.2M
  left[11] = tbuf[3];
236
11.2M
  left[12] = tbuf[4];
237
11.2M
  left[13] = tbuf[5];
238
11.2M
  left[14] = tbuf[6];
239
11.2M
  left[15] = tbuf[7];
240
11.2M
}
Unexecuted instantiation: vp9_frame_scale_ssse3.c:transpose_16bit_16x16
241
242
static INLINE void transpose_32bit_4x4(const __m128i *const in,
243
22.9M
                                       __m128i *const out) {
244
  // Unpack 32 bit elements. Goes from:
245
  // in[0]: 00 01 02 03
246
  // in[1]: 10 11 12 13
247
  // in[2]: 20 21 22 23
248
  // in[3]: 30 31 32 33
249
  // to:
250
  // a0:    00 10 01 11
251
  // a1:    20 30 21 31
252
  // a2:    02 12 03 13
253
  // a3:    22 32 23 33
254
255
22.9M
  const __m128i a0 = _mm_unpacklo_epi32(in[0], in[1]);
256
22.9M
  const __m128i a1 = _mm_unpacklo_epi32(in[2], in[3]);
257
22.9M
  const __m128i a2 = _mm_unpackhi_epi32(in[0], in[1]);
258
22.9M
  const __m128i a3 = _mm_unpackhi_epi32(in[2], in[3]);
259
260
  // Unpack 64 bit elements resulting in:
261
  // out[0]: 00 10 20 30
262
  // out[1]: 01 11 21 31
263
  // out[2]: 02 12 22 32
264
  // out[3]: 03 13 23 33
265
22.9M
  out[0] = _mm_unpacklo_epi64(a0, a1);
266
22.9M
  out[1] = _mm_unpackhi_epi64(a0, a1);
267
22.9M
  out[2] = _mm_unpacklo_epi64(a2, a3);
268
22.9M
  out[3] = _mm_unpackhi_epi64(a2, a3);
269
22.9M
}
Unexecuted instantiation: vpx_subpixel_8t_intrin_ssse3.c:transpose_32bit_4x4
Unexecuted instantiation: inv_txfm_sse2.c:transpose_32bit_4x4
Unexecuted instantiation: inv_txfm_ssse3.c:transpose_32bit_4x4
Unexecuted instantiation: highbd_idct4x4_add_sse2.c:transpose_32bit_4x4
Unexecuted instantiation: highbd_idct8x8_add_sse2.c:transpose_32bit_4x4
Unexecuted instantiation: highbd_idct16x16_add_sse2.c:transpose_32bit_4x4
Unexecuted instantiation: highbd_idct32x32_add_sse2.c:transpose_32bit_4x4
highbd_idct4x4_add_sse4.c:transpose_32bit_4x4
Line
Count
Source
243
3.16M
                                       __m128i *const out) {
244
  // Unpack 32 bit elements. Goes from:
245
  // in[0]: 00 01 02 03
246
  // in[1]: 10 11 12 13
247
  // in[2]: 20 21 22 23
248
  // in[3]: 30 31 32 33
249
  // to:
250
  // a0:    00 10 01 11
251
  // a1:    20 30 21 31
252
  // a2:    02 12 03 13
253
  // a3:    22 32 23 33
254
255
3.16M
  const __m128i a0 = _mm_unpacklo_epi32(in[0], in[1]);
256
3.16M
  const __m128i a1 = _mm_unpacklo_epi32(in[2], in[3]);
257
3.16M
  const __m128i a2 = _mm_unpackhi_epi32(in[0], in[1]);
258
3.16M
  const __m128i a3 = _mm_unpackhi_epi32(in[2], in[3]);
259
260
  // Unpack 64 bit elements resulting in:
261
  // out[0]: 00 10 20 30
262
  // out[1]: 01 11 21 31
263
  // out[2]: 02 12 22 32
264
  // out[3]: 03 13 23 33
265
3.16M
  out[0] = _mm_unpacklo_epi64(a0, a1);
266
3.16M
  out[1] = _mm_unpackhi_epi64(a0, a1);
267
3.16M
  out[2] = _mm_unpacklo_epi64(a2, a3);
268
3.16M
  out[3] = _mm_unpackhi_epi64(a2, a3);
269
3.16M
}
highbd_idct8x8_add_sse4.c:transpose_32bit_4x4
Line
Count
Source
243
603k
                                       __m128i *const out) {
244
  // Unpack 32 bit elements. Goes from:
245
  // in[0]: 00 01 02 03
246
  // in[1]: 10 11 12 13
247
  // in[2]: 20 21 22 23
248
  // in[3]: 30 31 32 33
249
  // to:
250
  // a0:    00 10 01 11
251
  // a1:    20 30 21 31
252
  // a2:    02 12 03 13
253
  // a3:    22 32 23 33
254
255
603k
  const __m128i a0 = _mm_unpacklo_epi32(in[0], in[1]);
256
603k
  const __m128i a1 = _mm_unpacklo_epi32(in[2], in[3]);
257
603k
  const __m128i a2 = _mm_unpackhi_epi32(in[0], in[1]);
258
603k
  const __m128i a3 = _mm_unpackhi_epi32(in[2], in[3]);
259
260
  // Unpack 64 bit elements resulting in:
261
  // out[0]: 00 10 20 30
262
  // out[1]: 01 11 21 31
263
  // out[2]: 02 12 22 32
264
  // out[3]: 03 13 23 33
265
603k
  out[0] = _mm_unpacklo_epi64(a0, a1);
266
603k
  out[1] = _mm_unpackhi_epi64(a0, a1);
267
603k
  out[2] = _mm_unpacklo_epi64(a2, a3);
268
603k
  out[3] = _mm_unpackhi_epi64(a2, a3);
269
603k
}
highbd_idct16x16_add_sse4.c:transpose_32bit_4x4
Line
Count
Source
243
4.88M
                                       __m128i *const out) {
244
  // Unpack 32 bit elements. Goes from:
245
  // in[0]: 00 01 02 03
246
  // in[1]: 10 11 12 13
247
  // in[2]: 20 21 22 23
248
  // in[3]: 30 31 32 33
249
  // to:
250
  // a0:    00 10 01 11
251
  // a1:    20 30 21 31
252
  // a2:    02 12 03 13
253
  // a3:    22 32 23 33
254
255
4.88M
  const __m128i a0 = _mm_unpacklo_epi32(in[0], in[1]);
256
4.88M
  const __m128i a1 = _mm_unpacklo_epi32(in[2], in[3]);
257
4.88M
  const __m128i a2 = _mm_unpackhi_epi32(in[0], in[1]);
258
4.88M
  const __m128i a3 = _mm_unpackhi_epi32(in[2], in[3]);
259
260
  // Unpack 64 bit elements resulting in:
261
  // out[0]: 00 10 20 30
262
  // out[1]: 01 11 21 31
263
  // out[2]: 02 12 22 32
264
  // out[3]: 03 13 23 33
265
4.88M
  out[0] = _mm_unpacklo_epi64(a0, a1);
266
4.88M
  out[1] = _mm_unpackhi_epi64(a0, a1);
267
4.88M
  out[2] = _mm_unpacklo_epi64(a2, a3);
268
4.88M
  out[3] = _mm_unpackhi_epi64(a2, a3);
269
4.88M
}
highbd_idct32x32_add_sse4.c:transpose_32bit_4x4
Line
Count
Source
243
9.49M
                                       __m128i *const out) {
244
  // Unpack 32 bit elements. Goes from:
245
  // in[0]: 00 01 02 03
246
  // in[1]: 10 11 12 13
247
  // in[2]: 20 21 22 23
248
  // in[3]: 30 31 32 33
249
  // to:
250
  // a0:    00 10 01 11
251
  // a1:    20 30 21 31
252
  // a2:    02 12 03 13
253
  // a3:    22 32 23 33
254
255
9.49M
  const __m128i a0 = _mm_unpacklo_epi32(in[0], in[1]);
256
9.49M
  const __m128i a1 = _mm_unpacklo_epi32(in[2], in[3]);
257
9.49M
  const __m128i a2 = _mm_unpackhi_epi32(in[0], in[1]);
258
9.49M
  const __m128i a3 = _mm_unpackhi_epi32(in[2], in[3]);
259
260
  // Unpack 64 bit elements resulting in:
261
  // out[0]: 00 10 20 30
262
  // out[1]: 01 11 21 31
263
  // out[2]: 02 12 22 32
264
  // out[3]: 03 13 23 33
265
9.49M
  out[0] = _mm_unpacklo_epi64(a0, a1);
266
9.49M
  out[1] = _mm_unpackhi_epi64(a0, a1);
267
9.49M
  out[2] = _mm_unpacklo_epi64(a2, a3);
268
9.49M
  out[3] = _mm_unpackhi_epi64(a2, a3);
269
9.49M
}
Unexecuted instantiation: vp9_idct_intrin_sse2.c:transpose_32bit_4x4
vp9_highbd_iht4x4_add_sse4.c:transpose_32bit_4x4
Line
Count
Source
243
897k
                                       __m128i *const out) {
244
  // Unpack 32 bit elements. Goes from:
245
  // in[0]: 00 01 02 03
246
  // in[1]: 10 11 12 13
247
  // in[2]: 20 21 22 23
248
  // in[3]: 30 31 32 33
249
  // to:
250
  // a0:    00 10 01 11
251
  // a1:    20 30 21 31
252
  // a2:    02 12 03 13
253
  // a3:    22 32 23 33
254
255
897k
  const __m128i a0 = _mm_unpacklo_epi32(in[0], in[1]);
256
897k
  const __m128i a1 = _mm_unpacklo_epi32(in[2], in[3]);
257
897k
  const __m128i a2 = _mm_unpackhi_epi32(in[0], in[1]);
258
897k
  const __m128i a3 = _mm_unpackhi_epi32(in[2], in[3]);
259
260
  // Unpack 64 bit elements resulting in:
261
  // out[0]: 00 10 20 30
262
  // out[1]: 01 11 21 31
263
  // out[2]: 02 12 22 32
264
  // out[3]: 03 13 23 33
265
897k
  out[0] = _mm_unpacklo_epi64(a0, a1);
266
897k
  out[1] = _mm_unpackhi_epi64(a0, a1);
267
897k
  out[2] = _mm_unpacklo_epi64(a2, a3);
268
897k
  out[3] = _mm_unpackhi_epi64(a2, a3);
269
897k
}
Unexecuted instantiation: vp9_highbd_iht8x8_add_sse4.c:transpose_32bit_4x4
vp9_highbd_iht16x16_add_sse4.c:transpose_32bit_4x4
Line
Count
Source
243
3.92M
                                       __m128i *const out) {
244
  // Unpack 32 bit elements. Goes from:
245
  // in[0]: 00 01 02 03
246
  // in[1]: 10 11 12 13
247
  // in[2]: 20 21 22 23
248
  // in[3]: 30 31 32 33
249
  // to:
250
  // a0:    00 10 01 11
251
  // a1:    20 30 21 31
252
  // a2:    02 12 03 13
253
  // a3:    22 32 23 33
254
255
3.92M
  const __m128i a0 = _mm_unpacklo_epi32(in[0], in[1]);
256
3.92M
  const __m128i a1 = _mm_unpacklo_epi32(in[2], in[3]);
257
3.92M
  const __m128i a2 = _mm_unpackhi_epi32(in[0], in[1]);
258
3.92M
  const __m128i a3 = _mm_unpackhi_epi32(in[2], in[3]);
259
260
  // Unpack 64 bit elements resulting in:
261
  // out[0]: 00 10 20 30
262
  // out[1]: 01 11 21 31
263
  // out[2]: 02 12 22 32
264
  // out[3]: 03 13 23 33
265
3.92M
  out[0] = _mm_unpacklo_epi64(a0, a1);
266
3.92M
  out[1] = _mm_unpackhi_epi64(a0, a1);
267
3.92M
  out[2] = _mm_unpacklo_epi64(a2, a3);
268
3.92M
  out[3] = _mm_unpackhi_epi64(a2, a3);
269
3.92M
}
Unexecuted instantiation: vp9_dct_intrin_sse2.c:transpose_32bit_4x4
Unexecuted instantiation: vp9_frame_scale_ssse3.c:transpose_32bit_4x4
270
271
static INLINE void transpose_32bit_4x4x2(const __m128i *const in,
272
2.19M
                                         __m128i *const out) {
273
  // Unpack 32 bit elements. Goes from:
274
  // in[0]: 00 01 02 03
275
  // in[1]: 10 11 12 13
276
  // in[2]: 20 21 22 23
277
  // in[3]: 30 31 32 33
278
  // in[4]: 04 05 06 07
279
  // in[5]: 14 15 16 17
280
  // in[6]: 24 25 26 27
281
  // in[7]: 34 35 36 37
282
  // to:
283
  // a0:    00 10 01 11
284
  // a1:    20 30 21 31
285
  // a2:    02 12 03 13
286
  // a3:    22 32 23 33
287
  // a4:    04 14 05 15
288
  // a5:    24 34 25 35
289
  // a6:    06 16 07 17
290
  // a7:    26 36 27 37
291
2.19M
  const __m128i a0 = _mm_unpacklo_epi32(in[0], in[1]);
292
2.19M
  const __m128i a1 = _mm_unpacklo_epi32(in[2], in[3]);
293
2.19M
  const __m128i a2 = _mm_unpackhi_epi32(in[0], in[1]);
294
2.19M
  const __m128i a3 = _mm_unpackhi_epi32(in[2], in[3]);
295
2.19M
  const __m128i a4 = _mm_unpacklo_epi32(in[4], in[5]);
296
2.19M
  const __m128i a5 = _mm_unpacklo_epi32(in[6], in[7]);
297
2.19M
  const __m128i a6 = _mm_unpackhi_epi32(in[4], in[5]);
298
2.19M
  const __m128i a7 = _mm_unpackhi_epi32(in[6], in[7]);
299
300
  // Unpack 64 bit elements resulting in:
301
  // out[0]: 00 10 20 30
302
  // out[1]: 01 11 21 31
303
  // out[2]: 02 12 22 32
304
  // out[3]: 03 13 23 33
305
  // out[4]: 04 14 24 34
306
  // out[5]: 05 15 25 35
307
  // out[6]: 06 16 26 36
308
  // out[7]: 07 17 27 37
309
2.19M
  out[0] = _mm_unpacklo_epi64(a0, a1);
310
2.19M
  out[1] = _mm_unpackhi_epi64(a0, a1);
311
2.19M
  out[2] = _mm_unpacklo_epi64(a2, a3);
312
2.19M
  out[3] = _mm_unpackhi_epi64(a2, a3);
313
2.19M
  out[4] = _mm_unpacklo_epi64(a4, a5);
314
2.19M
  out[5] = _mm_unpackhi_epi64(a4, a5);
315
2.19M
  out[6] = _mm_unpacklo_epi64(a6, a7);
316
2.19M
  out[7] = _mm_unpackhi_epi64(a6, a7);
317
2.19M
}
Unexecuted instantiation: vpx_subpixel_8t_intrin_ssse3.c:transpose_32bit_4x4x2
Unexecuted instantiation: inv_txfm_sse2.c:transpose_32bit_4x4x2
Unexecuted instantiation: inv_txfm_ssse3.c:transpose_32bit_4x4x2
Unexecuted instantiation: highbd_idct4x4_add_sse2.c:transpose_32bit_4x4x2
Unexecuted instantiation: highbd_idct8x8_add_sse2.c:transpose_32bit_4x4x2
Unexecuted instantiation: highbd_idct16x16_add_sse2.c:transpose_32bit_4x4x2
Unexecuted instantiation: highbd_idct32x32_add_sse2.c:transpose_32bit_4x4x2
Unexecuted instantiation: highbd_idct4x4_add_sse4.c:transpose_32bit_4x4x2
highbd_idct8x8_add_sse4.c:transpose_32bit_4x4x2
Line
Count
Source
272
1.54M
                                         __m128i *const out) {
273
  // Unpack 32 bit elements. Goes from:
274
  // in[0]: 00 01 02 03
275
  // in[1]: 10 11 12 13
276
  // in[2]: 20 21 22 23
277
  // in[3]: 30 31 32 33
278
  // in[4]: 04 05 06 07
279
  // in[5]: 14 15 16 17
280
  // in[6]: 24 25 26 27
281
  // in[7]: 34 35 36 37
282
  // to:
283
  // a0:    00 10 01 11
284
  // a1:    20 30 21 31
285
  // a2:    02 12 03 13
286
  // a3:    22 32 23 33
287
  // a4:    04 14 05 15
288
  // a5:    24 34 25 35
289
  // a6:    06 16 07 17
290
  // a7:    26 36 27 37
291
1.54M
  const __m128i a0 = _mm_unpacklo_epi32(in[0], in[1]);
292
1.54M
  const __m128i a1 = _mm_unpacklo_epi32(in[2], in[3]);
293
1.54M
  const __m128i a2 = _mm_unpackhi_epi32(in[0], in[1]);
294
1.54M
  const __m128i a3 = _mm_unpackhi_epi32(in[2], in[3]);
295
1.54M
  const __m128i a4 = _mm_unpacklo_epi32(in[4], in[5]);
296
1.54M
  const __m128i a5 = _mm_unpacklo_epi32(in[6], in[7]);
297
1.54M
  const __m128i a6 = _mm_unpackhi_epi32(in[4], in[5]);
298
1.54M
  const __m128i a7 = _mm_unpackhi_epi32(in[6], in[7]);
299
300
  // Unpack 64 bit elements resulting in:
301
  // out[0]: 00 10 20 30
302
  // out[1]: 01 11 21 31
303
  // out[2]: 02 12 22 32
304
  // out[3]: 03 13 23 33
305
  // out[4]: 04 14 24 34
306
  // out[5]: 05 15 25 35
307
  // out[6]: 06 16 26 36
308
  // out[7]: 07 17 27 37
309
1.54M
  out[0] = _mm_unpacklo_epi64(a0, a1);
310
1.54M
  out[1] = _mm_unpackhi_epi64(a0, a1);
311
1.54M
  out[2] = _mm_unpacklo_epi64(a2, a3);
312
1.54M
  out[3] = _mm_unpackhi_epi64(a2, a3);
313
1.54M
  out[4] = _mm_unpacklo_epi64(a4, a5);
314
1.54M
  out[5] = _mm_unpackhi_epi64(a4, a5);
315
1.54M
  out[6] = _mm_unpacklo_epi64(a6, a7);
316
1.54M
  out[7] = _mm_unpackhi_epi64(a6, a7);
317
1.54M
}
Unexecuted instantiation: highbd_idct16x16_add_sse4.c:transpose_32bit_4x4x2
Unexecuted instantiation: highbd_idct32x32_add_sse4.c:transpose_32bit_4x4x2
Unexecuted instantiation: vp9_idct_intrin_sse2.c:transpose_32bit_4x4x2
Unexecuted instantiation: vp9_highbd_iht4x4_add_sse4.c:transpose_32bit_4x4x2
vp9_highbd_iht8x8_add_sse4.c:transpose_32bit_4x4x2
Line
Count
Source
272
645k
                                         __m128i *const out) {
273
  // Unpack 32 bit elements. Goes from:
274
  // in[0]: 00 01 02 03
275
  // in[1]: 10 11 12 13
276
  // in[2]: 20 21 22 23
277
  // in[3]: 30 31 32 33
278
  // in[4]: 04 05 06 07
279
  // in[5]: 14 15 16 17
280
  // in[6]: 24 25 26 27
281
  // in[7]: 34 35 36 37
282
  // to:
283
  // a0:    00 10 01 11
284
  // a1:    20 30 21 31
285
  // a2:    02 12 03 13
286
  // a3:    22 32 23 33
287
  // a4:    04 14 05 15
288
  // a5:    24 34 25 35
289
  // a6:    06 16 07 17
290
  // a7:    26 36 27 37
291
645k
  const __m128i a0 = _mm_unpacklo_epi32(in[0], in[1]);
292
645k
  const __m128i a1 = _mm_unpacklo_epi32(in[2], in[3]);
293
645k
  const __m128i a2 = _mm_unpackhi_epi32(in[0], in[1]);
294
645k
  const __m128i a3 = _mm_unpackhi_epi32(in[2], in[3]);
295
645k
  const __m128i a4 = _mm_unpacklo_epi32(in[4], in[5]);
296
645k
  const __m128i a5 = _mm_unpacklo_epi32(in[6], in[7]);
297
645k
  const __m128i a6 = _mm_unpackhi_epi32(in[4], in[5]);
298
645k
  const __m128i a7 = _mm_unpackhi_epi32(in[6], in[7]);
299
300
  // Unpack 64 bit elements resulting in:
301
  // out[0]: 00 10 20 30
302
  // out[1]: 01 11 21 31
303
  // out[2]: 02 12 22 32
304
  // out[3]: 03 13 23 33
305
  // out[4]: 04 14 24 34
306
  // out[5]: 05 15 25 35
307
  // out[6]: 06 16 26 36
308
  // out[7]: 07 17 27 37
309
645k
  out[0] = _mm_unpacklo_epi64(a0, a1);
310
645k
  out[1] = _mm_unpackhi_epi64(a0, a1);
311
645k
  out[2] = _mm_unpacklo_epi64(a2, a3);
312
645k
  out[3] = _mm_unpackhi_epi64(a2, a3);
313
645k
  out[4] = _mm_unpacklo_epi64(a4, a5);
314
645k
  out[5] = _mm_unpackhi_epi64(a4, a5);
315
645k
  out[6] = _mm_unpacklo_epi64(a6, a7);
316
645k
  out[7] = _mm_unpackhi_epi64(a6, a7);
317
645k
}
Unexecuted instantiation: vp9_highbd_iht16x16_add_sse4.c:transpose_32bit_4x4x2
Unexecuted instantiation: vp9_dct_intrin_sse2.c:transpose_32bit_4x4x2
Unexecuted instantiation: vp9_frame_scale_ssse3.c:transpose_32bit_4x4x2
318
319
static INLINE void transpose_32bit_8x4(const __m128i *const in,
320
6.76M
                                       __m128i *const out) {
321
  // Unpack 32 bit elements. Goes from:
322
  // in[0]: 00 01 02 03
323
  // in[1]: 04 05 06 07
324
  // in[2]: 10 11 12 13
325
  // in[3]: 14 15 16 17
326
  // in[4]: 20 21 22 23
327
  // in[5]: 24 25 26 27
328
  // in[6]: 30 31 32 33
329
  // in[7]: 34 35 36 37
330
  // to:
331
  // a0: 00 10 01 11
332
  // a1: 20 30 21 31
333
  // a2: 02 12 03 13
334
  // a3: 22 32 23 33
335
  // a4: 04 14 05 15
336
  // a5: 24 34 25 35
337
  // a6: 06 16 07 17
338
  // a7: 26 36 27 37
339
6.76M
  const __m128i a0 = _mm_unpacklo_epi32(in[0], in[2]);
340
6.76M
  const __m128i a1 = _mm_unpacklo_epi32(in[4], in[6]);
341
6.76M
  const __m128i a2 = _mm_unpackhi_epi32(in[0], in[2]);
342
6.76M
  const __m128i a3 = _mm_unpackhi_epi32(in[4], in[6]);
343
6.76M
  const __m128i a4 = _mm_unpacklo_epi32(in[1], in[3]);
344
6.76M
  const __m128i a5 = _mm_unpacklo_epi32(in[5], in[7]);
345
6.76M
  const __m128i a6 = _mm_unpackhi_epi32(in[1], in[3]);
346
6.76M
  const __m128i a7 = _mm_unpackhi_epi32(in[5], in[7]);
347
348
  // Unpack 64 bit elements resulting in:
349
  // out[0]: 00 10 20 30
350
  // out[1]: 01 11 21 31
351
  // out[2]: 02 12 22 32
352
  // out[3]: 03 13 23 33
353
  // out[4]: 04 14 24 34
354
  // out[5]: 05 15 25 35
355
  // out[6]: 06 16 26 36
356
  // out[7]: 07 17 27 37
357
6.76M
  out[0] = _mm_unpacklo_epi64(a0, a1);
358
6.76M
  out[1] = _mm_unpackhi_epi64(a0, a1);
359
6.76M
  out[2] = _mm_unpacklo_epi64(a2, a3);
360
6.76M
  out[3] = _mm_unpackhi_epi64(a2, a3);
361
6.76M
  out[4] = _mm_unpacklo_epi64(a4, a5);
362
6.76M
  out[5] = _mm_unpackhi_epi64(a4, a5);
363
6.76M
  out[6] = _mm_unpacklo_epi64(a6, a7);
364
6.76M
  out[7] = _mm_unpackhi_epi64(a6, a7);
365
6.76M
}
Unexecuted instantiation: vpx_subpixel_8t_intrin_ssse3.c:transpose_32bit_8x4
Unexecuted instantiation: inv_txfm_sse2.c:transpose_32bit_8x4
Unexecuted instantiation: inv_txfm_ssse3.c:transpose_32bit_8x4
Unexecuted instantiation: highbd_idct4x4_add_sse2.c:transpose_32bit_8x4
Unexecuted instantiation: highbd_idct8x8_add_sse2.c:transpose_32bit_8x4
Unexecuted instantiation: highbd_idct16x16_add_sse2.c:transpose_32bit_8x4
Unexecuted instantiation: highbd_idct32x32_add_sse2.c:transpose_32bit_8x4
Unexecuted instantiation: highbd_idct4x4_add_sse4.c:transpose_32bit_8x4
Unexecuted instantiation: highbd_idct8x8_add_sse4.c:transpose_32bit_8x4
highbd_idct16x16_add_sse4.c:transpose_32bit_8x4
Line
Count
Source
320
1.78M
                                       __m128i *const out) {
321
  // Unpack 32 bit elements. Goes from:
322
  // in[0]: 00 01 02 03
323
  // in[1]: 04 05 06 07
324
  // in[2]: 10 11 12 13
325
  // in[3]: 14 15 16 17
326
  // in[4]: 20 21 22 23
327
  // in[5]: 24 25 26 27
328
  // in[6]: 30 31 32 33
329
  // in[7]: 34 35 36 37
330
  // to:
331
  // a0: 00 10 01 11
332
  // a1: 20 30 21 31
333
  // a2: 02 12 03 13
334
  // a3: 22 32 23 33
335
  // a4: 04 14 05 15
336
  // a5: 24 34 25 35
337
  // a6: 06 16 07 17
338
  // a7: 26 36 27 37
339
1.78M
  const __m128i a0 = _mm_unpacklo_epi32(in[0], in[2]);
340
1.78M
  const __m128i a1 = _mm_unpacklo_epi32(in[4], in[6]);
341
1.78M
  const __m128i a2 = _mm_unpackhi_epi32(in[0], in[2]);
342
1.78M
  const __m128i a3 = _mm_unpackhi_epi32(in[4], in[6]);
343
1.78M
  const __m128i a4 = _mm_unpacklo_epi32(in[1], in[3]);
344
1.78M
  const __m128i a5 = _mm_unpacklo_epi32(in[5], in[7]);
345
1.78M
  const __m128i a6 = _mm_unpackhi_epi32(in[1], in[3]);
346
1.78M
  const __m128i a7 = _mm_unpackhi_epi32(in[5], in[7]);
347
348
  // Unpack 64 bit elements resulting in:
349
  // out[0]: 00 10 20 30
350
  // out[1]: 01 11 21 31
351
  // out[2]: 02 12 22 32
352
  // out[3]: 03 13 23 33
353
  // out[4]: 04 14 24 34
354
  // out[5]: 05 15 25 35
355
  // out[6]: 06 16 26 36
356
  // out[7]: 07 17 27 37
357
1.78M
  out[0] = _mm_unpacklo_epi64(a0, a1);
358
1.78M
  out[1] = _mm_unpackhi_epi64(a0, a1);
359
1.78M
  out[2] = _mm_unpacklo_epi64(a2, a3);
360
1.78M
  out[3] = _mm_unpackhi_epi64(a2, a3);
361
1.78M
  out[4] = _mm_unpacklo_epi64(a4, a5);
362
1.78M
  out[5] = _mm_unpackhi_epi64(a4, a5);
363
1.78M
  out[6] = _mm_unpacklo_epi64(a6, a7);
364
1.78M
  out[7] = _mm_unpackhi_epi64(a6, a7);
365
1.78M
}
highbd_idct32x32_add_sse4.c:transpose_32bit_8x4
Line
Count
Source
320
3.01M
                                       __m128i *const out) {
321
  // Unpack 32 bit elements. Goes from:
322
  // in[0]: 00 01 02 03
323
  // in[1]: 04 05 06 07
324
  // in[2]: 10 11 12 13
325
  // in[3]: 14 15 16 17
326
  // in[4]: 20 21 22 23
327
  // in[5]: 24 25 26 27
328
  // in[6]: 30 31 32 33
329
  // in[7]: 34 35 36 37
330
  // to:
331
  // a0: 00 10 01 11
332
  // a1: 20 30 21 31
333
  // a2: 02 12 03 13
334
  // a3: 22 32 23 33
335
  // a4: 04 14 05 15
336
  // a5: 24 34 25 35
337
  // a6: 06 16 07 17
338
  // a7: 26 36 27 37
339
3.01M
  const __m128i a0 = _mm_unpacklo_epi32(in[0], in[2]);
340
3.01M
  const __m128i a1 = _mm_unpacklo_epi32(in[4], in[6]);
341
3.01M
  const __m128i a2 = _mm_unpackhi_epi32(in[0], in[2]);
342
3.01M
  const __m128i a3 = _mm_unpackhi_epi32(in[4], in[6]);
343
3.01M
  const __m128i a4 = _mm_unpacklo_epi32(in[1], in[3]);
344
3.01M
  const __m128i a5 = _mm_unpacklo_epi32(in[5], in[7]);
345
3.01M
  const __m128i a6 = _mm_unpackhi_epi32(in[1], in[3]);
346
3.01M
  const __m128i a7 = _mm_unpackhi_epi32(in[5], in[7]);
347
348
  // Unpack 64 bit elements resulting in:
349
  // out[0]: 00 10 20 30
350
  // out[1]: 01 11 21 31
351
  // out[2]: 02 12 22 32
352
  // out[3]: 03 13 23 33
353
  // out[4]: 04 14 24 34
354
  // out[5]: 05 15 25 35
355
  // out[6]: 06 16 26 36
356
  // out[7]: 07 17 27 37
357
3.01M
  out[0] = _mm_unpacklo_epi64(a0, a1);
358
3.01M
  out[1] = _mm_unpackhi_epi64(a0, a1);
359
3.01M
  out[2] = _mm_unpacklo_epi64(a2, a3);
360
3.01M
  out[3] = _mm_unpackhi_epi64(a2, a3);
361
3.01M
  out[4] = _mm_unpacklo_epi64(a4, a5);
362
3.01M
  out[5] = _mm_unpackhi_epi64(a4, a5);
363
3.01M
  out[6] = _mm_unpacklo_epi64(a6, a7);
364
3.01M
  out[7] = _mm_unpackhi_epi64(a6, a7);
365
3.01M
}
Unexecuted instantiation: vp9_idct_intrin_sse2.c:transpose_32bit_8x4
Unexecuted instantiation: vp9_highbd_iht4x4_add_sse4.c:transpose_32bit_8x4
Unexecuted instantiation: vp9_highbd_iht8x8_add_sse4.c:transpose_32bit_8x4
vp9_highbd_iht16x16_add_sse4.c:transpose_32bit_8x4
Line
Count
Source
320
1.96M
                                       __m128i *const out) {
321
  // Unpack 32 bit elements. Goes from:
322
  // in[0]: 00 01 02 03
323
  // in[1]: 04 05 06 07
324
  // in[2]: 10 11 12 13
325
  // in[3]: 14 15 16 17
326
  // in[4]: 20 21 22 23
327
  // in[5]: 24 25 26 27
328
  // in[6]: 30 31 32 33
329
  // in[7]: 34 35 36 37
330
  // to:
331
  // a0: 00 10 01 11
332
  // a1: 20 30 21 31
333
  // a2: 02 12 03 13
334
  // a3: 22 32 23 33
335
  // a4: 04 14 05 15
336
  // a5: 24 34 25 35
337
  // a6: 06 16 07 17
338
  // a7: 26 36 27 37
339
1.96M
  const __m128i a0 = _mm_unpacklo_epi32(in[0], in[2]);
340
1.96M
  const __m128i a1 = _mm_unpacklo_epi32(in[4], in[6]);
341
1.96M
  const __m128i a2 = _mm_unpackhi_epi32(in[0], in[2]);
342
1.96M
  const __m128i a3 = _mm_unpackhi_epi32(in[4], in[6]);
343
1.96M
  const __m128i a4 = _mm_unpacklo_epi32(in[1], in[3]);
344
1.96M
  const __m128i a5 = _mm_unpacklo_epi32(in[5], in[7]);
345
1.96M
  const __m128i a6 = _mm_unpackhi_epi32(in[1], in[3]);
346
1.96M
  const __m128i a7 = _mm_unpackhi_epi32(in[5], in[7]);
347
348
  // Unpack 64 bit elements resulting in:
349
  // out[0]: 00 10 20 30
350
  // out[1]: 01 11 21 31
351
  // out[2]: 02 12 22 32
352
  // out[3]: 03 13 23 33
353
  // out[4]: 04 14 24 34
354
  // out[5]: 05 15 25 35
355
  // out[6]: 06 16 26 36
356
  // out[7]: 07 17 27 37
357
1.96M
  out[0] = _mm_unpacklo_epi64(a0, a1);
358
1.96M
  out[1] = _mm_unpackhi_epi64(a0, a1);
359
1.96M
  out[2] = _mm_unpacklo_epi64(a2, a3);
360
1.96M
  out[3] = _mm_unpackhi_epi64(a2, a3);
361
1.96M
  out[4] = _mm_unpacklo_epi64(a4, a5);
362
1.96M
  out[5] = _mm_unpackhi_epi64(a4, a5);
363
1.96M
  out[6] = _mm_unpacklo_epi64(a6, a7);
364
1.96M
  out[7] = _mm_unpackhi_epi64(a6, a7);
365
1.96M
}
Unexecuted instantiation: vp9_dct_intrin_sse2.c:transpose_32bit_8x4
Unexecuted instantiation: vp9_frame_scale_ssse3.c:transpose_32bit_8x4
366
367
#endif  // VPX_VPX_DSP_X86_TRANSPOSE_SSE2_H_