| 1112 | <h4>V_SAD_HI_U8</h4> |
| 1113 | <p>Opcode: 347 (0x15b) for GCN 1.0/1.1; 474 (0x1da) for GCN 1.2<br /> |
| 1114 | Syntax: V_SAD_HI_U8 VDST, SRC0, SRC1, SRC2<br /> |
| 1115 | Description: Calculate sum of absolute differences for all four bytes in SRC0 and SRC1, |
| 1116 | shift result to high 16-bits, add SRC2 to result, and store result to VDST.<br /> |
| 1117 | Operation:<br /> |
| 1118 | <code>VDST = SRC2 |
| 1119 | for (UINT8 i = 0; i < 4; i++) |
| 1120 | VDST += (ABS(((SRC0 >> (i*8)) & 0xff) - ((SRC1 >> (i*8)) & 0xff)))<<16</code></p> |
| 1121 | <h4>V_SAD_U16</h4> |
| 1122 | <p>Opcode: 348 (0x15c) for GCN 1.0/1.1; 475 (0x1db) for GCN 1.2<br /> |
| 1123 | Syntax: V_SAD_U16 VDST, SRC0, SRC1, SRC2<br /> |
| 1124 | Description: Calculate sum of absolute differences for two 16-bit words in SRC0 and SRC1, add |
| 1125 | SRC2 to result, and store result to VDST.<br /> |
| 1126 | Operation:<br /> |
| 1127 | <code>VDST = SRC2 |
| 1128 | VDST += ABS((SRC0 & 0xffff) - (SRC1 & 0xffff)) |
| 1129 | VDST += ABS((SRC0 >> 16) - (SRC1 >> 16))</code></p> |
| 1130 | <h4>V_SAD_U32</h4> |
| 1131 | <p>Opcode: 349 (0x15d) for GCN 1.0/1.1; 476 (0x1dc) for GCN 1.2<br /> |
| 1132 | Syntax: V_SAD_U32 VDST, SRC0, SRC1, SRC2<br /> |
| 1133 | Description: Calculate sum of absolute difference for SRC0 and SRC1, add |
| 1134 | SRC2 to result, and store result to VDST.<br /> |
| 1135 | Operation:<br /> |
| 1136 | <code>VDST = SRC2 + ABS(SRC0 - SRC1)</code></p> |
| 1137 | <h4>V_SAD_U8</h4> |
| 1138 | <p>Opcode: 346 (0x15a) for GCN 1.0/1.1; 473 (0x1d9) for GCN 1.2<br /> |
| 1139 | Syntax: V_SAD_U8 VDST, SRC0, SRC1, SRC2<br /> |
| 1140 | Description: Calculate sum of absolute differences for all four bytes in SRC0 and SRC1, add |
| 1141 | SRC2 to result, and store result to VDST.<br /> |
| 1142 | Operation:<br /> |
| 1143 | <code>VDST = SRC2 |
| 1144 | for (UINT8 i = 0; i < 4; i++) |
| 1145 | VDST += ABS(((SRC0 >> (i*8)) & 0xff) - ((SRC1 >> (i*8)) & 0xff))</code></p> |