_mm_mask_mul_sch
Classification
AVX-512, Arithmetic, CPUID Test: AVX512_FP16
Header File
immintrin.h
Instruction
VFMULCSH xmm {k}, xmm, xmm
Synopsis
 _mm_mask_mul_sch(__m128h src, __mmask8 k, __m128h a, __m128h b);
Description
Multiply the lower complex numbers in "a" and "b", and store the result in the lower elements of "dst" using writemask "k" (elements are copied from "src" when mask bit 0 is not set), and copy the upper 6 packed elements from "a" to the upper elements of "dst". Each complex number is composed of two adjacent half-precision (16-bit) floating-point elements, which defines the complex number "complex = vec.fp16[0] + i * vec.fp16[1]".
Operation
IF k[0]
	dst.fp16[0] := (a.fp16[0] * b.fp16[0]) - (a.fp16[1] * b.fp16[1])
	dst.fp16[1] := (a.fp16[1] * b.fp16[0]) + (a.fp16[0] * b.fp16[1])
ELSE
	dst.fp16[0] := src.fp16[0]
	dst.fp16[1] := src.fp16[1]
FI
dst[127:32] := a[127:32]
dst[MAX:128] := 0