/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* Assembly Writer Source Fragment                                            *|
|*                                                                            *|
|* Automatically generated file, do not edit!                                 *|
|*                                                                            *|
\*===----------------------------------------------------------------------===*/

/// printInstruction - This method is automatically generated by tablegen
/// from the instruction set description.
void SparcInstPrinter::printInstruction(const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &O) {
  static const char AsmStrs[] = {
  /* 0 */ 'r', 'd', 32, '%', 'w', 'i', 'm', ',', 32, 0,
  /* 10 */ 'r', 'd', 32, '%', 't', 'b', 'r', ',', 32, 0,
  /* 20 */ 'r', 'd', 32, '%', 'p', 's', 'r', ',', 32, 0,
  /* 30 */ 'f', 's', 'r', 'c', '1', 32, 0,
  /* 37 */ 'f', 'a', 'n', 'd', 'n', 'o', 't', '1', 32, 0,
  /* 47 */ 'f', 'n', 'o', 't', '1', 32, 0,
  /* 54 */ 'f', 'o', 'r', 'n', 'o', 't', '1', 32, 0,
  /* 63 */ 'f', 's', 'r', 'a', '3', '2', 32, 0,
  /* 71 */ 'f', 'p', 's', 'u', 'b', '3', '2', 32, 0,
  /* 80 */ 'f', 'p', 'a', 'd', 'd', '3', '2', 32, 0,
  /* 89 */ 'e', 'd', 'g', 'e', '3', '2', 32, 0,
  /* 97 */ 'f', 'c', 'm', 'p', 'l', 'e', '3', '2', 32, 0,
  /* 107 */ 'f', 'c', 'm', 'p', 'n', 'e', '3', '2', 32, 0,
  /* 117 */ 'f', 'p', 'a', 'c', 'k', '3', '2', 32, 0,
  /* 126 */ 'c', 'm', 'a', 's', 'k', '3', '2', 32, 0,
  /* 135 */ 'f', 's', 'l', 'l', '3', '2', 32, 0,
  /* 143 */ 'f', 's', 'r', 'l', '3', '2', 32, 0,
  /* 151 */ 'f', 'c', 'm', 'p', 'e', 'q', '3', '2', 32, 0,
  /* 161 */ 'f', 's', 'l', 'a', 's', '3', '2', 32, 0,
  /* 170 */ 'f', 'c', 'm', 'p', 'g', 't', '3', '2', 32, 0,
  /* 180 */ 'a', 'r', 'r', 'a', 'y', '3', '2', 32, 0,
  /* 189 */ 'f', 's', 'r', 'c', '2', 32, 0,
  /* 196 */ 'f', 'a', 'n', 'd', 'n', 'o', 't', '2', 32, 0,
  /* 206 */ 'f', 'n', 'o', 't', '2', 32, 0,
  /* 213 */ 'f', 'o', 'r', 'n', 'o', 't', '2', 32, 0,
  /* 222 */ 'f', 'p', 'a', 'd', 'd', '6', '4', 32, 0,
  /* 231 */ 'f', 's', 'r', 'a', '1', '6', 32, 0,
  /* 239 */ 'f', 'p', 's', 'u', 'b', '1', '6', 32, 0,
  /* 248 */ 'f', 'p', 'a', 'd', 'd', '1', '6', 32, 0,
  /* 257 */ 'e', 'd', 'g', 'e', '1', '6', 32, 0,
  /* 265 */ 'f', 'c', 'm', 'p', 'l', 'e', '1', '6', 32, 0,
  /* 275 */ 'f', 'c', 'm', 'p', 'n', 'e', '1', '6', 32, 0,
  /* 285 */ 'f', 'p', 'a', 'c', 'k', '1', '6', 32, 0,
  /* 294 */ 'c', 'm', 'a', 's', 'k', '1', '6', 32, 0,
  /* 303 */ 'f', 's', 'l', 'l', '1', '6', 32, 0,
  /* 311 */ 'f', 's', 'r', 'l', '1', '6', 32, 0,
  /* 319 */ 'f', 'c', 'h', 'k', 's', 'm', '1', '6', 32, 0,
  /* 329 */ 'f', 'm', 'e', 'a', 'n', '1', '6', 32, 0,
  /* 338 */ 'f', 'c', 'm', 'p', 'e', 'q', '1', '6', 32, 0,
  /* 348 */ 'f', 's', 'l', 'a', 's', '1', '6', 32, 0,
  /* 357 */ 'f', 'c', 'm', 'p', 'g', 't', '1', '6', 32, 0,
  /* 367 */ 'f', 'm', 'u', 'l', '8', 'x', '1', '6', 32, 0,
  /* 377 */ 'f', 'm', 'u', 'l', 'd', '8', 'u', 'l', 'x', '1', '6', 32, 0,
  /* 390 */ 'f', 'm', 'u', 'l', '8', 'u', 'l', 'x', '1', '6', 32, 0,
  /* 402 */ 'f', 'm', 'u', 'l', 'd', '8', 's', 'u', 'x', '1', '6', 32, 0,
  /* 415 */ 'f', 'm', 'u', 'l', '8', 's', 'u', 'x', '1', '6', 32, 0,
  /* 427 */ 'a', 'r', 'r', 'a', 'y', '1', '6', 32, 0,
  /* 436 */ 'e', 'd', 'g', 'e', '8', 32, 0,
  /* 443 */ 'c', 'm', 'a', 's', 'k', '8', 32, 0,
  /* 451 */ 'a', 'r', 'r', 'a', 'y', '8', 32, 0,
  /* 459 */ '!', 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'D', 'O', 'W', 'N', 32, 0,
  /* 478 */ '!', 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'U', 'P', 32, 0,
  /* 495 */ 'f', 'p', 's', 'u', 'b', '3', '2', 'S', 32, 0,
  /* 505 */ 'f', 'p', 's', 'u', 'b', '1', '6', 'S', 32, 0,
  /* 515 */ 'b', 'r', 'g', 'e', 'z', ',', 'a', 32, 0,
  /* 524 */ 'b', 'r', 'l', 'e', 'z', ',', 'a', 32, 0,
  /* 533 */ 'b', 'r', 'g', 'z', ',', 'a', 32, 0,
  /* 541 */ 'b', 'r', 'l', 'z', ',', 'a', 32, 0,
  /* 549 */ 'b', 'r', 'n', 'z', ',', 'a', 32, 0,
  /* 557 */ 'b', 'r', 'z', ',', 'a', 32, 0,
  /* 564 */ 's', 't', 'b', 'a', 32, 0,
  /* 570 */ 's', 't', 'd', 'a', 32, 0,
  /* 576 */ 's', 't', 'h', 'a', 32, 0,
  /* 582 */ 's', 't', 'q', 'a', 32, 0,
  /* 588 */ 's', 'r', 'a', 32, 0,
  /* 593 */ 'f', 'a', 'l', 'i', 'g', 'n', 'd', 'a', 't', 'a', 32, 0,
  /* 605 */ 's', 't', 'a', 32, 0,
  /* 610 */ 's', 't', 'b', 32, 0,
  /* 615 */ 's', 'u', 'b', 32, 0,
  /* 620 */ 's', 'm', 'a', 'c', 32, 0,
  /* 626 */ 'u', 'm', 'a', 'c', 32, 0,
  /* 632 */ 't', 's', 'u', 'b', 'c', 'c', 32, 0,
  /* 640 */ 'a', 'd', 'd', 'x', 'c', 'c', 'c', 32, 0,
  /* 649 */ 't', 'a', 'd', 'd', 'c', 'c', 32, 0,
  /* 657 */ 'a', 'n', 'd', 'c', 'c', 32, 0,
  /* 664 */ 's', 'm', 'u', 'l', 'c', 'c', 32, 0,
  /* 672 */ 'u', 'm', 'u', 'l', 'c', 'c', 32, 0,
  /* 680 */ 'a', 'n', 'd', 'n', 'c', 'c', 32, 0,
  /* 688 */ 'o', 'r', 'n', 'c', 'c', 32, 0,
  /* 695 */ 'x', 'n', 'o', 'r', 'c', 'c', 32, 0,
  /* 703 */ 'x', 'o', 'r', 'c', 'c', 32, 0,
  /* 710 */ 'm', 'u', 'l', 's', 'c', 'c', 32, 0,
  /* 718 */ 's', 'd', 'i', 'v', 'c', 'c', 32, 0,
  /* 726 */ 'u', 'd', 'i', 'v', 'c', 'c', 32, 0,
  /* 734 */ 's', 'u', 'b', 'x', 'c', 'c', 32, 0,
  /* 742 */ 'a', 'd', 'd', 'x', 'c', 'c', 32, 0,
  /* 750 */ 'p', 'o', 'p', 'c', 32, 0,
  /* 756 */ 'a', 'd', 'd', 'x', 'c', 32, 0,
  /* 763 */ 'f', 's', 'u', 'b', 'd', 32, 0,
  /* 770 */ 'f', 'h', 's', 'u', 'b', 'd', 32, 0,
  /* 778 */ 'a', 'd', 'd', 32, 0,
  /* 783 */ 'f', 'a', 'd', 'd', 'd', 32, 0,
  /* 790 */ 'f', 'h', 'a', 'd', 'd', 'd', 32, 0,
  /* 798 */ 'f', 'n', 'h', 'a', 'd', 'd', 'd', 32, 0,
  /* 807 */ 'f', 'n', 'a', 'd', 'd', 'd', 32, 0,
  /* 815 */ 'f', 'c', 'm', 'p', 'e', 'd', 32, 0,
  /* 823 */ 'f', 'n', 'e', 'g', 'd', 32, 0,
  /* 830 */ 'f', 'm', 'u', 'l', 'd', 32, 0,
  /* 837 */ 'f', 's', 'm', 'u', 'l', 'd', 32, 0,
  /* 845 */ 'f', 'a', 'n', 'd', 32, 0,
  /* 851 */ 'f', 'n', 'a', 'n', 'd', 32, 0,
  /* 858 */ 'f', 'e', 'x', 'p', 'a', 'n', 'd', 32, 0,
  /* 867 */ 'f', 'i', 't', 'o', 'd', 32, 0,
  /* 874 */ 'f', 'q', 't', 'o', 'd', 32, 0,
  /* 881 */ 'f', 's', 't', 'o', 'd', 32, 0,
  /* 888 */ 'f', 'x', 't', 'o', 'd', 32, 0,
  /* 895 */ 'f', 'c', 'm', 'p', 'd', 32, 0,
  /* 902 */ 'f', 'l', 'c', 'm', 'p', 'd', 32, 0,
  /* 910 */ 'r', 'd', 32, 0,
  /* 914 */ 'f', 'a', 'b', 's', 'd', 32, 0,
  /* 921 */ 'f', 's', 'q', 'r', 't', 'd', 32, 0,
  /* 929 */ 's', 't', 'd', 32, 0,
  /* 934 */ 'f', 'd', 'i', 'v', 'd', 32, 0,
  /* 941 */ 'f', 'm', 'o', 'v', 'd', 32, 0,
  /* 948 */ 'f', 'p', 'm', 'e', 'r', 'g', 'e', 32, 0,
  /* 957 */ 'b', 's', 'h', 'u', 'f', 'f', 'l', 'e', 32, 0,
  /* 967 */ 'f', 'o', 'n', 'e', 32, 0,
  /* 973 */ 'r', 'e', 's', 't', 'o', 'r', 'e', 32, 0,
  /* 982 */ 's', 'a', 'v', 'e', 32, 0,
  /* 988 */ 'f', 'l', 'u', 's', 'h', 32, 0,
  /* 995 */ 's', 't', 'h', 32, 0,
  /* 1000 */ 's', 'e', 't', 'h', 'i', 32, 0,
  /* 1007 */ 'u', 'm', 'u', 'l', 'x', 'h', 'i', 32, 0,
  /* 1016 */ 'x', 'm', 'u', 'l', 'x', 'h', 'i', 32, 0,
  /* 1025 */ 'f', 'd', 't', 'o', 'i', 32, 0,
  /* 1032 */ 'f', 'q', 't', 'o', 'i', 32, 0,
  /* 1039 */ 'f', 's', 't', 'o', 'i', 32, 0,
  /* 1046 */ 'b', 'm', 'a', 's', 'k', 32, 0,
  /* 1053 */ 'e', 'd', 'g', 'e', '3', '2', 'l', 32, 0,
  /* 1062 */ 'e', 'd', 'g', 'e', '1', '6', 'l', 32, 0,
  /* 1071 */ 'e', 'd', 'g', 'e', '8', 'l', 32, 0,
  /* 1079 */ 'f', 'm', 'u', 'l', '8', 'x', '1', '6', 'a', 'l', 32, 0,
  /* 1091 */ 'c', 'a', 'l', 'l', 32, 0,
  /* 1097 */ 's', 'l', 'l', 32, 0,
  /* 1102 */ 'j', 'm', 'p', 'l', 32, 0,
  /* 1108 */ 'a', 'l', 'i', 'g', 'n', 'a', 'd', 'd', 'r', 'l', 32, 0,
  /* 1120 */ 's', 'r', 'l', 32, 0,
  /* 1125 */ 's', 'm', 'u', 'l', 32, 0,
  /* 1131 */ 'u', 'm', 'u', 'l', 32, 0,
  /* 1137 */ 'e', 'd', 'g', 'e', '3', '2', 'n', 32, 0,
  /* 1146 */ 'e', 'd', 'g', 'e', '1', '6', 'n', 32, 0,
  /* 1155 */ 'e', 'd', 'g', 'e', '8', 'n', 32, 0,
  /* 1163 */ 'a', 'n', 'd', 'n', 32, 0,
  /* 1169 */ 'e', 'd', 'g', 'e', '3', '2', 'l', 'n', 32, 0,
  /* 1179 */ 'e', 'd', 'g', 'e', '1', '6', 'l', 'n', 32, 0,
  /* 1189 */ 'e', 'd', 'g', 'e', '8', 'l', 'n', 32, 0,
  /* 1198 */ 'b', 'r', 'g', 'e', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
  /* 1210 */ 'b', 'r', 'l', 'e', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
  /* 1222 */ 'b', 'r', 'g', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
  /* 1233 */ 'b', 'r', 'l', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
  /* 1244 */ 'b', 'r', 'n', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
  /* 1255 */ 'b', 'r', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
  /* 1265 */ 'b', 'r', 'g', 'e', 'z', ',', 'p', 'n', 32, 0,
  /* 1275 */ 'b', 'r', 'l', 'e', 'z', ',', 'p', 'n', 32, 0,
  /* 1285 */ 'b', 'r', 'g', 'z', ',', 'p', 'n', 32, 0,
  /* 1294 */ 'b', 'r', 'l', 'z', ',', 'p', 'n', 32, 0,
  /* 1303 */ 'b', 'r', 'n', 'z', ',', 'p', 'n', 32, 0,
  /* 1312 */ 'b', 'r', 'z', ',', 'p', 'n', 32, 0,
  /* 1320 */ 'o', 'r', 'n', 32, 0,
  /* 1325 */ 'p', 'd', 'i', 's', 't', 'n', 32, 0,
  /* 1333 */ 'f', 'z', 'e', 'r', 'o', 32, 0,
  /* 1340 */ 'c', 'm', 'p', 32, 0,
  /* 1345 */ 'u', 'n', 'i', 'm', 'p', 32, 0,
  /* 1352 */ 'j', 'm', 'p', 32, 0,
  /* 1357 */ 'f', 's', 'u', 'b', 'q', 32, 0,
  /* 1364 */ 'f', 'a', 'd', 'd', 'q', 32, 0,
  /* 1371 */ 'f', 'c', 'm', 'p', 'e', 'q', 32, 0,
  /* 1379 */ 'f', 'n', 'e', 'g', 'q', 32, 0,
  /* 1386 */ 'f', 'd', 'm', 'u', 'l', 'q', 32, 0,
  /* 1394 */ 'f', 'm', 'u', 'l', 'q', 32, 0,
  /* 1401 */ 'f', 'd', 't', 'o', 'q', 32, 0,
  /* 1408 */ 'f', 'i', 't', 'o', 'q', 32, 0,
  /* 1415 */ 'f', 's', 't', 'o', 'q', 32, 0,
  /* 1422 */ 'f', 'x', 't', 'o', 'q', 32, 0,
  /* 1429 */ 'f', 'c', 'm', 'p', 'q', 32, 0,
  /* 1436 */ 'f', 'a', 'b', 's', 'q', 32, 0,
  /* 1443 */ 'f', 's', 'q', 'r', 't', 'q', 32, 0,
  /* 1451 */ 's', 't', 'q', 32, 0,
  /* 1456 */ 'f', 'd', 'i', 'v', 'q', 32, 0,
  /* 1463 */ 'f', 'm', 'o', 'v', 'q', 32, 0,
  /* 1470 */ 'm', 'e', 'm', 'b', 'a', 'r', 32, 0,
  /* 1478 */ 'a', 'l', 'i', 'g', 'n', 'a', 'd', 'd', 'r', 32, 0,
  /* 1489 */ 'f', 'o', 'r', 32, 0,
  /* 1494 */ 'f', 'n', 'o', 'r', 32, 0,
  /* 1500 */ 'f', 'x', 'n', 'o', 'r', 32, 0,
  /* 1507 */ 'f', 'x', 'o', 'r', 32, 0,
  /* 1513 */ 'r', 'd', 'p', 'r', 32, 0,
  /* 1519 */ 'w', 'r', 'p', 'r', 32, 0,
  /* 1525 */ 'p', 'w', 'r', 32, 0,
  /* 1530 */ 'f', 's', 'r', 'c', '1', 's', 32, 0,
  /* 1538 */ 'f', 'a', 'n', 'd', 'n', 'o', 't', '1', 's', 32, 0,
  /* 1549 */ 'f', 'n', 'o', 't', '1', 's', 32, 0,
  /* 1557 */ 'f', 'o', 'r', 'n', 'o', 't', '1', 's', 32, 0,
  /* 1567 */ 'f', 'p', 'a', 'd', 'd', '3', '2', 's', 32, 0,
  /* 1577 */ 'f', 's', 'r', 'c', '2', 's', 32, 0,
  /* 1585 */ 'f', 'a', 'n', 'd', 'n', 'o', 't', '2', 's', 32, 0,
  /* 1596 */ 'f', 'n', 'o', 't', '2', 's', 32, 0,
  /* 1604 */ 'f', 'o', 'r', 'n', 'o', 't', '2', 's', 32, 0,
  /* 1614 */ 'f', 'p', 'a', 'd', 'd', '1', '6', 's', 32, 0,
  /* 1624 */ 'f', 's', 'u', 'b', 's', 32, 0,
  /* 1631 */ 'f', 'h', 's', 'u', 'b', 's', 32, 0,
  /* 1639 */ 'f', 'a', 'd', 'd', 's', 32, 0,
  /* 1646 */ 'f', 'h', 'a', 'd', 'd', 's', 32, 0,
  /* 1654 */ 'f', 'n', 'h', 'a', 'd', 'd', 's', 32, 0,
  /* 1663 */ 'f', 'n', 'a', 'd', 'd', 's', 32, 0,
  /* 1671 */ 'f', 'a', 'n', 'd', 's', 32, 0,
  /* 1678 */ 'f', 'n', 'a', 'n', 'd', 's', 32, 0,
  /* 1686 */ 'f', 'o', 'n', 'e', 's', 32, 0,
  /* 1693 */ 'f', 'c', 'm', 'p', 'e', 's', 32, 0,
  /* 1701 */ 'f', 'n', 'e', 'g', 's', 32, 0,
  /* 1708 */ 'f', 'm', 'u', 'l', 's', 32, 0,
  /* 1715 */ 'f', 'z', 'e', 'r', 'o', 's', 32, 0,
  /* 1723 */ 'f', 'd', 't', 'o', 's', 32, 0,
  /* 1730 */ 'f', 'i', 't', 'o', 's', 32, 0,
  /* 1737 */ 'f', 'q', 't', 'o', 's', 32, 0,
  /* 1744 */ 'f', 'x', 't', 'o', 's', 32, 0,
  /* 1751 */ 'f', 'c', 'm', 'p', 's', 32, 0,
  /* 1758 */ 'f', 'l', 'c', 'm', 'p', 's', 32, 0,
  /* 1766 */ 'f', 'o', 'r', 's', 32, 0,
  /* 1772 */ 'f', 'n', 'o', 'r', 's', 32, 0,
  /* 1779 */ 'f', 'x', 'n', 'o', 'r', 's', 32, 0,
  /* 1787 */ 'f', 'x', 'o', 'r', 's', 32, 0,
  /* 1794 */ 'f', 'a', 'b', 's', 's', 32, 0,
  /* 1801 */ 'f', 's', 'q', 'r', 't', 's', 32, 0,
  /* 1809 */ 'f', 'd', 'i', 'v', 's', 32, 0,
  /* 1816 */ 'f', 'm', 'o', 'v', 's', 32, 0,
  /* 1823 */ 's', 'e', 't', 32, 0,
  /* 1828 */ 'l', 'z', 'c', 'n', 't', 32, 0,
  /* 1835 */ 'p', 'd', 'i', 's', 't', 32, 0,
  /* 1842 */ 'r', 'e', 't', 't', 32, 0,
  /* 1848 */ 'f', 'm', 'u', 'l', '8', 'x', '1', '6', 'a', 'u', 32, 0,
  /* 1860 */ 's', 'd', 'i', 'v', 32, 0,
  /* 1866 */ 'u', 'd', 'i', 'v', 32, 0,
  /* 1872 */ 't', 's', 'u', 'b', 'c', 'c', 't', 'v', 32, 0,
  /* 1882 */ 't', 'a', 'd', 'd', 'c', 'c', 't', 'v', 32, 0,
  /* 1892 */ 'm', 'o', 'v', 's', 't', 'o', 's', 'w', 32, 0,
  /* 1902 */ 'm', 'o', 'v', 's', 't', 'o', 'u', 'w', 32, 0,
  /* 1912 */ 's', 'r', 'a', 'x', 32, 0,
  /* 1918 */ 's', 'u', 'b', 'x', 32, 0,
  /* 1924 */ 'a', 'd', 'd', 'x', 32, 0,
  /* 1930 */ 'f', 'p', 'a', 'c', 'k', 'f', 'i', 'x', 32, 0,
  /* 1940 */ 's', 'l', 'l', 'x', 32, 0,
  /* 1946 */ 's', 'r', 'l', 'x', 32, 0,
  /* 1952 */ 'x', 'm', 'u', 'l', 'x', 32, 0,
  /* 1959 */ 'f', 'd', 't', 'o', 'x', 32, 0,
  /* 1966 */ 'm', 'o', 'v', 'd', 't', 'o', 'x', 32, 0,
  /* 1975 */ 'f', 'q', 't', 'o', 'x', 32, 0,
  /* 1982 */ 'f', 's', 't', 'o', 'x', 32, 0,
  /* 1989 */ 's', 't', 'x', 32, 0,
  /* 1994 */ 's', 'd', 'i', 'v', 'x', 32, 0,
  /* 2001 */ 'u', 'd', 'i', 'v', 'x', 32, 0,
  /* 2008 */ 'f', 'm', 'o', 'v', 'r', 'd', 'z', 32, 0,
  /* 2017 */ 'f', 'm', 'o', 'v', 'r', 'd', 'g', 'e', 'z', 32, 0,
  /* 2028 */ 'f', 'm', 'o', 'v', 'r', 'q', 'g', 'e', 'z', 32, 0,
  /* 2039 */ 'b', 'r', 'g', 'e', 'z', 32, 0,
  /* 2046 */ 'm', 'o', 'v', 'r', 'g', 'e', 'z', 32, 0,
  /* 2055 */ 'f', 'm', 'o', 'v', 'r', 's', 'g', 'e', 'z', 32, 0,
  /* 2066 */ 'f', 'm', 'o', 'v', 'r', 'd', 'l', 'e', 'z', 32, 0,
  /* 2077 */ 'f', 'm', 'o', 'v', 'r', 'q', 'l', 'e', 'z', 32, 0,
  /* 2088 */ 'b', 'r', 'l', 'e', 'z', 32, 0,
  /* 2095 */ 'm', 'o', 'v', 'r', 'l', 'e', 'z', 32, 0,
  /* 2104 */ 'f', 'm', 'o', 'v', 'r', 's', 'l', 'e', 'z', 32, 0,
  /* 2115 */ 'f', 'm', 'o', 'v', 'r', 'd', 'g', 'z', 32, 0,
  /* 2125 */ 'f', 'm', 'o', 'v', 'r', 'q', 'g', 'z', 32, 0,
  /* 2135 */ 'b', 'r', 'g', 'z', 32, 0,
  /* 2141 */ 'm', 'o', 'v', 'r', 'g', 'z', 32, 0,
  /* 2149 */ 'f', 'm', 'o', 'v', 'r', 's', 'g', 'z', 32, 0,
  /* 2159 */ 'f', 'm', 'o', 'v', 'r', 'd', 'l', 'z', 32, 0,
  /* 2169 */ 'f', 'm', 'o', 'v', 'r', 'q', 'l', 'z', 32, 0,
  /* 2179 */ 'b', 'r', 'l', 'z', 32, 0,
  /* 2185 */ 'm', 'o', 'v', 'r', 'l', 'z', 32, 0,
  /* 2193 */ 'f', 'm', 'o', 'v', 'r', 's', 'l', 'z', 32, 0,
  /* 2203 */ 'f', 'm', 'o', 'v', 'r', 'd', 'n', 'z', 32, 0,
  /* 2213 */ 'f', 'm', 'o', 'v', 'r', 'q', 'n', 'z', 32, 0,
  /* 2223 */ 'b', 'r', 'n', 'z', 32, 0,
  /* 2229 */ 'm', 'o', 'v', 'r', 'n', 'z', 32, 0,
  /* 2237 */ 'f', 'm', 'o', 'v', 'r', 's', 'n', 'z', 32, 0,
  /* 2247 */ 'f', 'm', 'o', 'v', 'r', 'q', 'z', 32, 0,
  /* 2256 */ 'b', 'r', 'z', 32, 0,
  /* 2261 */ 'm', 'o', 'v', 'r', 'z', 32, 0,
  /* 2268 */ 'f', 'm', 'o', 'v', 'r', 's', 'z', 32, 0,
  /* 2277 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'D', 'F', 'P', '_', 'F', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
  /* 2305 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'Q', 'F', 'P', '_', 'F', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
  /* 2333 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'F', 'P', '_', 'F', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
  /* 2360 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'I', 'n', 't', '_', 'F', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
  /* 2388 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'D', 'F', 'P', '_', 'I', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
  /* 2416 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'Q', 'F', 'P', '_', 'I', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
  /* 2444 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'F', 'P', '_', 'I', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
  /* 2471 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'I', 'n', 't', '_', 'I', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
  /* 2499 */ 'j', 'm', 'p', 32, '%', 'i', '7', '+', 0,
  /* 2508 */ 'j', 'm', 'p', 32, '%', 'o', '7', '+', 0,
  /* 2517 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'P', 'a', 't', 'c', 'h', 'a', 'b', 'l', 'e', 32, 'R', 'E', 'T', '.', 0,
  /* 2548 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'y', 'p', 'e', 'd', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
  /* 2572 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'C', 'u', 's', 't', 'o', 'm', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
  /* 2597 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'n', 't', 'e', 'r', '.', 0,
  /* 2620 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'a', 'i', 'l', 32, 'C', 'a', 'l', 'l', 32, 'E', 'x', 'i', 't', '.', 0,
  /* 2643 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'x', 'i', 't', '.', 0,
  /* 2665 */ 'f', 'l', 'u', 's', 'h', 32, '%', 'g', '0', 0,
  /* 2675 */ 't', 'a', 32, '1', 0,
  /* 2680 */ 't', 'a', 32, '3', 0,
  /* 2685 */ 't', 'a', 32, '5', 0,
  /* 2690 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0,
  /* 2703 */ 'B', 'U', 'N', 'D', 'L', 'E', 0,
  /* 2710 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0,
  /* 2720 */ 'D', 'B', 'G', '_', 'L', 'A', 'B', 'E', 'L', 0,
  /* 2730 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0,
  /* 2745 */ 's', 't', 'd', 32, '%', 'c', 'q', ',', 32, '[', 0,
  /* 2756 */ 's', 't', 'd', 32, '%', 'f', 'q', ',', 32, '[', 0,
  /* 2767 */ 's', 't', 32, '%', 'c', 's', 'r', ',', 32, '[', 0,
  /* 2778 */ 's', 't', 32, '%', 'f', 's', 'r', ',', 32, '[', 0,
  /* 2789 */ 's', 't', 'x', 32, '%', 'f', 's', 'r', ',', 32, '[', 0,
  /* 2801 */ 'l', 'd', 's', 'b', 'a', 32, '[', 0,
  /* 2809 */ 'l', 'd', 'u', 'b', 'a', 32, '[', 0,
  /* 2817 */ 'l', 'd', 's', 't', 'u', 'b', 'a', 32, '[', 0,
  /* 2827 */ 'l', 'd', 'd', 'a', 32, '[', 0,
  /* 2834 */ 'l', 'd', 'a', 32, '[', 0,
  /* 2840 */ 'l', 'd', 's', 'h', 'a', 32, '[', 0,
  /* 2848 */ 'l', 'd', 'u', 'h', 'a', 32, '[', 0,
  /* 2856 */ 's', 'w', 'a', 'p', 'a', 32, '[', 0,
  /* 2864 */ 'l', 'd', 'q', 'a', 32, '[', 0,
  /* 2871 */ 'c', 'a', 's', 'a', 32, '[', 0,
  /* 2878 */ 'l', 'd', 's', 'b', 32, '[', 0,
  /* 2885 */ 'l', 'd', 'u', 'b', 32, '[', 0,
  /* 2892 */ 'l', 'd', 's', 't', 'u', 'b', 32, '[', 0,
  /* 2901 */ 'l', 'd', 'd', 32, '[', 0,
  /* 2907 */ 'l', 'd', 32, '[', 0,
  /* 2912 */ 'l', 'd', 's', 'h', 32, '[', 0,
  /* 2919 */ 'l', 'd', 'u', 'h', 32, '[', 0,
  /* 2926 */ 's', 'w', 'a', 'p', 32, '[', 0,
  /* 2933 */ 'l', 'd', 'q', 32, '[', 0,
  /* 2939 */ 'c', 'a', 's', 32, '[', 0,
  /* 2945 */ 'l', 'd', 's', 'w', 32, '[', 0,
  /* 2952 */ 'l', 'd', 'x', 32, '[', 0,
  /* 2958 */ 'c', 'a', 's', 'x', 32, '[', 0,
  /* 2965 */ 'c', 'b', 0,
  /* 2968 */ 'f', 'b', 0,
  /* 2971 */ 'f', 'm', 'o', 'v', 'd', 0,
  /* 2977 */ '#', 32, 'F', 'E', 'n', 't', 'r', 'y', 32, 'c', 'a', 'l', 'l', 0,
  /* 2991 */ 's', 'i', 'a', 'm', 0,
  /* 2996 */ 's', 'h', 'u', 't', 'd', 'o', 'w', 'n', 0,
  /* 3005 */ 'n', 'o', 'p', 0,
  /* 3009 */ 'f', 'm', 'o', 'v', 'q', 0,
  /* 3015 */ 's', 't', 'b', 'a', 'r', 0,
  /* 3021 */ 'f', 'm', 'o', 'v', 's', 0,
  /* 3027 */ 't', 0,
  /* 3029 */ 'm', 'o', 'v', 0,
  /* 3033 */ 'f', 'l', 'u', 's', 'h', 'w', 0,
  };

  static const uint32_t OpInfo0[] = {
    0U,	// PHI
    0U,	// INLINEASM
    0U,	// CFI_INSTRUCTION
    0U,	// EH_LABEL
    0U,	// GC_LABEL
    0U,	// ANNOTATION_LABEL
    0U,	// KILL
    0U,	// EXTRACT_SUBREG
    0U,	// INSERT_SUBREG
    0U,	// IMPLICIT_DEF
    0U,	// SUBREG_TO_REG
    0U,	// COPY_TO_REGCLASS
    2711U,	// DBG_VALUE
    2721U,	// DBG_LABEL
    0U,	// REG_SEQUENCE
    0U,	// COPY
    2704U,	// BUNDLE
    2731U,	// LIFETIME_START
    2691U,	// LIFETIME_END
    0U,	// STACKMAP
    2978U,	// FENTRY_CALL
    0U,	// PATCHPOINT
    0U,	// LOAD_STACK_GUARD
    0U,	// STATEPOINT
    0U,	// LOCAL_ESCAPE
    0U,	// FAULTING_OP
    0U,	// PATCHABLE_OP
    2598U,	// PATCHABLE_FUNCTION_ENTER
    2518U,	// PATCHABLE_RET
    2644U,	// PATCHABLE_FUNCTION_EXIT
    2621U,	// PATCHABLE_TAIL_CALL
    2573U,	// PATCHABLE_EVENT_CALL
    2549U,	// PATCHABLE_TYPED_EVENT_CALL
    0U,	// ICALL_BRANCH_FUNNEL
    0U,	// G_ADD
    0U,	// G_SUB
    0U,	// G_MUL
    0U,	// G_SDIV
    0U,	// G_UDIV
    0U,	// G_SREM
    0U,	// G_UREM
    0U,	// G_AND
    0U,	// G_OR
    0U,	// G_XOR
    0U,	// G_IMPLICIT_DEF
    0U,	// G_PHI
    0U,	// G_FRAME_INDEX
    0U,	// G_GLOBAL_VALUE
    0U,	// G_EXTRACT
    0U,	// G_UNMERGE_VALUES
    0U,	// G_INSERT
    0U,	// G_MERGE_VALUES
    0U,	// G_BUILD_VECTOR
    0U,	// G_BUILD_VECTOR_TRUNC
    0U,	// G_CONCAT_VECTORS
    0U,	// G_PTRTOINT
    0U,	// G_INTTOPTR
    0U,	// G_BITCAST
    0U,	// G_INTRINSIC_TRUNC
    0U,	// G_INTRINSIC_ROUND
    0U,	// G_LOAD
    0U,	// G_SEXTLOAD
    0U,	// G_ZEXTLOAD
    0U,	// G_STORE
    0U,	// G_ATOMIC_CMPXCHG_WITH_SUCCESS
    0U,	// G_ATOMIC_CMPXCHG
    0U,	// G_ATOMICRMW_XCHG
    0U,	// G_ATOMICRMW_ADD
    0U,	// G_ATOMICRMW_SUB
    0U,	// G_ATOMICRMW_AND
    0U,	// G_ATOMICRMW_NAND
    0U,	// G_ATOMICRMW_OR
    0U,	// G_ATOMICRMW_XOR
    0U,	// G_ATOMICRMW_MAX
    0U,	// G_ATOMICRMW_MIN
    0U,	// G_ATOMICRMW_UMAX
    0U,	// G_ATOMICRMW_UMIN
    0U,	// G_BRCOND
    0U,	// G_BRINDIRECT
    0U,	// G_INTRINSIC
    0U,	// G_INTRINSIC_W_SIDE_EFFECTS
    0U,	// G_ANYEXT
    0U,	// G_TRUNC
    0U,	// G_CONSTANT
    0U,	// G_FCONSTANT
    0U,	// G_VASTART
    0U,	// G_VAARG
    0U,	// G_SEXT
    0U,	// G_ZEXT
    0U,	// G_SHL
    0U,	// G_LSHR
    0U,	// G_ASHR
    0U,	// G_ICMP
    0U,	// G_FCMP
    0U,	// G_SELECT
    0U,	// G_UADDO
    0U,	// G_UADDE
    0U,	// G_USUBO
    0U,	// G_USUBE
    0U,	// G_SADDO
    0U,	// G_SADDE
    0U,	// G_SSUBO
    0U,	// G_SSUBE
    0U,	// G_UMULO
    0U,	// G_SMULO
    0U,	// G_UMULH
    0U,	// G_SMULH
    0U,	// G_FADD
    0U,	// G_FSUB
    0U,	// G_FMUL
    0U,	// G_FMA
    0U,	// G_FDIV
    0U,	// G_FREM
    0U,	// G_FPOW
    0U,	// G_FEXP
    0U,	// G_FEXP2
    0U,	// G_FLOG
    0U,	// G_FLOG2
    0U,	// G_FLOG10
    0U,	// G_FNEG
    0U,	// G_FPEXT
    0U,	// G_FPTRUNC
    0U,	// G_FPTOSI
    0U,	// G_FPTOUI
    0U,	// G_SITOFP
    0U,	// G_UITOFP
    0U,	// G_FABS
    0U,	// G_GEP
    0U,	// G_PTR_MASK
    0U,	// G_BR
    0U,	// G_INSERT_VECTOR_ELT
    0U,	// G_EXTRACT_VECTOR_ELT
    0U,	// G_SHUFFLE_VECTOR
    0U,	// G_CTTZ
    0U,	// G_CTTZ_ZERO_UNDEF
    0U,	// G_CTLZ
    0U,	// G_CTLZ_ZERO_UNDEF
    0U,	// G_CTPOP
    0U,	// G_BSWAP
    0U,	// G_FCEIL
    0U,	// G_ADDRSPACE_CAST
    0U,	// G_BLOCK_ADDR
    4556U,	// ADJCALLSTACKDOWN
    70111U,	// ADJCALLSTACKUP
    8202U,	// GETPCX
    2278U,	// SELECT_CC_DFP_FCC
    2389U,	// SELECT_CC_DFP_ICC
    2334U,	// SELECT_CC_FP_FCC
    2445U,	// SELECT_CC_FP_ICC
    2361U,	// SELECT_CC_Int_FCC
    2472U,	// SELECT_CC_Int_ICC
    2306U,	// SELECT_CC_QFP_FCC
    2417U,	// SELECT_CC_QFP_ICC
    2111264U,	// SET
    4207243U,	// ADDCCri
    4207243U,	// ADDCCrr
    4208517U,	// ADDCri
    4208517U,	// ADDCrr
    4207335U,	// ADDEri
    4207335U,	// ADDErr
    4207349U,	// ADDXC
    4207233U,	// ADDXCCC
    4207371U,	// ADDXri
    4207371U,	// ADDXrr
    4207371U,	// ADDri
    4207371U,	// ADDrr
    4208071U,	// ALIGNADDR
    4207701U,	// ALIGNADDRL
    4207250U,	// ANDCCri
    4207250U,	// ANDCCrr
    4207273U,	// ANDNCCri
    4207273U,	// ANDNCCrr
    4207756U,	// ANDNri
    4207756U,	// ANDNrr
    4207756U,	// ANDXNrr
    4207439U,	// ANDXri
    4207439U,	// ANDXrr
    4207439U,	// ANDri
    4207439U,	// ANDrr
    4207020U,	// ARRAY16
    4206773U,	// ARRAY32
    4207044U,	// ARRAY8
    70199U,	// BA
    2247575U,	// BCOND
    2313111U,	// BCONDA
    87369U,	// BINDri
    87369U,	// BINDrr
    4207639U,	// BMASK
    4344729U,	// BPFCC
    4410265U,	// BPFCCA
    281497U,	// BPFCCANT
    347033U,	// BPFCCNT
    5295U,	// BPGEZapn
    4612U,	// BPGEZapt
    5362U,	// BPGEZnapn
    6136U,	// BPGEZnapt
    5319U,	// BPGZapn
    4630U,	// BPGZapt
    5382U,	// BPGZnapn
    6232U,	// BPGZnapt
    2509719U,	// BPICC
    478103U,	// BPICCA
    543639U,	// BPICCANT
    609175U,	// BPICCNT
    5307U,	// BPLEZapn
    4621U,	// BPLEZapt
    5372U,	// BPLEZnapn
    6185U,	// BPLEZnapt
    5330U,	// BPLZapn
    4638U,	// BPLZapt
    5391U,	// BPLZnapn
    6276U,	// BPLZnapt
    5341U,	// BPNZapn
    4646U,	// BPNZapt
    5400U,	// BPNZnapn
    6320U,	// BPNZnapt
    2771863U,	// BPXCC
    740247U,	// BPXCCA
    805783U,	// BPXCCANT
    871319U,	// BPXCCNT
    5352U,	// BPZapn
    4654U,	// BPZapt
    5409U,	// BPZnapn
    6353U,	// BPZnapt
    4207550U,	// BSHUFFLE
    70724U,	// CALL
    87108U,	// CALLri
    87108U,	// CALLrr
    932664U,	// CASAasi10
    7289656U,	// CASArr
    5258127U,	// CASXrr
    5258108U,	// CASrr
    2247574U,	// CBCOND
    2313110U,	// CBCONDA
    69927U,	// CMASK16
    69759U,	// CMASK32
    70076U,	// CMASK8
    5437U,	// CMPri
    5437U,	// CMPrr
    4206850U,	// EDGE16
    4207655U,	// EDGE16L
    4207772U,	// EDGE16LN
    4207739U,	// EDGE16N
    4206682U,	// EDGE32
    4207646U,	// EDGE32L
    4207762U,	// EDGE32LN
    4207730U,	// EDGE32N
    4207029U,	// EDGE8
    4207664U,	// EDGE8L
    4207782U,	// EDGE8LN
    4207748U,	// EDGE8N
    2110355U,	// FABSD
    2110877U,	// FABSQ
    2111235U,	// FABSS
    4207376U,	// FADDD
    4207957U,	// FADDQ
    4208232U,	// FADDS
    4207186U,	// FALIGNADATA
    4207438U,	// FAND
    4206630U,	// FANDNOT1
    4208131U,	// FANDNOT1S
    4206789U,	// FANDNOT2
    4208178U,	// FANDNOT2S
    4208264U,	// FANDS
    2247577U,	// FBCOND
    2313113U,	// FBCONDA
    4206912U,	// FCHKSM16
    4992U,	// FCMPD
    4206931U,	// FCMPEQ16
    4206744U,	// FCMPEQ32
    4206950U,	// FCMPGT16
    4206763U,	// FCMPGT32
    4206858U,	// FCMPLE16
    4206690U,	// FCMPLE32
    4206868U,	// FCMPNE16
    4206700U,	// FCMPNE32
    5526U,	// FCMPQ
    5848U,	// FCMPS
    4207527U,	// FDIVD
    4208049U,	// FDIVQ
    4208402U,	// FDIVS
    4207979U,	// FDMULQ
    2110466U,	// FDTOI
    2110842U,	// FDTOQ
    2111164U,	// FDTOS
    2111400U,	// FDTOX
    2110299U,	// FEXPAND
    4207383U,	// FHADDD
    4208239U,	// FHADDS
    4207363U,	// FHSUBD
    4208224U,	// FHSUBS
    2110308U,	// FITOD
    2110849U,	// FITOQ
    2111171U,	// FITOS
    16782215U,	// FLCMPD
    16783071U,	// FLCMPS
    2666U,	// FLUSH
    3034U,	// FLUSHW
    87005U,	// FLUSHri
    87005U,	// FLUSHrr
    4206922U,	// FMEAN16
    2110382U,	// FMOVD
    1141660U,	// FMOVD_FCC
    151415708U,	// FMOVD_ICC
    151677852U,	// FMOVD_XCC
    2110904U,	// FMOVQ
    1141698U,	// FMOVQ_FCC
    151415746U,	// FMOVQ_ICC
    151677890U,	// FMOVQ_XCC
    4208610U,	// FMOVRGEZD
    4208621U,	// FMOVRGEZQ
    4208648U,	// FMOVRGEZS
    4208708U,	// FMOVRGZD
    4208718U,	// FMOVRGZQ
    4208742U,	// FMOVRGZS
    4208659U,	// FMOVRLEZD
    4208670U,	// FMOVRLEZQ
    4208697U,	// FMOVRLEZS
    4208752U,	// FMOVRLZD
    4208762U,	// FMOVRLZQ
    4208786U,	// FMOVRLZS
    4208796U,	// FMOVRNZD
    4208806U,	// FMOVRNZQ
    4208830U,	// FMOVRNZS
    4208601U,	// FMOVRZD
    4208840U,	// FMOVRZQ
    4208861U,	// FMOVRZS
    2111257U,	// FMOVS
    1141710U,	// FMOVS_FCC
    151415758U,	// FMOVS_ICC
    151677902U,	// FMOVS_XCC
    4207008U,	// FMUL8SUX16
    4206983U,	// FMUL8ULX16
    4206960U,	// FMUL8X16
    4207672U,	// FMUL8X16AL
    4208441U,	// FMUL8X16AU
    4207423U,	// FMULD
    4206995U,	// FMULD8SUX16
    4206970U,	// FMULD8ULX16
    4207987U,	// FMULQ
    4208301U,	// FMULS
    4207400U,	// FNADDD
    4208256U,	// FNADDS
    4207444U,	// FNAND
    4208271U,	// FNANDS
    2110264U,	// FNEGD
    2110820U,	// FNEGQ
    2111142U,	// FNEGS
    4207391U,	// FNHADDD
    4208247U,	// FNHADDS
    4207391U,	// FNMULD
    4208247U,	// FNMULS
    4208087U,	// FNOR
    4208365U,	// FNORS
    2109488U,	// FNOT1
    2110990U,	// FNOT1S
    2109647U,	// FNOT2
    2111037U,	// FNOT2S
    4208247U,	// FNSMULD
    70600U,	// FONE
    71319U,	// FONES
    4208082U,	// FOR
    4206647U,	// FORNOT1
    4208150U,	// FORNOT1S
    4206806U,	// FORNOT2
    4208197U,	// FORNOT2S
    4208359U,	// FORS
    2109726U,	// FPACK16
    4206710U,	// FPACK32
    2111371U,	// FPACKFIX
    4206841U,	// FPADD16
    4208207U,	// FPADD16S
    4206673U,	// FPADD32
    4208160U,	// FPADD32S
    4206815U,	// FPADD64
    4207541U,	// FPMERGE
    4206832U,	// FPSUB16
    4207098U,	// FPSUB16S
    4206664U,	// FPSUB32
    4207088U,	// FPSUB32S
    2110315U,	// FQTOD
    2110473U,	// FQTOI
    2111178U,	// FQTOS
    2111416U,	// FQTOX
    4206941U,	// FSLAS16
    4206754U,	// FSLAS32
    4206896U,	// FSLL16
    4206728U,	// FSLL32
    4207430U,	// FSMULD
    2110362U,	// FSQRTD
    2110884U,	// FSQRTQ
    2111242U,	// FSQRTS
    4206824U,	// FSRA16
    4206656U,	// FSRA32
    2109471U,	// FSRC1
    2110971U,	// FSRC1S
    2109630U,	// FSRC2
    2111018U,	// FSRC2S
    4206904U,	// FSRL16
    4206736U,	// FSRL32
    2110322U,	// FSTOD
    2110480U,	// FSTOI
    2110856U,	// FSTOQ
    2111423U,	// FSTOX
    4207356U,	// FSUBD
    4207950U,	// FSUBQ
    4208217U,	// FSUBS
    4208093U,	// FXNOR
    4208372U,	// FXNORS
    4208100U,	// FXOR
    4208380U,	// FXORS
    2110329U,	// FXTOD
    2110863U,	// FXTOQ
    2111185U,	// FXTOS
    70966U,	// FZERO
    71348U,	// FZEROS
    2126927U,	// JMPLri
    2126927U,	// JMPLrr
    160398099U,	// LDArr
    1203036U,	// LDCSRri
    1203036U,	// LDCSRrr
    3177308U,	// LDCri
    3177308U,	// LDCrr
    160398092U,	// LDDArr
    3177302U,	// LDDCri
    3177302U,	// LDDCrr
    160398092U,	// LDDFArr
    3177302U,	// LDDFri
    3177302U,	// LDDFrr
    3177302U,	// LDDri
    3177302U,	// LDDrr
    160398099U,	// LDFArr
    1268572U,	// LDFSRri
    1268572U,	// LDFSRrr
    3177308U,	// LDFri
    3177308U,	// LDFrr
    160398129U,	// LDQFArr
    3177334U,	// LDQFri
    3177334U,	// LDQFrr
    160398066U,	// LDSBArr
    3177279U,	// LDSBri
    3177279U,	// LDSBrr
    160398105U,	// LDSHArr
    3177313U,	// LDSHri
    3177313U,	// LDSHrr
    160398082U,	// LDSTUBArr
    3177293U,	// LDSTUBri
    3177293U,	// LDSTUBrr
    3177346U,	// LDSWri
    3177346U,	// LDSWrr
    160398074U,	// LDUBArr
    3177286U,	// LDUBri
    3177286U,	// LDUBrr
    160398113U,	// LDUHArr
    3177320U,	// LDUHri
    3177320U,	// LDUHrr
    1268617U,	// LDXFSRri
    1268617U,	// LDXFSRrr
    3177353U,	// LDXri
    3177353U,	// LDXrr
    3177308U,	// LDri
    3177308U,	// LDrr
    33547U,	// LEAX_ADDri
    33547U,	// LEA_ADDri
    2111269U,	// LZCNT
    38335U,	// MEMBARi
    2111407U,	// MOVDTOX
    1141718U,	// MOVFCCri
    1141718U,	// MOVFCCrr
    151415766U,	// MOVICCri
    151415766U,	// MOVICCrr
    4208639U,	// MOVRGEZri
    4208639U,	// MOVRGEZrr
    4208734U,	// MOVRGZri
    4208734U,	// MOVRGZrr
    4208688U,	// MOVRLEZri
    4208688U,	// MOVRLEZrr
    4208778U,	// MOVRLZri
    4208778U,	// MOVRLZrr
    4208822U,	// MOVRNZri
    4208822U,	// MOVRNZrr
    4208854U,	// MOVRRZri
    4208854U,	// MOVRRZrr
    2111333U,	// MOVSTOSW
    2111343U,	// MOVSTOUW
    2111407U,	// MOVWTOS
    151677910U,	// MOVXCCri
    151677910U,	// MOVXCCrr
    2111407U,	// MOVXTOD
    4207303U,	// MULSCCri
    4207303U,	// MULSCCrr
    4208546U,	// MULXri
    4208546U,	// MULXrr
    3006U,	// NOP
    4207290U,	// ORCCri
    4207290U,	// ORCCrr
    4207281U,	// ORNCCri
    4207281U,	// ORNCCrr
    4207913U,	// ORNri
    4207913U,	// ORNrr
    4207913U,	// ORXNrr
    4208083U,	// ORXri
    4208083U,	// ORXrr
    4208083U,	// ORri
    4208083U,	// ORrr
    4208428U,	// PDIST
    4207918U,	// PDISTN
    2110191U,	// POPCrr
    33560054U,	// PWRPSRri
    33560054U,	// PWRPSRrr
    2110351U,	// RDASR
    2110954U,	// RDPR
    69653U,	// RDPSR
    69643U,	// RDTBR
    69633U,	// RDWIM
    4207566U,	// RESTOREri
    4207566U,	// RESTORErr
    72132U,	// RET
    72141U,	// RETL
    87859U,	// RETTri
    87859U,	// RETTrr
    4207575U,	// SAVEri
    4207575U,	// SAVErr
    4207311U,	// SDIVCCri
    4207311U,	// SDIVCCrr
    4208587U,	// SDIVXri
    4208587U,	// SDIVXrr
    4208453U,	// SDIVri
    4208453U,	// SDIVrr
    2110441U,	// SETHIXi
    2110441U,	// SETHIi
    2997U,	// SHUTDOWN
    2992U,	// SIAM
    4208533U,	// SLLXri
    4208533U,	// SLLXrr
    4207690U,	// SLLri
    4207690U,	// SLLrr
    4207213U,	// SMACri
    4207213U,	// SMACrr
    4207257U,	// SMULCCri
    4207257U,	// SMULCCrr
    4207718U,	// SMULri
    4207718U,	// SMULrr
    4208505U,	// SRAXri
    4208505U,	// SRAXrr
    4207181U,	// SRAri
    4207181U,	// SRArr
    4208539U,	// SRLXri
    4208539U,	// SRLXrr
    4207713U,	// SRLri
    4207713U,	// SRLrr
    9413214U,	// STArr
    3016U,	// STBAR
    9413173U,	// STBArr
    1352291U,	// STBri
    1352291U,	// STBrr
    1333968U,	// STCSRri
    1333968U,	// STCSRrr
    1353519U,	// STCri
    1353519U,	// STCrr
    9413179U,	// STDArr
    1333946U,	// STDCQri
    1333946U,	// STDCQrr
    1352610U,	// STDCri
    1352610U,	// STDCrr
    9413179U,	// STDFArr
    1333957U,	// STDFQri
    1333957U,	// STDFQrr
    1352610U,	// STDFri
    1352610U,	// STDFrr
    1352610U,	// STDri
    1352610U,	// STDrr
    9413214U,	// STFArr
    1333979U,	// STFSRri
    1333979U,	// STFSRrr
    1353519U,	// STFri
    1353519U,	// STFrr
    9413185U,	// STHArr
    1352676U,	// STHri
    1352676U,	// STHrr
    9413191U,	// STQFArr
    1353132U,	// STQFri
    1353132U,	// STQFrr
    1333990U,	// STXFSRri
    1333990U,	// STXFSRrr
    1353670U,	// STXri
    1353670U,	// STXrr
    1353519U,	// STri
    1353519U,	// STrr
    4207226U,	// SUBCCri
    4207226U,	// SUBCCrr
    4208511U,	// SUBCri
    4208511U,	// SUBCrr
    4207327U,	// SUBEri
    4207327U,	// SUBErr
    4207208U,	// SUBXri
    4207208U,	// SUBXrr
    4207208U,	// SUBri
    4207208U,	// SUBrr
    160398121U,	// SWAPArr
    3177327U,	// SWAPri
    3177327U,	// SWAPrr
    2676U,	// TA1
    2681U,	// TA3
    2686U,	// TA5
    4208475U,	// TADDCCTVri
    4208475U,	// TADDCCTVrr
    4207242U,	// TADDCCri
    4207242U,	// TADDCCrr
    52870100U,	// TICCri
    52870100U,	// TICCrr
    289420043U,	// TLS_ADDXrr
    289420043U,	// TLS_ADDrr
    5188U,	// TLS_CALL
    288390025U,	// TLS_LDXrr
    288389980U,	// TLS_LDrr
    52607956U,	// TRAPri
    52607956U,	// TRAPrr
    4208465U,	// TSUBCCTVri
    4208465U,	// TSUBCCTVrr
    4207225U,	// TSUBCCri
    4207225U,	// TSUBCCrr
    53132244U,	// TXCCri
    53132244U,	// TXCCrr
    4207319U,	// UDIVCCri
    4207319U,	// UDIVCCrr
    4208594U,	// UDIVXri
    4208594U,	// UDIVXrr
    4208459U,	// UDIVri
    4208459U,	// UDIVrr
    4207219U,	// UMACri
    4207219U,	// UMACrr
    4207265U,	// UMULCCri
    4207265U,	// UMULCCrr
    4207600U,	// UMULXHI
    4207724U,	// UMULri
    4207724U,	// UMULrr
    70978U,	// UNIMP
    16782208U,	// V9FCMPD
    16782128U,	// V9FCMPED
    16782684U,	// V9FCMPEQ
    16783006U,	// V9FCMPES
    16782742U,	// V9FCMPQ
    16783064U,	// V9FCMPS
    52124U,	// V9FMOVD_FCC
    52162U,	// V9FMOVQ_FCC
    52174U,	// V9FMOVS_FCC
    52182U,	// V9MOVFCCri
    52182U,	// V9MOVFCCrr
    4208119U,	// WRASRri
    4208119U,	// WRASRrr
    4208112U,	// WRPRri
    4208112U,	// WRPRrr
    33560055U,	// WRPSRri
    33560055U,	// WRPSRrr
    67114487U,	// WRTBRri
    67114487U,	// WRTBRrr
    83891703U,	// WRWIMri
    83891703U,	// WRWIMrr
    4208545U,	// XMULX
    4207609U,	// XMULXHI
    4207288U,	// XNORCCri
    4207288U,	// XNORCCrr
    4208094U,	// XNORXrr
    4208094U,	// XNORri
    4208094U,	// XNORrr
    4207296U,	// XORCCri
    4207296U,	// XORCCrr
    4208101U,	// XORXri
    4208101U,	// XORXrr
    4208101U,	// XORri
    4208101U,	// XORrr
  };

  O << "\t";

  // Emit the opcode for the instruction.
  uint32_t Bits = 0;
  Bits |= OpInfo0[MI->getOpcode()] << 0;
  assert(Bits != 0 && "Cannot print this instruction.");
  O << AsmStrs+(Bits & 4095)-1;


  // Fragment 0 encoded into 4 bits for 13 unique commands.
  switch ((Bits >> 12) & 15) {
  default: llvm_unreachable("Invalid command number.");
  case 0:
    // DBG_VALUE, DBG_LABEL, BUNDLE, LIFETIME_START, LIFETIME_END, FENTRY_CAL...
    return;
    break;
  case 1:
    // ADJCALLSTACKDOWN, ADJCALLSTACKUP, BA, BPGEZapn, BPGEZapt, BPGEZnapn, B...
    printOperand(MI, 0, STI, O);
    break;
  case 2:
    // GETPCX
    printGetPCX(MI, 0, STI, O);
    return;
    break;
  case 3:
    // SET, ADDCCri, ADDCCrr, ADDCri, ADDCrr, ADDEri, ADDErr, ADDXC, ADDXCCC,...
    printOperand(MI, 1, STI, O);
    break;
  case 4:
    // BCOND, BCONDA, BPFCC, BPFCCA, BPFCCANT, BPFCCNT, BPICC, BPICCA, BPICCA...
    printCCOperand(MI, 1, STI, O);
    break;
  case 5:
    // BINDri, BINDrr, CALLri, CALLrr, FLUSHri, FLUSHrr, LDCSRri, LDCSRrr, LD...
    printMemOperand(MI, 0, STI, O);
    break;
  case 6:
    // FMOVD_FCC, FMOVD_ICC, FMOVD_XCC, FMOVQ_FCC, FMOVQ_ICC, FMOVQ_XCC, FMOV...
    printCCOperand(MI, 3, STI, O);
    break;
  case 7:
    // JMPLri, JMPLrr, LDArr, LDCri, LDCrr, LDDArr, LDDCri, LDDCrr, LDDFArr, ...
    printMemOperand(MI, 1, STI, O);
    break;
  case 8:
    // LEAX_ADDri, LEA_ADDri
    printMemOperand(MI, 1, STI, O, "arith");
    O << ", ";
    printOperand(MI, 0, STI, O);
    return;
    break;
  case 9:
    // MEMBARi
    printMembarTag(MI, 0, STI, O);
    return;
    break;
  case 10:
    // STArr, STBArr, STBri, STBrr, STCri, STCrr, STDArr, STDCri, STDCrr, STD...
    printOperand(MI, 2, STI, O);
    O << ", [";
    printMemOperand(MI, 0, STI, O);
    break;
  case 11:
    // TICCri, TICCrr, TRAPri, TRAPrr, TXCCri, TXCCrr
    printCCOperand(MI, 2, STI, O);
    break;
  case 12:
    // V9FMOVD_FCC, V9FMOVQ_FCC, V9FMOVS_FCC, V9MOVFCCri, V9MOVFCCrr
    printCCOperand(MI, 4, STI, O);
    O << ' ';
    printOperand(MI, 1, STI, O);
    O << ", ";
    printOperand(MI, 2, STI, O);
    O << ", ";
    printOperand(MI, 0, STI, O);
    return;
    break;
  }


  // Fragment 1 encoded into 5 bits for 21 unique commands.
  switch ((Bits >> 16) & 31) {
  default: llvm_unreachable("Invalid command number.");
  case 0:
    // ADJCALLSTACKDOWN, SET, ADDCCri, ADDCCrr, ADDCri, ADDCrr, ADDEri, ADDEr...
    O << ", ";
    break;
  case 1:
    // ADJCALLSTACKUP, BA, BINDri, BINDrr, CALL, CALLri, CALLrr, CMASK16, CMA...
    return;
    break;
  case 2:
    // BCOND, BPFCC, CBCOND, FBCOND, TRAPri, TRAPrr
    O << ' ';
    break;
  case 3:
    // BCONDA, BPFCCA, CBCONDA, FBCONDA
    O << ",a ";
    break;
  case 4:
    // BPFCCANT
    O << ",a,pn ";
    printOperand(MI, 2, STI, O);
    O << ", ";
    printOperand(MI, 0, STI, O);
    return;
    break;
  case 5:
    // BPFCCNT
    O << ",pn ";
    printOperand(MI, 2, STI, O);
    O << ", ";
    printOperand(MI, 0, STI, O);
    return;
    break;
  case 6:
    // BPICC, FMOVD_ICC, FMOVQ_ICC, FMOVS_ICC, MOVICCri, MOVICCrr, TICCri, TI...
    O << " %icc, ";
    break;
  case 7:
    // BPICCA
    O << ",a %icc, ";
    printOperand(MI, 0, STI, O);
    return;
    break;
  case 8:
    // BPICCANT
    O << ",a,pn %icc, ";
    printOperand(MI, 0, STI, O);
    return;
    break;
  case 9:
    // BPICCNT
    O << ",pn %icc, ";
    printOperand(MI, 0, STI, O);
    return;
    break;
  case 10:
    // BPXCC, FMOVD_XCC, FMOVQ_XCC, FMOVS_XCC, MOVXCCri, MOVXCCrr, TXCCri, TX...
    O << " %xcc, ";
    break;
  case 11:
    // BPXCCA
    O << ",a %xcc, ";
    printOperand(MI, 0, STI, O);
    return;
    break;
  case 12:
    // BPXCCANT
    O << ",a,pn %xcc, ";
    printOperand(MI, 0, STI, O);
    return;
    break;
  case 13:
    // BPXCCNT
    O << ",pn %xcc, ";
    printOperand(MI, 0, STI, O);
    return;
    break;
  case 14:
    // CASAasi10
    O << "] 10, ";
    printOperand(MI, 2, STI, O);
    O << ", ";
    printOperand(MI, 0, STI, O);
    return;
    break;
  case 15:
    // CASArr, LDArr, LDDArr, LDDFArr, LDFArr, LDQFArr, LDSBArr, LDSHArr, LDS...
    O << "] ";
    break;
  case 16:
    // CASXrr, CASrr, LDCri, LDCrr, LDDCri, LDDCrr, LDDFri, LDDFrr, LDDri, LD...
    O << "], ";
    break;
  case 17:
    // FMOVD_FCC, FMOVQ_FCC, FMOVS_FCC, MOVFCCri, MOVFCCrr
    O << " %fcc0, ";
    printOperand(MI, 1, STI, O);
    O << ", ";
    printOperand(MI, 0, STI, O);
    return;
    break;
  case 18:
    // LDCSRri, LDCSRrr
    O << "], %csr";
    return;
    break;
  case 19:
    // LDFSRri, LDFSRrr, LDXFSRri, LDXFSRrr
    O << "], %fsr";
    return;
    break;
  case 20:
    // STBri, STBrr, STCSRri, STCSRrr, STCri, STCrr, STDCQri, STDCQrr, STDCri...
    O << ']';
    return;
    break;
  }


  // Fragment 2 encoded into 3 bits for 5 unique commands.
  switch ((Bits >> 21) & 7) {
  default: llvm_unreachable("Invalid command number.");
  case 0:
    // ADJCALLSTACKDOWN, BPGEZapn, BPGEZapt, BPGEZnapn, BPGEZnapt, BPGZapn, B...
    printOperand(MI, 1, STI, O);
    break;
  case 1:
    // SET, BCOND, BCONDA, BPICC, BPXCC, CBCOND, CBCONDA, FABSD, FABSQ, FABSS...
    printOperand(MI, 0, STI, O);
    break;
  case 2:
    // ADDCCri, ADDCCrr, ADDCri, ADDCrr, ADDEri, ADDErr, ADDXC, ADDXCCC, ADDX...
    printOperand(MI, 2, STI, O);
    O << ", ";
    printOperand(MI, 0, STI, O);
    break;
  case 3:
    // CASArr
    printOperand(MI, 4, STI, O);
    O << ", ";
    printOperand(MI, 2, STI, O);
    O << ", ";
    printOperand(MI, 0, STI, O);
    return;
    break;
  case 4:
    // LDArr, LDDArr, LDDFArr, LDFArr, LDQFArr, LDSBArr, LDSHArr, LDSTUBArr, ...
    printOperand(MI, 3, STI, O);
    break;
  }


  // Fragment 3 encoded into 3 bits for 6 unique commands.
  switch ((Bits >> 24) & 7) {
  default: llvm_unreachable("Invalid command number.");
  case 0:
    // ADJCALLSTACKDOWN, SET, ADDCCri, ADDCCrr, ADDCri, ADDCrr, ADDEri, ADDEr...
    return;
    break;
  case 1:
    // FLCMPD, FLCMPS, FMOVD_ICC, FMOVD_XCC, FMOVQ_ICC, FMOVQ_XCC, FMOVS_ICC,...
    O << ", ";
    break;
  case 2:
    // PWRPSRri, PWRPSRrr, WRPSRri, WRPSRrr
    O << ", %psr";
    return;
    break;
  case 3:
    // TICCri, TICCrr, TRAPri, TRAPrr, TXCCri, TXCCrr
    O << " + ";
    printOperand(MI, 1, STI, O);
    return;
    break;
  case 4:
    // WRTBRri, WRTBRrr
    O << ", %tbr";
    return;
    break;
  case 5:
    // WRWIMri, WRWIMrr
    O << ", %wim";
    return;
    break;
  }


  // Fragment 4 encoded into 2 bits for 3 unique commands.
  switch ((Bits >> 27) & 3) {
  default: llvm_unreachable("Invalid command number.");
  case 0:
    // FLCMPD, FLCMPS, V9FCMPD, V9FCMPED, V9FCMPEQ, V9FCMPES, V9FCMPQ, V9FCMP...
    printOperand(MI, 2, STI, O);
    return;
    break;
  case 1:
    // FMOVD_ICC, FMOVD_XCC, FMOVQ_ICC, FMOVQ_XCC, FMOVS_ICC, FMOVS_XCC, LDAr...
    printOperand(MI, 0, STI, O);
    return;
    break;
  case 2:
    // TLS_ADDXrr, TLS_ADDrr, TLS_LDXrr, TLS_LDrr
    printOperand(MI, 3, STI, O);
    return;
    break;
  }

}


/// getRegisterName - This method is automatically generated by tblgen
/// from the register set description.  This returns the assembler name
/// for the specified register.
const char *SparcInstPrinter::getRegisterName(unsigned RegNo) {
  assert(RegNo && RegNo < 236 && "Invalid register number!");

  static const char AsmStrs[] = {
  /* 0 */ 'C', '1', '0', 0,
  /* 4 */ 'F', '1', '0', 0,
  /* 8 */ 'A', 'S', 'R', '1', '0', 0,
  /* 14 */ 'C', '2', '0', 0,
  /* 18 */ 'F', '2', '0', 0,
  /* 22 */ 'A', 'S', 'R', '2', '0', 0,
  /* 28 */ 'C', '3', '0', 0,
  /* 32 */ 'F', '3', '0', 0,
  /* 36 */ 'A', 'S', 'R', '3', '0', 0,
  /* 42 */ 'F', '4', '0', 0,
  /* 46 */ 'F', '5', '0', 0,
  /* 50 */ 'F', '6', '0', 0,
  /* 54 */ 'F', 'C', 'C', '0', 0,
  /* 59 */ 'F', '0', 0,
  /* 62 */ 'G', '0', 0,
  /* 65 */ 'I', '0', 0,
  /* 68 */ 'L', '0', 0,
  /* 71 */ 'O', '0', 0,
  /* 74 */ 'C', '1', '1', 0,
  /* 78 */ 'F', '1', '1', 0,
  /* 82 */ 'A', 'S', 'R', '1', '1', 0,
  /* 88 */ 'C', '2', '1', 0,
  /* 92 */ 'F', '2', '1', 0,
  /* 96 */ 'A', 'S', 'R', '2', '1', 0,
  /* 102 */ 'C', '3', '1', 0,
  /* 106 */ 'F', '3', '1', 0,
  /* 110 */ 'A', 'S', 'R', '3', '1', 0,
  /* 116 */ 'F', 'C', 'C', '1', 0,
  /* 121 */ 'F', '1', 0,
  /* 124 */ 'G', '1', 0,
  /* 127 */ 'I', '1', 0,
  /* 130 */ 'L', '1', 0,
  /* 133 */ 'O', '1', 0,
  /* 136 */ 'A', 'S', 'R', '1', 0,
  /* 141 */ 'C', '1', '2', 0,
  /* 145 */ 'F', '1', '2', 0,
  /* 149 */ 'A', 'S', 'R', '1', '2', 0,
  /* 155 */ 'C', '2', '2', 0,
  /* 159 */ 'F', '2', '2', 0,
  /* 163 */ 'A', 'S', 'R', '2', '2', 0,
  /* 169 */ 'F', '3', '2', 0,
  /* 173 */ 'F', '4', '2', 0,
  /* 177 */ 'F', '5', '2', 0,
  /* 181 */ 'F', '6', '2', 0,
  /* 185 */ 'F', 'C', 'C', '2', 0,
  /* 190 */ 'F', '2', 0,
  /* 193 */ 'G', '2', 0,
  /* 196 */ 'I', '2', 0,
  /* 199 */ 'L', '2', 0,
  /* 202 */ 'O', '2', 0,
  /* 205 */ 'A', 'S', 'R', '2', 0,
  /* 210 */ 'C', '1', '3', 0,
  /* 214 */ 'F', '1', '3', 0,
  /* 218 */ 'A', 'S', 'R', '1', '3', 0,
  /* 224 */ 'C', '2', '3', 0,
  /* 228 */ 'F', '2', '3', 0,
  /* 232 */ 'A', 'S', 'R', '2', '3', 0,
  /* 238 */ 'F', 'C', 'C', '3', 0,
  /* 243 */ 'F', '3', 0,
  /* 246 */ 'G', '3', 0,
  /* 249 */ 'I', '3', 0,
  /* 252 */ 'L', '3', 0,
  /* 255 */ 'O', '3', 0,
  /* 258 */ 'A', 'S', 'R', '3', 0,
  /* 263 */ 'C', '1', '4', 0,
  /* 267 */ 'F', '1', '4', 0,
  /* 271 */ 'A', 'S', 'R', '1', '4', 0,
  /* 277 */ 'C', '2', '4', 0,
  /* 281 */ 'F', '2', '4', 0,
  /* 285 */ 'A', 'S', 'R', '2', '4', 0,
  /* 291 */ 'F', '3', '4', 0,
  /* 295 */ 'F', '4', '4', 0,
  /* 299 */ 'F', '5', '4', 0,
  /* 303 */ 'C', '4', 0,
  /* 306 */ 'F', '4', 0,
  /* 309 */ 'G', '4', 0,
  /* 312 */ 'I', '4', 0,
  /* 315 */ 'L', '4', 0,
  /* 318 */ 'O', '4', 0,
  /* 321 */ 'A', 'S', 'R', '4', 0,
  /* 326 */ 'C', '1', '5', 0,
  /* 330 */ 'F', '1', '5', 0,
  /* 334 */ 'A', 'S', 'R', '1', '5', 0,
  /* 340 */ 'C', '2', '5', 0,
  /* 344 */ 'F', '2', '5', 0,
  /* 348 */ 'A', 'S', 'R', '2', '5', 0,
  /* 354 */ 'C', '5', 0,
  /* 357 */ 'F', '5', 0,
  /* 360 */ 'G', '5', 0,
  /* 363 */ 'I', '5', 0,
  /* 366 */ 'L', '5', 0,
  /* 369 */ 'O', '5', 0,
  /* 372 */ 'A', 'S', 'R', '5', 0,
  /* 377 */ 'C', '1', '6', 0,
  /* 381 */ 'F', '1', '6', 0,
  /* 385 */ 'A', 'S', 'R', '1', '6', 0,
  /* 391 */ 'C', '2', '6', 0,
  /* 395 */ 'F', '2', '6', 0,
  /* 399 */ 'A', 'S', 'R', '2', '6', 0,
  /* 405 */ 'F', '3', '6', 0,
  /* 409 */ 'F', '4', '6', 0,
  /* 413 */ 'F', '5', '6', 0,
  /* 417 */ 'C', '6', 0,
  /* 420 */ 'F', '6', 0,
  /* 423 */ 'G', '6', 0,
  /* 426 */ 'I', '6', 0,
  /* 429 */ 'L', '6', 0,
  /* 432 */ 'O', '6', 0,
  /* 435 */ 'A', 'S', 'R', '6', 0,
  /* 440 */ 'C', '1', '7', 0,
  /* 444 */ 'F', '1', '7', 0,
  /* 448 */ 'A', 'S', 'R', '1', '7', 0,
  /* 454 */ 'C', '2', '7', 0,
  /* 458 */ 'F', '2', '7', 0,
  /* 462 */ 'A', 'S', 'R', '2', '7', 0,
  /* 468 */ 'C', '7', 0,
  /* 471 */ 'F', '7', 0,
  /* 474 */ 'G', '7', 0,
  /* 477 */ 'I', '7', 0,
  /* 480 */ 'L', '7', 0,
  /* 483 */ 'O', '7', 0,
  /* 486 */ 'A', 'S', 'R', '7', 0,
  /* 491 */ 'C', '1', '8', 0,
  /* 495 */ 'F', '1', '8', 0,
  /* 499 */ 'A', 'S', 'R', '1', '8', 0,
  /* 505 */ 'C', '2', '8', 0,
  /* 509 */ 'F', '2', '8', 0,
  /* 513 */ 'A', 'S', 'R', '2', '8', 0,
  /* 519 */ 'F', '3', '8', 0,
  /* 523 */ 'F', '4', '8', 0,
  /* 527 */ 'F', '5', '8', 0,
  /* 531 */ 'C', '8', 0,
  /* 534 */ 'F', '8', 0,
  /* 537 */ 'A', 'S', 'R', '8', 0,
  /* 542 */ 'C', '1', '9', 0,
  /* 546 */ 'F', '1', '9', 0,
  /* 550 */ 'A', 'S', 'R', '1', '9', 0,
  /* 556 */ 'C', '2', '9', 0,
  /* 560 */ 'F', '2', '9', 0,
  /* 564 */ 'A', 'S', 'R', '2', '9', 0,
  /* 570 */ 'C', '9', 0,
  /* 573 */ 'F', '9', 0,
  /* 576 */ 'A', 'S', 'R', '9', 0,
  /* 581 */ 'T', 'B', 'A', 0,
  /* 585 */ 'I', 'C', 'C', 0,
  /* 589 */ 'T', 'N', 'P', 'C', 0,
  /* 594 */ 'T', 'P', 'C', 0,
  /* 598 */ 'C', 'A', 'N', 'R', 'E', 'S', 'T', 'O', 'R', 'E', 0,
  /* 609 */ 'P', 'S', 'T', 'A', 'T', 'E', 0,
  /* 616 */ 'T', 'S', 'T', 'A', 'T', 'E', 0,
  /* 623 */ 'W', 'S', 'T', 'A', 'T', 'E', 0,
  /* 630 */ 'C', 'A', 'N', 'S', 'A', 'V', 'E', 0,
  /* 638 */ 'T', 'I', 'C', 'K', 0,
  /* 643 */ 'P', 'I', 'L', 0,
  /* 647 */ 'T', 'L', 0,
  /* 650 */ 'W', 'I', 'M', 0,
  /* 654 */ 'C', 'L', 'E', 'A', 'N', 'W', 'I', 'N', 0,
  /* 663 */ 'O', 'T', 'H', 'E', 'R', 'W', 'I', 'N', 0,
  /* 672 */ 'F', 'P', 0,
  /* 675 */ 'S', 'P', 0,
  /* 678 */ 'C', 'W', 'P', 0,
  /* 682 */ 'F', 'Q', 0,
  /* 685 */ 'C', 'P', 'Q', 0,
  /* 689 */ 'T', 'B', 'R', 0,
  /* 693 */ 'F', 'S', 'R', 0,
  /* 697 */ 'C', 'P', 'S', 'R', 0,
  /* 702 */ 'T', 'T', 0,
  /* 705 */ 'Y', 0,
  };

  static const uint16_t RegAsmOffset[] = {
    598, 630, 654, 685, 697, 678, 682, 693, 585, 663, 643, 698, 609, 581, 
    689, 638, 647, 589, 594, 616, 702, 650, 623, 705, 136, 205, 258, 321, 
    372, 435, 486, 537, 576, 8, 82, 149, 218, 271, 334, 385, 448, 499, 
    550, 22, 96, 163, 232, 285, 348, 399, 462, 513, 564, 36, 110, 56, 
    118, 187, 240, 303, 354, 417, 468, 531, 570, 0, 74, 141, 210, 263, 
    326, 377, 440, 491, 542, 14, 88, 155, 224, 277, 340, 391, 454, 505, 
    556, 28, 102, 59, 190, 306, 420, 534, 4, 145, 267, 381, 495, 18, 
    159, 281, 395, 509, 32, 169, 291, 405, 519, 42, 173, 295, 409, 523, 
    46, 177, 299, 413, 527, 50, 181, 59, 121, 190, 243, 306, 357, 420, 
    471, 534, 573, 4, 78, 145, 214, 267, 330, 381, 444, 495, 546, 18, 
    92, 159, 228, 281, 344, 395, 458, 509, 560, 32, 106, 54, 116, 185, 
    238, 62, 124, 193, 246, 309, 360, 423, 474, 65, 127, 196, 249, 312, 
    363, 672, 477, 68, 130, 199, 252, 315, 366, 429, 480, 71, 133, 202, 
    255, 318, 369, 675, 483, 59, 306, 534, 145, 381, 18, 281, 509, 169, 
    405, 42, 295, 523, 177, 413, 50, 56, 187, 303, 417, 531, 0, 141, 
    263, 377, 491, 14, 155, 277, 391, 505, 28, 62, 193, 309, 423, 65, 
    196, 312, 426, 68, 199, 315, 429, 71, 202, 318, 432, 
  };

  assert (*(AsmStrs+RegAsmOffset[RegNo-1]) &&
          "Invalid alt name index for register!");
  return AsmStrs+RegAsmOffset[RegNo-1];
}

#ifdef PRINT_ALIAS_INSTR
#undef PRINT_ALIAS_INSTR

bool SparcInstPrinter::printAliasInstr(const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &OS) {
  const char *AsmString;
  switch (MI->getOpcode()) {
  default: return false;
  case SP::BCOND:
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 8) {
      // (BCOND brtarget:$imm, { 1, 0, 0, 0 })
      AsmString = "ba $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 0) {
      // (BCOND brtarget:$imm, { 0, 0, 0, 0 })
      AsmString = "bn $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 9) {
      // (BCOND brtarget:$imm, { 1, 0, 0, 1 })
      AsmString = "bne $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 1) {
      // (BCOND brtarget:$imm, { 0, 0, 0, 1 })
      AsmString = "be $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 10) {
      // (BCOND brtarget:$imm, { 1, 0, 1, 0 })
      AsmString = "bg $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 2) {
      // (BCOND brtarget:$imm, { 0, 0, 1, 0 })
      AsmString = "ble $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 11) {
      // (BCOND brtarget:$imm, { 1, 0, 1, 1 })
      AsmString = "bge $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 3) {
      // (BCOND brtarget:$imm, { 0, 0, 1, 1 })
      AsmString = "bl $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 12) {
      // (BCOND brtarget:$imm, { 1, 1, 0, 0 })
      AsmString = "bgu $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 4) {
      // (BCOND brtarget:$imm, { 0, 1, 0, 0 })
      AsmString = "bleu $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 13) {
      // (BCOND brtarget:$imm, { 1, 1, 0, 1 })
      AsmString = "bcc $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 5) {
      // (BCOND brtarget:$imm, { 0, 1, 0, 1 })
      AsmString = "bcs $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 14) {
      // (BCOND brtarget:$imm, { 1, 1, 1, 0 })
      AsmString = "bpos $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 6) {
      // (BCOND brtarget:$imm, { 0, 1, 1, 0 })
      AsmString = "bneg $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 15) {
      // (BCOND brtarget:$imm, { 1, 1, 1, 1 })
      AsmString = "bvc $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 7) {
      // (BCOND brtarget:$imm, { 0, 1, 1, 1 })
      AsmString = "bvs $\x01";
      break;
    }
    return false;
  case SP::BCONDA:
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 8) {
      // (BCONDA brtarget:$imm, { 1, 0, 0, 0 })
      AsmString = "ba,a $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 0) {
      // (BCONDA brtarget:$imm, { 0, 0, 0, 0 })
      AsmString = "bn,a $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 9) {
      // (BCONDA brtarget:$imm, { 1, 0, 0, 1 })
      AsmString = "bne,a $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 1) {
      // (BCONDA brtarget:$imm, { 0, 0, 0, 1 })
      AsmString = "be,a $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 10) {
      // (BCONDA brtarget:$imm, { 1, 0, 1, 0 })
      AsmString = "bg,a $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 2) {
      // (BCONDA brtarget:$imm, { 0, 0, 1, 0 })
      AsmString = "ble,a $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 11) {
      // (BCONDA brtarget:$imm, { 1, 0, 1, 1 })
      AsmString = "bge,a $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 3) {
      // (BCONDA brtarget:$imm, { 0, 0, 1, 1 })
      AsmString = "bl,a $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 12) {
      // (BCONDA brtarget:$imm, { 1, 1, 0, 0 })
      AsmString = "bgu,a $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 4) {
      // (BCONDA brtarget:$imm, { 0, 1, 0, 0 })
      AsmString = "bleu,a $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 13) {
      // (BCONDA brtarget:$imm, { 1, 1, 0, 1 })
      AsmString = "bcc,a $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 5) {
      // (BCONDA brtarget:$imm, { 0, 1, 0, 1 })
      AsmString = "bcs,a $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 14) {
      // (BCONDA brtarget:$imm, { 1, 1, 1, 0 })
      AsmString = "bpos,a $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 6) {
      // (BCONDA brtarget:$imm, { 0, 1, 1, 0 })
      AsmString = "bneg,a $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 15) {
      // (BCONDA brtarget:$imm, { 1, 1, 1, 1 })
      AsmString = "bvc,a $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 7) {
      // (BCONDA brtarget:$imm, { 0, 1, 1, 1 })
      AsmString = "bvs,a $\x01";
      break;
    }
    return false;
  case SP::BPFCCANT:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 8 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 1, 0, 0, 0 }, FCCRegs:$cc)
      AsmString = "fba,a,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 0 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 0, 0, 0, 0 }, FCCRegs:$cc)
      AsmString = "fbn,a,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 7 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 0, 1, 1, 1 }, FCCRegs:$cc)
      AsmString = "fbu,a,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 6 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 0, 1, 1, 0 }, FCCRegs:$cc)
      AsmString = "fbg,a,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 5 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 0, 1, 0, 1 }, FCCRegs:$cc)
      AsmString = "fbug,a,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 4 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 0, 1, 0, 0 }, FCCRegs:$cc)
      AsmString = "fbl,a,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 3 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 0, 0, 1, 1 }, FCCRegs:$cc)
      AsmString = "fbul,a,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 2 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 0, 0, 1, 0 }, FCCRegs:$cc)
      AsmString = "fblg,a,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 1 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 0, 0, 0, 1 }, FCCRegs:$cc)
      AsmString = "fbne,a,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 9 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 1, 0, 0, 1 }, FCCRegs:$cc)
      AsmString = "fbe,a,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 10 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 1, 0, 1, 0 }, FCCRegs:$cc)
      AsmString = "fbue,a,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 11 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 1, 0, 1, 1 }, FCCRegs:$cc)
      AsmString = "fbge,a,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 12 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 1, 1, 0, 0 }, FCCRegs:$cc)
      AsmString = "fbuge,a,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 13 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 1, 1, 0, 1 }, FCCRegs:$cc)
      AsmString = "fble,a,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 14 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 1, 1, 1, 0 }, FCCRegs:$cc)
      AsmString = "fbule,a,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 15 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCANT brtarget:$imm, { 1, 1, 1, 1 }, FCCRegs:$cc)
      AsmString = "fbo,a,pn $\x03, $\x01";
      break;
    }
    return false;
  case SP::BPFCCNT:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 8 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 1, 0, 0, 0 }, FCCRegs:$cc)
      AsmString = "fba,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 0 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 0, 0, 0, 0 }, FCCRegs:$cc)
      AsmString = "fbn,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 7 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 0, 1, 1, 1 }, FCCRegs:$cc)
      AsmString = "fbu,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 6 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 0, 1, 1, 0 }, FCCRegs:$cc)
      AsmString = "fbg,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 5 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 0, 1, 0, 1 }, FCCRegs:$cc)
      AsmString = "fbug,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 4 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 0, 1, 0, 0 }, FCCRegs:$cc)
      AsmString = "fbl,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 3 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 0, 0, 1, 1 }, FCCRegs:$cc)
      AsmString = "fbul,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 2 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 0, 0, 1, 0 }, FCCRegs:$cc)
      AsmString = "fblg,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 1 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 0, 0, 0, 1 }, FCCRegs:$cc)
      AsmString = "fbne,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 9 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 1, 0, 0, 1 }, FCCRegs:$cc)
      AsmString = "fbe,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 10 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 1, 0, 1, 0 }, FCCRegs:$cc)
      AsmString = "fbue,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 11 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 1, 0, 1, 1 }, FCCRegs:$cc)
      AsmString = "fbge,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 12 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 1, 1, 0, 0 }, FCCRegs:$cc)
      AsmString = "fbuge,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 13 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 1, 1, 0, 1 }, FCCRegs:$cc)
      AsmString = "fble,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 14 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 1, 1, 1, 0 }, FCCRegs:$cc)
      AsmString = "fbule,pn $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 15 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPFCCNT brtarget:$imm, { 1, 1, 1, 1 }, FCCRegs:$cc)
      AsmString = "fbo,pn $\x03, $\x01";
      break;
    }
    return false;
  case SP::BPICCANT:
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 1, 0, 0, 0 })
      AsmString = "ba,a,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 0, 0, 0, 0 })
      AsmString = "bn,a,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 1, 0, 0, 1 })
      AsmString = "bne,a,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 0, 0, 0, 1 })
      AsmString = "be,a,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 1, 0, 1, 0 })
      AsmString = "bg,a,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 0, 0, 1, 0 })
      AsmString = "ble,a,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 1, 0, 1, 1 })
      AsmString = "bge,a,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 0, 0, 1, 1 })
      AsmString = "bl,a,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 1, 1, 0, 0 })
      AsmString = "bgu,a,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 0, 1, 0, 0 })
      AsmString = "bleu,a,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 1, 1, 0, 1 })
      AsmString = "bcc,a,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 0, 1, 0, 1 })
      AsmString = "bcs,a,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 1, 1, 1, 0 })
      AsmString = "bpos,a,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 0, 1, 1, 0 })
      AsmString = "bneg,a,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 1, 1, 1, 1 })
      AsmString = "bvc,a,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCANT brtarget:$imm, { 0, 1, 1, 1 })
      AsmString = "bvs,a,pn %icc, $\x01";
      break;
    }
    return false;
  case SP::BPICCNT:
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 1, 0, 0, 0 })
      AsmString = "ba,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 0, 0, 0, 0 })
      AsmString = "bn,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 1, 0, 0, 1 })
      AsmString = "bne,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 0, 0, 0, 1 })
      AsmString = "be,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 1, 0, 1, 0 })
      AsmString = "bg,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 0, 0, 1, 0 })
      AsmString = "ble,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 1, 0, 1, 1 })
      AsmString = "bge,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 0, 0, 1, 1 })
      AsmString = "bl,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 1, 1, 0, 0 })
      AsmString = "bgu,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 0, 1, 0, 0 })
      AsmString = "bleu,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 1, 1, 0, 1 })
      AsmString = "bcc,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 0, 1, 0, 1 })
      AsmString = "bcs,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 1, 1, 1, 0 })
      AsmString = "bpos,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 0, 1, 1, 0 })
      AsmString = "bneg,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 1, 1, 1, 1 })
      AsmString = "bvc,pn %icc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (BPICCNT brtarget:$imm, { 0, 1, 1, 1 })
      AsmString = "bvs,pn %icc, $\x01";
      break;
    }
    return false;
  case SP::BPXCCANT:
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 8) {
      // (BPXCCANT brtarget:$imm, { 1, 0, 0, 0 })
      AsmString = "ba,a,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 0) {
      // (BPXCCANT brtarget:$imm, { 0, 0, 0, 0 })
      AsmString = "bn,a,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 9) {
      // (BPXCCANT brtarget:$imm, { 1, 0, 0, 1 })
      AsmString = "bne,a,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 1) {
      // (BPXCCANT brtarget:$imm, { 0, 0, 0, 1 })
      AsmString = "be,a,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 10) {
      // (BPXCCANT brtarget:$imm, { 1, 0, 1, 0 })
      AsmString = "bg,a,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 2) {
      // (BPXCCANT brtarget:$imm, { 0, 0, 1, 0 })
      AsmString = "ble,a,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 11) {
      // (BPXCCANT brtarget:$imm, { 1, 0, 1, 1 })
      AsmString = "bge,a,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 3) {
      // (BPXCCANT brtarget:$imm, { 0, 0, 1, 1 })
      AsmString = "bl,a,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 12) {
      // (BPXCCANT brtarget:$imm, { 1, 1, 0, 0 })
      AsmString = "bgu,a,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 4) {
      // (BPXCCANT brtarget:$imm, { 0, 1, 0, 0 })
      AsmString = "bleu,a,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 13) {
      // (BPXCCANT brtarget:$imm, { 1, 1, 0, 1 })
      AsmString = "bcc,a,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 5) {
      // (BPXCCANT brtarget:$imm, { 0, 1, 0, 1 })
      AsmString = "bcs,a,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 14) {
      // (BPXCCANT brtarget:$imm, { 1, 1, 1, 0 })
      AsmString = "bpos,a,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 6) {
      // (BPXCCANT brtarget:$imm, { 0, 1, 1, 0 })
      AsmString = "bneg,a,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 15) {
      // (BPXCCANT brtarget:$imm, { 1, 1, 1, 1 })
      AsmString = "bvc,a,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 7) {
      // (BPXCCANT brtarget:$imm, { 0, 1, 1, 1 })
      AsmString = "bvs,a,pn %xcc, $\x01";
      break;
    }
    return false;
  case SP::BPXCCNT:
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 8) {
      // (BPXCCNT brtarget:$imm, { 1, 0, 0, 0 })
      AsmString = "ba,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 0) {
      // (BPXCCNT brtarget:$imm, { 0, 0, 0, 0 })
      AsmString = "bn,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 9) {
      // (BPXCCNT brtarget:$imm, { 1, 0, 0, 1 })
      AsmString = "bne,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 1) {
      // (BPXCCNT brtarget:$imm, { 0, 0, 0, 1 })
      AsmString = "be,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 10) {
      // (BPXCCNT brtarget:$imm, { 1, 0, 1, 0 })
      AsmString = "bg,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 2) {
      // (BPXCCNT brtarget:$imm, { 0, 0, 1, 0 })
      AsmString = "ble,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 11) {
      // (BPXCCNT brtarget:$imm, { 1, 0, 1, 1 })
      AsmString = "bge,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 3) {
      // (BPXCCNT brtarget:$imm, { 0, 0, 1, 1 })
      AsmString = "bl,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 12) {
      // (BPXCCNT brtarget:$imm, { 1, 1, 0, 0 })
      AsmString = "bgu,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 4) {
      // (BPXCCNT brtarget:$imm, { 0, 1, 0, 0 })
      AsmString = "bleu,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 13) {
      // (BPXCCNT brtarget:$imm, { 1, 1, 0, 1 })
      AsmString = "bcc,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 5) {
      // (BPXCCNT brtarget:$imm, { 0, 1, 0, 1 })
      AsmString = "bcs,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 14) {
      // (BPXCCNT brtarget:$imm, { 1, 1, 1, 0 })
      AsmString = "bpos,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 6) {
      // (BPXCCNT brtarget:$imm, { 0, 1, 1, 0 })
      AsmString = "bneg,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 15) {
      // (BPXCCNT brtarget:$imm, { 1, 1, 1, 1 })
      AsmString = "bvc,pn %xcc, $\x01";
      break;
    }
    if (MI->getNumOperands() == 2 &&
        MI->getOperand(1).isImm() &&
        MI->getOperand(1).getImm() == 7) {
      // (BPXCCNT brtarget:$imm, { 0, 1, 1, 1 })
      AsmString = "bvs,pn %xcc, $\x01";
      break;
    }
    return false;
  case SP::FMOVD_ICC:
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "fmovda %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "fmovdn %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "fmovdne %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "fmovde %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "fmovdg %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "fmovdle %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "fmovdge %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "fmovdl %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "fmovdgu %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "fmovdleu %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "fmovdcc %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "fmovdcs %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "fmovdpos %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "fmovdneg %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "fmovdvc %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "fmovdvs %icc, $\x02, $\x01";
      break;
    }
    return false;
  case SP::FMOVD_XCC:
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 8) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "fmovda %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 0) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "fmovdn %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 9) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "fmovdne %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 1) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "fmovde %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 10) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "fmovdg %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 2) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "fmovdle %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 11) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "fmovdge %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 3) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "fmovdl %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 12) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "fmovdgu %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 4) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "fmovdleu %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 13) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "fmovdcc %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 5) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "fmovdcs %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 14) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "fmovdpos %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 6) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "fmovdneg %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 15) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "fmovdvc %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 7) {
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "fmovdvs %xcc, $\x02, $\x01";
      break;
    }
    return false;
  case SP::FMOVQ_ICC:
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "fmovqa %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "fmovqn %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "fmovqne %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "fmovqe %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "fmovqg %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "fmovqle %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "fmovqge %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "fmovql %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "fmovqgu %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "fmovqleu %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "fmovqcc %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "fmovqcs %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "fmovqpos %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "fmovqneg %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "fmovqvc %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "fmovqvs %icc, $\x02, $\x01";
      break;
    }
    return false;
  case SP::FMOVQ_XCC:
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 8) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "fmovqa %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 0) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "fmovqn %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 9) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "fmovqne %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 1) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "fmovqe %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 10) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "fmovqg %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 2) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "fmovqle %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 11) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "fmovqge %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 3) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "fmovql %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 12) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "fmovqgu %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 4) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "fmovqleu %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 13) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "fmovqcc %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 5) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "fmovqcs %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 14) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "fmovqpos %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 6) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "fmovqneg %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 15) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "fmovqvc %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 7) {
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "fmovqvs %xcc, $\x02, $\x01";
      break;
    }
    return false;
  case SP::FMOVS_ICC:
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "fmovsa %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "fmovsn %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "fmovsne %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "fmovse %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "fmovsg %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "fmovsle %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "fmovsge %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "fmovsl %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "fmovsgu %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "fmovsleu %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "fmovscc %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "fmovscs %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "fmovspos %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "fmovsneg %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "fmovsvc %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "fmovsvs %icc, $\x02, $\x01";
      break;
    }
    return false;
  case SP::FMOVS_XCC:
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 8) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "fmovsa %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 0) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "fmovsn %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 9) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "fmovsne %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 1) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "fmovse %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 10) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "fmovsg %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 2) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "fmovsle %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 11) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "fmovsge %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 3) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "fmovsl %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 12) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "fmovsgu %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 4) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "fmovsleu %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 13) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "fmovscc %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 5) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "fmovscs %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 14) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "fmovspos %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 6) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "fmovsneg %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 15) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "fmovsvc %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 7) {
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "fmovsvs %xcc, $\x02, $\x01";
      break;
    }
    return false;
  case SP::MOVICCri:
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 0, 0 })
      AsmString = "mova %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 0, 0 })
      AsmString = "movn %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 0, 1 })
      AsmString = "movne %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 0, 1 })
      AsmString = "move %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 1, 0 })
      AsmString = "movg %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 1, 0 })
      AsmString = "movle %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 1, 1 })
      AsmString = "movge %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 1, 1 })
      AsmString = "movl %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 0, 0 })
      AsmString = "movgu %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 0, 0 })
      AsmString = "movleu %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 0, 1 })
      AsmString = "movcc %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 0, 1 })
      AsmString = "movcs %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 1, 0 })
      AsmString = "movpos %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 1, 0 })
      AsmString = "movneg %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 1, 1 })
      AsmString = "movvc %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 1, 1 })
      AsmString = "movvs %icc, $\x02, $\x01";
      break;
    }
    return false;
  case SP::MOVICCrr:
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "mova %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "movn %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "movne %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "move %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "movg %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "movle %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "movge %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "movl %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "movgu %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "movleu %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "movcc %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "movcs %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "movpos %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "movneg %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "movvc %icc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "movvs %icc, $\x02, $\x01";
      break;
    }
    return false;
  case SP::MOVXCCri:
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 8) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 0, 0 })
      AsmString = "mova %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 0) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 0, 0 })
      AsmString = "movn %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 9) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 0, 1 })
      AsmString = "movne %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 1) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 0, 1 })
      AsmString = "move %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 10) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 1, 0 })
      AsmString = "movg %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 2) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 1, 0 })
      AsmString = "movle %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 11) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 1, 1 })
      AsmString = "movge %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 3) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 1, 1 })
      AsmString = "movl %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 12) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 0, 0 })
      AsmString = "movgu %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 4) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 0, 0 })
      AsmString = "movleu %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 13) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 0, 1 })
      AsmString = "movcc %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 5) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 0, 1 })
      AsmString = "movcs %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 14) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 1, 0 })
      AsmString = "movpos %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 6) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 1, 0 })
      AsmString = "movneg %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 15) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 1, 1 })
      AsmString = "movvc %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 7) {
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 1, 1 })
      AsmString = "movvs %xcc, $\x02, $\x01";
      break;
    }
    return false;
  case SP::MOVXCCrr:
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 8) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "mova %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 0) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "movn %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 9) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "movne %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 1) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "move %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 10) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "movg %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 2) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "movle %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 11) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "movge %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 3) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "movl %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 12) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "movgu %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 4) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "movleu %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 13) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "movcc %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 5) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "movcs %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 14) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "movpos %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 6) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "movneg %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 15) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "movvc %xcc, $\x02, $\x01";
      break;
    }
    if (MI->getNumOperands() == 4 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(3).isImm() &&
        MI->getOperand(3).getImm() == 7) {
      // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "movvs %xcc, $\x02, $\x01";
      break;
    }
    return false;
  case SP::ORCCrr:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).getReg() == Sparc::G0) {
      // (ORCCrr G0, IntRegs:$rs2, G0)
      AsmString = "tst $\x02";
      break;
    }
    return false;
  case SP::ORri:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).getReg() == Sparc::G0) {
      // (ORri IntRegs:$rd, G0, i32imm:$simm13)
      AsmString = "mov $\x03, $\x01";
      break;
    }
    return false;
  case SP::ORrr:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).getReg() == Sparc::G0 &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg())) {
      // (ORrr IntRegs:$rd, G0, IntRegs:$rs2)
      AsmString = "mov $\x03, $\x01";
      break;
    }
    return false;
  case SP::RESTORErr:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).getReg() == Sparc::G0 &&
        MI->getOperand(2).getReg() == Sparc::G0) {
      // (RESTORErr G0, G0, G0)
      AsmString = "restore";
      break;
    }
    return false;
  case SP::RET:
    if (MI->getNumOperands() == 1 &&
        MI->getOperand(0).isImm() &&
        MI->getOperand(0).getImm() == 8) {
      // (RET 8)
      AsmString = "ret";
      break;
    }
    return false;
  case SP::RETL:
    if (MI->getNumOperands() == 1 &&
        MI->getOperand(0).isImm() &&
        MI->getOperand(0).getImm() == 8) {
      // (RETL 8)
      AsmString = "retl";
      break;
    }
    return false;
  case SP::SAVErr:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).getReg() == Sparc::G0 &&
        MI->getOperand(2).getReg() == Sparc::G0) {
      // (SAVErr G0, G0, G0)
      AsmString = "save";
      break;
    }
    return false;
  case SP::TICCri:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 1, 0, 0, 0 })
      AsmString = "ta %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 0, 0 })
      AsmString = "ta %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 0, 0, 0, 0 })
      AsmString = "tn %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 0, 0 })
      AsmString = "tn %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 1, 0, 0, 1 })
      AsmString = "tne %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 0, 1 })
      AsmString = "tne %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 0, 0, 0, 1 })
      AsmString = "te %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 0, 1 })
      AsmString = "te %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 1, 0, 1, 0 })
      AsmString = "tg %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 1, 0 })
      AsmString = "tg %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 0, 0, 1, 0 })
      AsmString = "tle %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 1, 0 })
      AsmString = "tle %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 1, 0, 1, 1 })
      AsmString = "tge %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 1, 1 })
      AsmString = "tge %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 0, 0, 1, 1 })
      AsmString = "tl %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 1, 1 })
      AsmString = "tl %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 1, 1, 0, 0 })
      AsmString = "tgu %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 0, 0 })
      AsmString = "tgu %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 0, 1, 0, 0 })
      AsmString = "tleu %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 0, 0 })
      AsmString = "tleu %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 1, 1, 0, 1 })
      AsmString = "tcc %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 0, 1 })
      AsmString = "tcc %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 0, 1, 0, 1 })
      AsmString = "tcs %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 0, 1 })
      AsmString = "tcs %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 1, 1, 1, 0 })
      AsmString = "tpos %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 1, 0 })
      AsmString = "tpos %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 0, 1, 1, 0 })
      AsmString = "tneg %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 1, 0 })
      AsmString = "tneg %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 1, 1, 1, 1 })
      AsmString = "tvc %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 1, 1 })
      AsmString = "tvc %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri G0, i32imm:$imm, { 0, 1, 1, 1 })
      AsmString = "tvs %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 1, 1 })
      AsmString = "tvs %icc, $\x01 + $\x02";
      break;
    }
    return false;
  case SP::TICCrr:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "ta %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "ta %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "tn %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "tn %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "tne %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "tne %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "te %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "te %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "tg %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "tg %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "tle %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "tle %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "tge %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "tge %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "tl %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "tl %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "tgu %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "tgu %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "tleu %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "tleu %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "tcc %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "tcc %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "tcs %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "tcs %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "tpos %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "tpos %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "tneg %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "tneg %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "tvc %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "tvc %icc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr G0, IntRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "tvs %icc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "tvs %icc, $\x01 + $\x02";
      break;
    }
    return false;
  case SP::TRAPri:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 8) {
      // (TRAPri G0, i32imm:$imm, { 1, 0, 0, 0 })
      AsmString = "ta $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 8) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 0, 0, 0 })
      AsmString = "ta $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 0) {
      // (TRAPri G0, i32imm:$imm, { 0, 0, 0, 0 })
      AsmString = "tn $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 0) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 0, 0, 0 })
      AsmString = "tn $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 9) {
      // (TRAPri G0, i32imm:$imm, { 1, 0, 0, 1 })
      AsmString = "tne $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 9) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 0, 0, 1 })
      AsmString = "tne $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 1) {
      // (TRAPri G0, i32imm:$imm, { 0, 0, 0, 1 })
      AsmString = "te $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 1) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 0, 0, 1 })
      AsmString = "te $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 10) {
      // (TRAPri G0, i32imm:$imm, { 1, 0, 1, 0 })
      AsmString = "tg $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 10) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 0, 1, 0 })
      AsmString = "tg $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 2) {
      // (TRAPri G0, i32imm:$imm, { 0, 0, 1, 0 })
      AsmString = "tle $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 2) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 0, 1, 0 })
      AsmString = "tle $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 11) {
      // (TRAPri G0, i32imm:$imm, { 1, 0, 1, 1 })
      AsmString = "tge $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 11) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 0, 1, 1 })
      AsmString = "tge $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 3) {
      // (TRAPri G0, i32imm:$imm, { 0, 0, 1, 1 })
      AsmString = "tl $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 3) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 0, 1, 1 })
      AsmString = "tl $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 12) {
      // (TRAPri G0, i32imm:$imm, { 1, 1, 0, 0 })
      AsmString = "tgu $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 12) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 1, 0, 0 })
      AsmString = "tgu $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 4) {
      // (TRAPri G0, i32imm:$imm, { 0, 1, 0, 0 })
      AsmString = "tleu $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 4) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 1, 0, 0 })
      AsmString = "tleu $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 13) {
      // (TRAPri G0, i32imm:$imm, { 1, 1, 0, 1 })
      AsmString = "tcc $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 13) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 1, 0, 1 })
      AsmString = "tcc $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 5) {
      // (TRAPri G0, i32imm:$imm, { 0, 1, 0, 1 })
      AsmString = "tcs $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 5) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 1, 0, 1 })
      AsmString = "tcs $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 14) {
      // (TRAPri G0, i32imm:$imm, { 1, 1, 1, 0 })
      AsmString = "tpos $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 14) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 1, 1, 0 })
      AsmString = "tpos $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 6) {
      // (TRAPri G0, i32imm:$imm, { 0, 1, 1, 0 })
      AsmString = "tneg $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 6) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 1, 1, 0 })
      AsmString = "tneg $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 15) {
      // (TRAPri G0, i32imm:$imm, { 1, 1, 1, 1 })
      AsmString = "tvc $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 15) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 1, 1, 1 })
      AsmString = "tvc $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 7) {
      // (TRAPri G0, i32imm:$imm, { 0, 1, 1, 1 })
      AsmString = "tvs $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 7) {
      // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 1, 1, 1 })
      AsmString = "tvs $\x01 + $\x02";
      break;
    }
    return false;
  case SP::TRAPrr:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 8) {
      // (TRAPrr G0, IntRegs:$rs1, { 1, 0, 0, 0 })
      AsmString = "ta $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 8) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "ta $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 0) {
      // (TRAPrr G0, IntRegs:$rs1, { 0, 0, 0, 0 })
      AsmString = "tn $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 0) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "tn $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 9) {
      // (TRAPrr G0, IntRegs:$rs1, { 1, 0, 0, 1 })
      AsmString = "tne $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 9) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "tne $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 1) {
      // (TRAPrr G0, IntRegs:$rs1, { 0, 0, 0, 1 })
      AsmString = "te $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 1) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "te $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 10) {
      // (TRAPrr G0, IntRegs:$rs1, { 1, 0, 1, 0 })
      AsmString = "tg $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 10) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "tg $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 2) {
      // (TRAPrr G0, IntRegs:$rs1, { 0, 0, 1, 0 })
      AsmString = "tle $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 2) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "tle $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 11) {
      // (TRAPrr G0, IntRegs:$rs1, { 1, 0, 1, 1 })
      AsmString = "tge $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 11) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "tge $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 3) {
      // (TRAPrr G0, IntRegs:$rs1, { 0, 0, 1, 1 })
      AsmString = "tl $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 3) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "tl $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 12) {
      // (TRAPrr G0, IntRegs:$rs1, { 1, 1, 0, 0 })
      AsmString = "tgu $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 12) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "tgu $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 4) {
      // (TRAPrr G0, IntRegs:$rs1, { 0, 1, 0, 0 })
      AsmString = "tleu $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 4) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "tleu $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 13) {
      // (TRAPrr G0, IntRegs:$rs1, { 1, 1, 0, 1 })
      AsmString = "tcc $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 13) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "tcc $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 5) {
      // (TRAPrr G0, IntRegs:$rs1, { 0, 1, 0, 1 })
      AsmString = "tcs $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 5) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "tcs $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 14) {
      // (TRAPrr G0, IntRegs:$rs1, { 1, 1, 1, 0 })
      AsmString = "tpos $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 14) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "tpos $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 6) {
      // (TRAPrr G0, IntRegs:$rs1, { 0, 1, 1, 0 })
      AsmString = "tneg $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 6) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "tneg $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 15) {
      // (TRAPrr G0, IntRegs:$rs1, { 1, 1, 1, 1 })
      AsmString = "tvc $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 15) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "tvc $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 7) {
      // (TRAPrr G0, IntRegs:$rs1, { 0, 1, 1, 1 })
      AsmString = "tvs $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 7) {
      // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "tvs $\x01 + $\x02";
      break;
    }
    return false;
  case SP::TXCCri:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 1, 0, 0, 0 })
      AsmString = "ta %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 0, 0 })
      AsmString = "ta %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 0, 0, 0, 0 })
      AsmString = "tn %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 0, 0 })
      AsmString = "tn %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 1, 0, 0, 1 })
      AsmString = "tne %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 0, 1 })
      AsmString = "tne %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 0, 0, 0, 1 })
      AsmString = "te %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 0, 1 })
      AsmString = "te %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 1, 0, 1, 0 })
      AsmString = "tg %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 1, 0 })
      AsmString = "tg %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 0, 0, 1, 0 })
      AsmString = "tle %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 1, 0 })
      AsmString = "tle %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 1, 0, 1, 1 })
      AsmString = "tge %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 1, 1 })
      AsmString = "tge %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 0, 0, 1, 1 })
      AsmString = "tl %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 1, 1 })
      AsmString = "tl %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 1, 1, 0, 0 })
      AsmString = "tgu %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 0, 0 })
      AsmString = "tgu %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 0, 1, 0, 0 })
      AsmString = "tleu %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 0, 0 })
      AsmString = "tleu %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 1, 1, 0, 1 })
      AsmString = "tcc %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 0, 1 })
      AsmString = "tcc %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 0, 1, 0, 1 })
      AsmString = "tcs %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 0, 1 })
      AsmString = "tcs %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 1, 1, 1, 0 })
      AsmString = "tpos %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 1, 0 })
      AsmString = "tpos %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 0, 1, 1, 0 })
      AsmString = "tneg %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 1, 0 })
      AsmString = "tneg %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 1, 1, 1, 1 })
      AsmString = "tvc %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 1, 1 })
      AsmString = "tvc %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri G0, i32imm:$imm, { 0, 1, 1, 1 })
      AsmString = "tvs %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 1, 1 })
      AsmString = "tvs %xcc, $\x01 + $\x02";
      break;
    }
    return false;
  case SP::TXCCrr:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "ta %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "ta %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "tn %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "tn %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "tne %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "tne %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "te %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "te %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "tg %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "tg %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "tle %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "tle %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "tge %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "tge %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "tl %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "tl %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "tgu %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "tgu %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "tleu %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "tleu %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "tcc %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "tcc %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "tcs %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "tcs %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "tpos %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "tpos %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "tneg %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "tneg %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "tvc %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "tvc %xcc, $\x01 + $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::G0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr G0, IntRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "tvs %xcc, $\x02";
      break;
    }
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isImm() &&
        MI->getOperand(2).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "tvs %xcc, $\x01 + $\x02";
      break;
    }
    return false;
  case SP::V9FCMPD:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::FCC0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg())) {
      // (V9FCMPD FCC0, DFPRegs:$rs1, DFPRegs:$rs2)
      AsmString = "fcmpd $\x02, $\x03";
      break;
    }
    return false;
  case SP::V9FCMPED:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::FCC0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg())) {
      // (V9FCMPED FCC0, DFPRegs:$rs1, DFPRegs:$rs2)
      AsmString = "fcmped $\x02, $\x03";
      break;
    }
    return false;
  case SP::V9FCMPEQ:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::FCC0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg())) {
      // (V9FCMPEQ FCC0, QFPRegs:$rs1, QFPRegs:$rs2)
      AsmString = "fcmpeq $\x02, $\x03";
      break;
    }
    return false;
  case SP::V9FCMPES:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::FCC0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg())) {
      // (V9FCMPES FCC0, FPRegs:$rs1, FPRegs:$rs2)
      AsmString = "fcmpes $\x02, $\x03";
      break;
    }
    return false;
  case SP::V9FCMPQ:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::FCC0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg())) {
      // (V9FCMPQ FCC0, QFPRegs:$rs1, QFPRegs:$rs2)
      AsmString = "fcmpq $\x02, $\x03";
      break;
    }
    return false;
  case SP::V9FCMPS:
    if (MI->getNumOperands() == 3 &&
        MI->getOperand(0).getReg() == Sparc::FCC0 &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg())) {
      // (V9FCMPS FCC0, FPRegs:$rs1, FPRegs:$rs2)
      AsmString = "fcmps $\x02, $\x03";
      break;
    }
    return false;
  case SP::V9FMOVD_FCC:
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "fmovda $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "fmovdn $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "fmovdu $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "fmovdg $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "fmovdug $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "fmovdl $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "fmovdul $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "fmovdlg $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "fmovdne $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "fmovde $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "fmovdue $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "fmovdge $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "fmovduge $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "fmovdle $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "fmovdule $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "fmovdo $\x02, $\x03, $\x01";
      break;
    }
    return false;
  case SP::V9FMOVQ_FCC:
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "fmovqa $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "fmovqn $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "fmovqu $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "fmovqg $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "fmovqug $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "fmovql $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "fmovqul $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "fmovqlg $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "fmovqne $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "fmovqe $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "fmovque $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "fmovqge $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "fmovquge $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "fmovqle $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "fmovqule $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "fmovqo $\x02, $\x03, $\x01";
      break;
    }
    return false;
  case SP::V9FMOVS_FCC:
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "fmovsa $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "fmovsn $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "fmovsu $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "fmovsg $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "fmovsug $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "fmovsl $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "fmovsul $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "fmovslg $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "fmovsne $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "fmovse $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "fmovsue $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "fmovsge $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "fmovsuge $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "fmovsle $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "fmovsule $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "fmovso $\x02, $\x03, $\x01";
      break;
    }
    return false;
  case SP::V9MOVFCCri:
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 0, 0, 0 })
      AsmString = "mova $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 0, 0, 0 })
      AsmString = "movn $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 1, 1, 1 })
      AsmString = "movu $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 1, 1, 0 })
      AsmString = "movg $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 1, 0, 1 })
      AsmString = "movug $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 1, 0, 0 })
      AsmString = "movl $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 0, 1, 1 })
      AsmString = "movul $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 0, 1, 0 })
      AsmString = "movlg $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 0, 0, 1 })
      AsmString = "movne $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 0, 0, 1 })
      AsmString = "move $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 0, 1, 0 })
      AsmString = "movue $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 0, 1, 1 })
      AsmString = "movge $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 1, 0, 0 })
      AsmString = "movuge $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 1, 0, 1 })
      AsmString = "movle $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 1, 1, 0 })
      AsmString = "movule $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 1, 1, 1 })
      AsmString = "movo $\x02, $\x03, $\x01";
      break;
    }
    return false;
  case SP::V9MOVFCCrr:
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 8 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 0, 0, 0 })
      AsmString = "mova $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 0 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 0, 0, 0 })
      AsmString = "movn $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 7 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 1, 1, 1 })
      AsmString = "movu $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 6 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 1, 1, 0 })
      AsmString = "movg $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 5 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 1, 0, 1 })
      AsmString = "movug $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 4 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 1, 0, 0 })
      AsmString = "movl $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 3 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 0, 1, 1 })
      AsmString = "movul $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 2 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 0, 1, 0 })
      AsmString = "movlg $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 1 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 0, 0, 1 })
      AsmString = "movne $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 9 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 0, 0, 1 })
      AsmString = "move $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 10 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 0, 1, 0 })
      AsmString = "movue $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 11 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 0, 1, 1 })
      AsmString = "movge $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 12 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 1, 0, 0 })
      AsmString = "movuge $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 13 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 1, 0, 1 })
      AsmString = "movle $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 14 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 1, 1, 0 })
      AsmString = "movule $\x02, $\x03, $\x01";
      break;
    }
    if (MI->getNumOperands() == 5 &&
        MI->getOperand(0).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
        MI->getOperand(1).isReg() &&
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
        MI->getOperand(2).isReg() &&
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
        MI->getOperand(4).isImm() &&
        MI->getOperand(4).getImm() == 15 &&
        STI.getFeatureBits()[Sparc::FeatureV9]) {
      // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 1, 1, 1 })
      AsmString = "movo $\x02, $\x03, $\x01";
      break;
    }
    return false;
  }

  unsigned I = 0;
  while (AsmString[I] != ' ' && AsmString[I] != '\t' &&
         AsmString[I] != '$' && AsmString[I] != '\0')
    ++I;
  OS << '\t' << StringRef(AsmString, I);
  if (AsmString[I] != '\0') {
    if (AsmString[I] == ' ' || AsmString[I] == '\t') {
      OS << '\t';
      ++I;
    }
    do {
      if (AsmString[I] == '$') {
        ++I;
        if (AsmString[I] == (char)0xff) {
          ++I;
          int OpIdx = AsmString[I++] - 1;
          int PrintMethodIdx = AsmString[I++] - 1;
          printCustomAliasOperand(MI, OpIdx, PrintMethodIdx, STI, OS);
        } else
          printOperand(MI, unsigned(AsmString[I++]) - 1, STI, OS);
      } else {
        OS << AsmString[I++];
      }
    } while (AsmString[I] != '\0');
  }

  return true;
}

void SparcInstPrinter::printCustomAliasOperand(
         const MCInst *MI, unsigned OpIdx,
         unsigned PrintMethodIdx,
         const MCSubtargetInfo &STI,
         raw_ostream &OS) {
  llvm_unreachable("Unknown PrintMethod kind");
}

#endif // PRINT_ALIAS_INSTR
