avx512_vlen_check()'s argument was inverted, while the surrounding
conditional wrongly forced the EVEX.L'L check for the scalar forms when
embedded rounding was in effect.
Fixes: d14c52cba0f5 ("x86emul: handle AVX512-FP16 complex multiplication insns")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
--- a/xen/arch/x86/x86_emulate/x86_emulate.c
+++ b/xen/arch/x86/x86_emulate/x86_emulate.c
@@ -7852,8 +7852,8 @@ x86_emulate(
generate_exception_if(modrm_reg == src1 ||
(ea.type != OP_MEM && modrm_reg == modrm_rm),
X86_EXC_UD);
- if ( ea.type != OP_REG || (b & 1) || !evex.brs )
- avx512_vlen_check(!(b & 1));
+ if ( ea.type != OP_REG || !evex.brs )
+ avx512_vlen_check(b & 1);
goto simd_zmm;
}