33 void ff_int32_to_float_fmul_scalar_sse (
float *dst,
const int32_t *
src,
float mul,
int len);
34 void ff_int32_to_float_fmul_scalar_sse2(
float *dst,
const int32_t *
src,
float mul,
int len);
36 const float *mul,
int len);
38 const float *mul,
int len);
40 void ff_float_to_int16_3dnow(int16_t *dst,
const float *
src,
long len);
41 void ff_float_to_int16_sse (int16_t *dst,
const float *
src,
long len);
42 void ff_float_to_int16_sse2 (int16_t *dst,
const float *
src,
long len);
44 void ff_float_to_int16_step_3dnow(int16_t *dst,
const float *
src,
long len,
long step);
45 void ff_float_to_int16_step_sse (int16_t *dst,
const float *
src,
long len,
long step);
46 void ff_float_to_int16_step_sse2 (int16_t *dst,
const float *
src,
long len,
long step);
48 void ff_float_to_int16_interleave2_3dnow(int16_t *dst,
const float **
src,
long len);
49 void ff_float_to_int16_interleave2_sse (int16_t *dst,
const float **
src,
long len);
50 void ff_float_to_int16_interleave2_sse2 (int16_t *dst,
const float **
src,
long len);
52 void ff_float_to_int16_interleave6_sse(int16_t *dst,
const float **
src,
int len);
53 void ff_float_to_int16_interleave6_3dnow(int16_t *dst,
const float **
src,
int len);
54 void ff_float_to_int16_interleave6_3dnowext(int16_t *dst,
const float **
src,
int len);
56 #define ff_float_to_int16_interleave6_sse2 ff_float_to_int16_interleave6_sse
58 #define FLOAT_TO_INT16_INTERLEAVE(cpu) \
60 static av_noinline void float_to_int16_interleave_misc_##cpu(int16_t *dst, const float **src, long len, int channels){\
62 for(c=0; c<channels; c++){\
63 ff_float_to_int16_step_##cpu(dst+c, src[c], len, channels);\
67 static void float_to_int16_interleave_##cpu(int16_t *dst, const float **src, long len, int channels){\
69 ff_float_to_int16_##cpu(dst, src[0], len);\
70 else if(channels==2){\
71 ff_float_to_int16_interleave2_##cpu(dst, src, len);\
72 }else if(channels==6){\
73 ff_float_to_int16_interleave6_##cpu(dst, src, len);\
75 float_to_int16_interleave_misc_##cpu(dst, src, len, channels);\
78 FLOAT_TO_INT16_INTERLEAVE(3dnow)
79 FLOAT_TO_INT16_INTERLEAVE(
sse)
80 FLOAT_TO_INT16_INTERLEAVE(sse2)
82 static
void float_to_int16_interleave_3dnowext(int16_t *dst, const
float **
src,
83 long len,
int channels)
86 ff_float_to_int16_interleave6_3dnowext(dst, src, len);
88 float_to_int16_interleave_3dnow(dst, src, len, channels);
91 void ff_float_interleave2_mmx(
float *dst,
const float **src,
unsigned int len);
92 void ff_float_interleave2_sse(
float *dst,
const float **src,
unsigned int len);
94 void ff_float_interleave6_mmx(
float *dst,
const float **src,
unsigned int len);
95 void ff_float_interleave6_sse(
float *dst,
const float **src,
unsigned int len);
97 static void float_interleave_mmx(
float *dst,
const float **src,
98 unsigned int len,
int channels)
101 ff_float_interleave2_mmx(dst, src, len);
102 }
else if (channels == 6)
103 ff_float_interleave6_mmx(dst, src, len);
108 static void float_interleave_sse(
float *dst,
const float **src,
109 unsigned int len,
int channels)
112 ff_float_interleave2_sse(dst, src, len);
113 }
else if (channels == 6)
114 ff_float_interleave6_sse(dst, src, len);