if ~ defined AVX_512 include 'avx512f.inc' end if iterate , gatherpf0,1 ,gatherpf1,2 ,scatterpf0,5, scatterpf1,6 macro v#instr#dps? src* AVX_512.parse_k1_vsib_operand@src src if @src.type = 'mem' & @src.mask if @src.size and not 4 | @src.visize <> 64 err 'invalid operand size' end if @src.memsize = 4 AVX_512.store_instruction@src 64,VEX_66_0F38_W0,EVEX_REQUIRED,0C6h,@src.mask,postbyte,@src.index and 10000b else err 'invalid combination of operands' end if end macro macro v#instr#qps? src* AVX_512.parse_k1_vsib_operand@src src if @src.type = 'mem' & @src.mask if @src.size and not 8 | @src.visize <> 64 err 'invalid operand size' end if @src.memsize = 4 AVX_512.store_instruction@src 64,VEX_66_0F38_W0,EVEX_REQUIRED,0C7h,@src.mask,postbyte,@src.index and 10000b else err 'invalid combination of operands' end if end macro macro v#instr#dpd? src* AVX_512.parse_k1_vsib_operand@src src if @src.type = 'mem' & @src.mask if @src.size and not 4 | @src.visize <> 32 err 'invalid operand size' end if @src.memsize = 8 AVX_512.store_instruction@src 64,VEX_66_0F38_W1,EVEX_REQUIRED,0C6h,@src.mask,postbyte,@src.index and 10000b else err 'invalid combination of operands' end if end macro macro v#instr#qpd? src* AVX_512.parse_k1_vsib_operand@src src if @src.type = 'mem' & @src.mask if @src.size and not 8 | @src.visize <> 64 err 'invalid operand size' end if @src.memsize = 8 AVX_512.store_instruction@src 64,VEX_66_0F38_W1,EVEX_REQUIRED,0C7h,@src.mask,postbyte,@src.index and 10000b else err 'invalid combination of operands' end if end macro end iterate