Chromium Code Reviews| Index: source/libvpx/vpx_dsp/vpx_dsp_rtcd_defs.pl |
| diff --git a/source/libvpx/vpx_dsp/vpx_dsp_rtcd_defs.pl b/source/libvpx/vpx_dsp/vpx_dsp_rtcd_defs.pl |
| index 128dd8ba8ad46a7655e9614391dc0f878d0e470a..2901cd616680db26c3df4f2e3879fbe48ba0a359 100644 |
| --- a/source/libvpx/vpx_dsp/vpx_dsp_rtcd_defs.pl |
| +++ b/source/libvpx/vpx_dsp/vpx_dsp_rtcd_defs.pl |
| @@ -11,6 +11,12 @@ EOF |
| } |
| forward_decls qw/vpx_dsp_forward_decls/; |
| + |
| +$avx2 = ''; |
|
Johann
2015/09/14 18:51:02
this shouldn't be necessary anymore? although this
kjellander_chromium
2015/09/14 19:40:45
Ah, you're right. That's nice. It seemed a bit ugl
|
| +if (vpx_config("HAVE_AVX2") eq "yes") { |
| + $avx2 = 'avx2'; |
| +} |
| + |
| # x86inc.asm had specific constraints. break it out so it's easy to disable. |
| # zero all the variables to avoid tricky else conditions. |
| $mmx_x86inc = $sse_x86inc = $sse2_x86inc = $ssse3_x86inc = $avx_x86inc = |
| @@ -23,14 +29,14 @@ if (vpx_config("CONFIG_USE_X86INC") eq "yes") { |
| $sse2_x86inc = 'sse2'; |
| $ssse3_x86inc = 'ssse3'; |
| $avx_x86inc = 'avx'; |
| - $avx2_x86inc = 'avx2'; |
| + $avx2_x86inc = "$avx2"; |
| if ($opts{arch} eq "x86_64") { |
| $mmx_x86_64_x86inc = 'mmx'; |
| $sse_x86_64_x86inc = 'sse'; |
| $sse2_x86_64_x86inc = 'sse2'; |
| $ssse3_x86_64_x86inc = 'ssse3'; |
| $avx_x86_64_x86inc = 'avx'; |
| - $avx2_x86_64_x86inc = 'avx2'; |
| + $avx2_x86_64_x86inc = "$avx2"; |
| } |
| } |
| @@ -47,7 +53,7 @@ if ($opts{arch} eq "x86_64") { |
| $sse2_x86_64 = 'sse2'; |
| $ssse3_x86_64 = 'ssse3'; |
| $avx_x86_64 = 'avx'; |
| - $avx2_x86_64 = 'avx2'; |
| + $avx2_x86_64 = "$avx2"; |
| } |
| # |
| @@ -470,7 +476,7 @@ add_proto qw/void vpx_lpf_vertical_4_dual/, "uint8_t *s, int pitch, const uint8_ |
| specialize qw/vpx_lpf_vertical_4_dual sse2 neon dspr2 msa/; |
| add_proto qw/void vpx_lpf_horizontal_16/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; |
| -specialize qw/vpx_lpf_horizontal_16 sse2 avx2 neon_asm dspr2 msa/; |
| +specialize qw/vpx_lpf_horizontal_16 sse2 neon_asm dspr2 msa/, "$avx2"; |
| $vpx_lpf_horizontal_16_neon_asm=vpx_lpf_horizontal_16_neon; |
| add_proto qw/void vpx_lpf_horizontal_8/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; |
| @@ -600,10 +606,10 @@ if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { |
| specialize qw/vpx_fdct16x16_1 sse2 msa/; |
| add_proto qw/void vpx_fdct32x32/, "const int16_t *input, tran_low_t *output, int stride"; |
| - specialize qw/vpx_fdct32x32 sse2 avx2 msa/; |
| + specialize qw/vpx_fdct32x32 sse2 msa/, "$avx2"; |
| add_proto qw/void vpx_fdct32x32_rd/, "const int16_t *input, tran_low_t *output, int stride"; |
| - specialize qw/vpx_fdct32x32_rd sse2 avx2 msa/; |
| + specialize qw/vpx_fdct32x32_rd sse2 msa/, "$avx2"; |
| add_proto qw/void vpx_fdct32x32_1/, "const int16_t *input, tran_low_t *output, int stride"; |
| specialize qw/vpx_fdct32x32_1 sse2 msa/; |
| @@ -833,19 +839,19 @@ specialize qw/vpx_subtract_block neon msa/, "$sse2_x86inc"; |
| # Single block SAD |
| # |
| add_proto qw/unsigned int vpx_sad64x64/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; |
| -specialize qw/vpx_sad64x64 avx2 neon msa/, "$sse2_x86inc"; |
| +specialize qw/vpx_sad64x64 neon msa/, "$sse2_x86inc", "$avx2"; |
| add_proto qw/unsigned int vpx_sad64x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; |
| -specialize qw/vpx_sad64x32 avx2 msa/, "$sse2_x86inc"; |
| +specialize qw/vpx_sad64x32 msa/, "$sse2_x86inc", "$avx2"; |
| add_proto qw/unsigned int vpx_sad32x64/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; |
| -specialize qw/vpx_sad32x64 avx2 msa/, "$sse2_x86inc"; |
| +specialize qw/vpx_sad32x64 msa/, "$sse2_x86inc", "$avx2"; |
| add_proto qw/unsigned int vpx_sad32x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; |
| -specialize qw/vpx_sad32x32 avx2 neon msa/, "$sse2_x86inc"; |
| +specialize qw/vpx_sad32x32 neon msa/, "$sse2_x86inc", "$avx2"; |
| add_proto qw/unsigned int vpx_sad32x16/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; |
| -specialize qw/vpx_sad32x16 avx2 msa/, "$sse2_x86inc"; |
| +specialize qw/vpx_sad32x16 msa/, "$sse2_x86inc", "$avx2"; |
| add_proto qw/unsigned int vpx_sad16x32/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride"; |
| specialize qw/vpx_sad16x32 msa/, "$sse2_x86inc"; |
| @@ -875,19 +881,19 @@ specialize qw/vpx_sad4x4 mmx neon msa/, "$sse_x86inc"; |
| # Avg |
| # |
| add_proto qw/unsigned int vpx_sad64x64_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; |
| -specialize qw/vpx_sad64x64_avg avx2 msa/, "$sse2_x86inc"; |
| +specialize qw/vpx_sad64x64_avg msa/, "$sse2_x86inc", "$avx2"; |
| add_proto qw/unsigned int vpx_sad64x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; |
| -specialize qw/vpx_sad64x32_avg avx2 msa/, "$sse2_x86inc"; |
| +specialize qw/vpx_sad64x32_avg msa/, "$sse2_x86inc", "$avx2"; |
| add_proto qw/unsigned int vpx_sad32x64_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; |
| -specialize qw/vpx_sad32x64_avg avx2 msa/, "$sse2_x86inc"; |
| +specialize qw/vpx_sad32x64_avg msa/, "$sse2_x86inc", "$avx2"; |
| add_proto qw/unsigned int vpx_sad32x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; |
| -specialize qw/vpx_sad32x32_avg avx2 msa/, "$sse2_x86inc"; |
| +specialize qw/vpx_sad32x32_avg msa/, "$sse2_x86inc", "$avx2"; |
| add_proto qw/unsigned int vpx_sad32x16_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; |
| -specialize qw/vpx_sad32x16_avg avx2 msa/, "$sse2_x86inc"; |
| +specialize qw/vpx_sad32x16_avg msa/, "$sse2_x86inc", "$avx2"; |
| add_proto qw/unsigned int vpx_sad16x32_avg/, "const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred"; |
| specialize qw/vpx_sad16x32_avg msa/, "$sse2_x86inc"; |
| @@ -970,7 +976,7 @@ specialize qw/vpx_sad4x4x8 sse4_1 msa/; |
| # Multi-block SAD, comparing a reference to N independent blocks |
| # |
| add_proto qw/void vpx_sad64x64x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; |
| -specialize qw/vpx_sad64x64x4d avx2 neon msa/, "$sse2_x86inc"; |
| +specialize qw/vpx_sad64x64x4d neon msa/, "$sse2_x86inc", "$avx2"; |
| add_proto qw/void vpx_sad64x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; |
| specialize qw/vpx_sad64x32x4d msa/, "$sse2_x86inc"; |
| @@ -979,7 +985,7 @@ add_proto qw/void vpx_sad32x64x4d/, "const uint8_t *src_ptr, int src_stride, con |
| specialize qw/vpx_sad32x64x4d msa/, "$sse2_x86inc"; |
| add_proto qw/void vpx_sad32x32x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; |
| -specialize qw/vpx_sad32x32x4d avx2 neon msa/, "$sse2_x86inc"; |
| +specialize qw/vpx_sad32x32x4d neon msa/, "$sse2_x86inc", "$avx2"; |
| add_proto qw/void vpx_sad32x16x4d/, "const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array"; |
| specialize qw/vpx_sad32x16x4d msa/, "$sse2_x86inc"; |
| @@ -1221,25 +1227,25 @@ if (vpx_config("CONFIG_ENCODERS") eq "yes" || vpx_config("CONFIG_POSTPROC") eq " |
| # Variance |
| # |
| add_proto qw/unsigned int vpx_variance64x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| - specialize qw/vpx_variance64x64 sse2 avx2 neon msa/; |
| + specialize qw/vpx_variance64x64 sse2 neon msa/, "$avx2"; |
| add_proto qw/unsigned int vpx_variance64x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| - specialize qw/vpx_variance64x32 sse2 avx2 neon msa/; |
| + specialize qw/vpx_variance64x32 sse2 neon msa/, "$avx2"; |
| add_proto qw/unsigned int vpx_variance32x64/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| specialize qw/vpx_variance32x64 sse2 neon msa/; |
| add_proto qw/unsigned int vpx_variance32x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| - specialize qw/vpx_variance32x32 sse2 avx2 neon msa/; |
| + specialize qw/vpx_variance32x32 sse2 neon msa/, "$avx2"; |
| add_proto qw/unsigned int vpx_variance32x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| - specialize qw/vpx_variance32x16 sse2 avx2 msa/; |
| + specialize qw/vpx_variance32x16 sse2 msa/, "$avx2"; |
| add_proto qw/unsigned int vpx_variance16x32/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| specialize qw/vpx_variance16x32 sse2 msa/; |
| add_proto qw/unsigned int vpx_variance16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| - specialize qw/vpx_variance16x16 mmx sse2 avx2 media neon msa/; |
| + specialize qw/vpx_variance16x16 mmx sse2 media neon msa/, "$avx2"; |
| add_proto qw/unsigned int vpx_variance16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse"; |
| specialize qw/vpx_variance16x8 mmx sse2 neon msa/; |
| @@ -1263,13 +1269,13 @@ add_proto qw/unsigned int vpx_variance4x4/, "const uint8_t *src_ptr, int source_ |
| # Specialty Variance |
| # |
| add_proto qw/void vpx_get16x16var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; |
| - specialize qw/vpx_get16x16var sse2 avx2 neon msa/; |
| + specialize qw/vpx_get16x16var sse2 neon msa/, "$avx2"; |
| add_proto qw/void vpx_get8x8var/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum"; |
| specialize qw/vpx_get8x8var mmx sse2 neon msa/; |
| add_proto qw/unsigned int vpx_mse16x16/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; |
| - specialize qw/vpx_mse16x16 mmx sse2 avx2 media neon msa/; |
| + specialize qw/vpx_mse16x16 mmx sse2 media neon msa/, "$avx2"; |
| add_proto qw/unsigned int vpx_mse16x8/, "const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse"; |
| specialize qw/vpx_mse16x8 sse2 msa/; |
| @@ -1292,7 +1298,7 @@ add_proto qw/void vpx_comp_avg_pred/, "uint8_t *comp_pred, const uint8_t *pred, |
| # Subpixel Variance |
| # |
| add_proto qw/uint32_t vpx_sub_pixel_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; |
| - specialize qw/vpx_sub_pixel_variance64x64 avx2 neon msa/, "$sse2_x86inc", "$ssse3_x86inc"; |
| + specialize qw/vpx_sub_pixel_variance64x64 neon msa/, "$sse2_x86inc", "$ssse3_x86inc", "$avx2"; |
| add_proto qw/uint32_t vpx_sub_pixel_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; |
| specialize qw/vpx_sub_pixel_variance64x32 msa/, "$sse2_x86inc", "$ssse3_x86inc"; |
| @@ -1301,7 +1307,7 @@ add_proto qw/uint32_t vpx_sub_pixel_variance32x64/, "const uint8_t *src_ptr, int |
| specialize qw/vpx_sub_pixel_variance32x64 msa/, "$sse2_x86inc", "$ssse3_x86inc"; |
| add_proto qw/uint32_t vpx_sub_pixel_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; |
| - specialize qw/vpx_sub_pixel_variance32x32 avx2 neon msa/, "$sse2_x86inc", "$ssse3_x86inc"; |
| + specialize qw/vpx_sub_pixel_variance32x32 neon msa/, "$sse2_x86inc", "$ssse3_x86inc", "$avx2"; |
| add_proto qw/uint32_t vpx_sub_pixel_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse"; |
| specialize qw/vpx_sub_pixel_variance32x16 msa/, "$sse2_x86inc", "$ssse3_x86inc"; |
| @@ -1331,7 +1337,7 @@ add_proto qw/uint32_t vpx_sub_pixel_variance4x4/, "const uint8_t *src_ptr, int s |
| specialize qw/vpx_sub_pixel_variance4x4 mmx msa/, "$sse_x86inc", "$ssse3_x86inc"; |
| add_proto qw/uint32_t vpx_sub_pixel_avg_variance64x64/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; |
| - specialize qw/vpx_sub_pixel_avg_variance64x64 avx2 msa/, "$sse2_x86inc", "$ssse3_x86inc"; |
| + specialize qw/vpx_sub_pixel_avg_variance64x64 msa/, "$sse2_x86inc", "$ssse3_x86inc", "$avx2"; |
| add_proto qw/uint32_t vpx_sub_pixel_avg_variance64x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; |
| specialize qw/vpx_sub_pixel_avg_variance64x32 msa/, "$sse2_x86inc", "$ssse3_x86inc"; |
| @@ -1340,7 +1346,7 @@ add_proto qw/uint32_t vpx_sub_pixel_avg_variance32x64/, "const uint8_t *src_ptr, |
| specialize qw/vpx_sub_pixel_avg_variance32x64 msa/, "$sse2_x86inc", "$ssse3_x86inc"; |
| add_proto qw/uint32_t vpx_sub_pixel_avg_variance32x32/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; |
| - specialize qw/vpx_sub_pixel_avg_variance32x32 avx2 msa/, "$sse2_x86inc", "$ssse3_x86inc"; |
| + specialize qw/vpx_sub_pixel_avg_variance32x32 msa/, "$sse2_x86inc", "$ssse3_x86inc", "$avx2"; |
| add_proto qw/uint32_t vpx_sub_pixel_avg_variance32x16/, "const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred"; |
| specialize qw/vpx_sub_pixel_avg_variance32x16 msa/, "$sse2_x86inc", "$ssse3_x86inc"; |