User Guide

Contents v
24592—Rev. 3.15—November 2009 AMD64 Technology
Use Small Operand Sizes....................................................189
Reorganize Data for Parallel Operations ........................................189
Remove Branches .........................................................189
Use Streaming Stores.......................................................190
Align Data ...............................................................190
Organize Data for Cacheability ...............................................190
Prefetch Data .............................................................190
Use 128-Bit Media Code for Moving Data ......................................191
Retain Intermediate Results in XMM Registers ..................................191
Replace GPR Code with 128-Bit Media Code. ...................................191
Replace x87 Code with 128-Bit Media Code ....................................191
5 64-Bit Media Programming ..................................................193
5.1 Origins ..................................................................193
5.2 Compatibility .............................................................193
5.3 Capabilities ..............................................................194
Parallel Operations.........................................................194
Data Conversion and Reordering..............................................195
Matrix Operations .........................................................196
Saturation ................................................................197
Branch Removal ..........................................................198
Floating-Point (3DNow!™) Vector Operations ..................................199
5.4 Registers.................................................................200
MMX™ Registers .........................................................200
Other Registers ...........................................................200
5.5 Operands ................................................................201
Data Types ...............................................................201
Operand Sizes and Overrides.................................................203
Operand Addressing .......................................................203
Data Alignment ...........................................................203
Integer Data Types.........................................................204
Floating-Point Data Types ...................................................205
5.6 Instruction Summary—Integer Instructions .....................................207
Syntax ..................................................................207
Exit Media State...........................................................209
Data Transfer .............................................................209
Data Conversion ..........................................................211
Data Reordering...........................................................212
Arithmetic ...............................................................216
Shift ....................................................................219
Compare.................................................................220
Logical ..................................................................222
Save and Restore State......................................................223
5.7 Instruction Summary—Floating-Point Instructions................................223
Syntax ..................................................................224
Data Conversion ..........................................................224
Arithmetic ...............................................................225
Compare.................................................................228