Skip to content

Commit 41ff538

Browse files
lu-zerokkysen
authored andcommitted
Deduplicate itx macros
1 parent 233e98a commit 41ff538

File tree

3 files changed

+63
-127
lines changed

3 files changed

+63
-127
lines changed

src/arm/itx.h

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -28,34 +28,6 @@
2828
#include "src/cpu.h"
2929
#include "src/itx.h"
3030

31-
#define decl_itx2_fns(w, h, opt) \
32-
decl_itx_fn(BF(dav1d_inv_txfm_add_dct_dct_##w##x##h, opt)); \
33-
decl_itx_fn(BF(dav1d_inv_txfm_add_identity_identity_##w##x##h, opt))
34-
35-
#define decl_itx12_fns(w, h, opt) \
36-
decl_itx2_fns(w, h, opt); \
37-
decl_itx_fn(BF(dav1d_inv_txfm_add_dct_adst_##w##x##h, opt)); \
38-
decl_itx_fn(BF(dav1d_inv_txfm_add_dct_flipadst_##w##x##h, opt)); \
39-
decl_itx_fn(BF(dav1d_inv_txfm_add_dct_identity_##w##x##h, opt)); \
40-
decl_itx_fn(BF(dav1d_inv_txfm_add_adst_dct_##w##x##h, opt)); \
41-
decl_itx_fn(BF(dav1d_inv_txfm_add_adst_adst_##w##x##h, opt)); \
42-
decl_itx_fn(BF(dav1d_inv_txfm_add_adst_flipadst_##w##x##h, opt)); \
43-
decl_itx_fn(BF(dav1d_inv_txfm_add_flipadst_dct_##w##x##h, opt)); \
44-
decl_itx_fn(BF(dav1d_inv_txfm_add_flipadst_adst_##w##x##h, opt)); \
45-
decl_itx_fn(BF(dav1d_inv_txfm_add_flipadst_flipadst_##w##x##h, opt)); \
46-
decl_itx_fn(BF(dav1d_inv_txfm_add_identity_dct_##w##x##h, opt))
47-
48-
#define decl_itx16_fns(w, h, opt) \
49-
decl_itx12_fns(w, h, opt); \
50-
decl_itx_fn(BF(dav1d_inv_txfm_add_adst_identity_##w##x##h, opt)); \
51-
decl_itx_fn(BF(dav1d_inv_txfm_add_flipadst_identity_##w##x##h, opt)); \
52-
decl_itx_fn(BF(dav1d_inv_txfm_add_identity_adst_##w##x##h, opt)); \
53-
decl_itx_fn(BF(dav1d_inv_txfm_add_identity_flipadst_##w##x##h, opt))
54-
55-
#define decl_itx17_fns(w, h, opt) \
56-
decl_itx16_fns(w, h, opt); \
57-
decl_itx_fn(BF(dav1d_inv_txfm_add_wht_wht_##w##x##h, opt))
58-
5931
decl_itx17_fns( 4, 4, neon);
6032
decl_itx16_fns( 4, 8, neon);
6133
decl_itx16_fns( 4, 16, neon);
@@ -78,41 +50,6 @@ decl_itx_fn(BF(dav1d_inv_txfm_add_dct_dct_64x32, neon));
7850
decl_itx_fn(BF(dav1d_inv_txfm_add_dct_dct_64x64, neon));
7951

8052
static ALWAYS_INLINE void itx_dsp_init_arm(Dav1dInvTxfmDSPContext *const c, int bpc) {
81-
#define assign_itx_fn(pfx, w, h, type, type_enum, ext) \
82-
c->itxfm_add[pfx##TX_##w##X##h][type_enum] = \
83-
BF(dav1d_inv_txfm_add_##type##_##w##x##h, ext)
84-
85-
#define assign_itx1_fn(pfx, w, h, ext) \
86-
assign_itx_fn(pfx, w, h, dct_dct, DCT_DCT, ext)
87-
88-
#define assign_itx2_fn(pfx, w, h, ext) \
89-
assign_itx1_fn(pfx, w, h, ext); \
90-
assign_itx_fn(pfx, w, h, identity_identity, IDTX, ext)
91-
92-
#define assign_itx12_fn(pfx, w, h, ext) \
93-
assign_itx2_fn(pfx, w, h, ext); \
94-
assign_itx_fn(pfx, w, h, dct_adst, ADST_DCT, ext); \
95-
assign_itx_fn(pfx, w, h, dct_flipadst, FLIPADST_DCT, ext); \
96-
assign_itx_fn(pfx, w, h, dct_identity, H_DCT, ext); \
97-
assign_itx_fn(pfx, w, h, adst_dct, DCT_ADST, ext); \
98-
assign_itx_fn(pfx, w, h, adst_adst, ADST_ADST, ext); \
99-
assign_itx_fn(pfx, w, h, adst_flipadst, FLIPADST_ADST, ext); \
100-
assign_itx_fn(pfx, w, h, flipadst_dct, DCT_FLIPADST, ext); \
101-
assign_itx_fn(pfx, w, h, flipadst_adst, ADST_FLIPADST, ext); \
102-
assign_itx_fn(pfx, w, h, flipadst_flipadst, FLIPADST_FLIPADST, ext); \
103-
assign_itx_fn(pfx, w, h, identity_dct, V_DCT, ext)
104-
105-
#define assign_itx16_fn(pfx, w, h, ext) \
106-
assign_itx12_fn(pfx, w, h, ext); \
107-
assign_itx_fn(pfx, w, h, adst_identity, H_ADST, ext); \
108-
assign_itx_fn(pfx, w, h, flipadst_identity, H_FLIPADST, ext); \
109-
assign_itx_fn(pfx, w, h, identity_adst, V_ADST, ext); \
110-
assign_itx_fn(pfx, w, h, identity_flipadst, V_FLIPADST, ext)
111-
112-
#define assign_itx17_fn(pfx, w, h, ext) \
113-
assign_itx16_fn(pfx, w, h, ext); \
114-
assign_itx_fn(pfx, w, h, wht_wht, WHT_WHT, ext)
115-
11653
const unsigned flags = dav1d_get_cpu_flags();
11754

11855
if (!(flags & DAV1D_ARM_CPU_FLAG_NEON)) return;

src/itx.h

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,73 @@ void (name)(pixel *dst, ptrdiff_t dst_stride, coef *coeff, int eob \
3939
HIGHBD_DECL_SUFFIX)
4040
typedef decl_itx_fn(*itxfm_fn);
4141

42+
#define decl_itx2_fns(w, h, opt) \
43+
decl_itx_fn(BF(dav1d_inv_txfm_add_dct_dct_##w##x##h, opt)); \
44+
decl_itx_fn(BF(dav1d_inv_txfm_add_identity_identity_##w##x##h, opt))
45+
46+
#define decl_itx12_fns(w, h, opt) \
47+
decl_itx2_fns(w, h, opt); \
48+
decl_itx_fn(BF(dav1d_inv_txfm_add_dct_adst_##w##x##h, opt)); \
49+
decl_itx_fn(BF(dav1d_inv_txfm_add_dct_flipadst_##w##x##h, opt)); \
50+
decl_itx_fn(BF(dav1d_inv_txfm_add_dct_identity_##w##x##h, opt)); \
51+
decl_itx_fn(BF(dav1d_inv_txfm_add_adst_dct_##w##x##h, opt)); \
52+
decl_itx_fn(BF(dav1d_inv_txfm_add_adst_adst_##w##x##h, opt)); \
53+
decl_itx_fn(BF(dav1d_inv_txfm_add_adst_flipadst_##w##x##h, opt)); \
54+
decl_itx_fn(BF(dav1d_inv_txfm_add_flipadst_dct_##w##x##h, opt)); \
55+
decl_itx_fn(BF(dav1d_inv_txfm_add_flipadst_adst_##w##x##h, opt)); \
56+
decl_itx_fn(BF(dav1d_inv_txfm_add_flipadst_flipadst_##w##x##h, opt)); \
57+
decl_itx_fn(BF(dav1d_inv_txfm_add_identity_dct_##w##x##h, opt))
58+
59+
#define decl_itx16_fns(w, h, opt) \
60+
decl_itx12_fns(w, h, opt); \
61+
decl_itx_fn(BF(dav1d_inv_txfm_add_adst_identity_##w##x##h, opt)); \
62+
decl_itx_fn(BF(dav1d_inv_txfm_add_flipadst_identity_##w##x##h, opt)); \
63+
decl_itx_fn(BF(dav1d_inv_txfm_add_identity_adst_##w##x##h, opt)); \
64+
decl_itx_fn(BF(dav1d_inv_txfm_add_identity_flipadst_##w##x##h, opt))
65+
66+
#define decl_itx17_fns(w, h, opt) \
67+
decl_itx16_fns(w, h, opt); \
68+
decl_itx_fn(BF(dav1d_inv_txfm_add_wht_wht_##w##x##h, opt))
69+
4270
typedef struct Dav1dInvTxfmDSPContext {
4371
itxfm_fn itxfm_add[N_RECT_TX_SIZES][N_TX_TYPES_PLUS_LL];
4472
} Dav1dInvTxfmDSPContext;
4573

4674
bitfn_decls(void dav1d_itx_dsp_init, Dav1dInvTxfmDSPContext *c, int bpc);
4775

76+
#define assign_itx_fn(pfx, w, h, type, type_enum, ext) \
77+
c->itxfm_add[pfx##TX_##w##X##h][type_enum] = \
78+
BF(dav1d_inv_txfm_add_##type##_##w##x##h, ext)
79+
80+
#define assign_itx1_fn(pfx, w, h, ext) \
81+
assign_itx_fn(pfx, w, h, dct_dct, DCT_DCT, ext)
82+
83+
#define assign_itx2_fn(pfx, w, h, ext) \
84+
assign_itx1_fn(pfx, w, h, ext); \
85+
assign_itx_fn(pfx, w, h, identity_identity, IDTX, ext)
86+
87+
#define assign_itx12_fn(pfx, w, h, ext) \
88+
assign_itx2_fn(pfx, w, h, ext); \
89+
assign_itx_fn(pfx, w, h, dct_adst, ADST_DCT, ext); \
90+
assign_itx_fn(pfx, w, h, dct_flipadst, FLIPADST_DCT, ext); \
91+
assign_itx_fn(pfx, w, h, dct_identity, H_DCT, ext); \
92+
assign_itx_fn(pfx, w, h, adst_dct, DCT_ADST, ext); \
93+
assign_itx_fn(pfx, w, h, adst_adst, ADST_ADST, ext); \
94+
assign_itx_fn(pfx, w, h, adst_flipadst, FLIPADST_ADST, ext); \
95+
assign_itx_fn(pfx, w, h, flipadst_dct, DCT_FLIPADST, ext); \
96+
assign_itx_fn(pfx, w, h, flipadst_adst, ADST_FLIPADST, ext); \
97+
assign_itx_fn(pfx, w, h, flipadst_flipadst, FLIPADST_FLIPADST, ext); \
98+
assign_itx_fn(pfx, w, h, identity_dct, V_DCT, ext)
99+
100+
#define assign_itx16_fn(pfx, w, h, ext) \
101+
assign_itx12_fn(pfx, w, h, ext); \
102+
assign_itx_fn(pfx, w, h, adst_identity, H_ADST, ext); \
103+
assign_itx_fn(pfx, w, h, flipadst_identity, H_FLIPADST, ext); \
104+
assign_itx_fn(pfx, w, h, identity_adst, V_ADST, ext); \
105+
assign_itx_fn(pfx, w, h, identity_flipadst, V_FLIPADST, ext)
106+
107+
#define assign_itx17_fn(pfx, w, h, ext) \
108+
assign_itx16_fn(pfx, w, h, ext); \
109+
assign_itx_fn(pfx, w, h, wht_wht, WHT_WHT, ext)
110+
48111
#endif /* DAV1D_SRC_ITX_H */

src/x86/itx.h

Lines changed: 0 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -30,34 +30,6 @@
3030

3131
#define BF_BPC(x, bits, suffix) x##_##bits##bpc_##suffix
3232

33-
#define decl_itx2_fns(w, h, opt) \
34-
decl_itx_fn(BF(dav1d_inv_txfm_add_dct_dct_##w##x##h, opt)); \
35-
decl_itx_fn(BF(dav1d_inv_txfm_add_identity_identity_##w##x##h, opt))
36-
37-
#define decl_itx12_fns(w, h, opt) \
38-
decl_itx2_fns(w, h, opt); \
39-
decl_itx_fn(BF(dav1d_inv_txfm_add_dct_adst_##w##x##h, opt)); \
40-
decl_itx_fn(BF(dav1d_inv_txfm_add_dct_flipadst_##w##x##h, opt)); \
41-
decl_itx_fn(BF(dav1d_inv_txfm_add_dct_identity_##w##x##h, opt)); \
42-
decl_itx_fn(BF(dav1d_inv_txfm_add_adst_dct_##w##x##h, opt)); \
43-
decl_itx_fn(BF(dav1d_inv_txfm_add_adst_adst_##w##x##h, opt)); \
44-
decl_itx_fn(BF(dav1d_inv_txfm_add_adst_flipadst_##w##x##h, opt)); \
45-
decl_itx_fn(BF(dav1d_inv_txfm_add_flipadst_dct_##w##x##h, opt)); \
46-
decl_itx_fn(BF(dav1d_inv_txfm_add_flipadst_adst_##w##x##h, opt)); \
47-
decl_itx_fn(BF(dav1d_inv_txfm_add_flipadst_flipadst_##w##x##h, opt)); \
48-
decl_itx_fn(BF(dav1d_inv_txfm_add_identity_dct_##w##x##h, opt))
49-
50-
#define decl_itx16_fns(w, h, opt) \
51-
decl_itx12_fns(w, h, opt); \
52-
decl_itx_fn(BF(dav1d_inv_txfm_add_adst_identity_##w##x##h, opt)); \
53-
decl_itx_fn(BF(dav1d_inv_txfm_add_flipadst_identity_##w##x##h, opt)); \
54-
decl_itx_fn(BF(dav1d_inv_txfm_add_identity_adst_##w##x##h, opt)); \
55-
decl_itx_fn(BF(dav1d_inv_txfm_add_identity_flipadst_##w##x##h, opt))
56-
57-
#define decl_itx17_fns(w, h, opt) \
58-
decl_itx16_fns(w, h, opt); \
59-
decl_itx_fn(BF(dav1d_inv_txfm_add_wht_wht_##w##x##h, opt))
60-
6133
#define decl_itx_fns(ext) \
6234
decl_itx17_fns( 4, 4, ext); \
6335
decl_itx16_fns( 4, 8, ext); \
@@ -136,42 +108,6 @@ decl_itx_fn(dav1d_inv_txfm_add_wht_wht_4x4_16bpc_avx2);
136108
decl_itx_fn(BF(dav1d_inv_txfm_add_wht_wht_4x4, sse2));
137109

138110
static ALWAYS_INLINE void itx_dsp_init_x86(Dav1dInvTxfmDSPContext *const c, const int bpc) {
139-
#define assign_itx_fn(pfx, w, h, type, type_enum, ext) \
140-
c->itxfm_add[pfx##TX_##w##X##h][type_enum] = \
141-
BF(dav1d_inv_txfm_add_##type##_##w##x##h, ext)
142-
143-
#define assign_itx1_fn(pfx, w, h, ext) \
144-
assign_itx_fn(pfx, w, h, dct_dct, DCT_DCT, ext)
145-
146-
#define assign_itx2_fn(pfx, w, h, ext) \
147-
assign_itx1_fn(pfx, w, h, ext); \
148-
assign_itx_fn(pfx, w, h, identity_identity, IDTX, ext)
149-
150-
#define assign_itx12_fn(pfx, w, h, ext) \
151-
assign_itx2_fn(pfx, w, h, ext); \
152-
assign_itx_fn(pfx, w, h, dct_adst, ADST_DCT, ext); \
153-
assign_itx_fn(pfx, w, h, dct_flipadst, FLIPADST_DCT, ext); \
154-
assign_itx_fn(pfx, w, h, dct_identity, H_DCT, ext); \
155-
assign_itx_fn(pfx, w, h, adst_dct, DCT_ADST, ext); \
156-
assign_itx_fn(pfx, w, h, adst_adst, ADST_ADST, ext); \
157-
assign_itx_fn(pfx, w, h, adst_flipadst, FLIPADST_ADST, ext); \
158-
assign_itx_fn(pfx, w, h, flipadst_dct, DCT_FLIPADST, ext); \
159-
assign_itx_fn(pfx, w, h, flipadst_adst, ADST_FLIPADST, ext); \
160-
assign_itx_fn(pfx, w, h, flipadst_flipadst, FLIPADST_FLIPADST, ext); \
161-
assign_itx_fn(pfx, w, h, identity_dct, V_DCT, ext)
162-
163-
#define assign_itx16_fn(pfx, w, h, ext) \
164-
assign_itx12_fn(pfx, w, h, ext); \
165-
assign_itx_fn(pfx, w, h, adst_identity, H_ADST, ext); \
166-
assign_itx_fn(pfx, w, h, flipadst_identity, H_FLIPADST, ext); \
167-
assign_itx_fn(pfx, w, h, identity_adst, V_ADST, ext); \
168-
assign_itx_fn(pfx, w, h, identity_flipadst, V_FLIPADST, ext)
169-
170-
#define assign_itx17_fn(pfx, w, h, ext) \
171-
assign_itx16_fn(pfx, w, h, ext); \
172-
assign_itx_fn(pfx, w, h, wht_wht, WHT_WHT, ext)
173-
174-
175111
#define assign_itx_bpc_fn(pfx, w, h, type, type_enum, bpc, ext) \
176112
c->itxfm_add[pfx##TX_##w##X##h][type_enum] = \
177113
BF_BPC(dav1d_inv_txfm_add_##type##_##w##x##h, bpc, ext)

0 commit comments

Comments
 (0)