diff --git a/src/singeli/src/x86.singeli b/src/singeli/src/x86.singeli index 2a786e02..e27725fb 100644 --- a/src/singeli/src/x86.singeli +++ b/src/singeli/src/x86.singeli @@ -7,7 +7,7 @@ def v2f{x:T=[_]_} = re_el{f32, x} def v2d{x:T=[_]_} = re_el{f64, x} def x86_vec_low{n, E if primt{E}} = [__max{128/width{E},n}]E -def x86_has512{V=[_]E} = if (width{V}==512) hasarch{'AVX512F'} else hasarch{'AVX512VL'} +def x86_has512{V=[_]E} = if (width{V}==512) hasarch{'AVX512F'} else (width{V}==256 or width{V}==128) and hasarch{'AVX512VL'} def x86_has512{V, post} = has512{V} and hasarch{merge{'AVX512', post}} local def has512 = x86_has512