Unified · Split
| @@ -223,16 +223,19 @@ av_cold void ff_ac3dsp_init_x86(AC3DSPContext *c, int bit_exact) · 222 unmodified lines | |||
| 223 | c->float_to_fixed24 = ff_float_to_fixed24_sse2; | 223 | c->float_to_fixed24 = ff_float_to_fixed24_sse2; |
| 224 | c->compute_mantissa_size = ff_ac3_compute_mantissa_size_sse2; | 224 | c->compute_mantissa_size = ff_ac3_compute_mantissa_size_sse2; |
| 225 | c->extract_exponents = ff_ac3_extract_exponents_sse2; | 225 | c->extract_exponents = ff_ac3_extract_exponents_sse2; |
| 226 | if (!(cpu_flags & AV_CPU_FLAG_SSE2SLOW)) { | ||
| 227 | c->ac3_lshift_int16 = ff_ac3_lshift_int16_sse2; | ||
| 228 | c->ac3_rshift_int32 = ff_ac3_rshift_int32_sse2; | ||
| 229 | } | ||
| 230 | if (bit_exact) { | 226 | if (bit_exact) { |
| 231 | c->apply_window_int16 = ff_apply_window_int16_sse2; | 227 | c->apply_window_int16 = ff_apply_window_int16_sse2; |
| 232 | } else if (!(cpu_flags & AV_CPU_FLAG_SSE2SLOW)) { | 228 | } |
| 229 | } | ||
| 230 | |||
| 231 | if (EXTERNAL_SSE2_FAST(cpu_flags)) { | ||
| 232 | c->ac3_lshift_int16 = ff_ac3_lshift_int16_sse2; | ||
| 233 | c->ac3_rshift_int32 = ff_ac3_rshift_int32_sse2; | ||
| 234 | if (!bit_exact) { | ||
| 233 | c->apply_window_int16 = ff_apply_window_int16_round_sse2; | 235 | c->apply_window_int16 = ff_apply_window_int16_round_sse2; |
| 234 | } | 236 | } |
| 235 | } | 237 | } |
| 238 | |||
| 236 | if (EXTERNAL_SSSE3(cpu_flags)) { | 239 | if (EXTERNAL_SSSE3(cpu_flags)) { |
| 237 | c->ac3_max_msb_abs_int16 = ff_ac3_max_msb_abs_int16_ssse3; | 240 | c->ac3_max_msb_abs_int16 = ff_ac3_max_msb_abs_int16_ssse3; |
| 238 | if (cpu_flags & AV_CPU_FLAG_ATOM) { | 241 | if (cpu_flags & AV_CPU_FLAG_ATOM) { |
| @@ -566,11 +566,6 @@ av_cold void ff_h264qpel_init_x86(H264QpelContext *c, int bit_depth) · 565 unmodified lines | |||
| 566 | } | 566 | } |
| 567 | 567 | ||
| 568 | if (EXTERNAL_SSE2(cpu_flags)) { | 568 | if (EXTERNAL_SSE2(cpu_flags)) { |
| 569 | if (!(cpu_flags & AV_CPU_FLAG_SSE2SLOW) && !high_bit_depth) { | ||
| 570 | // these functions are slower than mmx on AMD, but faster on Intel | ||
| 571 | H264_QPEL_FUNCS(0, 0, sse2); | ||
| 572 | } | ||
| 573 | |||
| 574 | if (!high_bit_depth) { | 569 | if (!high_bit_depth) { |
| 575 | H264_QPEL_FUNCS(0, 1, sse2); | 570 | H264_QPEL_FUNCS(0, 1, sse2); |
| 576 | H264_QPEL_FUNCS(0, 2, sse2); | 571 | H264_QPEL_FUNCS(0, 2, sse2); |
| @@ -597,6 +592,12 @@ av_cold void ff_h264qpel_init_x86(H264QpelContext *c, int bit_depth) · 20 unmodified lines | |||
| 597 | } | 592 | } |
| 598 | } | 593 | } |
| 599 | 594 | ||
| 595 | if (EXTERNAL_SSE2_FAST(cpu_flags)) { | ||
| 596 | if (!high_bit_depth) { | ||
| 597 | H264_QPEL_FUNCS(0, 0, sse2); | ||
| 598 | } | ||
| 599 | } | ||
| 600 | |||
| 600 | if (EXTERNAL_SSSE3(cpu_flags)) { | 601 | if (EXTERNAL_SSSE3(cpu_flags)) { |
| 601 | if (!high_bit_depth) { | 602 | if (!high_bit_depth) { |
| 602 | H264_QPEL_FUNCS(1, 0, ssse3); | 603 | H264_QPEL_FUNCS(1, 0, ssse3); |
| @@ -152,7 +152,7 @@ av_cold void ff_lpc_init_x86(LPCContext *c) · 151 unmodified lines | |||
| 152 | #if HAVE_SSE2_INLINE | 152 | #if HAVE_SSE2_INLINE |
| 153 | int cpu_flags = av_get_cpu_flags(); | 153 | int cpu_flags = av_get_cpu_flags(); |
| 154 | 154 | ||
| 155 | if (INLINE_SSE2(cpu_flags) && (cpu_flags & AV_CPU_FLAG_SSE2SLOW)) { | 155 | if (INLINE_SSE2_SLOW(cpu_flags)) { |
| 156 | c->lpc_apply_welch_window = lpc_apply_welch_window_sse2; | 156 | c->lpc_apply_welch_window = lpc_apply_welch_window_sse2; |
| 157 | c->lpc_compute_autocorr = lpc_compute_autocorr_sse2; | 157 | c->lpc_compute_autocorr = lpc_compute_autocorr_sse2; |
| 158 | } | 158 | } |
| @@ -346,7 +346,7 @@ av_cold void ff_vp78dsp_init_x86(VP8DSPContext *c) · 345 unmodified lines | |||
| 346 | c->put_vp8_bilinear_pixels_tab[0][0][0] = ff_put_vp8_pixels16_sse; | 346 | c->put_vp8_bilinear_pixels_tab[0][0][0] = ff_put_vp8_pixels16_sse; |
| 347 | } | 347 | } |
| 348 | 348 | ||
| 349 | if (EXTERNAL_SSE2(cpu_flags) && (cpu_flags & AV_CPU_FLAG_SSE2SLOW)) { | 349 | if (EXTERNAL_SSE2_SLOW(cpu_flags)) { |
| 350 | VP8_LUMA_MC_FUNC(0, 16, sse2); | 350 | VP8_LUMA_MC_FUNC(0, 16, sse2); |
| 351 | VP8_MC_FUNC(1, 8, sse2); | 351 | VP8_MC_FUNC(1, 8, sse2); |
| 352 | VP8_BILINEAR_MC_FUNC(0, 16, sse2); | 352 | VP8_BILINEAR_MC_FUNC(0, 16, sse2); |
| @@ -416,7 +416,7 @@ av_cold void ff_vp8dsp_init_x86(VP8DSPContext *c) · 63 unmodified lines | |||
| 416 | c->vp8_luma_dc_wht = ff_vp8_luma_dc_wht_sse; | 416 | c->vp8_luma_dc_wht = ff_vp8_luma_dc_wht_sse; |
| 417 | } | 417 | } |
| 418 | 418 | ||
| 419 | if (EXTERNAL_SSE2(cpu_flags) && (cpu_flags & AV_CPU_FLAG_SSE2SLOW)) { | 419 | if (EXTERNAL_SSE2_SLOW(cpu_flags)) { |
| 420 | c->vp8_v_loop_filter_simple = ff_vp8_v_loop_filter_simple_sse2; | 420 | c->vp8_v_loop_filter_simple = ff_vp8_v_loop_filter_simple_sse2; |
| 421 | 421 | ||
| 422 | c->vp8_v_loop_filter16y_inner = ff_vp8_v_loop_filter16y_inner_sse2; | 422 | c->vp8_v_loop_filter16y_inner = ff_vp8_v_loop_filter16y_inner_sse2; |