ia-32_volume1_basic-arch

2 sse2 the mulpd multiply packed double precision

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: estination operand (see Figure 11-6). The UNPCKLPD (unpack and interleave low packed double-precision floating-point values) instruction performs an interleaved unpack of the low values from the source and destination operands and stores the result in the destination operand (see Figure 11-7). DEST X1 X0 SRC Y1 Y0 DEST Y1 X1 Figure 11-6. UNPCKHPD Instruction, High Unpack and Interleave Operation Vol. 1 11-11 PROGRAMMING WITH STREAMING SIMD EXTENSIONS 2 (SSE2) DEST X1 X0 SRC Y1 Y0 DEST Y0 X0 Figure 11-7. UNPCKLPD Instruction, Low Unpack and Interleave Operation 11.4.1.6 SSE2 Conversion Instructions SSE2 conversion instructions (see Figure 11-8) support packed and scalar conversions between: Double-precision and single-precision floating-point formats Double-precision floating-point and doubleword integer formats Single-precision floating-point and doubleword integer formats Conversion between double-precision and single-precision floating-points values -- The following instructions convert operands between double-precision and single-precision floating-point formats. The operands being operated on are contained in XMM registers or memory (at most, one operand can reside in memory; the destination is always an MMX register). The CVTPS2PD (convert packed single-precision floating-point values to packed double-precision floating-point values) instruction converts two packed singleprecision floating-point values to two double-precision floating-point values. The CVTPD2PS (convert packed double-precision floating-point values to packed single-precision floating-point values) instruction converts two packed doubleprecision floating-point values to two single-precision floating-point values. When a conversion is inexact, the result is rounded according to the rounding mode selected in the MXCSR register. The CVTSS2SD (convert scalar single-precision floating-point value to scalar doubleprecision floating-point value) instruction converts a single-precision floating-point value to a double-precision floating-point value. The CVTSD2SS (convert scalar double-precision floating-point value to scalar singleprecision floating-point value) instruction converts a double-precision floating-point value to a single-precision floating-point value. When the conversion is inexact, the result is rounded according to the rounding mode selected in the MXCSR register. 11-12 Vol. 1 PROGRAMMING WITH STREAMING SIMD EXTENSIONS 2 (SSE2) I 2S SI SS S2 T S CV TT CV SS I2 TS CV Single-Precision Floating Point (XMM/mem) I 2P I PS S2P T CV TTP CV CV CV TPS TT 2D PS Q 2D Q Q D VT C S 2P C VT PI 2P S CVTSD2SS CVTPD2PS 4 Doubleword Integer (XMM/mem) CVTSS2SD CVTPS2PD Doubleword Integer (r32/mem) 2 Doubleword Integer (MMX/mem) D 2P PI VT C C VT D Q 2P C CV VT TT PD PD 2P 2P I I Double-Precision Floating-Point (XMM/mem) Figure 11-8. SSE and SSE2 Conversion Instructions Conversion between double-precision floating-point values and doubleword integers -- The following instructions convert...
View Full Document

This note was uploaded on 10/01/2013 for the course CPE 103 taught by Professor Watlins during the Winter '11 term at Mississippi State.

Ask a homework question - tutors are online