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, \
39 #define DECORRELATE_IFUNCS(fmt, opt) \
40 void ff_flac_decorrelate_indep2_##fmt##_##opt(uint8_t **out, int32_t **in, int channels, \
41 int len, int shift); \
42 void ff_flac_decorrelate_indep4_##fmt##_##opt(uint8_t **out, int32_t **in, int channels, \
43 int len, int shift); \
44 void ff_flac_decorrelate_indep6_##fmt##_##opt(uint8_t **out, int32_t **in, int channels, \
45 int len, int shift); \
46 void ff_flac_decorrelate_indep8_##fmt##_##opt(uint8_t **out, int32_t **in, int channels, \
65 c->decorrelate[1] = ff_flac_decorrelate_ls_16_sse2;
66 c->decorrelate[2] = ff_flac_decorrelate_rs_16_sse2;
67 c->decorrelate[3] = ff_flac_decorrelate_ms_16_sse2;
69 c->decorrelate[1] = ff_flac_decorrelate_ls_32_sse2;
70 c->decorrelate[2] = ff_flac_decorrelate_rs_32_sse2;
71 c->decorrelate[3] = ff_flac_decorrelate_ms_32_sse2;
77 c->decorrelate[0] = ff_flac_decorrelate_indep2_16_ssse3;
79 c->decorrelate[0] = ff_flac_decorrelate_indep4_16_ssse3;
81 c->decorrelate[0] = ff_flac_decorrelate_indep6_16_ssse3;
82 else if (ARCH_X86_64 &&
channels == 8)
83 c->decorrelate[0] = ff_flac_decorrelate_indep8_16_ssse3;
86 c->decorrelate[0] = ff_flac_decorrelate_indep2_32_ssse3;
88 c->decorrelate[0] = ff_flac_decorrelate_indep4_32_ssse3;
90 c->decorrelate[0] = ff_flac_decorrelate_indep6_32_ssse3;
91 else if (ARCH_X86_64 &&
channels == 8)
92 c->decorrelate[0] = ff_flac_decorrelate_indep8_32_ssse3;
101 c->decorrelate[0] = ff_flac_decorrelate_indep8_16_avx;
104 c->decorrelate[0] = ff_flac_decorrelate_indep4_32_avx;
106 c->decorrelate[0] = ff_flac_decorrelate_indep6_32_avx;
107 else if (ARCH_X86_64 &&
channels == 8)
108 c->decorrelate[0] = ff_flac_decorrelate_indep8_32_avx;