VCVTPH2PS | VCVTPH2PS xmm1, xmm2/m64 将xmm2/m64中的16位整数转换为xmm1中的单精度浮点数。xmm2/m64表示源操作数,而xmm1表示目的操作数。 {3.14, -2.5, 1.618, -4.2}, 每个数值为FP16(16位) {3.14, -2.5, 1.618, -4.2},转换后每个数值为单精度(32位) VCVTPH2PS ymm1, xmm2/m128 将xmm2/m128中的16位整数转换为ymm1中的单精度浮点数。xmm2/m128表示源操作数,而ymm1表示目的操作数。 vCvt_h2s(SRC1[15:0]) VCVTPH2PS (VEX.128 Encoded Version) |
VCVTPS2PH | VCVTPS2PH xmm1/m64, xmm2, imm8 xmm2中的单精度浮点数转换为xmm1/m64中的16位压缩的FP16值 IMM8:
VCVTPS2PH xmm1/m128, ymm2, imm8 将ymm2寄存器中低64位的单精度浮点数转换为xmm1/m128寄存器中的16位压缩的FP16值 |
单精度浮点(32位)和半精度浮点(16位)数据之间的转换
IMM8 | |||
bits | Field Name/value | Description | Comment |
Imm[1:0] | RC=00B RC=01B RC=10B RC=11B | Round to nearest even Round down Round up Truncate | If Imm[2] = 0 |
Imm[2] | MS1=0 MS1=1 | Use imm[1:0] for rounding Use MXCSR.RC for rounding | Ignore MXCSR.RC |
Imm[7:3] | Ignored | Ignored by processor |