aboutsummaryrefslogtreecommitdiff
path: root/residual_calc.c
diff options
context:
space:
mode:
Diffstat (limited to 'residual_calc.c')
-rw-r--r--residual_calc.c15
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;
}