_mm512_mask_extload_epi64
Classification
KNC, Load, CPUID Test: KNCNI
Header File
immintrin.h
Instruction
VMOVDQA64 m512 {k}, zmm
Synopsis
 _mm512_mask_extload_epi64(__m512i src, __mmask8 k, void const * mt, _MM_UPCONV_EPI64_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 64-bit integer 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_EPI64_NONE:
				n := j*64
				dst[i+63:i] := addr[n+63:n]
			ESAC
		_MM_BROADCAST_1X8:
			CASE conv OF
			_MM_UPCONV_EPI64_NONE:
				n := j*64
				dst[i+63:i] := addr[63:0]
			ESAC
		_MM_BROADCAST_4X8:
			mod := j%4
			CASE conv OF
			_MM_UPCONV_EPI64_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