32-bit AVX2 impl. of h2v2 & h2v1 upsampling
(Fancy & Plain)
This commit is contained in:
@@ -431,6 +431,8 @@ jsimd_can_h2v2_upsample (void)
|
||||
if (sizeof(JDIMENSION) != 4)
|
||||
return 0;
|
||||
|
||||
if (simd_support & JSIMD_AVX2)
|
||||
return 1;
|
||||
if (simd_support & JSIMD_SSE2)
|
||||
return 1;
|
||||
if (simd_support & JSIMD_MMX)
|
||||
@@ -450,6 +452,8 @@ jsimd_can_h2v1_upsample (void)
|
||||
if (sizeof(JDIMENSION) != 4)
|
||||
return 0;
|
||||
|
||||
if (simd_support & JSIMD_AVX2)
|
||||
return 1;
|
||||
if (simd_support & JSIMD_SSE2)
|
||||
return 1;
|
||||
if (simd_support & JSIMD_MMX)
|
||||
@@ -464,7 +468,10 @@ jsimd_h2v2_upsample (j_decompress_ptr cinfo,
|
||||
JSAMPARRAY input_data,
|
||||
JSAMPARRAY *output_data_ptr)
|
||||
{
|
||||
if (simd_support & JSIMD_SSE2)
|
||||
if (simd_support & JSIMD_AVX2)
|
||||
jsimd_h2v2_upsample_avx2(cinfo->max_v_samp_factor, cinfo->output_width,
|
||||
input_data, output_data_ptr);
|
||||
else if (simd_support & JSIMD_SSE2)
|
||||
jsimd_h2v2_upsample_sse2(cinfo->max_v_samp_factor, cinfo->output_width,
|
||||
input_data, output_data_ptr);
|
||||
else if (simd_support & JSIMD_MMX)
|
||||
@@ -478,7 +485,10 @@ jsimd_h2v1_upsample (j_decompress_ptr cinfo,
|
||||
JSAMPARRAY input_data,
|
||||
JSAMPARRAY *output_data_ptr)
|
||||
{
|
||||
if (simd_support & JSIMD_SSE2)
|
||||
if (simd_support & JSIMD_AVX2)
|
||||
jsimd_h2v1_upsample_avx2(cinfo->max_v_samp_factor, cinfo->output_width,
|
||||
input_data, output_data_ptr);
|
||||
else if (simd_support & JSIMD_SSE2)
|
||||
jsimd_h2v1_upsample_sse2(cinfo->max_v_samp_factor, cinfo->output_width,
|
||||
input_data, output_data_ptr);
|
||||
else if (simd_support & JSIMD_MMX)
|
||||
@@ -497,6 +507,9 @@ jsimd_can_h2v2_fancy_upsample (void)
|
||||
if (sizeof(JDIMENSION) != 4)
|
||||
return 0;
|
||||
|
||||
if ((simd_support & JSIMD_AVX2) &&
|
||||
IS_ALIGNED_AVX(jconst_fancy_upsample_avx2))
|
||||
return 1;
|
||||
if ((simd_support & JSIMD_SSE2) &&
|
||||
IS_ALIGNED_SSE(jconst_fancy_upsample_sse2))
|
||||
return 1;
|
||||
@@ -517,6 +530,9 @@ jsimd_can_h2v1_fancy_upsample (void)
|
||||
if (sizeof(JDIMENSION) != 4)
|
||||
return 0;
|
||||
|
||||
if ((simd_support & JSIMD_AVX2) &&
|
||||
IS_ALIGNED_AVX(jconst_fancy_upsample_avx2))
|
||||
return 1;
|
||||
if ((simd_support & JSIMD_SSE2) &&
|
||||
IS_ALIGNED_SSE(jconst_fancy_upsample_sse2))
|
||||
return 1;
|
||||
@@ -532,8 +548,11 @@ jsimd_h2v2_fancy_upsample (j_decompress_ptr cinfo,
|
||||
JSAMPARRAY input_data,
|
||||
JSAMPARRAY *output_data_ptr)
|
||||
{
|
||||
if ((simd_support & JSIMD_SSE2) &&
|
||||
IS_ALIGNED_SSE(jconst_fancy_upsample_sse2))
|
||||
if (simd_support & JSIMD_AVX2)
|
||||
jsimd_h2v2_fancy_upsample_avx2(cinfo->max_v_samp_factor,
|
||||
compptr->downsampled_width, input_data,
|
||||
output_data_ptr);
|
||||
else if (simd_support & JSIMD_SSE2)
|
||||
jsimd_h2v2_fancy_upsample_sse2(cinfo->max_v_samp_factor,
|
||||
compptr->downsampled_width, input_data,
|
||||
output_data_ptr);
|
||||
@@ -549,8 +568,11 @@ jsimd_h2v1_fancy_upsample (j_decompress_ptr cinfo,
|
||||
JSAMPARRAY input_data,
|
||||
JSAMPARRAY *output_data_ptr)
|
||||
{
|
||||
if ((simd_support & JSIMD_SSE2) &&
|
||||
IS_ALIGNED_SSE(jconst_fancy_upsample_sse2))
|
||||
if (simd_support & JSIMD_AVX2)
|
||||
jsimd_h2v1_fancy_upsample_avx2(cinfo->max_v_samp_factor,
|
||||
compptr->downsampled_width, input_data,
|
||||
output_data_ptr);
|
||||
else if (simd_support & JSIMD_SSE2)
|
||||
jsimd_h2v1_fancy_upsample_sse2(cinfo->max_v_samp_factor,
|
||||
compptr->downsampled_width, input_data,
|
||||
output_data_ptr);
|
||||
|
||||
Reference in New Issue
Block a user