Changes between Version 6 and Version 7 of GcnInstrsSop2
- Timestamp:
- 11/14/15 00:00:17 (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GcnInstrsSop2
v6 v7 48 48 <tr> 49 49 <th>Opcode</th> 50 <th>Mnemonic</th> 50 <th>Mnemonic (GCN1.0/1.1)</th> 51 <th>Mnemonic (GCN 1.2)</th> 51 52 </tr> 52 53 </thead> 53 54 <tbody> 54 55 <tr> 55 <td>0 </td>56 <td>0 (0x0)</td> 56 57 <td>S_ADD_U32</td> 57 </tr> 58 <tr> 59 <td>1</td> 58 <td>S_ADD_U32</td> 59 </tr> 60 <tr> 61 <td>1 (0x1)</td> 60 62 <td>S_SUB_U32</td> 61 </tr> 62 <tr> 63 <td>2</td> 63 <td>S_SUB_U32</td> 64 </tr> 65 <tr> 66 <td>2 (0x2)</td> 64 67 <td>S_ADD_I32</td> 65 </tr> 66 <tr> 67 <td>3</td> 68 <td>S_ADD_I32</td> 69 </tr> 70 <tr> 71 <td>3 (0x3)</td> 68 72 <td>S_SUB_I32</td> 69 </tr> 70 <tr> 71 <td>4</td> 73 <td>S_SUB_I32</td> 74 </tr> 75 <tr> 76 <td>4 (0x4)</td> 72 77 <td>S_ADDC_U32</td> 73 </tr> 74 <tr> 75 <td>5</td> 78 <td>S_ADDC_U32</td> 79 </tr> 80 <tr> 81 <td>5 (0x5)</td> 76 82 <td>S_SUBB_U32</td> 77 </tr> 78 <tr> 79 <td>6</td> 83 <td>S_SUBB_U32</td> 84 </tr> 85 <tr> 86 <td>6 (0x6)</td> 80 87 <td>S_MIN_I32</td> 81 </tr> 82 <tr> 83 <td>7</td> 88 <td>S_MIN_I32</td> 89 </tr> 90 <tr> 91 <td>7 (0x7)</td> 84 92 <td>S_MIN_U32</td> 85 </tr> 86 <tr> 87 <td>8</td> 93 <td>S_MIN_U32</td> 94 </tr> 95 <tr> 96 <td>8 (0x8)</td> 88 97 <td>S_MAX_I32</td> 89 </tr> 90 <tr> 91 <td>9</td> 98 <td>S_MAX_I32</td> 99 </tr> 100 <tr> 101 <td>9 (0x9)</td> 92 102 <td>S_MAX_U32</td> 93 </tr> 94 <tr> 95 <td>10</td> 103 <td>S_MAX_U32</td> 104 </tr> 105 <tr> 106 <td>10 (0xa)</td> 96 107 <td>S_CSELECT_B32</td> 97 </tr> 98 <tr> 99 <td>11</td> 108 <td>S_CSELECT_B32</td> 109 </tr> 110 <tr> 111 <td>11 (0xb)</td> 100 112 <td>S_CSELECT_B64</td> 101 </tr> 102 <tr> 103 <td>14</td> 113 <td>S_CSELECT_B64</td> 114 </tr> 115 <tr> 116 <td>12 (0xc)</td> 117 <td>--</td> 104 118 <td>S_AND_B32</td> 105 119 </tr> 106 120 <tr> 107 <td>15</td> 121 <td>13 (0xd)</td> 122 <td>--</td> 108 123 <td>S_AND_B64</td> 109 124 </tr> 110 125 <tr> 111 <td>16</td> 126 <td>14 (0xe)</td> 127 <td>S_AND_B32</td> 112 128 <td>S_OR_B32</td> 113 129 </tr> 114 130 <tr> 115 <td>17</td> 131 <td>15 (0xf)</td> 132 <td>S_AND_B64</td> 116 133 <td>S_OR_B64</td> 117 134 </tr> 118 135 <tr> 119 <td>18</td> 136 <td>16 (0x10)</td> 137 <td>S_OR_B32</td> 120 138 <td>S_XOR_B32</td> 121 139 </tr> 122 140 <tr> 123 <td>19</td> 141 <td>17 (0x11)</td> 142 <td>S_OR_B64</td> 124 143 <td>S_XOR_B64</td> 144 </tr> 145 <tr> 146 <td>18 (0x12)</td> 147 <td>S_XOR_B32</td> 148 <td>S_ANDN2_B32</td> 149 </tr> 150 <tr> 151 <td>19 (0x13)</td> 152 <td>S_XOR_B64</td> 153 <td>S_ANDN2_B64</td> 154 </tr> 155 <tr> 156 <td>20 (0x14)</td> 157 <td>S_ANDN2_B32</td> 158 <td>S_ORN2_B32</td> 159 </tr> 160 <tr> 161 <td>21 (0x15)</td> 162 <td>S_ANDN2_B64</td> 163 <td>S_ORN2_B64</td> 164 </tr> 165 <tr> 166 <td>22 (0x16)</td> 167 <td>S_ORN2_B32</td> 168 <td>S_NAND_B32</td> 169 </tr> 170 <tr> 171 <td>23 (0x17)</td> 172 <td>S_ORN2_B64</td> 173 <td>S_NAND_B64</td> 174 </tr> 175 <tr> 176 <td>24 (0x18)</td> 177 <td>S_NAND_B32</td> 178 <td>S_NOR_B32</td> 179 </tr> 180 <tr> 181 <td>25 (0x19)</td> 182 <td>S_NAND_B64</td> 183 <td>S_NOR_B64</td> 184 </tr> 185 <tr> 186 <td>26 (0x1a)</td> 187 <td>S_NOR_B32</td> 188 <td>S_XNOR_B32</td> 189 </tr> 190 <tr> 191 <td>27 (0x1b)</td> 192 <td>S_NOR_B64</td> 193 <td>S_XNOR_B64</td> 194 </tr> 195 <tr> 196 <td>28 (0x1c)</td> 197 <td>S_XNOR_B32</td> 198 <td>S_LSHL_B32</td> 199 </tr> 200 <tr> 201 <td>29 (0x1d)</td> 202 <td>S_XNOR_B64</td> 203 <td>S_LSHL_B64</td> 204 </tr> 205 <tr> 206 <td>30 (0x1e)</td> 207 <td>S_LSHL_B32</td> 208 <td>S_LSHR_B32</td> 209 </tr> 210 <tr> 211 <td>31 (0x1f)</td> 212 <td>S_LSHL_B64</td> 213 <td>S_LSHR_B64</td> 214 </tr> 215 <tr> 216 <td>32 (0x20)</td> 217 <td>S_LSHR_B32</td> 218 <td>S_ASHR_I32</td> 219 </tr> 220 <tr> 221 <td>33 (0x21)</td> 222 <td>S_LSHR_B64</td> 223 <td>S_ASHR_I64</td> 224 </tr> 225 <tr> 226 <td>34 (0x22)</td> 227 <td>S_ASHR_I32</td> 228 <td>S_BFM_B32</td> 229 </tr> 230 <tr> 231 <td>35 (0x23)</td> 232 <td>S_ASHR_I64</td> 233 <td>S_BFM_B64</td> 234 </tr> 235 <tr> 236 <td>36 (0x24)</td> 237 <td>S_BFM_B32</td> 238 <td>S_MUL_I32</td> 239 </tr> 240 <tr> 241 <td>37 (0x25)</td> 242 <td>S_BFM_B64</td> 243 <td>S_BFE_U32</td> 244 </tr> 245 <tr> 246 <td>38 (0x26)</td> 247 <td>S_MUL_I32</td> 248 <td>S_BFE_I32</td> 249 </tr> 250 <tr> 251 <td>39 (0x27)</td> 252 <td>S_BFE_U32</td> 253 <td>S_BFE_U64</td> 254 </tr> 255 <tr> 256 <td>40 (0x28)</td> 257 <td>S_BFE_I32</td> 258 <td>S_BFE_I64</td> 259 </tr> 260 <tr> 261 <td>41 (0x29)</td> 262 <td>S_BFE_U64</td> 263 <td>S_CBRANCH_G_FORK</td> 264 </tr> 265 <tr> 266 <td>42 (0x2a)</td> 267 <td>S_BFE_I64</td> 268 <td>S_ABSDIFF_I32</td> 269 </tr> 270 <tr> 271 <td>43 (0x2b)</td> 272 <td>S_CBRANCH_G_FORK</td> 273 <td>S_RFE_RESTORE_B64</td> 274 </tr> 275 <tr> 276 <td>44 (0x2c)</td> 277 <td>S_ABSDIFF_I32</td> 278 <td>--</td> 125 279 </tr> 126 280 </tbody> … … 129 283 <p>Alphabetically sorted instruction list:</p> 130 284 <h4>S_ABSDIFF_I32</h4> 131 <p>Opcode: 44 (0x2c) <br />285 <p>Opcode: 44 (0x2c) for GCN 1.0/11; 42 (0x2a) for GCN 1.2 <br /> 132 286 Syntax: S_ABSDIFF_I32 SDST, SSRC0, SSRC1<br /> 133 287 Description: Compute absolute difference from SSRC0 and SSRC1 and store result to SDST. … … 162 316 SCC = temp >> 32</code></p> 163 317 <h4>S_AND_B32</h4> 164 <p>Opcode: 14 (0xe) <br />318 <p>Opcode: 14 (0xe) for GCN 1.0/1.1; 12 (0xc) for GCN 1.2<br /> 165 319 Syntax: S_AND_B32 SDST, SSRC0, SSRC1<br /> 166 320 Description: Do bitwise AND operation on SSRC0 and SSRC1 and store it to SDST, and store … … 170 324 SCC = SDST!=0</code></p> 171 325 <h4>S_AND_B64</h4> 172 <p>Opcode: 15 (0xf) <br />326 <p>Opcode: 15 (0xf) for GCN 1.0/1.1; 13 (0xd) for GCN 1.2<br /> 173 327 Syntax: S_AND_B64 SDST(2), SSRC0(2), SSRC1(2)<br /> 174 328 Description: Do bitwise AND operation on SSRC0 and SSRC1 and store it to SDST, and store … … 178 332 SCC = SDST!=0</code></p> 179 333 <h4>S_ANDN2_B32</h4> 180 <p>Opcode: 20 (0x14) <br />334 <p>Opcode: 20 (0x14) for GCN 1.0/1.1; 18 (0x12) for GCN 1.2<br /> 181 335 Syntax: S_ANDN2_B32 SDST, SSRC0, SSRC1<br /> 182 336 Description: Do bitwise AND operation on SSRC0 and negated SSRC1 and store it to SDST, … … 186 340 SCC = SDST!=0</code></p> 187 341 <h4>S_ANDN2_B64</h4> 188 <p>Opcode: 21 (0x15) <br />342 <p>Opcode: 21 (0x15) for GCN 1.0/1.1; 19 (0x13) for GCN 1.2<br /> 189 343 Syntax: S_ANDN2_B64 SDST(2), SSRC0(2), SSRC1(2)<br /> 190 344 Description: Do bitwise AND operation on SSRC0 and bitwise negated SSRC1 and store … … 195 349 SCC = SDST!=0</code></p> 196 350 <h4>S_ASHR_I32</h4> 197 <p>Opcode: 34 (0x22) 351 <p>Opcode: 34 (0x22) for GCN 1.0/1.1; 32 (0x20) for GCN 1.2<br /> 198 352 Syntax: S_ASHR_I32 SDST, SSRC0, SSRC1<br /> 199 353 Description: Arithmetic shift to right SSRC0 by (SSRC1&31) bits and store result into SDST. … … 203 357 SCC = SDST!=0</code></p> 204 358 <h4>S_ASHR_I64</h4> 205 <p>Opcode: 35 (0x23) <br />359 <p>Opcode: 35 (0x23) for GCN 1.0/1.1; 33 (0x21) for GCN 1.2<br /> 206 360 Syntax: S_ASHR_I64 SDST(2), SSRC0(2), SSRC1<br /> 207 361 Description: Arithmetic Shift to right SSRC0 by (SSRC1&63) bits and store result into SDST. … … 212 366 SCC = SDST!=0</code></p> 213 367 <h4>S_BFE_I32</h4> 214 <p>Opcode: 40 (0x28) <br />368 <p>Opcode: 40 (0x28) for GCN 1.0/1.1; 38 (0x26) for GCN 1.2<br /> 215 369 Syntax: S_BFE_I32 SDST, SSRC0, SSRC1<br /> 216 370 Description: Extracts bits in SSRC0 from range (SSRC1&31) with length ((SSRC1>>16)&0x7f) … … 228 382 SCC = SDST!=0</code></p> 229 383 <h4>S_BFE_U32</h4> 230 <p>Opcode: 39 (0x27) <br />384 <p>Opcode: 39 (0x27) for GCN 1.0/1.1; 37 (0x25) for GCN 1.2<br /> 231 385 Syntax: S_BFE_U32 SDST, SSRC0, SSRC1<br /> 232 386 Description: Extracts bits in SSRC0 from range (SSRC1&31) with length ((SSRC1>>16)&0x7f). … … 243 397 SCC = SDST!=0</code></p> 244 398 <h4>S_BFE_I64</h4> 245 <p>Opcode: 42 (0x2a) <br />399 <p>Opcode: 42 (0x2a) for GCN 1.0/1.1; 40 (0x28) for GCN 1.2<br /> 246 400 Syntax: S_BFE_I64 SDST, SSRC0, SSRC1<br /> 247 401 Description: Extracts bits in SSRC0 from range (SSRC1&63) with length ((SSRC1>>16)&0x7f) … … 259 413 SCC = SDST!=0</code></p> 260 414 <h4>S_BFE_U64</h4> 261 <p>Opcode: 41 (0x29) <br />415 <p>Opcode: 41 (0x29) for GCN 1.0/1.1; 39 (0x27) for GCN 1.2<br /> 262 416 Syntax: S_BFE_U64 SDST(2), SSRC0(2), SSRC1<br /> 263 417 Description: Extracts bits in SSRC0 from range (SSRC1&63) with length ((SSRC1>>16)&0x7f). … … 275 429 SCC = SDST!=0</code></p> 276 430 <h4>S_BFM_B32</h4> 277 <p>Opcode: 36 (0x24) 431 <p>Opcode: 36 (0x24) for GCN 1.0/1.1; 34 (0x22) for GCN 1.2<br /> 278 432 Syntax: S_BFM_B32 SDST, SSRC0, SSRC1<br /> 279 433 Description: Make 32-bit bitmask from (SSRC1 & 31) bit that have length (SSRC0 & 31) and … … 282 436 <code>SDST = ((1U << (SSRC0&31))-1) << (SSRC1&31)</code></p> 283 437 <h4>S_BFM_B64</h4> 284 <p>Opcode: 37 (0x25) 438 <p>Opcode: 37 (0x25) for GCN 1.0/1.1; 35 (0x23) for GCN 1.2<br /> 285 439 Syntax: S_BFM_B64 SDST(2), SSRC0, SSRC1<br /> 286 440 Description: Make 64-bit bitmask from (SSRC1 & 63) bit that have length (SSRC0 & 63) and … … 303 457 <code>SDST = SCC ? SSRC0 : SSRC1</code></p> 304 458 <h4>S_LSHL_B32</h4> 305 <p>Opcode: 30 (0x1e) 459 <p>Opcode: 30 (0x1e) for GCN 1.0/1.1; 28 (0x1c) for GCN 1.2<br /> 306 460 Syntax: S_LSHL_B32 SDST, SSRC0, SSRC1<br /> 307 461 Description: Shift to left SSRC0 by (SSRC1&31) bits and store result into SDST. … … 311 465 SCC = SDST!=0</code></p> 312 466 <h4>S_LSHL_B64</h4> 313 <p>Opcode: 31 (0x1f) 467 <p>Opcode: 31 (0x1f) for GCN 1.0/1.1; 29 (0x1d) for GCN 1.2<br /> 314 468 Syntax: S_LSHL_B64 SDST(2), SSRC0(2), SSRC1<br /> 315 469 Description: Shift to left SSRC0 by (SSRC1&63) bits and store result into SDST. … … 320 474 SCC = SDST!=0</code></p> 321 475 <h4>S_LSHR_B32</h4> 322 <p>Opcode: 32 (0x20) 476 <p>Opcode: 32 (0x20) for GCN 1.0/1.1; 30 (0x1e) for GCN 1.2<br /> 323 477 Syntax: S_LSHR_B32 SDST, SSRC0, SSRC1<br /> 324 478 Description: Shift to right SSRC0 by (SSRC1&31) bits and store result into SDST. … … 328 482 SCC = SDST!=0</code></p> 329 483 <h4>S_LSHR_B64</h4> 330 <p>Opcode: 33 (0x21) 484 <p>Opcode: 33 (0x21) for GCN 1.0/1.1; 31 (0x1f) for GCN 1.2<br /> 331 485 Syntax: S_LSHR_B64 SDST(2), SSRC0(2), SSRC1<br /> 332 486 Description: Shift to right SSRC0 by (SSRC1&63) bits and store result into SDST. … … 337 491 SCC = SDST!=0</code></p> 338 492 <h4>S_MAX_I32</h4> 339 <p>Opcode: 8 (0x 9)493 <p>Opcode: 8 (0x8)<br /> 340 494 Syntax: S_MIN_I32 SDST, SSRC0, SSRC1<br /> 341 495 Description: Choose largest signed value value from SSRC0 and SSRC1 and store its into SDST, … … 353 507 SCC = SSRC0 > SSRC1</code></p> 354 508 <h4>S_MIN_I32</h4> 355 <p>Opcode: 6 (0x6) 509 <p>Opcode: 6 (0x6)<br /> 356 510 Syntax: S_MIN_I32 SDST, SSRC0, SSRC1<br /> 357 511 Description: Choose smallest signed value value from SSRC0 and SSRC1 and store its into SDST, … … 369 523 SCC = SSRC0 < SSRC1</code></p> 370 524 <h4>S_MUL_I32</h4> 371 <p>Opcode: 38 (0x26) 525 <p>Opcode: 38 (0x26) for GCN 1.0/1.1; 36 (0x24) for GCN 1.2<br /> 372 526 Syntax: S_MUL_I32 SDST, SSRC0, SSRC1 373 527 Description: Multiply SSRC0 and SSRC1 and store result into SDST. Do not change SCC.<br /> … … 375 529 <code>SDST = SSRC0 * SSRC1</code></p> 376 530 <h4>S_NAND_B32</h4> 377 <p>Opcode: 24 (0x18) <br />531 <p>Opcode: 24 (0x18) for GCN 1.0/1.1; 22 (0x16) for GCN 1.2<br /> 378 532 Syntax: S_NAND_B32 SDST, SSRC0, SSRC1<br /> 379 533 Description: Do bitwise NAND operation on SSRC0 and SSRC1 and store it to SDST, and store … … 383 537 SCC = SDST!=0</code></p> 384 538 <h4>S_NAND_B64</h4> 385 <p>Opcode: 25 (0x19) <br />539 <p>Opcode: 25 (0x19) for GCN 1.0/1.1; 23 (0x17) for GCN 1.2<br /> 386 540 Syntax: S_NAND_B64 SDST(2), SSRC0(2), SSRC1(2)<br /> 387 541 Description: Do bitwise NAND operation on SSRC0 and SSRC1 and store it to SDST, and store … … 391 545 SCC = SDST!=0</code></p> 392 546 <h4>S_NOR_B32</h4> 393 <p>Opcode: 26 (0x1a) <br />547 <p>Opcode: 26 (0x1a) for GCN 1.0/1.1; 24 (0x18) for GCN 1.2<br /> 394 548 Syntax: S_NOR_B32 SDST, SSRC0, SSRC1<br /> 395 549 Description: Do bitwise NOR operation on SSRC0 and SSRC1 and store it to SDST, and store … … 399 553 SCC = SDST!=0</code></p> 400 554 <h4>S_NOR_B64</h4> 401 <p>Opcode: 27 (0x1b) <br />555 <p>Opcode: 27 (0x1b) for GCN 1.0/1.1; 25 (0x19) for GCN 1.2<br /> 402 556 Syntax: S_NOR_B64 SDST(2), SSRC0(2), SSRC1(2)<br /> 403 557 Description: Do bitwise NOR operation on SSRC0 and SSRC1 and store it to SDST, and store … … 407 561 SCC = SDST!=0</code></p> 408 562 <h4>S_OR_B32</h4> 409 <p>Opcode: 16 (0x10) <br />563 <p>Opcode: 16 (0x10) for GCN 1.0/1.1; 14 (0xe) for GCN 1.2<br /> 410 564 Syntax: S_OR_B32 SDST, SSRC0, SSRC1<br /> 411 565 Description: Do bitwise OR operation on SSRC0 and SSRC1 and store it to SDST, and store … … 415 569 SCC = SDST!=0</code></p> 416 570 <h4>S_OR_B64</h4> 417 <p>Opcode: 17 (0x11) <br />571 <p>Opcode: 17 (0x11) for GCN 1.0/1.1; 15 (0xf) for GCN 1.2<br /> 418 572 Syntax: S_OR_B64 SDST(2), SSRC0(2), SSRC1(2)<br /> 419 573 Description: Do bitwise OR operation on SSRC0 and SSRC1 and store it to SDST, and store … … 423 577 SCC = SDST!=0</code></p> 424 578 <h4>S_ORN2_B32</h4> 425 <p>Opcode: 22 (0x16) <br />579 <p>Opcode: 22 (0x16) for GCN 1.0/1.1; 20 (0x14) for GCN 1.2<br /> 426 580 Syntax: S_ORN2_B32 SDST, SSRC0, SSRC1<br /> 427 581 Description: Do bitwise OR operation on SSRC0 and negated SSRC1 and store it to SDST, … … 431 585 SCC = SDST!=0</code></p> 432 586 <h4>S_ORN2_B64</h4> 433 <p>Opcode: 23 (0x17) <br />587 <p>Opcode: 23 (0x17) for GCN 1.0/1.1; 21 (0x15) for GCN 1.2<br /> 434 588 Syntax: S_ORN2_B64 SDST(2), SSRC0(2), SSRC1(2)<br /> 435 589 Description: Do bitwise OR operation on SSRC0 and negated SSRC1 and store it to SDST, … … 467 621 SCC = (temp>>32)!=0</code></p> 468 622 <h4>S_XNOR_B32</h4> 469 <p>Opcode: 28 (0x1c) <br />623 <p>Opcode: 28 (0x1c) for GCN 1.0/1.1; 26 (0x1a) for GCN 1.2<br /> 470 624 Syntax: S_XNOR_B32 SDST, SSRC0, SSRC1<br /> 471 625 Description: Do bitwise XNOR operation on SSRC0 and SSRC1 and store it to SDST, and store … … 475 629 SCC = SDST!=0</code></p> 476 630 <h4>S_XNOR_B64</h4> 477 <p>Opcode: 29 (0x1d) <br />631 <p>Opcode: 29 (0x1d) for GCN 1.0/1.1; 27 (0x1b) for GCN 1.2<br /> 478 632 Syntax: S_XNOR_B64 SDST(2), SSRC0(2), SSRC1(2)<br /> 479 633 Description: Do bitwise XNOR operation on SSRC0 and SSRC1 and store it to SDST, and store … … 483 637 SCC = SDST!=0</code></p> 484 638 <h4>S_XOR_B32</h4> 485 <p>Opcode: 18 (0x12) <br />639 <p>Opcode: 18 (0x12) for GCN 1.0/1.1; 16 (0x10) for GCN 1.2<br /> 486 640 Syntax: S_XOR_B32 SDST, SSRC0, SSRC1<br /> 487 641 Description: Do bitwise XOR operation on SSRC0 and SSRC1 and store it to SDST, and store … … 491 645 SCC = SDST!=0</code></p> 492 646 <h4>S_XOR_B64</h4> 493 <p>Opcode: 19 (0x13) <br />647 <p>Opcode: 19 (0x13) for GCN 1.0/1.1; 17 (0x11) for GCN 1.2<br /> 494 648 Syntax: S_XOR_B64 SDST(2), SSRC0(2), SSRC1(2)<br /> 495 649 Description: Do bitwise XOR operation on SSRC0 and SSRC1 and store it to SDST, and store