vcvt2ps2phx(xm1|k5, xm2, xm3);
vcvt2ps2phx(xm1|k5, xm2, ptr[rax+64]);
vcvt2ps2phx(xm1|k5, xm2, ptr_b[rax+64]);

vcvt2ps2phx(ym1|k5, ym2, ym3);
vcvt2ps2phx(ym1|k5, ym2, ptr[rax+64]);
vcvt2ps2phx(ym1|k5, ym2, ptr_b[rax+64]);

vcvt2ps2phx(zm1|k5, zm2, zm3);
vcvt2ps2phx(zm1|k5, zm2, ptr[rax+64]);
vcvt2ps2phx(zm1|k5, zm2, ptr_b[rax+64]);

// vcvtbiasph2hf8
vcvtbiasph2bf8(xm1|k2, xm3, xm5);
vcvtbiasph2bf8(xm1|k2, xm3, ptr[rax+64]);
vcvtbiasph2bf8(xm1|k2, xm3, ptr_b[rax+64]);

vcvtbiasph2bf8(xm1|k2, ym3, ym5);
vcvtbiasph2bf8(xm1|k2, ym3, ptr[rax+64]);
vcvtbiasph2bf8(xm1|k2, ym3, ptr_b[rax+64]);

vcvtbiasph2bf8(ym1|k2, zm3, zm5);
vcvtbiasph2bf8(ym1|k2, zm3, ptr[rax+64]);
vcvtbiasph2bf8(ym1|k2, zm3, ptr_b[rax+64]);

// vcvtbiasph2bf8s
vcvtbiasph2bf8s(xm1|k2, xm3, xm5);
vcvtbiasph2bf8s(xm1|k2, xm3, ptr[rax+64]);
vcvtbiasph2bf8s(xm1|k2, xm3, ptr_b[rax+64]);

vcvtbiasph2bf8s(xm1|k2, ym3, ym5);
vcvtbiasph2bf8s(xm1|k2, ym3, ptr[rax+64]);
vcvtbiasph2bf8s(xm1|k2, ym3, ptr_b[rax+64]);

vcvtbiasph2bf8s(ym1|k2, zm3, zm5);
vcvtbiasph2bf8s(ym1|k2, zm3, ptr[rax+64]);
vcvtbiasph2bf8s(ym1|k2, zm3, ptr_b[rax+64]);

// vcvtbiasph2hf8
vcvtbiasph2hf8(xm1|k2, xm3, xm5);
vcvtbiasph2hf8(xm1|k2, xm3, ptr[rax+64]);
vcvtbiasph2hf8(xm1|k2, xm3, ptr_b[rax+64]);

vcvtbiasph2hf8(xm1|k2, ym3, ym5);
vcvtbiasph2hf8(xm1|k2, ym3, ptr[rax+64]);
vcvtbiasph2hf8(xm1|k2, ym3, ptr_b[rax+64]);

vcvtbiasph2hf8(ym1|k2, zm3, zm5);
vcvtbiasph2hf8(ym1|k2, zm3, ptr[rax+64]);
vcvtbiasph2hf8(ym1|k2, zm3, ptr_b[rax+64]);

// vcvtbiasph2hf8s
vcvtbiasph2hf8s(xm1|k2, xm3, xm5);
vcvtbiasph2hf8s(xm1|k2, xm3, ptr[rax+64]);
vcvtbiasph2hf8s(xm1|k2, xm3, ptr_b[rax+64]);

vcvtbiasph2hf8s(xm1|k2, ym3, ym5);
vcvtbiasph2hf8s(xm1|k2, ym3, ptr[rax+64]);
vcvtbiasph2hf8s(xm1|k2, ym3, ptr_b[rax+64]);

vcvtbiasph2hf8s(ym1|k2, zm3, zm5);
vcvtbiasph2hf8s(ym1|k2, zm3, ptr[rax+64]);
vcvtbiasph2hf8s(ym1|k2, zm3, ptr_b[rax+64]);

vcvthf82ph(xm1|k5|T_z, xm2);
vcvthf82ph(xm1|k5|T_z, ptr[rax+64]);

vcvthf82ph(ym1|k5|T_z, xm2);
vcvthf82ph(ym1|k5|T_z, ptr[rax+64]);

vcvthf82ph(zm1|k5|T_z, ym2);
vcvthf82ph(zm1|k5|T_z, ptr[rax+64]);

//
vcvt2ph2bf8(xm1|k4|T_z, xm2, xm3);
vcvt2ph2bf8(xm1|k4, xm2, ptr[rax+64]);
vcvt2ph2bf8(xm1, xm2, ptr_b[rax+64]);

vcvt2ph2bf8(ym1|k4|T_z, ym2, ym3);
vcvt2ph2bf8(ym1|k4, ym2, ptr[rax+64]);
vcvt2ph2bf8(ym1, ym2, ptr_b[rax+64]);

vcvt2ph2bf8(zm1|k4|T_z, zm2, zm3);
vcvt2ph2bf8(zm1|k4, zm2, ptr[rax+64]);
vcvt2ph2bf8(zm1, zm2, ptr_b[rax+64]);

//
vcvt2ph2bf8s(xm1|k4|T_z, xm2, xm3);
vcvt2ph2bf8s(xm1|k4, xm2, ptr[rax+64]);
vcvt2ph2bf8s(xm1, xm2, ptr_b[rax+64]);

vcvt2ph2bf8s(ym1|k4|T_z, ym2, ym3);
vcvt2ph2bf8s(ym1|k4, ym2, ptr[rax+64]);
vcvt2ph2bf8s(ym1, ym2, ptr_b[rax+64]);

vcvt2ph2bf8s(zm1|k4|T_z, zm2, zm3);
vcvt2ph2bf8s(zm1|k4, zm2, ptr[rax+64]);
vcvt2ph2bf8s(zm1, zm2, ptr_b[rax+64]);

//
vcvt2ph2hf8(xm1|k4|T_z, xm2, xm3);
vcvt2ph2hf8(xm1|k4, xm2, ptr[rax+64]);
vcvt2ph2hf8(xm1, xm2, ptr_b[rax+64]);

vcvt2ph2hf8(ym1|k4|T_z, ym2, ym3);
vcvt2ph2hf8(ym1|k4, ym2, ptr[rax+64]);
vcvt2ph2hf8(ym1, ym2, ptr_b[rax+64]);

vcvt2ph2hf8(zm1|k4|T_z, zm2, zm3);
vcvt2ph2hf8(zm1|k4, zm2, ptr[rax+64]);
vcvt2ph2hf8(zm1, zm2, ptr_b[rax+64]);

//
vcvt2ph2hf8s(xm1|k4|T_z, xm2, xm3);
vcvt2ph2hf8s(xm1|k4, xm2, ptr[rax+64]);
vcvt2ph2hf8s(xm1, xm2, ptr_b[rax+64]);

vcvt2ph2hf8s(ym1|k4|T_z, ym2, ym3);
vcvt2ph2hf8s(ym1|k4, ym2, ptr[rax+64]);
vcvt2ph2hf8s(ym1, ym2, ptr_b[rax+64]);

vcvt2ph2hf8s(zm1|k4|T_z, zm2, zm3);
vcvt2ph2hf8s(zm1|k4, zm2, ptr[rax+64]);
vcvt2ph2hf8s(zm1, zm2, ptr_b[rax+64]);

// vcvtph2bf8
vcvtph2bf8(xmm1|k2|T_z, xmm2);
vcvtph2bf8(xmm1|k2|T_z, xword [rax+64]);
vcvtph2bf8(xmm1|k2|T_z, xword_b[rax+64]);

vcvtph2bf8(xmm1|k2|T_z, ymm2);
vcvtph2bf8(xmm1|k2|T_z, yword[rax+64]);
vcvtph2bf8(xmm1|k2|T_z, yword_b[rax+64]);

vcvtph2bf8(ymm1|k2|T_z, zmm2);
vcvtph2bf8(ymm1|k2|T_z, zword[rax+64]);
vcvtph2bf8(ymm1|k2|T_z, zword_b[rax+64]);

// vcvtph2bf8s
vcvtph2bf8s(xmm1|k2|T_z, xmm2);
vcvtph2bf8s(xmm1|k2|T_z, xword [rax+64]);
vcvtph2bf8s(xmm1|k2|T_z, xword_b[rax+64]);

vcvtph2bf8s(xmm1|k2|T_z, ymm2);
vcvtph2bf8s(xmm1|k2|T_z, yword[rax+64]);
vcvtph2bf8s(xmm1|k2|T_z, yword_b[rax+64]);

vcvtph2bf8s(ymm1|k2|T_z, zmm2);
vcvtph2bf8s(ymm1|k2|T_z, zword[rax+64]);
vcvtph2bf8s(ymm1|k2|T_z, zword_b[rax+64]);

// vcvtph2hf8
vcvtph2hf8(xmm1|k2|T_z, xmm2);
vcvtph2hf8(xmm1|k2|T_z, xword [rax+64]);
vcvtph2hf8(xmm1|k2|T_z, xword_b[rax+64]);

vcvtph2hf8(xmm1|k2|T_z, ymm2);
vcvtph2hf8(xmm1|k2|T_z, yword[rax+64]);
vcvtph2hf8(xmm1|k2|T_z, yword_b[rax+64]);

vcvtph2hf8(ymm1|k2|T_z, zmm2);
vcvtph2hf8(ymm1|k2|T_z, zword[rax+64]);
vcvtph2hf8(ymm1|k2|T_z, zword_b[rax+64]);

// vcvtph2hf8s
vcvtph2hf8s(xmm1|k2|T_z, xmm2);
vcvtph2hf8s(xmm1|k2|T_z, xword [rax+64]);
vcvtph2hf8s(xmm1|k2|T_z, xword_b[rax+64]);

vcvtph2hf8s(xmm1|k2|T_z, ymm2);
vcvtph2hf8s(xmm1|k2|T_z, yword[rax+64]);
vcvtph2hf8s(xmm1|k2|T_z, yword_b[rax+64]);

vcvtph2hf8s(ymm1|k2|T_z, zmm2);
vcvtph2hf8s(ymm1|k2|T_z, zword[rax+64]);
vcvtph2hf8s(ymm1|k2|T_z, zword_b[rax+64]);

// AVX-NE-CONVERT
vbcstnebf162ps(xmm15, ptr[rax+64]);
vbcstnebf162ps(ymm15, ptr[rax+64]);

vbcstnesh2ps(xmm15, ptr[rax+64]);
vbcstnesh2ps(ymm15, ptr[rax+64]);

vcvtneebf162ps(xmm15, ptr[rax+64]);
vcvtneebf162ps(ymm15, ptr[rax+64]);

vcvtneeph2ps(xmm15, ptr[rax+64]);
vcvtneeph2ps(ymm15, ptr[rax+64]);

vcvtneobf162ps(xmm15, ptr[rax+64]);
vcvtneobf162ps(ymm15, ptr[rax+64]);

vcvtneoph2ps(xmm15, ptr[rax+64]);
vcvtneoph2ps(ymm15, ptr[rax+64]);

vcvtneps2bf16(xmm15, xmm3, VexEncoding);
vcvtneps2bf16(xmm15, ptr[rax+64], VexEncoding);
vcvtneps2bf16(xmm15, ymm3, VexEncoding);
vcvtneps2bf16(xmm15, ptr[rax+64], VexEncoding);

// GPR-source cvt: EGPR (r16-r31) and {er} (EVEX is forced by T_rd_sae)
vcvtsi2sd(xm1, xm2, rax);
vcvtsi2sd(xm1, xm2, r8);
vcvtsi2sd(xm1, xm2, r16);
vcvtsi2sd(xm1, xm2, r24);
vcvtsi2sd(xm16, xm17, eax);
vcvtsi2sd(xm18, xm19, r8d);
vcvtsi2sd(xm24, xm25, r16d);
vcvtsi2sd(xm26, xm27, r24d);
vcvtsi2sd(xm1|T_rd_sae, xm2, rax);
vcvtsi2sd(xm1|T_rd_sae, xm2, r9);

vcvtsi2ss(xm1, xm2, rax);
vcvtsi2ss(xm1, xm2, r8);
vcvtsi2ss(xm1, xm2, r16);
vcvtsi2ss(xm1, xm2, r24);
vcvtsi2ss(xm16, xm17, eax);
vcvtsi2ss(xm18, xm19, r8d);
vcvtsi2ss(xm24, xm25, r16d);
vcvtsi2ss(xm26, xm27, r24d);
vcvtsi2ss(xm1|T_rd_sae, xm2, rax);
vcvtsi2ss(xm1|T_rd_sae, xm2, r9);

vcvtusi2sd(xm1, xm2, rax);
vcvtusi2sd(xm1, xm2, r8);
vcvtusi2sd(xm1, xm2, r16);
vcvtusi2sd(xm1, xm2, r24);
vcvtusi2sd(xm16, xm17, eax);
vcvtusi2sd(xm18, xm19, r8d);
vcvtusi2sd(xm24, xm25, r16d);
vcvtusi2sd(xm26, xm27, r24d);
vcvtusi2sd(xm1|T_rd_sae, xm2, rax);
vcvtusi2sd(xm1|T_rd_sae, xm2, r9);

vcvtusi2ss(xm1, xm2, rax);
vcvtusi2ss(xm1, xm2, r8);
vcvtusi2ss(xm1, xm2, r16);
vcvtusi2ss(xm1, xm2, r24);
vcvtusi2ss(xm16, xm17, eax);
vcvtusi2ss(xm18, xm19, r8d);
vcvtusi2ss(xm24, xm25, r16d);
vcvtusi2ss(xm26, xm27, r24d);
vcvtusi2ss(xm1|T_rd_sae, xm2, rax);
vcvtusi2ss(xm1|T_rd_sae, xm2, r9);

// vmovq with EGPR
vmovq(xm0, rax);
vmovq(xm8, r8);
vmovq(xm16, r16);
vmovq(xm24, r24);
vmovq(xm0, r24);
vmovq(xm8, r16);
vmovq(xm16, r8);
vmovq(xm24, rax);

vmovq(rax, xm0);
vmovq(r8, xm8);
vmovq(r16, xm16);
vmovq(r24, xm24);
vmovq(r24, xm0);
vmovq(r16, xm8);
vmovq(r8, xm16);
vmovq(rax, xm24);

// vpextrw with EGPR
vpextrw(eax, xm1, 0);
vpextrw(r8d, xm1, 1);
vpextrw(r16d, xm1, 2);
vpextrw(r24d, xm1, 3);
vpextrw(eax, xm16, 4);
vpextrw(r16d, xm24, 5);
vpextrw(eax, xm2, 6);
vpextrw(ptr[rax+rcx*1], xm3, 7);
