[PATCH] x86emul: correct #UD check for AVX512-FP16 complex multiplications

Jan Beulich posted 1 patch 3 months, 1 week ago
Failed in applying to current master (apply log)
[PATCH] x86emul: correct #UD check for AVX512-FP16 complex multiplications
Posted by Jan Beulich 3 months, 1 week ago
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;
     }
Re: [PATCH] x86emul: correct #UD check for AVX512-FP16 complex multiplications
Posted by Andrew Cooper 3 months, 1 week ago
On 15/08/2024 10:17 am, Jan Beulich wrote:
> 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>

Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>