31 #define DECORRELATE_FUNCS(fmt, opt) \
32 void ff_flac_decorrelate_ls_##fmt##_##opt(uint8_t **out, int32_t **in, int channels, \
33 int len, int shift); \
34 void ff_flac_decorrelate_rs_##fmt##_##opt(uint8_t **out, int32_t **in, int channels, \
35 int len, int shift); \
36 void ff_flac_decorrelate_ms_##fmt##_##opt(uint8_t **out, int32_t **in, int channels, \
37 int len, int shift); \
38 void ff_flac_decorrelate_indep2_##fmt##_##opt(uint8_t **out, int32_t **in, int channels, \
39 int len, int shift); \
40 void ff_flac_decorrelate_indep4_##fmt##_##opt(uint8_t **out, int32_t **in, int channels, \
41 int len, int shift); \
42 void ff_flac_decorrelate_indep6_##fmt##_##opt(uint8_t **out, int32_t **in, int channels, \
43 int len, int shift); \
44 void ff_flac_decorrelate_indep8_##fmt##_##opt(uint8_t **out, int32_t **in, int channels, \
60 c->decorrelate[0] = ff_flac_decorrelate_indep2_16_sse2;
62 c->decorrelate[0] = ff_flac_decorrelate_indep4_16_sse2;
64 c->decorrelate[0] = ff_flac_decorrelate_indep6_16_sse2;
65 else if (ARCH_X86_64 &&
channels == 8)
66 c->decorrelate[0] = ff_flac_decorrelate_indep8_16_sse2;
67 c->decorrelate[1] = ff_flac_decorrelate_ls_16_sse2;
68 c->decorrelate[2] = ff_flac_decorrelate_rs_16_sse2;
69 c->decorrelate[3] = ff_flac_decorrelate_ms_16_sse2;
72 c->decorrelate[0] = ff_flac_decorrelate_indep2_32_sse2;
74 c->decorrelate[0] = ff_flac_decorrelate_indep4_32_sse2;
76 c->decorrelate[0] = ff_flac_decorrelate_indep6_32_sse2;
77 else if (ARCH_X86_64 &&
channels == 8)
78 c->decorrelate[0] = ff_flac_decorrelate_indep8_32_sse2;
79 c->decorrelate[1] = ff_flac_decorrelate_ls_32_sse2;
80 c->decorrelate[2] = ff_flac_decorrelate_rs_32_sse2;
81 c->decorrelate[3] = ff_flac_decorrelate_ms_32_sse2;
90 c->decorrelate[0] = ff_flac_decorrelate_indep8_16_avx;
93 c->decorrelate[0] = ff_flac_decorrelate_indep4_32_avx;
95 c->decorrelate[0] = ff_flac_decorrelate_indep6_32_avx;
96 else if (ARCH_X86_64 &&
channels == 8)
97 c->decorrelate[0] = ff_flac_decorrelate_indep8_32_avx;