diff options
Diffstat (limited to 'residual_calc.c')
-rw-r--r-- | residual_calc.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/residual_calc.c b/residual_calc.c index 6d43e4d..fe7ec12 100644 --- a/residual_calc.c +++ b/residual_calc.c @@ -79,6 +79,11 @@ ResidualLineCalc mg2di_residual_line_calc_s1_avx2; ResidualLineCalc mg2di_residual_line_calc_s2_avx2; ResidualLineAdd mg2di_residual_line_add_s1_avx2; ResidualLineAdd mg2di_residual_line_add_s2_avx2; + +ResidualLineCalc mg2di_residual_line_calc_s1_avx512; +ResidualLineCalc mg2di_residual_line_calc_s2_avx512; +ResidualLineAdd mg2di_residual_line_add_s1_avx512; +ResidualLineAdd mg2di_residual_line_add_s2_avx512; #endif static void @@ -336,6 +341,11 @@ int mg2di_residual_calc_init(ResidualCalcContext *ctx) priv->residual_line_add = mg2di_residual_line_add_s1_avx2; priv->calc_blocksize = 4; } + if (ctx->cpuflags & MG2DI_CPU_FLAG_AVX512) { + priv->residual_line_calc = mg2di_residual_line_calc_s1_avx512; + priv->residual_line_add = mg2di_residual_line_add_s1_avx512; + priv->calc_blocksize = 8; + } #endif break; case 2: @@ -347,6 +357,11 @@ int mg2di_residual_calc_init(ResidualCalcContext *ctx) priv->residual_line_add = mg2di_residual_line_add_s2_avx2; priv->calc_blocksize = 4; } + if (ctx->cpuflags & MG2DI_CPU_FLAG_AVX512) { + priv->residual_line_calc = mg2di_residual_line_calc_s2_avx512; + priv->residual_line_add = mg2di_residual_line_add_s2_avx512; + priv->calc_blocksize = 8; + } #endif break; } |