Changes between Version 34 and Version 35 of GcnInstrsVop3


Ignore:
Timestamp:
11/26/17 10:00:26 (6 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GcnInstrsVop3

    v34 v35  
    473473<tr>
    474474<th>Opcode</th>
    475 <th>GCN 1.2</th>
    476 <th>GCN 1.4</th>
    477 <th>Mnemonic</th>
     475<th>Mnemonic (GCN 1.4)</th>
     476<th>Mnemonic (GCN 1.4)</th>
    478477</tr>
    479478</thead>
     
    481480<tr>
    482481<td>448 (0x1c0)</td>
    483 <td>✓</td>
    484 <td>✓</td>
    485482<td>V_MAD_LEGACY_F32</td>
     483<td>V_MAD_LEGACY_F32</td>
    486484</tr>
    487485<tr>
    488486<td>449 (0x1c1)</td>
    489 <td>✓</td>
    490 <td>✓</td>
    491487<td>V_MAD_F32</td>
     488<td>V_MAD_F32</td>
    492489</tr>
    493490<tr>
    494491<td>450 (0x1c2)</td>
    495 <td>✓</td>
    496 <td>✓</td>
    497492<td>V_MAD_I32_I24</td>
     493<td>V_MAD_I32_I24</td>
    498494</tr>
    499495<tr>
    500496<td>451 (0x1c3)</td>
    501 <td>✓</td>
    502 <td>✓</td>
    503497<td>V_MAD_U32_U24</td>
     498<td>V_MAD_U32_U24</td>
    504499</tr>
    505500<tr>
    506501<td>452 (0x1c4)</td>
    507 <td>✓</td>
    508 <td>✓</td>
    509502<td>V_CUBEID_F32</td>
     503<td>V_CUBEID_F32</td>
    510504</tr>
    511505<tr>
    512506<td>453 (0x1c5)</td>
    513 <td>✓</td>
    514 <td>✓</td>
    515507<td>V_CUBESC_F32</td>
     508<td>V_CUBESC_F32</td>
    516509</tr>
    517510<tr>
    518511<td>454 (0x1c6)</td>
    519 <td>✓</td>
    520 <td>✓</td>
    521512<td>V_CUBETC_F32</td>
     513<td>V_CUBETC_F32</td>
    522514</tr>
    523515<tr>
    524516<td>455 (0x1c7)</td>
    525 <td>✓</td>
    526 <td>✓</td>
    527517<td>V_CUBEMA_F32</td>
     518<td>V_CUBEMA_F32</td>
    528519</tr>
    529520<tr>
    530521<td>456 (0x1c8)</td>
    531 <td>✓</td>
    532 <td>✓</td>
    533522<td>V_BFE_U32</td>
     523<td>V_BFE_U32</td>
    534524</tr>
    535525<tr>
    536526<td>457 (0x1c9)</td>
    537 <td>✓</td>
    538 <td>✓</td>
    539527<td>V_BFE_I32</td>
     528<td>V_BFE_I32</td>
    540529</tr>
    541530<tr>
    542531<td>458 (0x1ca)</td>
    543 <td>✓</td>
    544 <td>✓</td>
    545532<td>V_BFI_B32</td>
     533<td>V_BFI_B32</td>
    546534</tr>
    547535<tr>
    548536<td>459 (0x1cb)</td>
    549 <td>✓</td>
    550 <td>✓</td>
    551537<td>V_FMA_F32</td>
     538<td>V_FMA_F32</td>
    552539</tr>
    553540<tr>
    554541<td>460 (0x1cc)</td>
    555 <td>✓</td>
    556 <td>✓</td>
    557542<td>V_FMA_F64</td>
     543<td>V_FMA_F64</td>
    558544</tr>
    559545<tr>
    560546<td>461 (0x1cd)</td>
    561 <td>✓</td>
    562 <td>✓</td>
    563547<td>V_LERP_U8</td>
     548<td>V_LERP_U8</td>
    564549</tr>
    565550<tr>
    566551<td>462 (0x1ce)</td>
    567 <td>✓</td>
    568 <td>✓</td>
    569552<td>V_ALIGNBIT_B32</td>
     553<td>V_ALIGNBIT_B32</td>
    570554</tr>
    571555<tr>
    572556<td>463 (0x1cf)</td>
    573 <td>✓</td>
    574 <td>✓</td>
    575557<td>V_ALIGNBYTE_B32</td>
     558<td>V_ALIGNBYTE_B32</td>
    576559</tr>
    577560<tr>
    578561<td>464 (0x1d0)</td>
    579 <td>✓</td>
    580 <td>✓</td>
    581562<td>V_MIN3_F32</td>
     563<td>V_MIN3_F32</td>
    582564</tr>
    583565<tr>
    584566<td>465 (0x1d1)</td>
    585 <td>✓</td>
    586 <td>✓</td>
    587567<td>V_MIN3_I32</td>
     568<td>V_MIN3_I32</td>
    588569</tr>
    589570<tr>
    590571<td>466 (0x1d2)</td>
    591 <td>✓</td>
    592 <td>✓</td>
    593572<td>V_MIN3_U32</td>
     573<td>V_MIN3_U32</td>
    594574</tr>
    595575<tr>
    596576<td>467 (0x1d3)</td>
    597 <td>✓</td>
    598 <td>✓</td>
    599577<td>V_MAX3_F32</td>
     578<td>V_MAX3_F32</td>
    600579</tr>
    601580<tr>
    602581<td>468 (0x1d4)</td>
    603 <td>✓</td>
    604 <td>✓</td>
    605582<td>V_MAX3_I32</td>
     583<td>V_MAX3_I32</td>
    606584</tr>
    607585<tr>
    608586<td>469 (0x1d5)</td>
    609 <td>✓</td>
    610 <td>✓</td>
    611587<td>V_MAX3_U32</td>
     588<td>V_MAX3_U32</td>
    612589</tr>
    613590<tr>
    614591<td>470 (0x1d6)</td>
    615 <td>✓</td>
    616 <td>✓</td>
    617592<td>V_MED3_F32</td>
     593<td>V_MED3_F32</td>
    618594</tr>
    619595<tr>
    620596<td>471 (0x1d7)</td>
    621 <td>✓</td>
    622 <td>✓</td>
    623597<td>V_MED3_I32</td>
     598<td>V_MED3_I32</td>
    624599</tr>
    625600<tr>
    626601<td>472 (0x1d8)</td>
    627 <td>✓</td>
    628 <td>✓</td>
    629602<td>V_MED3_U32</td>
     603<td>V_MED3_U32</td>
    630604</tr>
    631605<tr>
    632606<td>473 (0x1d9)</td>
    633 <td>✓</td>
    634 <td>✓</td>
    635607<td>V_SAD_U8</td>
     608<td>V_SAD_U8</td>
    636609</tr>
    637610<tr>
    638611<td>474 (0x1da)</td>
    639 <td>✓</td>
    640 <td>✓</td>
    641612<td>V_SAD_HI_U8</td>
     613<td>V_SAD_HI_U8</td>
    642614</tr>
    643615<tr>
    644616<td>475 (0x1db)</td>
    645 <td>✓</td>
    646 <td>✓</td>
    647617<td>V_SAD_U16</td>
     618<td>V_SAD_U16</td>
    648619</tr>
    649620<tr>
    650621<td>476 (0x1dc)</td>
    651 <td>✓</td>
    652 <td>✓</td>
    653622<td>V_SAD_U32</td>
     623<td>V_SAD_U32</td>
    654624</tr>
    655625<tr>
    656626<td>477 (0x1dd)</td>
    657 <td>✓</td>
    658 <td>✓</td>
    659627<td>V_CVT_PK_U8_F32</td>
     628<td>V_CVT_PK_U8_F32</td>
    660629</tr>
    661630<tr>
    662631<td>478 (0x1de)</td>
    663 <td>✓</td>
    664 <td>✓</td>
    665632<td>V_DIV_FIXUP_F32</td>
     633<td>V_DIV_FIXUP_F32</td>
    666634</tr>
    667635<tr>
    668636<td>479 (0x1df)</td>
    669 <td>✓</td>
    670 <td>✓</td>
    671637<td>V_DIV_FIXUP_F64</td>
     638<td>V_DIV_FIXUP_F64</td>
    672639</tr>
    673640<tr>
    674641<td>480 (0x1e0)</td>
    675 <td>✓</td>
    676 <td>✓</td>
    677642<td>V_DIV_SCALE_F32 (VOP3B)</td>
     643<td>V_DIV_SCALE_F32 (VOP3B)</td>
    678644</tr>
    679645<tr>
    680646<td>481 (0x1e1)</td>
    681 <td>✓</td>
    682 <td>✓</td>
    683647<td>V_DIV_SCALE_F64 (VOP3B)</td>
     648<td>V_DIV_SCALE_F64 (VOP3B)</td>
    684649</tr>
    685650<tr>
    686651<td>482 (0x1e2)</td>
    687 <td>✓</td>
    688 <td>✓</td>
    689652<td>V_DIV_FMAS_F32</td>
     653<td>V_DIV_FMAS_F32</td>
    690654</tr>
    691655<tr>
    692656<td>483 (0x1e3)</td>
    693 <td>✓</td>
    694 <td>✓</td>
    695657<td>V_DIV_FMAS_F64</td>
     658<td>V_DIV_FMAS_F64</td>
    696659</tr>
    697660<tr>
    698661<td>484 (0x1e4)</td>
    699 <td>✓</td>
    700 <td>✓</td>
    701662<td>V_MSAD_U8</td>
     663<td>V_MSAD_U8</td>
    702664</tr>
    703665<tr>
    704666<td>485 (0x1e5)</td>
    705 <td>✓</td>
    706 <td>✓</td>
    707667<td>V_QSAD_PK_U16_U8</td>
     668<td>V_QSAD_PK_U16_U8</td>
    708669</tr>
    709670<tr>
    710671<td>486 (0x1e6)</td>
    711 <td>✓</td>
    712 <td>✓</td>
    713672<td>V_MQSAD_PK_U16_U8</td>
     673<td>V_MQSAD_PK_U16_U8</td>
    714674</tr>
    715675<tr>
    716676<td>487 (0x1e7)</td>
    717 <td>✓</td>
    718 <td>✓</td>
    719677<td>V_MQSAD_U32_U8</td>
     678<td>V_MQSAD_U32_U8</td>
    720679</tr>
    721680<tr>
    722681<td>488 (0x1e8)</td>
    723 <td>✓</td>
    724 <td>✓</td>
    725682<td>V_MAD_U64_U32 (VOP3B)</td>
     683<td>V_MAD_U64_U32 (VOP3B)</td>
    726684</tr>
    727685<tr>
    728686<td>489 (0x1e9)</td>
    729 <td>✓</td>
    730 <td>✓</td>
    731687<td>V_MAD_I64_I32 (VOP3B)</td>
     688<td>V_MAD_I64_I32 (VOP3B)</td>
    732689</tr>
    733690<tr>
    734691<td>490 (0x1ea)</td>
    735 <td>✓</td>
    736 <td>✓</td>
    737692<td>V_MAD_F16</td>
     693<td>V_MAD_LEGACY_F16</td>
    738694</tr>
    739695<tr>
    740696<td>491 (0x1eb)</td>
    741 <td>✓</td>
    742 <td>✓</td>
    743697<td>V_MAD_U16</td>
     698<td>V_MAD_LEGACY_U16</td>
    744699</tr>
    745700<tr>
    746701<td>492 (0x1ec)</td>
    747 <td>✓</td>
    748 <td>✓</td>
    749702<td>V_MAD_I16</td>
     703<td>V_MAD_LEGACY_I16</td>
    750704</tr>
    751705<tr>
    752706<td>493 (0x1ed)</td>
    753 <td>✓</td>
    754 <td>✓</td>
    755707<td>V_PERM_B32</td>
     708<td>V_PERM_B32</td>
    756709</tr>
    757710<tr>
    758711<td>494 (0x1ee)</td>
    759 <td>✓</td>
    760 <td>✓</td>
    761712<td>V_FMA_F16</td>
     713<td>V_FMA_LEGACY_F16</td>
    762714</tr>
    763715<tr>
    764716<td>495 (0x1ef)</td>
    765 <td>✓</td>
    766 <td>✓</td>
    767717<td>V_DIV_FIXUP_F16</td>
     718<td>V_DIV_FIXUP_LEGACY_F16</td>
    768719</tr>
    769720<tr>
    770721<td>496 (0x1f0)</td>
    771 <td>✓</td>
    772 <td>✓</td>
    773722<td>V_CVT_PKACCUM_U8_F32</td>
     723<td>V_CVT_PKACCUM_U8_F32</td>
    774724</tr>
    775725<tr>
    776726<td>497 (0x1f1)</td>
    777 <td></td>
    778 <td>✓</td>
     727<td>--</td>
    779728<td>V_MAD_U32_U16</td>
    780729</tr>
    781730<tr>
    782731<td>498 (0x1f2)</td>
    783 <td></td>
    784 <td>✓</td>
     732<td>--</td>
    785733<td>V_MAD_I32_I16</td>
    786734</tr>
    787735<tr>
    788736<td>499 (0x1f3)</td>
    789 <td></td>
    790 <td>✓</td>
     737<td>--</td>
    791738<td>V_XAD_U32</td>
    792739</tr>
    793740<tr>
    794741<td>500 (0x1f4)</td>
    795 <td></td>
    796 <td>✓</td>
     742<td>--</td>
    797743<td>V_MIN3_F16</td>
    798744</tr>
    799745<tr>
    800746<td>501 (0x1f5)</td>
    801 <td></td>
    802 <td>✓</td>
     747<td>--</td>
    803748<td>V_MIN3_I16</td>
    804749</tr>
    805750<tr>
    806751<td>502 (0x1f6)</td>
    807 <td></td>
    808 <td>✓</td>
     752<td>--</td>
    809753<td>V_MIN3_U16</td>
    810754</tr>
    811755<tr>
    812756<td>503 (0x1f7)</td>
    813 <td></td>
    814 <td>✓</td>
     757<td>--</td>
    815758<td>V_MAX3_F16</td>
    816759</tr>
    817760<tr>
    818761<td>504 (0x1f8)</td>
    819 <td></td>
    820 <td>✓</td>
     762<td>--</td>
    821763<td>V_MAX3_I16</td>
    822764</tr>
    823765<tr>
    824766<td>505 (0x1f9)</td>
    825 <td></td>
    826 <td>✓</td>
     767<td>--</td>
    827768<td>V_MAX3_U16</td>
    828769</tr>
    829770<tr>
    830771<td>506 (0x1fa)</td>
    831 <td></td>
    832 <td>✓</td>
     772<td>--</td>
    833773<td>V_MED3_F16</td>
    834774</tr>
    835775<tr>
    836776<td>507 (0x1fb)</td>
    837 <td></td>
    838 <td>✓</td>
     777<td>--</td>
    839778<td>V_MED3_I16</td>
    840779</tr>
    841780<tr>
    842781<td>508 (0x1fc)</td>
    843 <td></td>
    844 <td>✓</td>
     782<td>--</td>
    845783<td>V_MED3_U16</td>
    846784</tr>
    847785<tr>
    848786<td>509 (0x1fd)</td>
    849 <td></td>
    850 <td>✓</td>
     787<td>--</td>
    851788<td>V_LSHL_ADD_U32</td>
    852789</tr>
    853790<tr>
    854791<td>510 (0x1fe)</td>
    855 <td></td>
    856 <td>✓</td>
     792<td>--</td>
    857793<td>V_ADD_LSHL_U32</td>
    858794</tr>
    859795<tr>
    860796<td>511 (0x1ff)</td>
    861 <td></td>
    862 <td>✓</td>
     797<td>--</td>
    863798<td>V_ADD3_U32</td>
    864799</tr>
    865800<tr>
     801<td>512 (0x200)</td>
     802<td>--</td>
     803<td>V_LSHL_OR_B32</td>
     804</tr>
     805<tr>
     806<td>513 (0x201)</td>
     807<td>--</td>
     808<td>V_AND_OR_B32</td>
     809</tr>
     810<tr>
     811<td>514 (0x202)</td>
     812<td>--</td>
     813<td>V_OR3_B32</td>
     814</tr>
     815<tr>
     816<td>515 (0x203)</td>
     817<td>--</td>
     818<td>V_MAD_F16</td>
     819</tr>
     820<tr>
     821<td>516 (0x204)</td>
     822<td>--</td>
     823<td>V_MAD_U16</td>
     824</tr>
     825<tr>
     826<td>517 (0x205)</td>
     827<td>--</td>
     828<td>V_MAD_I16</td>
     829</tr>
     830<tr>
     831<td>518 (0x206)</td>
     832<td>--</td>
     833<td>V_FMA_F16</td>
     834</tr>
     835<tr>
     836<td>519 (0x207)</td>
     837<td>--</td>
     838<td>V_DIV_FIXUP_F16</td>
     839</tr>
     840<tr>
    866841<td>624 (0x270)</td>
    867 <td>✓</td>
    868 <td>✓</td>
    869842<td>V_INTERP_P1_F32 (VINTRP)</td>
     843<td>V_INTERP_P1_F32 (VINTRP)</td>
    870844</tr>
    871845<tr>
    872846<td>625 (0x271)</td>
    873 <td>✓</td>
    874 <td>✓</td>
    875847<td>V_INTERP_P2_F32 (VINTRP)</td>
     848<td>V_INTERP_P2_F32 (VINTRP)</td>
    876849</tr>
    877850<tr>
    878851<td>626 (0x272)</td>
    879 <td>✓</td>
    880 <td>✓</td>
    881852<td>V_INTERP_MOV_F32 (VINTRP)</td>
     853<td>V_INTERP_MOV_F32 (VINTRP)</td>
    882854</tr>
    883855<tr>
    884856<td>627 (0x273)</td>
    885 <td>✓</td>
    886 <td>✓</td>
    887857<td>V_INTERP_P1LL_F16 (VINTRP)</td>
     858<td>V_INTERP_P1LL_F16 (VINTRP)</td>
    888859</tr>
    889860<tr>
    890861<td>628 (0x274)</td>
    891 <td>✓</td>
    892 <td>✓</td>
    893862<td>V_INTERP_P1LV_F16 (VINTRP)</td>
     863<td>V_INTERP_P1LV_F16 (VINTRP)</td>
    894864</tr>
    895865<tr>
    896866<td>629 (0x275)</td>
    897 <td>✓</td>
    898 <td>✓</td>
    899867<td>V_INTERP_P2_F16 (VINTRP)</td>
     868<td>V_INTERP_P2_F16 (VINTRP)</td>
    900869</tr>
    901870<tr>
    902871<td>640 (0x280)</td>
    903 <td>✓</td>
    904 <td>✓</td>
    905872<td>V_ADD_F64</td>
     873<td>V_ADD_F64</td>
    906874</tr>
    907875<tr>
    908876<td>641 (0x281)</td>
    909 <td>✓</td>
    910 <td>✓</td>
    911877<td>V_MUL_F64</td>
     878<td>V_MUL_F64</td>
    912879</tr>
    913880<tr>
    914881<td>642 (0x282)</td>
    915 <td>✓</td>
    916 <td>✓</td>
    917882<td>V_MIN_F64</td>
     883<td>V_MIN_F64</td>
    918884</tr>
    919885<tr>
    920886<td>643 (0x283)</td>
    921 <td>✓</td>
    922 <td>✓</td>
    923887<td>V_MAX_F64</td>
     888<td>V_MAX_F64</td>
    924889</tr>
    925890<tr>
    926891<td>644 (0x284)</td>
    927 <td>✓</td>
    928 <td>✓</td>
    929892<td>V_LDEXP_F64</td>
     893<td>V_LDEXP_F64</td>
    930894</tr>
    931895<tr>
    932896<td>645 (0x285)</td>
    933 <td>✓</td>
    934 <td>✓</td>
    935897<td>V_MUL_LO_U32</td>
     898<td>V_MUL_LO_U32</td>
    936899</tr>
    937900<tr>
    938901<td>646 (0x286)</td>
    939 <td>✓</td>
    940 <td>✓</td>
    941902<td>V_MUL_HI_U32</td>
     903<td>V_MUL_HI_U32</td>
    942904</tr>
    943905<tr>
    944906<td>647 (0x287)</td>
    945 <td>✓</td>
    946 <td>✓</td>
    947907<td>V_MUL_HI_I32</td>
     908<td>V_MUL_HI_I32</td>
    948909</tr>
    949910<tr>
    950911<td>648 (0x288)</td>
    951 <td>✓</td>
    952 <td>✓</td>
    953912<td>V_LDEXP_F32</td>
     913<td>V_LDEXP_F32</td>
    954914</tr>
    955915<tr>
    956916<td>649 (0x289)</td>
    957 <td>✓</td>
    958 <td>✓</td>
    959917<td>V_READLANE_B32</td>
     918<td>V_READLANE_B32</td>
    960919</tr>
    961920<tr>
    962921<td>650 (0x28a)</td>
    963 <td>✓</td>
    964 <td>✓</td>
    965922<td>V_WRITELANE_B32</td>
     923<td>V_WRITELANE_B32</td>
    966924</tr>
    967925<tr>
    968926<td>651 (0x28b)</td>
    969 <td>✓</td>
    970 <td>✓</td>
    971927<td>V_BCNT_U32_B32</td>
     928<td>V_BCNT_U32_B32</td>
    972929</tr>
    973930<tr>
    974931<td>652 (0x28c)</td>
    975 <td>✓</td>
    976 <td>✓</td>
    977932<td>V_MBCNT_LO_U32_B32</td>
     933<td>V_MBCNT_LO_U32_B32</td>
    978934</tr>
    979935<tr>
    980936<td>653 (0x28d)</td>
    981 <td>✓</td>
    982 <td>✓</td>
    983937<td>V_MBCNT_HI_U32_B32</td>
     938<td>V_MBCNT_HI_U32_B32</td>
    984939</tr>
    985940<tr>
    986941<td>654 (0x28e)</td>
    987 <td>✓</td>
    988 <td>✓</td>
    989942<td>V_MAC_LEGACY_F32</td>
     943<td>V_MAC_LEGACY_F32</td>
    990944</tr>
    991945<tr>
    992946<td>655 (0x28f)</td>
    993 <td>✓</td>
    994 <td>✓</td>
    995947<td>V_LSHLREV_B64</td>
     948<td>V_LSHLREV_B64</td>
    996949</tr>
    997950<tr>
    998951<td>656 (0x290)</td>
    999 <td>✓</td>
    1000 <td>✓</td>
    1001952<td>V_LSHRREV_B64</td>
     953<td>V_LSHRREV_B64</td>
    1002954</tr>
    1003955<tr>
    1004956<td>657 (0x291)</td>
    1005 <td>✓</td>
    1006 <td>✓</td>
    1007957<td>V_ASHRREV_I64</td>
     958<td>V_ASHRREV_I64</td>
    1008959</tr>
    1009960<tr>
    1010961<td>658 (0x292)</td>
    1011 <td>✓</td>
    1012 <td>✓</td>
    1013962<td>V_TRIG_PREOP_F64</td>
     963<td>V_TRIG_PREOP_F64</td>
    1014964</tr>
    1015965<tr>
    1016966<td>659 (0x293)</td>
    1017 <td>✓</td>
    1018 <td>✓</td>
    1019967<td>V_BFM_B32</td>
     968<td>V_BFM_B32</td>
    1020969</tr>
    1021970<tr>
    1022971<td>660 (0x294)</td>
    1023 <td>✓</td>
    1024 <td>✓</td>
    1025972<td>V_CVT_PKNORM_I16_F32</td>
     973<td>V_CVT_PKNORM_I16_F32</td>
    1026974</tr>
    1027975<tr>
    1028976<td>661 (0x295)</td>
    1029 <td>✓</td>
    1030 <td>✓</td>
    1031977<td>V_CVT_PKNORM_U16_F32</td>
     978<td>V_CVT_PKNORM_U16_F32</td>
    1032979</tr>
    1033980<tr>
    1034981<td>662 (0x296)</td>
    1035 <td>✓</td>
    1036 <td>✓</td>
    1037982<td>V_CVT_PKRTZ_F16_F32</td>
     983<td>V_CVT_PKRTZ_F16_F32</td>
    1038984</tr>
    1039985<tr>
    1040986<td>663 (0x297)</td>
    1041 <td>✓</td>
    1042 <td>✓</td>
    1043987<td>V_CVT_PK_U16_U32</td>
     988<td>V_CVT_PK_U16_U32</td>
    1044989</tr>
    1045990<tr>
    1046991<td>664 (0x298)</td>
    1047 <td>✓</td>
    1048 <td>✓</td>
    1049992<td>V_CVT_PK_I16_I32</td>
     993<td>V_CVT_PK_I16_I32</td>
    1050994</tr>
    1051995<tr>
    1052996<td>665 (0x299)</td>
    1053 <td></td>
    1054 <td>✓</td>
    1055997<td>V_CVT_PKNORM_I16_F16</td>
     998<td>V_CVT_PKNORM_I16_F16</td>
    1056999</tr>
    10571000<tr>
    10581001<td>666 (0x29a)</td>
    1059 <td></td>
    1060 <td>✓</td>
    10611002<td>V_CVT_PKNORM_U16_F16</td>
     1003<td>V_CVT_PKNORM_U16_F16</td>
    10621004</tr>
    10631005<tr>
    10641006<td>667 (0x29b)</td>
    1065 <td></td>
    1066 <td>✓</td>
    10671007<td>V_READLANE_REGRD_B32</td>
     1008<td>V_READLANE_REGRD_B32</td>
    10681009</tr>
    10691010<tr>
    10701011<td>668 (0x29c)</td>
    1071 <td></td>
    1072 <td>✓</td>
     1012<td>--</td>
    10731013<td>V_ADD_I32</td>
    10741014</tr>
    10751015<tr>
    10761016<td>669 (0x29d)</td>
    1077 <td></td>
    1078 <td>✓</td>
     1017<td>--</td>
    10791018<td>V_SUB_I32</td>
    10801019</tr>
    10811020<tr>
    10821021<td>670 (0x29e)</td>
    1083 <td></td>
    1084 <td>✓</td>
     1022<td>--</td>
    10851023<td>V_ADD_I16</td>
    10861024</tr>
    10871025<tr>
    10881026<td>671 (0x29f)</td>
    1089 <td></td>
    1090 <td>✓</td>
     1027<td>--</td>
    10911028<td>V_SUB_I16</td>
    10921029</tr>
    10931030<tr>
    10941031<td>672 (0x2a0)</td>
    1095 <td></td>
    1096 <td>✓</td>
     1032<td>--</td>
    10971033<td>V_PACK_B32_F16</td>
    10981034</tr>
     
    11021038<p>Alphabetically sorted instruction list:</p>
    11031039<h4>V_ADD_F64</h4>
    1104 <p>Opcode: 356 (0x164) for GCN 1.0/1.1; 640 (0x280) for GCN 1.2<br />
     1040<p>Opcode: 356 (0x164) for GCN 1.0/1.1; 640 (0x280) for GCN 1.2/1.4<br />
    11051041Syntax: V_ADD_F64 VDST(2), SRC0(2), SRC1(2)<br />
    11061042Description: Add two double FP value from SRC0 and SRC1 and store result to VDST.<br />
     
    11521088<code>VDST = (SRC0 + SRC1) &lt;&lt; (SRC2&amp;31)</code></p>
    11531089<h4>V_ALIGNBIT_B32</h4>
    1154 <p>Opcode: 334 (0x14e) for GCN 1.0/1.1; 462 (0x1ce) for GCN 1.2<br />
     1090<p>Opcode: 334 (0x14e) for GCN 1.0/1.1; 462 (0x1ce) for GCN 1.2/1.4<br />
    11551091Syntax: V_ALIGNBIT_B32 VDST, SRC0, SRC1, SRC2<br />
    11561092Description: Align bit. Shift right bits in 64-bit stored in SRC1 (low part) and
     
    11591095<code>VDST = (((UINT64)SRC0)&lt;&lt;32) | SRC1) &gt;&gt; (SRC2&amp;31)</code></p>
    11601096<h4>V_ALIGNBYTE_B32</h4>
    1161 <p>Opcode: 335 (0x14f) for GCN 1.0/1.1; 463 (0x1cf) for GCN 1.2<br />
     1097<p>Opcode: 335 (0x14f) for GCN 1.0/1.1; 463 (0x1cf) for GCN 1.2/1.4<br />
    11621098Syntax: V_ALIGNBYTE_B32 VDST, SRC0, SRC1, SRC2<br />
    11631099Description: Align bit. Shift right bits in 64-bit stored in SRC1 (low part) and
     
    11651101Operation:<br />
    11661102<code>VDST = (((UINT64)SRC0)&lt;&lt;32) | SRC1) &gt;&gt; ((SRC2&amp;3)*8)</code></p>
     1103<h4>V_AND_OR_B32</h4>
     1104<p>Opcode: 513 (0x201) for GCN 1.4<br />
     1105Syntax: V_AND_OR_B32 VDST, SRC0, SRC1, SRC2<br />
     1106Description: Make btwise AND with SRC0 and SRC1, make bitwise OR with result and SRC2
     1107and store result to VDST.<br />
     1108Operation:<br />
     1109<code>VDST = (SRC0 &amp; SRC1) | SRC2</code></p>
    11671110<h4>V_ASHR_I64</h4>
    11681111<p>Opcode: 355 (0x163) for GCN 1.0/1.1<br />
     
    11721115<code>VDST = (INT64)SRC0 &gt;&gt; (SRC1&amp;63)</code></p>
    11731116<h4>V_ASHRREV_I64</h4>
    1174 <p>Opcode: 657 (0x291) for GCN 1.2<br />
     1117<p>Opcode: 657 (0x291) for GCN 1.2/1.4<br />
    11751118Syntax: V_ASHRREV_I32 VDST(2), SRC0, SRC1(2)<br />
    11761119Description: Arithmetic shift right SRC1 by (SRC0&amp;63) bits and store result into VDST.<br />
     
    11781121<code>VDST = (INT64)SRC0 &gt;&gt; (SRC0&amp;63)</code></p>
    11791122<h4>V_BCNT_U32_B32</h4>
    1180 <p>Opcode: 651 (0x28b) for GCN 1.2<br />
     1123<p>Opcode: 651 (0x28b) for GCN 1.2/1.4<br />
    11811124Syntax: V_BCNT_U32_B32 VDST, SRC0, SRC1<br />
    11821125Description: Count bits in SRC0, adds SRC1, and store result to VDST.<br />
     
    11841127<code>VDST = SRC1 + BITCOUNT(SRC0)</code></p>
    11851128<h4>V_BFE_I32</h4>
    1186 <p>Opcode: 329 (0x149) for GCN 1.0/1.1; 457 (0x1c9) for GCN 1.2<br />
     1129<p>Opcode: 329 (0x149) for GCN 1.0/1.1; 457 (0x1c9) for GCN 1.2/1.4<br />
    11871130Syntax: V_BFE_I32 VDST, SRC0, SRC1, SRC2<br />
    11881131Description: Extracts bits in SRC0 from range (SRC1&amp;31) with length (SRC2&amp;31)
     
    11981141    VDST = (INT32)SRC0 &gt;&gt; shift</code></p>
    11991142<h4>V_BFE_U32</h4>
    1200 <p>Opcode: 328 (0x148) for GCN 1.0/1.1; 456 (0x1c8) for GCN 1.2<br />
     1143<p>Opcode: 328 (0x148) for GCN 1.0/1.1; 456 (0x1c8) for GCN 1.2/1.4<br />
    12011144Syntax: V_BFE_U32 VDST, SRC0, SRC1, SRC2<br />
    12021145Description: Extracts bits in SRC0 from range SRC1&amp;31 with length SRC2&amp;31, and
     
    12121155    VDST = SRC0 &gt;&gt; shift</code></p>
    12131156<h4>V_BFI_B32</h4>
    1214 <p>Opcode: 330 (0x14a) for GCN 1.0/1.1; 458 (0x1ca) for GCN 1.2<br />
     1157<p>Opcode: 330 (0x14a) for GCN 1.0/1.1; 458 (0x1ca) for GCN 1.2/1.4<br />
    12151158Syntax: V_BFI_B32 VDST, SRC0, SRC1, SRC2<br />
    12161159Description: Replace bits in SRC2 by bits from SRC1 marked by bits in SRC0, and store result
     
    12191162<code>VDST = (SRC0 &amp; SRC1) | (~SRC0 &amp; SRC2)</code></p>
    12201163<h4>V_BFM_B32</h4>
    1221 <p>Opcode: 659 (0x293) for GCN 1.2<br />
     1164<p>Opcode: 659 (0x293) for GCN 1.2/1.4<br />
    12221165Syntax: V_BFM_B32 VDST, SRC0, SRC1<br />
    12231166Description: Make 32-bit bitmask from (SRC1 &amp; 31) bit that have length (SRC0 &amp; 31) and
     
    12261169<code>VDST = ((1U &lt;&lt; (SRC0&amp;31))-1) &lt;&lt; (SRC1&amp;31)</code></p>
    12271170<h4>V_CUBEID_F32</h4>
    1228 <p>Opcode: 324 (0x144) for GCN 1.0/1.1; 452 (0x1c4) for GCN 1.2<br />
     1171<p>Opcode: 324 (0x144) for GCN 1.0/1.1; 452 (0x1c4) for GCN 1.2/1.4<br />
    12291172Syntax: V_CUBEID_F32 VDST, SRC0, SRC1, SRC2<br />
    12301173Description: Cubemap face identification. Determine face by comparing three single FP
     
    12461189VDST = OUT</code></p>
    12471190<h4>V_CUBEMA_F32</h4>
    1248 <p>Opcode: 327 (0x147) for GCN 1.0/1.1; 455 (0x1c7) for GCN 1.2<br />
     1191<p>Opcode: 327 (0x147) for GCN 1.0/1.1; 455 (0x1c7) for GCN 1.2/1.4<br />
    12491192Syntax: V_CUBEMA_F32 VDST, SRC0, SRC1, SRC2<br />
    12501193Description: Cubemap Major Axis. Choose highest absolute value from all three FP values
     
    12621205VDST = OUT</code></p>
    12631206<h4>V_CUBESC_F32</h4>
    1264 <p>Opcode: 325 (0x145) for GCN 1.0/1.1; 453 (0x1c5) for GCN 1.2<br />
     1207<p>Opcode: 325 (0x145) for GCN 1.0/1.1; 453 (0x1c5) for GCN 1.2/1.4<br />
    12651208Syntax: V_CUBESC_F32 VDST, SRC0, SRC1, SRC2<br />
    12661209Description: Cubemap S coordination. Algorithm below.<br />
     
    12771220VDST = OUT</code></p>
    12781221<h4>V_CUBETC_F32</h4>
    1279 <p>Opcode: 326 (0x146) for GCN 1.0/1.1; 454 (0x1c6) for GCN 1.2<br />
     1222<p>Opcode: 326 (0x146) for GCN 1.0/1.1; 454 (0x1c6) for GCN 1.2/1.4<br />
    12801223Syntax: V_CUBETC_F32 VDST, SRC0, SRC1, SRC2<br />
    12811224Description: Cubemap T coordination. Algorithm below.<br />
     
    12921235VDST = OUT</code></p>
    12931236<h4>V_CVT_PK_I16_I32</h4>
    1294 <p>Opcode: 664 (0x298) for GCN 1.2<br />
     1237<p>Opcode: 664 (0x298) for GCN 1.2/1.4<br />
    12951238Syntax: V_CVT_PK_I16_I32 VDST, SRC0, SRC1<br />
    12961239Description: Convert signed value from SRC0 and SRC1 to signed 16-bit values with
     
    13011244VDST = D0 | (((UINT32)D1) &lt;&lt; 16)</code></p>
    13021245<h4>V_CVT_PK_U16_U32</h4>
    1303 <p>Opcode: 663 (0x297) for GCN 1.2<br />
     1246<p>Opcode: 663 (0x297) for GCN 1.2/1.4<br />
    13041247Syntax: V_CVT_PK_U16_U32 VDST, SRC0, SRC1<br />
    13051248Description: Convert unsigned value from SRC0 and SRC1 to unsigned 16-bit values with
     
    13101253VDST = D0 | (((UINT32)D1) &lt;&lt; 16)</code></p>
    13111254<h4>V_CVT_PK_U8_F32</h4>
    1312 <p>Opcode: 350 (0x15e) for GCN 1.0/1.1; 477 (0x1dd) for GCN 1.2<br />
     1255<p>Opcode: 350 (0x15e) for GCN 1.0/1.1; 477 (0x1dd) for GCN 1.2/1.4<br />
    13131256Syntax: V_CVT_PK_U8_F32 VDST, SRC0, SRC1, SRC2<br />
    13141257Description: Convert floating point value from SRC0 to unsigned byte value with
     
    13241267VDST = (SRC2&amp;~mask) | (((UINT32)VAL8) &lt;&lt; shift)</code></p>
    13251268<h4>V_CVT_PKACCUM_U8_F32</h4>
    1326 <p>Opcode: 496 (0x1f0) for GCN 1.2<br />
     1269<p>Opcode: 496 (0x1f0) for GCN 1.2/1.4<br />
    13271270Syntax: V_CVT_PKACCUM_U8_F32 VDST, SRC0, SRC1<br />
    13281271Description: Convert floating point value from SRC0 to unsigned byte value with
     
    13521295VDST = roundNorm(ASHALF(SRC0)) | ((UINT32)roundNorm(ASHALF(SRC1)) &lt;&lt; 16)</code></p>
    13531296<h4>V_CVT_PKNORM_I16_F32</h4>
    1354 <p>Opcode: 660 (0x294) for GCN 1.2<br />
     1297<p>Opcode: 660 (0x294) for GCN 1.2/1.4<br />
    13551298Syntax: V_CVT_PKNORM_I16_F32 VDST, SRC0, SRC1<br />
    13561299Description: Convert normalized FP value from SRC0 and SRC1 to signed 16-bit integers with
     
    13821325VDST = roundNorm(ASHALF(SRC0)) | ((UINT32)roundNorm(ASHALF(SRC1)) &lt;&lt; 16)</code></p>
    13831326<h4>V_CVT_PKNORM_U16_F32</h4>
    1384 <p>Opcode: 661 (0x295) for GCN 1.2<br />
     1327<p>Opcode: 661 (0x295) for GCN 1.2/1.4<br />
    13851328Syntax: V_CVT_PKNORM_U16_F32 VDST, SRC0, SRC1<br />
    13861329Description: Convert normalized FP value from SRC0 and SRC1 to unsigned 16-bit integers with
     
    13971340VDST = roundNorm(ASFLOAT(SRC0)) | ((UINT32)roundNorm(ASFLOAT(SRC1)) &lt;&lt; 16)</code></p>
    13981341<h4>V_CVT_PKRTZ_F16_F32</h4>
    1399 <p>Opcode: 662 (0x296) for GCN 1.2<br />
     1342<p>Opcode: 662 (0x296) for GCN 1.2/1.4<br />
    14001343Syntax: V_CVT_PKRTZ_F16_F32 VDST, SRC0, SRC1<br />
    14011344Description: Convert normalized FP value from SRC0 and SRC1 to half floating points with
     
    14071350VDST = D0 | (((UINT32)D1) &lt;&lt; 16)</code></p>
    14081351<h4>V_DIV_FIXUP_F16</h4>
    1409 <p>Opcode: 495 (0x1ef) for GCN 1.2<br />
     1352<p>Opcode: 495 (0x1ef) for GCN 1.2; 519 (0x207) for GCN 1.4<br />
    14101353Syntax: V_DIV_FIXUP_F16 VDST, SRC0, SRC1, SRC2<br />
    14111354Description: Handle all exceptions requires for half floating point division.
     
    14321375    VDST = SF0</code></p>
    14331376<h4>V_DIV_FIXUP_F32</h4>
    1434 <p>Opcode: 351 (0x15f) for GCN 1.0/1.1; 478 (0x1de) for GCN 1.2<br />
     1377<p>Opcode: 351 (0x15f) for GCN 1.0/1.1; 478 (0x1de) for GCN 1.2/1.4<br />
    14351378Syntax: V_DIV_FIXUP_F32 VDST, SRC0, SRC1, SRC2<br />
    14361379Description: Handle all exceptions requires for single floating point division.
     
    14571400    VDST = SF0</code></p>
    14581401<h4>V_DIV_FIXUP_F64</h4>
    1459 <p>Opcode: 352 (0x160) for GCN 1.0/1.1; 479 (0x1df) for GCN 1.2<br />
     1402<p>Opcode: 352 (0x160) for GCN 1.0/1.1; 479 (0x1df) for GCN 1.2/1.4<br />
    14601403Syntax: V_DIV_FIXUP_F64 VDST(2), SRC0(2), SRC1(2), SRC2(2)<br />
    14611404Description: Handle all exceptions requires for double floating point division.
     
    14811424else
    14821425    VDST = SF0</code></p>
     1426<h4>V_DIV_FIXUP_LEGACY_F16</h4>
     1427<p>Opcode: 495 (0x1ef) for GCN 1.4<br />
     1428Syntax: V_DIV_FIXUP_LEGACY_F16 VDST, SRC0, SRC1, SRC2<br />
     1429Description: Handle all exceptions requires for half floating point division.
     1430SRC0 is quotient, SRC1 is denominator, SRC2 is nominator. Correct result stored to VDST.<br />
     1431Operation:<br />
     1432<code>HALF SF0 = ASHALF(SRC0)
     1433HALF SF1 = ASHALF(SRC1)
     1434HALF SF2 = ASHALF(SRC2)
     1435if (ISNAN(SF1) &amp;&amp; !ISNAN(SF2))
     1436    VDST = QUIETNAN(SF1)
     1437else if (ISNAN(SF2))
     1438    VDST = QUIETNAN(SF2)
     1439else if (SF1 == 0.0 &amp;&amp; SF2 == 0.0)
     1440    VDST = NAN_H
     1441else if (ABS(SF1)==INF &amp;&amp; ABS(SF2)==INF)
     1442    VDST = -NAN_H
     1443else if (SF1 == 0.0)
     1444    VDST = INF_H*SIGN(SF1)*SIGN(SF2)
     1445else if (ABS(SF1) == INF)
     1446    VDST = SIGN(SF1)*SIGN(SF2) &gt;=0 ? 0.0 : -0.0
     1447else if (ISNAN(SF0))
     1448    VDST = SIGN(SF1)*SIGN(SF2)*INF_H
     1449else
     1450    VDST = SF0</code></p>
    14831451<h4>V_DIV_FMAS_F32</h4>
    1484 <p>Opcode: 367 (0x16f) for GCN 1.0/1.1; 482 (0x1e2) for GCN 1.2<br />
     1452<p>Opcode: 367 (0x16f) for GCN 1.0/1.1; 482 (0x1e2) for GCN 1.2/1.4<br />
    14851453Syntax: V_DIV_FMAS_F32 VDST, SRC0, SRC1, SRC2<br />
    14861454Description: Special case divide FMA with scale and flags.
     
    14971465    VDST = ASFLOAT(VDST)*POW(-2.0,64)</code></p>
    14981466<h4>V_DIV_FMAS_F64</h4>
    1499 <p>Opcode: 368 (0x170) for GCN 1.0/1.1; 483 (0x1e3) for GCN 1.2<br />
     1467<p>Opcode: 368 (0x170) for GCN 1.0/1.1; 483 (0x1e3) for GCN 1.2/1.4<br />
    15001468Syntax: V_DIV_FMAS_F64 VDST(2), SRC0(2), SRC1(2), SRC2(2)<br />
    15011469Description: Special case divide FMA with scale and flags.
     
    15131481    VDST = ASDOUBLE(VDST)*POW(-2.0,128)</code></p>
    15141482<h4>V_DIV_SCALE_F32</h4>
    1515 <p>Opcode (VOP3B): 365 (0x16d) for GCN 1.0/1.1; 480 (0x1e0) for GCN 1.2<br />
     1483<p>Opcode (VOP3B): 365 (0x16d) for GCN 1.0/1.1; 480 (0x1e0) for GCN 1.2/1.4<br />
    15161484Syntax: V_DIV_SCALE_F32 VDST, SDST(2), SRC0, SRC1, SRC2<br />
    15171485Description: Special case divide preop and flags. SRC0 is quotient, SRC1 is denominator,
     
    15481516}</code></p>
    15491517<h4>V_DIV_SCALE_F64</h4>
    1550 <p>Opcode (VOP3B): 366 (0x16e) for GCN 1.0/1.1; 481 (0x1e1) for GCN 1.2<br />
     1518<p>Opcode (VOP3B): 366 (0x16e) for GCN 1.0/1.1; 481 (0x1e1) for GCN 1.2/1.4<br />
    15511519Syntax: V_DIV_SCALE_F64 VDST(2), SDST(2), SRC0(2), SRC1(2), SRC2(2)<br />
    15521520Description: Special case divide preop and flags. SRC0 is quotient, SRC1 is denominator,
     
    15831551}</code></p>
    15841552<h4>V_FMA_F16</h4>
    1585 <p>Opcode: 494 (0x1ee) for GCN 1.2<br />
     1553<p>Opcode: 494 (0x1ee) for GCN 1.2; 518 (0x206) for GCN 1.4<br />
    15861554Syntax: V_FMA_F16 VDST, SRC0, SRC1, SRC2<br />
    15871555Description: Fused multiply addition on half floating point values from
     
    15911559VDST = FMA(ASHALF(SRC0), ASHALF(SRC1), ASHALF(SRC2))</code></p>
    15921560<h4>V_FMA_F32</h4>
    1593 <p>Opcode: 331 (0x14b) for GCN 1.0/1.1; 459 (0x1cb) for GCN 1.2<br />
     1561<p>Opcode: 331 (0x14b) for GCN 1.0/1.1; 459 (0x1cb) for GCN 1.2/1.4<br />
    15941562Syntax: V_FMA_F32 VDST, SRC0, SRC1, SRC2<br />
    15951563Description: Fused multiply addition on single floating point values from
     
    15991567VDST = FMA(ASFLOAT(SRC0), ASFLOAT(SRC1), ASFLOAT(SRC2))</code></p>
    16001568<h4>V_FMA_F64</h4>
    1601 <p>Opcode: 332 (0x14c) for GCN 1.0/1.1; 460 (0x1cc) for GCN 1.2<br />
     1569<p>Opcode: 332 (0x14c) for GCN 1.0/1.1; 460 (0x1cc) for GCN 1.2/1.4<br />
    16021570Syntax: V_FMA_F64 VDST(2), SRC0(2), SRC1(2), SRC2(2)<br />
    16031571Description: Fused multiply addition on double floating point values from
     
    16061574<code>// SRC0*SRC1+SRC2
    16071575VDST = FMA(ASDOUBLE(SRC0), ASDOUBLE(SRC1), ASDOUBLE(SRC2))</code></p>
     1576<h4>V_FMA_LEGACY_F16</h4>
     1577<p>Opcode: 494 (0x1ee) for GCN 1.4<br />
     1578Syntax: V_FMA_LEGACY_F16 VDST, SRC0, SRC1, SRC2<br />
     1579Description: Fused multiply addition on half floating point values from
     1580SRC0, SRC1 and SRC2. Result stored in VDST.<br />
     1581Operation:<br />
     1582<code>// SRC0*SRC1+SRC2
     1583VDST = FMA(ASHALF(SRC0), ASHALF(SRC1), ASHALF(SRC2))</code></p>
    16081584<h4>V_LDEXP_F32</h4>
    1609 <p>Opcode: 648 (0x288) for GCN 1.2<br />
     1585<p>Opcode: 648 (0x288) for GCN 1.2/1.4<br />
    16101586Syntax: V_LDEXP_F32 VDST, SRC0, SRC1<br />
    16111587Description: Do ldexp operation on SRC0 and SRC1 (multiply SRC0 by 2**(SRC1)).
     
    16141590<code>VDST = ASFLOAT(SRC0) * POW(2.0, (INT32)SRC1)</code></p>
    16151591<h4>V_LDEXP_F64</h4>
    1616 <p>Opcode: 360 (0x168) for GCN 1.0/1.1; 644 (0x284) for GCN 1.2<br />
     1592<p>Opcode: 360 (0x168) for GCN 1.0/1.1; 644 (0x284) for GCN 1.2/1.4<br />
    16171593Syntax: V_LDEXP_F64 VDST(2), SRC0(2), SRC1<br />
    16181594Description: Do ldexp operation on SRC0 and SRC1 (multiply SRC0 by 2**(SRC1)).
     
    16211597<code>VDST = ASDOUBLE(SRC0) * POW(2.0, (INT32)SRC1)</code></p>
    16221598<h4>V_LERP_U8</h4>
    1623 <p>Opcode: 333 (0x14d) for GCN 1.0/1.1; 461 (0x1cd) for GCN 1.2<br />
     1599<p>Opcode: 333 (0x14d) for GCN 1.0/1.1; 461 (0x1cd) for GCN 1.2/1.4<br />
    16241600Syntax: V_LERP_U8 VDST, SRC0, SRC1, SRC2<br />
    16251601Description: For each byte of dword, calculate average from SRC0 byte and SRC1 byte with
     
    16461622Operation:<br />
    16471623<code>VDST = SRC0 &lt;&lt; (SRC1&amp;63)</code></p>
     1624<h4>V_LSHL_OR_B32</h4>
     1625<p>Opcode: 512 (0x200) for GCN 1.4<br />
     1626Syntax: V_LSHL_OR_B32 VDST, SRC0, SRC1, SRC2<br />
     1627Description: Shift left SRC0 by (SRC1&amp;31) bits and make bitwise OR with SRC2
     1628and store result to VDST.<br />
     1629Operation:<br />
     1630<code>VDST = (SRC0 &lt;&lt; (SRC1&amp;31)) | SRC2</code></p>
    16481631<h4>V_LSHLREV_B64</h4>
    1649 <p>Opcode: 655 (0x28f) for GCN 1.2<br />
     1632<p>Opcode: 655 (0x28f) for GCN 1.2/1.4<br />
    16501633Syntax: V_LSHLREV_B64 VDST(2), SRC0, SRC1(2)<br />
    16511634Description: Shift left SRC1 by (SRC0&amp;63) bits and store result into VDST.<br />
     
    16591642<code>VDST = SRC0 &gt;&gt; (SRC1&amp;63)</code></p>
    16601643<h4>V_LSHRREV_B64</h4>
    1661 <p>Opcode: 656 (0x290) for GCN 1.2<br />
     1644<p>Opcode: 656 (0x290) for GCN 1.2/1.4<br />
    16621645Syntax: V_LSHRREV_B64 VDST(2), SRC0, SRC1(2)<br />
    16631646Description: Shift right SRC1 by (SRC0&amp;63) bits and store result into VDST.<br />
     
    16651648<code>VDST = SRC1 &gt;&gt; (SRC0&amp;63)</code></p>
    16661649<h4>V_MAC_LEGACY_F32</h4>
    1667 <p>Opcode: 654 (0x28e) for GCN 1.2<br />
     1650<p>Opcode: 654 (0x28e) for GCN 1.2/1.4<br />
    16681651Syntax: V_MAC_LEGACY_F32 VDST, SRC0, SRC1<br />
    16691652Description: Multiply FP value from SRC0 by FP value from SRC1 and add result to VDST.
     
    16731656    VDST = ASFLOAT(SRC0) * ASFLOAT(SRC1) + ASFLOAT(VDST)</code></p>
    16741657<h4>V_MAD_F16</h4>
    1675 <p>Opcode: 490 (0x1ea) for GCN 1.2<br />
     1658<p>Opcode: 490 (0x1ea) for GCN 1.2; 515 (0x203) for GCN 1.4<br />
    16761659Syntax: V_MAD_F16 VDST, SRC0, SRC1, SRC2<br />
    16771660Description: Multiply half FP value from SRC0 by half FP value from
     
    16811664<code>VDST = ASHALF(SRC0) * ASHALF(SRC1) + ASHALF(SRC2)</code></p>
    16821665<h4>V_MAD_F32</h4>
    1683 <p>Opcode: 321 (0x141) for GCN 1.0/1.1; 449 (0x1c1) for GCN 1.2<br />
     1666<p>Opcode: 321 (0x141) for GCN 1.0/1.1; 449 (0x1c1) for GCN 1.2/1.4<br />
    16841667Syntax: V_MAD_F32 VDST, SRC0, SRC1, SRC2<br />
    16851668Description: Multiply FP value from SRC0 by FP value from SRC1 and add SRC2, and store
     
    16881671<code>VDST = ASFLOAT(SRC0) * ASFLOAT(SRC1) + ASFLOAT(SRC2)</code></p>
    16891672<h4>V_MAD_I16</h4>
    1690 <p>Opcode: 492 (0x1ec) for GCN 1.2<br />
     1673<p>Opcode: 492 (0x1ec) for GCN 1.2; 517 (0x205) for GCN 1.4<br />
    16911674Syntax: V_MAD_I16 VDST, SRC0, SRC1, SRC2<br />
    16921675Description: Multiply 16-bit signed value from SRC0 by 16-bit signed value from
    1693 SRC1 and add 16-bit signed value from SRC2, and store 16-bit signed result to VDST.<br />
    1694 Operation:<br />
    1695 <code>VDST = (INT16)((INT16)SRC0*(INT16)SRC1 + (INT16)SRC2)</code></p>
     1676SRC1 and add 16-bit signed value from SRC2, and store 16-bit signed result to VDST.
     1677If CLAMP modifier supplied, then result is saturated to 16-bit signed value.<br />
     1678Operation:<br />
     1679<code>UINT32 temp = (SEXT32((INT16)SRC0)*(INT16)SRC1 + (INT16)SRC2)
     1680VDST = CLAMP ? MIN(MAX(temp), -32768), 32767) : temp&amp;0xffff</code></p>
    16961681<h4>V_MAD_I32_I16</h4>
    16971682<p>Opcode: 498 (0x1f2) for GCN 1.4<br />
     
    17021687<code>VDST = (UINT32)(SEXT32((INT16)SRC0)*(INT16)SRC1) + SRC2</code></p>
    17031688<h4>V_MAD_I32_I24</h4>
    1704 <p>Opcode: 322 (0x142) for GCN 1.0/1.1; 450 (0x1c2) for GCN 1.2<br />
     1689<p>Opcode: 322 (0x142) for GCN 1.0/1.1; 450 (0x1c2) for GCN 1.2/1.4<br />
    17051690Syntax: V_MAD_I32_I24 VDST, SRC0, SRC1, SRC2<br />
    17061691Description: Multiply 24-bit signed integer value from SRC0 by 24-bit signed value from
     
    17111696VDST = V0 * V1 + SRC2</code></p>
    17121697<h4>V_MAD_I64_I32</h4>
    1713 <p>Opcode (VOP3B): 375 (0x177) for GCN 1.1; 489 (0x1e9) for GCN 1.2<br />
     1698<p>Opcode (VOP3B): 375 (0x177) for GCN 1.1; 489 (0x1e9) for GCN 1.2/1.4<br />
    17141699Syntax: V_MAD_I64_I32 VDST(2), SDST(2), SRC0, SRC1, SRC2(2)<br />
    17151700Description: Multiply 32-bit signed integer value from SRC0 by 32-bit signed value
     
    17221707UINT64 mask = (1ULL&lt;&lt;LANEID)
    17231708//SDST = (SDST&amp;~mask) | ((?????) ? mask : 0)</code></p>
     1709<h4>V_MAD_LEGACY_F16</h4>
     1710<p>Opcode: 490 (0x1ea) for GCN 1.4<br />
     1711Syntax: V_MAD_LEGACY_F16 VDST, SRC0, SRC1, SRC2<br />
     1712Description: Multiply half FP value from SRC0 by half FP value from
     1713SRC1 and add SRC2, and store result to VDST.
     1714It applies OMOD modifier to result and it flush denormals.<br />
     1715Operation:<br />
     1716<code>VDST = ASHALF(SRC0) * ASHALF(SRC1) + ASHALF(SRC2)</code></p>
    17241717<h4>V_MAD_LEGACY_F32</h4>
    1725 <p>Opcode: 320 (0x140) for GCN 1.0/1.1; 448 (0x1c0) for GCN 1.2<br />
     1718<p>Opcode: 320 (0x140) for GCN 1.0/1.1; 448 (0x1c0) for GCN 1.2/1.4<br />
    17261719Syntax: V_MAD_LEGACY_F32 VDST, SRC0, SRC1, SRC2<br />
    17271720Description: Multiply FP value from SRC0 by FP value from SRC1 and add result to SRC2, and
     
    17321725<code>if (ASFLOAT(SRC0)!=0.0 &amp;&amp; ASFLOAT(SRC1)!=0.0)
    17331726    VDST = ASFLOAT(SRC0) * ASFLOAT(SRC1) + ASFLOAT(SRC2)</code></p>
     1727<h4>V_MAD_LEGACY_I16</h4>
     1728<p>Opcode: 492 (0x1ec) for GCN 1.4<br />
     1729Syntax: V_MAD_LEGACY_I16 VDST, SRC0, SRC1, SRC2<br />
     1730Description: Multiply 16-bit signed value from SRC0 by 16-bit signed value from
     1731SRC1 and add 16-bit signed value from SRC2, and store 16-bit signed result to VDST.
     1732If CLAMP modifier supplied, then result is saturated to 16-bit signed value.<br />
     1733Operation:<br />
     1734<code>UINT32 temp = (SEXT32((INT16)SRC0)*(INT16)SRC1 + (INT16)SRC2)
     1735VDST = CLAMP ? MIN(MAX(temp), -32768), 32767) : temp&amp;0xffff</code></p>
     1736<h4>V_MAD_LEGACY_U16</h4>
     1737<p>Opcode: 491 (0x1eb) for GCN 1.4<br />
     1738Syntax: V_MAD_LEGACY_U16 VDST, SRC0, SRC1, SRC2<br />
     1739Description: Multiply 16-bit unsigned value from SRC0 by 16-bit unsigned value from
     1740SRC1 and add 16-bit unsigned value from SRC2, and store 16-bit unsigned result to VDST.
     1741If CLAMP modifier supplied, then result is saturated to 16-bit unsigned value.<br />
     1742Operation:<br />
     1743<code>UINT32 temp = ((UINT16)SRC0*(UINT16)SRC1 + (UINT16)SRC2) &amp; 0xffff
     1744VDST = CLAMP ? MIN(temp, 0xffff) : (temp&amp;0xffff)</code></p>
    17341745<h4>V_MAD_U16</h4>
    1735 <p>Opcode: 491 (0x1eb) for GCN 1.2<br />
     1746<p>Opcode: 491 (0x1eb) for GCN 1.2; 516 (0x204) for GCN 1.4<br />
    17361747Syntax: V_MAD_U16 VDST, SRC0, SRC1, SRC2<br />
    17371748Description: Multiply 16-bit unsigned value from SRC0 by 16-bit unsigned value from
    1738 SRC1 and add 16-bit unsigned value from SRC2, and store 16-bit unsigned result to VDST.<br />
    1739 Operation:<br />
    1740 <code>VDST = ((UINT16)SRC0*(UINT16)SRC1 + (UINT16)SRC2) &amp; 0xffff</code></p>
     1749SRC1 and add 16-bit unsigned value from SRC2, and store 16-bit unsigned result to VDST.
     1750If CLAMP modifier supplied, then result is saturated to 16-bit unsigned value.<br />
     1751Operation:<br />
     1752<code>UINT32 temp = ((UINT16)SRC0*(UINT16)SRC1 + (UINT16)SRC2) &amp; 0xffff
     1753VDST = CLAMP ? MIN(temp, 0xffff) : (temp&amp;0xffff)</code></p>
    17411754<h4>V_MAD_U32_U16</h4>
    17421755<p>Opcode: 497 (0x1f1) for GCN 1.4<br />
     
    17471760<code>VDST = (UINT32)((SRC0&amp;0xffff)*(SRC1&amp;0xffff)) + SRC2</code></p>
    17481761<h4>V_MAD_U32_U24</h4>
    1749 <p>Opcode: 323 (0x143) for GCN 1.0/1.1; 451 (0x1c3) for GCN 1.2<br />
     1762<p>Opcode: 323 (0x143) for GCN 1.0/1.1; 451 (0x1c3) for GCN 1.2/1.4<br />
    17501763Syntax: V_MAD_U32_U24 VDST, SRC0, SRC1, SRC2<br />
    17511764Description: Multiply 24-bit unsigned integer value from SRC0 by 24-bit unsigned value
     
    17541767<code>VDST = (UINT32)(SRC0&amp;0xffffff) * (UINT32)(SRC1&amp;0xffffff) + SRC2</code></p>
    17551768<h4>V_MAD_U64_U32</h4>
    1756 <p>Opcode (VOP3B): 374 (0x176) for GCN 1.1; 488 (0x1e8) for GCN 1.2<br />
     1769<p>Opcode (VOP3B): 374 (0x176) for GCN 1.1; 488 (0x1e8) for GCN 1.2/1.4<br />
    17571770Syntax: V_MAD_U64_U32 VDST(2), SDST(2), SRC0, SRC1, SRC2(2)<br />
    17581771Description: Multiply 32-bit unsigned integer value from SRC0 by 32-bit unsigned value
     
    17661779SDST = (SDST&amp;~mask) | ((VDST &lt; PROD) ? mask : 0)</code></p>
    17671780<h4>V_MAX_F64</h4>
    1768 <p>Opcode: 359 (0x167) for GCN 1.0/1.1; 643 (0x283) for GCN 1.2<br />
     1781<p>Opcode: 359 (0x167) for GCN 1.0/1.1; 643 (0x283) for GCN 1.2/1.4<br />
    17691782Syntax: V_MAX_F64 VDST(2), SRC0(2), SRC1(2)<br />
    17701783Description: Choose largest double FP value from SRC0 and SRC1, and store result to VDST.<br />
     
    17911804    VDST = MAX(SF1, SF0)</code></p>
    17921805<h4>V_MAX3_F32</h4>
    1793 <p>Opcode: 340 (0x154) for GCN 1.0/1.1; 467 (0x1d3) for GCN 1.2<br />
     1806<p>Opcode: 340 (0x154) for GCN 1.0/1.1; 467 (0x1d3) for GCN 1.2/1.4<br />
    17941807Syntax: V_MAX3_F32 VDST, SRC0, SRC1, SRC2<br />
    17951808Description: Choose largest value from FP values SRC0, SRC1, SRC2, and store it to VDST.<br />
     
    18191832    VDST = (UINT16)MAX((INT16)SRC1, (INT16)SRC0)</code></p>
    18201833<h4>V_MAX3_I32</h4>
    1821 <p>Opcode: 341 (0x155) for GCN 1.0/1.1; 468 (0x1d4) for GCN 1.2<br />
     1834<p>Opcode: 341 (0x155) for GCN 1.0/1.1; 468 (0x1d4) for GCN 1.2/1.4<br />
    18221835Syntax: V_MAX3_I32 VDST, SRC0, SRC1, SRC2<br />
    18231836Description: Choose largest value from signed integer values SRC0, SRC1, SRC2,
     
    18391852    VDST = MAX((UINT16)SRC1, (UINT16)SRC0)</code></p>
    18401853<h4>V_MAX3_U32</h4>
    1841 <p>Opcode: 342 (0x156) for GCN 1.0/1.1; 469 (0x1d5) for GCN 1.2<br />
     1854<p>Opcode: 342 (0x156) for GCN 1.0/1.1; 469 (0x1d5) for GCN 1.2/1.4<br />
    18421855Syntax: V_MAX3_U32 VDST, SRC0, SRC1, SRC2<br />
    18431856Description: Choose largest value from unsigned integer values SRC0, SRC1, SRC2,
     
    18491862    VDST = MAX(SRC1, SRC0)</code></p>
    18501863<h4>V_MBCNT_HI_U32_B32</h4>
    1851 <p>Opcode: 653 (0x28d) for GCN 1.2<br />
     1864<p>Opcode: 653 (0x28d) for GCN 1.2/1.4<br />
    18521865Syntax: V_MBCNT_HI_U32_B32 VDST, SRC0, SRC1<br />
    18531866Description: Make mask for all lanes ending at current lane,
     
    18581871VDST = SRC1 + BITCOUNT(MASK)</code></p>
    18591872<h4>V_MBCNT_LO_U32_B32</h4>
    1860 <p>Opcode: 652 (0x28c) for GCN 1.2<br />
     1873<p>Opcode: 652 (0x28c) for GCN 1.2/1.4<br />
    18611874Syntax: V_MBCNT_LO_U32_B32 VDST, SRC0, SRC1<br />
    18621875Description: Make mask for all lanes ending at current lane,
     
    18881901    VDST = SF0</code></p>
    18891902<h4>V_MED3_F32</h4>
    1890 <p>Opcode: 343 (0x157) for GCN 1.0/1.1; 470 (0x1d6) for GCN 1.2<br />
     1903<p>Opcode: 343 (0x157) for GCN 1.0/1.1; 470 (0x1d6) for GCN 1.2/1.4<br />
    18911904Syntax: V_MED3_F32 VDST, SRC0, SRC1, SRC2<br />
    18921905Description: Choose medium value from FP values SRC0, SRC1, SRC2, and store it to VDST.<br />
     
    19231936    VDST = (UINT16)S0</code></p>
    19241937<h4>V_MED3_I32</h4>
    1925 <p>Opcode: 344 (0x158) for GCN 1.0/1.1; 471 (0x1d7) for GCN 1.2<br />
     1938<p>Opcode: 344 (0x158) for GCN 1.0/1.1; 471 (0x1d7) for GCN 1.2/1.4<br />
    19261939Syntax: V_MED3_I32 VDST, SRC0, SRC1, SRC2<br />
    19271940Description: Choose medium value from signed integer values SRC0, SRC1, SRC2,
     
    19531966    VDST = S0</code></p>
    19541967<h4>V_MED3_U32</h4>
    1955 <p>Opcode: 345 (0x159) for GCN 1.0/1.1; 472 (0x1d8) for GCN 1.2<br />
     1968<p>Opcode: 345 (0x159) for GCN 1.0/1.1; 472 (0x1d8) for GCN 1.2/1.4<br />
    19561969Syntax: V_MED3_U32 VDST, SRC0, SRC1, SRC2<br />
    19571970Description: Choose medium value from unsigned integer values SRC0, SRC1, SRC2,
     
    19651978    VDST = SRC0</code></p>
    19661979<h4>V_MIN_F64</h4>
    1967 <p>Opcode: 358 (0x166) for GCN 1.0/1.1; 642 (0x282) for GCN 1.2<br />
     1980<p>Opcode: 358 (0x166) for GCN 1.0/1.1; 642 (0x282) for GCN 1.2/1.4<br />
    19681981Syntax: V_MIN_F64 VDST(2), SRC0(2), SRC1(2)<br />
    19691982Description: Choose smallest double FP value from SRC0 and SRC1, and store result to VDST.<br />
     
    19902003    VDST = MIN(SF1, SF0)</code></p>
    19912004<h4>V_MIN3_F32</h4>
    1992 <p>Opcode: 337 (0x151) for GCN 1.0/1.1; 464 (0x1d0) for GCN 1.2<br />
     2005<p>Opcode: 337 (0x151) for GCN 1.0/1.1; 464 (0x1d0) for GCN 1.2/1.4<br />
    19932006Syntax: V_MIN3_F32 VDST, SRC0, SRC1, SRC2<br />
    19942007Description: Choose smallest value from FP values SRC0, SRC1, SRC2, and store it to VDST.<br />
     
    20182031    VDST = (UINT16)MIN((INT16)SRC1, (INT16)SRC0)</code></p>
    20192032<h4>V_MIN3_I32</h4>
    2020 <p>Opcode: 338 (0x152) for GCN 1.0/1.1; 465 (0x1d1) for GCN 1.2<br />
     2033<p>Opcode: 338 (0x152) for GCN 1.0/1.1; 465 (0x1d1) for GCN 1.2/1.4<br />
    20212034Syntax: V_MIN3_I32 VDST, SRC0, SRC1, SRC2<br />
    20222035Description: Choose smallest value from signed integer values SRC0, SRC1, SRC2,
     
    20382051    VDST = MIN(S(UINT16)RC1, (UINT16)SRC0)</code></p>
    20392052<h4>V_MIN3_U32</h4>
    2040 <p>Opcode: 339 (0x153) for GCN 1.0/1.1; 466 (0x1d2) for GCN 1.2<br />
     2053<p>Opcode: 339 (0x153) for GCN 1.0/1.1; 466 (0x1d2) for GCN 1.2/1.4<br />
    20412054Syntax: V_MIN3_U32 VDST, SRC0, SRC1, SRC2<br />
    20422055Description: Choose smallest value from unsigned integer values SRC0, SRC1, SRC2,
     
    20482061    VDST = MIN(SRC1, SRC0)</code></p>
    20492062<h4>V_MQSAD_U32_U8</h4>
    2050 <p>Opcode: 373 (0x175) for GCN 1.1; 487 (0x1e7) for GCN 1.2<br />
     2063<p>Opcode: 373 (0x175) for GCN 1.1; 487 (0x1e7) for GCN 1.2/1.4<br />
    20512064Syntax: V_MQSAD_U32_U8 VDST(4), SRC0(2), SRC1, SRC2(4)<br />
    20522065Description: Compute four masked sum of absolute differences with accumulation.
     
    20682081VDST |= (MSADU8((UINT32)(SRC0&gt;&gt;24), SRC1, SRC2&gt;&gt;96)&lt;&lt;96</code></p>
    20692082<h4>V_MQSAD_U8, V_MQSAD_PK_U16_U8</h4>
    2070 <p>Opcode: 371 (0x173) for GCN 1.0/1.1; 486 (0x1e6) for GCN 1.2<br />
     2083<p>Opcode: 371 (0x173) for GCN 1.0/1.1; 486 (0x1e6) for GCN 1.2/1.4<br />
    20712084Syntax (GCN 1.0): V_MQSAD_U8 VDST(2), SRC0(2), SRC1, SRC2(2)<br />
    20722085Syntax (GCN 1.1/1.2): V_MQSAD_PK_U16_U8 VDST(2), SRC0(2), SRC1, SRC2(2)<br />
     
    20892102VDST |= (MSADU8((UINT32)(SRC0&gt;&gt;24), SRC1, (SRC2&gt;&gt;48) &amp; 0xffff)&lt;&lt;48</code></p>
    20902103<h4>V_MSAD_U8</h4>
    2091 <p>Opcode: 369 (0x171) for GCN 1.0/1.1; 484 (0x1e4) for GCN 1.2<br />
     2104<p>Opcode: 369 (0x171) for GCN 1.0/1.1; 484 (0x1e4) for GCN 1.2/1.4<br />
    20922105Syntax: V_MSAD_U8 VDST, SRC0, SRC1, SRC2<br />
    20932106Description: Calculate sum of absolute differences in SRC0 and SRC1 for bytes that have
     
    20992112        VDST += ABS(((SRC0 &gt;&gt; (i*8)) &amp; 0xff) - ((SRC1 &gt;&gt; (i*8)) &amp; 0xff))</code></p>
    21002113<h4>V_MUL_F64</h4>
    2101 <p>Opcode: 357 (0x165) for GCN 1.0/1.1; 641 (0x281) for GCN 1.2<br />
     2114<p>Opcode: 357 (0x165) for GCN 1.0/1.1; 641 (0x281) for GCN 1.2/1.4<br />
    21022115Syntax: V_MUL_F64 VDST(2), SRC0(2), SRC1(2)<br />
    21032116Description: Multiply two double FP values from SRC0 and SRC1 and store result to VDST.<br />
     
    21052118<code>VDST = ASDOUBLE(SRC0) * ASDOUBLE(SRC1)</code></p>
    21062119<h4>V_MUL_HI_I32</h4>
    2107 <p>Opcode: 364 (0x16c) for GCN 1.0/1.1; 647 (0x287) for GCN 1.2<br />
     2120<p>Opcode: 364 (0x16c) for GCN 1.0/1.1; 647 (0x287) for GCN 1.2/1.4<br />
    21082121Syntax: V_MUL_HI_I32 VDST, SRC0, SRC1<br />
    21092122Description: Multiply 32-bit signed value SRC0 and SRC1, and store higher part of
     
    21122125<code>VDST = ((INT64)SRC0 * (INT32)SRC1) &gt;&gt; 32</code></p>
    21132126<h4>V_MUL_HI_U32</h4>
    2114 <p>Opcode: 362 (0x16a) for GCN 1.0/1.1; 646 (0x286) for GCN 1.2<br />
     2127<p>Opcode: 362 (0x16a) for GCN 1.0/1.1; 646 (0x286) for GCN 1.2/1.4<br />
    21152128Syntax: V_MUL_HI_U32 VDST, SRC0, SRC1<br />
    21162129Description: Multiply 32-bit unsigned value SRC0 and SRC1, and store higher part of
     
    21262139<code>VDST = (INT32)SRC0 * (INT32)SRC1</code></p>
    21272140<h4>V_MUL_LO_U32</h4>
    2128 <p>Opcode: 361 (0x169) for GCN 1.0/1.1; 645 (0x285) for GCN 1.2<br />
     2141<p>Opcode: 361 (0x169) for GCN 1.0/1.1; 645 (0x285) for GCN 1.2/1.4<br />
    21292142Syntax: V_MUL_LO_U32 VDST, SRC0, SRC1<br />
    21302143Description: Multiply 32-bit unsigned value SRC0 and SRC1, and store lower part of
     
    21472160        VDST = ASFLOAT(SRC0) * ASFLOAT(SRC1)
    21482161}</code></p>
     2162<h4>V_OR3_B32</h4>
     2163<p>Opcode: 514 (0x202) for GCN 1.4<br />
     2164Syntax: V_OR3_B32 VDST, SRC0, SRC1, SRC2<br />
     2165Description: Make bitwise OR with SRC0, SRC1 and SRC2 and store result to VDST.<br />
     2166Operation:<br />
     2167<code>VDST = SRC0 | SRC1 | SRC2</code></p>
    21492168<h4>V_PACK_B32_F16</h4>
    21502169<p>Opcode: 672 (0x2a0) for GCN 1.4<br />
     
    21552174<code>VDST = (SRC0&amp;0xffff) | (SRC1&lt;&lt;16)</code></p>
    21562175<h4>V_PERM_B32</h4>
    2157 <p>Opcode: 493 (0x1ed) for GCN 1.2<br />
     2176<p>Opcode: 493 (0x1ed) for GCN 1.2/1.4<br />
    21582177Syntax: V_PERM_B32 VDST, SRC0, SRC1, SRC2<br />
    21592178Description: Permute bytes. Choose for every byte in dword, specified value. Bytes in
     
    21802199}</code></p>
    21812200<h4>V_QSAD_U8, V_QSAD_PK_U16_U8</h4>
    2182 <p>Opcode: 370 (0x172) for GCN 1.0/1.1; 485 (0x1e5) for GCN 1.2<br />
     2201<p>Opcode: 370 (0x172) for GCN 1.0/1.1; 485 (0x1e5) for GCN 1.2/1.4<br />
    21832202Syntax (GCN 1.0): V_QSAD_U8 VDST(2), SRC0(2), SRC1, SRC2(2)<br />
    21842203Syntax (GCN 1.1/1.2): V_QSAD_PK_U16_U8 VDST(2), SRC0(2), SRC1, SRC2(2)<br />
     
    21992218VDST |= (SADU8((UINT32)(SRC0&gt;&gt;24), SRC1, (SRC2&gt;&gt;48) &amp; 0xffff)&lt;&lt;48</code></p>
    22002219<h4>V_READLANE_B32</h4>
    2201 <p>Opcode: 649 (0x289) for GCN 1.2<br />
     2220<p>Opcode: 649 (0x289) for GCN 1.2/1.4<br />
    22022221Syntax: V_READLANE_B32 SDST, VSRC0, SSRC1<br />
    22032222Description: Copy one VSRC0 lane value to one SDST. Lane (thread id) choosen from SSRC1&amp;63.
     
    22062225<code>SDST = VSRC0[SSRC1 &amp; 63]</code></p>
    22072226<h4>V_SAD_HI_U8</h4>
    2208 <p>Opcode: 347 (0x15b) for GCN 1.0/1.1; 474 (0x1da) for GCN 1.2<br />
     2227<p>Opcode: 347 (0x15b) for GCN 1.0/1.1; 474 (0x1da) for GCN 1.2/1.4<br />
    22092228Syntax: V_SAD_HI_U8 VDST, SRC0, SRC1, SRC2<br />
    22102229Description: Calculate sum of absolute differences for all four bytes in SRC0 and SRC1,
     
    22152234    VDST += (ABS(((SRC0 &gt;&gt; (i*8)) &amp; 0xff) - ((SRC1 &gt;&gt; (i*8)) &amp; 0xff)))&lt;&lt;16</code></p>
    22162235<h4>V_SAD_U16</h4>
    2217 <p>Opcode: 348 (0x15c) for GCN 1.0/1.1; 475 (0x1db) for GCN 1.2<br />
     2236<p>Opcode: 348 (0x15c) for GCN 1.0/1.1; 475 (0x1db) for GCN 1.2/1.4<br />
    22182237Syntax: V_SAD_U16 VDST, SRC0, SRC1, SRC2<br />
    22192238Description: Calculate sum of absolute differences for two 16-bit words in SRC0 and SRC1,
     
    22242243VDST += ABS((SRC0 &gt;&gt; 16) - (SRC1 &gt;&gt; 16))</code></p>
    22252244<h4>V_SAD_U32</h4>
    2226 <p>Opcode: 349 (0x15d) for GCN 1.0/1.1; 476 (0x1dc) for GCN 1.2<br />
     2245<p>Opcode: 349 (0x15d) for GCN 1.0/1.1; 476 (0x1dc) for GCN 1.2/1.4<br />
    22272246Syntax: V_SAD_U32 VDST, SRC0, SRC1, SRC2<br />
    22282247Description: Calculate sum of absolute difference for SRC0 and SRC1, add
     
    22312250<code>VDST = SRC2 + ABS(SRC0 - SRC1)</code></p>
    22322251<h4>V_SAD_U8</h4>
    2233 <p>Opcode: 346 (0x15a) for GCN 1.0/1.1; 473 (0x1d9) for GCN 1.2<br />
     2252<p>Opcode: 346 (0x15a) for GCN 1.0/1.1; 473 (0x1d9) for GCN 1.2/1.4<br />
    22342253Syntax: V_SAD_U8 VDST, SRC0, SRC1, SRC2<br />
    22352254Description: Calculate sum of absolute differences for all four bytes in SRC0 and SRC1, add
     
    22732292}</code></p>
    22742293<h4>V_TRIG_PREOP_F64</h4>
    2275 <p>Opcode: 372 (0x174) for GCN 1.0/1.1; 658 (0x292) for GCN 1.2<br />
     2294<p>Opcode: 372 (0x174) for GCN 1.0/1.1; 658 (0x292) for GCN 1.2/1.4<br />
    22762295Syntax: V_TRIG_PREOP_F64 VDST(2), SRC0(2), SRC1<br />
    22772296Description:  D.d = Look Up 2/PI (S0.d) with segment select S1.u[4:0].
     
    22932312VDST = (DOUBLE)(TWOPERPI[BIT:BIT+52]) * POW(2.0, -BIT-53)</code></p>
    22942313<h4>V_WRITELANE_B32</h4>
    2295 <p>Opcode: 650 (0x28a) for GCN 1.2<br />
     2314<p>Opcode: 650 (0x28a) for GCN 1.2/1.4<br />
    22962315Syntax: V_WRITELANE_B32 VDST, VSRC0, SSRC1<br />
    22972316Description: Copy SGPR to one lane of VDST. Lane choosen (thread id) from SSRC1&amp;63.