4 include 'avx512f.inc'
\r
8 iterate <instr,postbyte>, gatherpf0,1 ,gatherpf1,2 ,scatterpf0,5, scatterpf1,6
\r
10 macro v#instr#dps? src*
\r
11 AVX_512.parse_vsib_operand_k1 @src,src
\r
12 if @src.type = 'mem' & @src.mask
\r
13 if @src.size and not 4 | @src.visize <> 64
\r
14 err 'invalid operand size'
\r
17 AVX_512.store_instruction 64,VEX_66_0F38_W0,EVEX_REQUIRED,0C6h,@src,@src.mask,postbyte,@src.index and 10000b
\r
19 err 'invalid combination of operands'
\r
23 macro v#instr#qps? src*
\r
24 AVX_512.parse_vsib_operand_k1 @src,src
\r
25 if @src.type = 'mem' & @src.mask
\r
26 if @src.size and not 8 | @src.visize <> 64
\r
27 err 'invalid operand size'
\r
30 AVX_512.store_instruction 64,VEX_66_0F38_W0,EVEX_REQUIRED,0C7h,@src,@src.mask,postbyte,@src.index and 10000b
\r
32 err 'invalid combination of operands'
\r
36 macro v#instr#dpd? src*
\r
37 AVX_512.parse_vsib_operand_k1 @src,src
\r
38 if @src.type = 'mem' & @src.mask
\r
39 if @src.size and not 4 | @src.visize <> 32
\r
40 err 'invalid operand size'
\r
43 AVX_512.store_instruction 64,VEX_66_0F38_W1,EVEX_REQUIRED,0C6h,@src,@src.mask,postbyte,@src.index and 10000b
\r
45 err 'invalid combination of operands'
\r
49 macro v#instr#qpd? src*
\r
50 AVX_512.parse_vsib_operand_k1 @src,src
\r
51 if @src.type = 'mem' & @src.mask
\r
52 if @src.size and not 8 | @src.visize <> 64
\r
53 err 'invalid operand size'
\r
56 AVX_512.store_instruction 64,VEX_66_0F38_W1,EVEX_REQUIRED,0C7h,@src,@src.mask,postbyte,@src.index and 10000b
\r
58 err 'invalid combination of operands'
\r