ROUNDSS — Round Scalar Single Precision Floating-Point ValuesInstruction Operand EncodingDescriptionRound the single-precision floating-point value in the lowest dword of the source operand (second operand) using the rounding mode specified in the immediate operand (third operand) and place the result in the destination operand (first operand). The rounding process rounds a single-precision floating-point input to an integer value and returns the result as a single-precision floating-point value in the lowest position. The upper three single-preci-sion floating-point values in the destination are retained. The immediate operand specifies control fields for the rounding operation, three bit fields are defined and shown in Figure4-24. Bit 3 of the immediate byte controls processor behavior for a precision exception, bit 2 selects the source of rounding mode control. Bits 1:0 specify a non-sticky rounding-mode value (Table 4-23 lists the encoded values for rounding-mode field). The Precision Floating-Point Exception is signaled according to the immediate operand. If any source operand is an SNaN then it will be converted to a QNaN. If DAZ is set to ‘1 then denormals will be converted to zero before rounding.128-bit Legacy SSE version: The first source operand and the destination operand are the same. Bits (MAXVL-1:32) of the corresponding YMM destination register remain unchanged.VEX.128 encoded version: Bits (MAXVL-1:128) of the destination YMM register are zeroed.OperationIF (imm[2] = ‘1) THEN // rounding mode is determined by MXCSR.RC DEST[31:0] := ConvertSPFPToInteger_M(SRC[31:0]);ELSE// rounding mode is determined by IMM8.RCDEST[31:0] := ConvertSPFPToInteger_Imm(SRC[31:0]);FI;DEST[127:32] remains unchanged ;ROUNDSS (128-bit Legacy SSE version)DEST[31:0] := RoundToInteger(SRC[31:0], ROUND_CONTROL)DEST[MAXVL-1:32] (Unmodified)Opcode*/InstructionOp/ En64/32 bit Mode SupportCPUID Feature FlagDescription66 0F 3A 0A /r ibROUNDSS xmm1, xmm2/m32, imm8RMIV/VSSE4_1Round the low packed single precision floating-point value in xmm2/m32 and place the result in xmm1. The rounding mode is determined by imm8.VEX.LIG.66.0F3A.WIG 0A /r ibVROUNDSS xmm1, xmm2, xmm3/m32, imm8RVMIV/VAVXRound the low packed single precision floating-point value in xmm3/m32 and place the result in xmm1. The rounding mode is determined by imm8. Also, upper packed single precision floating-point values (bits[127:32]) from xmm2 are copied to xmm1[127:32].Op/EnOperand 1Operand 2Operand 3Operand 4RMIModRM:reg (w)ModRM:r/m (r)imm8NARVMIModRM:reg (w)VEX.vvvv (r)ModRM:r/m (r)imm8
This UNOFFICIAL reference was generated from the official Intel® 64 and IA-32 Architectures Software Developer’s Manual by a dumb script. There is no guarantee that some parts aren't mangled or broken and is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.