<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="../style/style.css" />
<title>SHUFPD: Shuffle Packed Double-Precision Floating-Point Values (x86 Instruction Set Reference)</title>
</head>
<body>
<div class="main_container"><h1>x86 Instruction Set Reference</h1>
<title>SHUFPD: Shuffle Packed Double-Precision Floating-Point Values (x86 Instruction Set Reference)</title>
<h1>SHUFPD</h1>
<h2>Shuffle Packed Double-Precision Floating-Point Values</h2>
<object>
<table class="box">
<tr>
<th>Opcode</th>
<th>Mnemonic</th>
<th>Description</th>
</tr>
<tr>
<td class="grid"><code>66 0F C6 /r ib</code></td>
<td class="grid"><code>SHUFPD xmm1, xmm2/m128, imm8</code></td>
<td class="grid">Shuffle packed double-precision floating-point values selected by imm8 from xmm1 and xmm1/m128 to xmm1.</td>
</tr>
</table>
</object>
<object>
<table class="box">
<tr>
<th>Description</th>
</tr>
<tr>
<td class="instruction_set_reference_box">
<p>Moves either of the two packed double-precision floating-point values from destination operand (first operand) into the low quadword of the destination operand; moves either of the two packed double-precision floating-point values from the source operand into to the high quadword of the destination operand. The select operand (third operand) determines which values are moved to the destination operand.</p>
<p>The source operand can be an XMM register or a 128-bit memory location. The destination operand is an XMM register. The select operand is an 8-bit immediate: bit 0 selects which value is moved from the destination operand to the result (where 0 selects the low quadword and 1 selects the high quadword) and bit 1 selects which value is moved from the source operand to the result. Bits 2 through 7 of the select operand are reserved and must be set to 0.</p>
</td>
</tr>
</table>
</object>
<object>
<table class="box">
<tr>
<th>Operation</th>
</tr>
<tr>
<td class="instruction_set_reference_box">
<pre><span class="keyword">if</span><span class="operator">(</span>Select<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">==</span> <span class="number">0</span><span class="operator">)</span> Destination<span class="operator">[</span><span class="number">0..63</span><span class="operator">]</span> <span class="operator">=</span> Destination<span class="operator">[</span><span class="number">0..63</span><span class="operator">]</span><span class="operator">;</span>
<span class="keyword">else</span> Destination<span class="operator">[</span><span class="number">0..63</span><span class="operator">]</span> <span class="operator">=</span> Destination<span class="operator">[</span><span class="number">64..127</span><span class="operator">]</span><span class="operator">;</span>
<span class="keyword">if</span><span class="operator">(</span>Select<span class="operator">[</span><span class="number">1</span><span class="operator">]</span> <span class="operator">==</span> <span class="number">0</span><span class="operator">)</span> Destination<span class="operator">[</span><span class="number">64..127</span><span class="operator">]</span> <span class="operator">=</span> Source<span class="operator">[</span><span class="number">0..63</span><span class="operator">]</span><span class="operator">;</span>
<span class="keyword">else</span> Destination<span class="operator">[</span><span class="number">64..127</span><span class="operator">]</span> <span class="operator">=</span> Source<span class="operator">[</span><span class="number">64..127</span><span class="operator">]</span><span class="operator">;</span>
</pre>
</td>
</tr>
</table>
</object>
<object>
<table class="box">
<tr>
<th>Instruction</th>
<th>Latency</th>
<th>Throughput</th>
<th>Execution Unit</th>
</tr>
<tr><td class="grid"><code>CPUID</code></td><td class="grid">0F3n/0F2n</td><td class="grid">0F3n/0F2n</td><td class="grid">0F2n</td></tr>
<tr><td class="grid"><code>SHUFPD xmm, xmm, imm8</code></td><td class="grid">6/6</td><td class="grid">2/2</td><td class="grid">MMX_SHFT</td></tr>
</table>
</object>
</div>
</body>
</html>
