_mm512_mask_extload_pd
Classification
KNC, Load, CPUID Test: KNCNI
Header File
immintrin.h
Instruction
VMOVAPD zmm {k}, m512
Synopsis
 _mm512_mask_extload_pd(__m512d src, __mmask8 k, void const * mt, _MM_UPCONV_PD_ENUM conv, _MM_BROADCAST64_ENUM bc, int hint);
Description
Depending on "bc", loads 1, 4, or 8 elements of type and size determined by "conv" from memory address "mt" and converts all elements to double-precision (64-bit) floating-point elements, storing the results in "dst" using writemask "k" (elements are copied from "src" when the corresponding mask bit is not set). "hint" indicates to the processor whether the data is non-temporal.
Operation
addr := MEM[mt]
FOR j := 0 to 7
	i := j*64
	IF k[j]
		CASE bc OF
		_MM_BROADCAST64_NONE:
			CASE conv OF
			_MM_UPCONV_PD_NONE:
				n := j*64
				dst[i+63:i] := addr[n+63:n]
			ESAC
		_MM_BROADCAST_1X8:
			CASE conv OF
			_MM_UPCONV_PD_NONE:
				n := j*64
				dst[i+63:i] := addr[63:0]
			ESAC
		_MM_BROADCAST_4X8:
			mod := j%4
			CASE conv OF
			_MM_UPCONV_PD_NONE:
				n := mod*64
				dst[i+63:i] := addr[n+63:n]
			ESAC
		ESAC
	ELSE
		dst[i+63:i] := src[i+63:i]
	FI
ENDFOR
dst[MAX:512] := 0