/* Generated automatically by the program `genattrtab'
from the machine description file `md'.  */

#include "config.h"
#include "system.h"
#include "rtl.h"
#include "insn-config.h"
#include "recog.h"
#include "regs.h"
#include "real.h"
#include "output.h"
#include "insn-attr.h"
#include "toplev.h"

#define operands recog_operand

int
insn_current_length (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case 703:
    case 702:
    case 701:
    case 700:
    case 699:
    case 698:
    case 697:
    case 696:
    case 695:
    case 694:
    case 693:
    case 692:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  if ((((insn_current_reference_address (insn)) - (insn_addresses[INSN_UID (GET_CODE (operands[0]) == LABEL_REF ? XEXP (operands[0], 0) : operands[0])])) >= (-32768)) && (((insn_current_reference_address (insn)) - (insn_addresses[INSN_UID (GET_CODE (operands[0]) == LABEL_REF ? XEXP (operands[0], 0) : operands[0])])) < (32767)))
	    {
	      return 8;
	    }
	  else
	    {
	      return 12 /* 0xc */;
	    }
        }
      else
        {
	  return 0;
        }

    case 678:
    case 676:
    case 674:
      extract_insn (insn);
      if ((((insn_current_reference_address (insn)) - (insn_addresses[INSN_UID (GET_CODE (operands[0]) == LABEL_REF ? XEXP (operands[0], 0) : operands[0])])) >= (-32768)) && (((insn_current_reference_address (insn)) - (insn_addresses[INSN_UID (GET_CODE (operands[0]) == LABEL_REF ? XEXP (operands[0], 0) : operands[0])])) < (32767)))
        {
	  return 8;
        }
      else
        {
	  return 12 /* 0xc */;
        }

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      return 0;

    }
}

int
insn_variable_length_p (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case 703:
    case 702:
    case 701:
    case 700:
    case 699:
    case 698:
    case 697:
    case 696:
    case 695:
    case 694:
    case 693:
    case 692:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  return 1;
        }
      else
        {
	  return 0;
        }

    case 678:
    case 676:
    case 674:
      return 1;

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      return 0;

    }
}

int
insn_default_length (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case 703:
    case 702:
    case 701:
    case 700:
    case 699:
    case 698:
    case 697:
    case 696:
    case 695:
    case 694:
    case 693:
    case 692:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) || (which_alternative == 1))
        {
	  return 12 /* 0xc */;
        }
      else
        {
	  return 16 /* 0x10 */;
        }

    case 582:
    case 581:
    case 580:
    case 579:
    case 577:
    case 576:
    case 575:
    case 574:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  return 12 /* 0xc */;
        }
      else if (which_alternative == 1)
        {
	  return 8;
        }
      else
        {
	  return 12 /* 0xc */;
        }

    case 458:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  return 4;
        }
      else if ((which_alternative == 1) || (which_alternative == 2))
        {
	  return 16 /* 0x10 */;
        }
      else if (which_alternative == 3)
        {
	  return 4;
        }
      else
        {
	  return 16 /* 0x10 */;
        }

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 2) || ((which_alternative == 3) || (which_alternative == 4)))))
        {
	  return 4;
        }
      else if (which_alternative == 5)
        {
	  return 20 /* 0x14 */;
        }
      else if ((which_alternative == 6) || ((which_alternative == 7) || ((which_alternative == 8) || ((which_alternative == 9) || ((which_alternative == 10) || (which_alternative == 11))))))
        {
	  return 4;
        }
      else
        {
	  return 4;
        }

    case 445:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) || ((which_alternative == 1) || (which_alternative == 2)))
        {
	  return 8;
        }
      else if ((which_alternative == 3) || ((which_alternative == 4) || (which_alternative == 5)))
        {
	  return 4;
        }
      else if (which_alternative == 6)
        {
	  return 8;
        }
      else if (which_alternative == 7)
        {
	  return 12 /* 0xc */;
        }
      else if (which_alternative == 8)
        {
	  return 8;
        }
      else if (which_alternative == 9)
        {
	  return 12 /* 0xc */;
        }
      else
        {
	  return 16 /* 0x10 */;
        }

    case 443:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) || ((which_alternative == 1) || (which_alternative == 2)))
        {
	  return 4;
        }
      else if (which_alternative == 3)
        {
	  return 8;
        }
      else if (which_alternative == 4)
        {
	  return 12 /* 0xc */;
        }
      else
        {
	  return 16 /* 0x10 */;
        }

    case 442:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) || ((which_alternative == 1) || (which_alternative == 2)))
        {
	  return 4;
        }
      else if (which_alternative == 3)
        {
	  return 8;
        }
      else if (which_alternative == 4)
        {
	  return 12 /* 0xc */;
        }
      else if (which_alternative == 5)
        {
	  return 16 /* 0x10 */;
        }
      else if ((which_alternative == 6) || (which_alternative == 7))
        {
	  return 4;
        }
      else
        {
	  return 4;
        }

    case 441:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 2) || (which_alternative == 3))))
        {
	  return 8;
        }
      else if (which_alternative == 4)
        {
	  return 12 /* 0xc */;
        }
      else
        {
	  return 16 /* 0x10 */;
        }

    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  return 8;
        }
      else if ((which_alternative == 1) || (which_alternative == 2))
        {
	  return 16 /* 0x10 */;
        }
      else if (which_alternative == 3)
        {
	  return 8;
        }
      else if (which_alternative == 4)
        {
	  return 12 /* 0xc */;
        }
      else if (which_alternative == 5)
        {
	  return 16 /* 0x10 */;
        }
      else
        {
	  return 4;
        }

    case 435:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative != 7)
        {
	  return 4;
        }
      else
        {
	  return 8;
        }

    case 431:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) || (which_alternative == 1))
        {
	  return 4;
        }
      else if (which_alternative == 2)
        {
	  return 12 /* 0xc */;
        }
      else if (which_alternative == 3)
        {
	  return 4;
        }
      else if (which_alternative == 4)
        {
	  return 8;
        }
      else
        {
	  return 4;
        }

    case 423:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 2) || ((which_alternative == 3) || ((which_alternative == 4) || (which_alternative == 5))))))
        {
	  return 4;
        }
      else if (which_alternative == 6)
        {
	  return 8;
        }
      else if ((which_alternative == 7) || ((which_alternative == 8) || ((which_alternative == 9) || (which_alternative == 10))))
        {
	  return 4;
        }
      else
        {
	  return 4;
        }

    case 124:
    case 122:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 2) || (which_alternative == 3))))
        {
	  return 4;
        }
      else if ((which_alternative == 4) || ((which_alternative == 5) || (which_alternative == 6)))
        {
	  return 8;
        }
      else
        {
	  return 8;
        }

    case 55:
    case 53:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) || (which_alternative == 1))
        {
	  return 4;
        }
      else if (which_alternative == 2)
        {
	  return 8;
        }
      else
        {
	  return 8;
        }

    case 677:
    case 675:
    case 673:
    case 672:
    case 639:
    case 638:
    case 637:
    case 632:
    case 631:
    case 630:
    case 629:
    case 628:
    case 627:
    case 620:
    case 604:
    case 603:
    case 602:
    case 590:
    case 589:
    case 588:
    case 587:
    case 586:
    case 585:
    case 584:
    case 583:
    case 563:
    case 562:
    case 481:
    case 480:
    case 478:
    case 477:
    case 475:
    case 474:
    case 472:
    case 471:
    case 469:
    case 468:
    case 460:
    case 378:
    case 359:
    case 358:
    case 357:
    case 330:
    case 329:
    case 328:
    case 320:
    case 319:
    case 316:
    case 315:
    case 313:
    case 312:
    case 311:
    case 201:
    case 200:
    case 110:
    case 109:
    case 108:
      return 8;

    case 671:
    case 670:
    case 669:
    case 668:
    case 667:
    case 666:
    case 528:
    case 527:
    case 525:
    case 524:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  return 8;
        }
      else
        {
	  return 12 /* 0xc */;
        }

    case 678:
    case 676:
    case 674:
    case 665:
    case 664:
    case 663:
    case 662:
    case 661:
    case 660:
    case 659:
    case 658:
    case 657:
    case 656:
    case 655:
    case 654:
    case 653:
    case 652:
    case 651:
    case 650:
    case 649:
    case 648:
    case 647:
    case 646:
    case 645:
    case 644:
    case 643:
    case 642:
    case 641:
    case 640:
    case 636:
    case 635:
    case 634:
    case 633:
    case 626:
    case 625:
    case 624:
    case 623:
    case 622:
    case 621:
    case 619:
    case 618:
    case 617:
    case 616:
    case 615:
    case 614:
    case 613:
    case 612:
    case 611:
    case 610:
    case 609:
    case 608:
    case 607:
    case 606:
    case 605:
    case 601:
    case 600:
    case 599:
    case 598:
    case 597:
    case 596:
    case 595:
    case 594:
    case 593:
    case 592:
    case 591:
    case 572:
    case 571:
    case 570:
    case 569:
    case 568:
    case 345:
    case 343:
    case 301:
    case 86:
    case 83:
      return 12 /* 0xc */;

    case 573:
    case 294:
      return 20 /* 0x14 */;

    case 529:
    case 526:
    case 523:
    case 522:
    case 521:
    case 520:
    case 517:
    case 516:
    case 163:
    case 161:
    case 158:
    case 156:
    case 151:
    case 148:
    case 146:
    case 143:
    case 141:
    case 137:
    case 135:
    case 130:
    case 128:
    case 69:
    case 68:
    case 66:
    case 65:
    case 61:
    case 59:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  return 4;
        }
      else
        {
	  return 8;
        }

    case 515:
    case 514:
    case 291:
      return 24 /* 0x18 */;

    case 513:
    case 512:
    case 511:
    case 510:
      return 28 /* 0x1c */;

    case 503:
      return 0;

    case 462:
      return 32 /* 0x20 */;

    case 459:
    case 351:
    case 91:
      return 16 /* 0x10 */;

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      return 4;

    }
}

int
result_ready_cost (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case 592:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 5;
        }
      else if ((which_alternative == 0) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  return 3;
        }
      else
        {
	  return 1;
        }

    case 567:
    case 566:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  return 9;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))
        {
	  return 5;
        }
      else
        {
	  return 1;
        }

    case 459:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  return 2;
        }
      else
        {
	  return 1;
        }

    case 458:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((which_alternative != 0) && (which_alternative != 1)) && (which_alternative != 2)) && ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  return 2;
        }
      else
        {
	  return 1;
        }

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 11) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_RIOS2)))))
        {
	  return 5;
        }
      else if (((which_alternative == 11) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))))) || ((which_alternative == 7) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  return 4;
        }
      else if (((which_alternative == 7) && ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))) || ((which_alternative == 8) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))))
        {
	  return 3;
        }
      else if (((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || ((((which_alternative == 1) || (which_alternative == 8)) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || (((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_RIOS1)))) || (((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601)))))) || (((which_alternative == 8) && (((rs6000_cpu_attr) == (CPU_RIOS1)))) || (((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))) || ((which_alternative == 8) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))))))
        {
	  return 2;
        }
      else
        {
	  return 1;
        }

    case 442:
    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 6) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || (((rs6000_cpu_attr) == (CPU_PPC601)))))
        {
	  return 4;
        }
      else if (((which_alternative == 6) && ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))) || ((which_alternative == 7) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))))
        {
	  return 3;
        }
      else if (((which_alternative == 6) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || ((((which_alternative == 1) || (which_alternative == 7)) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || (((which_alternative == 6) && (((rs6000_cpu_attr) == (CPU_RIOS1)))) || (((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601)))))) || (((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_RIOS1)))) || (((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))) || ((which_alternative == 7) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))))))
        {
	  return 2;
        }
      else
        {
	  return 1;
        }

    case 460:
    case 443:
    case 441:
    case 435:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  return 2;
        }
      else
        {
	  return 1;
        }

    case 445:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 3) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || (((rs6000_cpu_attr) == (CPU_PPC601)))))
        {
	  return 4;
        }
      else if (((which_alternative == 3) && ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))) || ((which_alternative == 4) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))))
        {
	  return 3;
        }
      else if (((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || ((((which_alternative == 1) || (which_alternative == 4)) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || (((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS1)))) || (((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601)))))) || (((which_alternative == 4) && (((rs6000_cpu_attr) == (CPU_RIOS1)))) || (((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))) || ((which_alternative == 4) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))))))
        {
	  return 2;
        }
      else
        {
	  return 1;
        }

    case 431:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 4;
        }
      else if ((which_alternative == 3) && ((((rs6000_cpu_attr) == (CPU_RIOS2))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))))))
        {
	  return 3;
        }
      else if ((which_alternative == 6) && ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  return 2;
        }
      else
        {
	  return 1;
        }

    case 429:
    case 427:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 6) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_RIOS2)))))
        {
	  return 5;
        }
      else if ((which_alternative == 6) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  return 4;
        }
      else if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  return 2;
        }
      else
        {
	  return 1;
        }

    case 423:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 10) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_RIOS2)))))
        {
	  return 5;
        }
      else if ((which_alternative == 10) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  return 4;
        }
      else if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  return 2;
        }
      else
        {
	  return 1;
        }

    case 391:
    case 390:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 5;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || (which_alternative == 2))) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  return 3;
        }
      else
        {
	  return 1;
        }

    case 515:
    case 514:
    case 513:
    case 512:
    case 511:
    case 510:
    case 509:
    case 496:
    case 492:
    case 491:
    case 489:
    case 488:
    case 487:
    case 485:
    case 483:
    case 482:
    case 481:
    case 480:
    case 478:
    case 477:
    case 475:
    case 474:
    case 472:
    case 471:
    case 469:
    case 468:
    case 462:
    case 420:
    case 304:
      if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))))
        {
	  return 2;
        }
      else
        {
	  return 1;
        }

    case 498:
    case 494:
    case 299:
      if ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  return 3;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))
        {
	  return 2;
        }
      else
        {
	  return 1;
        }

    case 282:
    case 263:
    case 262:
      if (((rs6000_cpu_attr) == (CPU_PPC620)))
        {
	  return 31 /* 0x1f */;
        }
      else if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  return 26 /* 0x1a */;
        }
      else
        {
	  return 1;
        }

    case 277:
    case 252:
      if (((rs6000_cpu_attr) == (CPU_PPC603)))
        {
	  return 33 /* 0x21 */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))
        {
	  return 31 /* 0x1f */;
        }
      else if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  return 19 /* 0x13 */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_MPCCORE))))
        {
	  return 17 /* 0x11 */;
        }
      else
        {
	  return 1;
        }

    case 251:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  return 19 /* 0x13 */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  return 18 /* 0x12 */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  return 17 /* 0x11 */;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  return 10 /* 0xa */;
        }
      else
        {
	  return 1;
        }

    case 281:
    case 280:
    case 279:
    case 278:
    case 276:
    case 260:
    case 258:
    case 256:
    case 254:
    case 249:
      if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620)))))
        {
	  return 3;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 2;
        }
      else
        {
	  return 1;
        }

    case 310:
    case 309:
    case 308:
    case 289:
    case 288:
    case 275:
    case 274:
    case 273:
    case 272:
    case 271:
    case 270:
    case 269:
    case 259:
    case 257:
    case 255:
    case 253:
    case 248:
    case 246:
    case 245:
    case 243:
    case 242:
    case 240:
    case 239:
    case 238:
    case 237:
    case 236:
    case 235:
      if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))
        {
	  return 3;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 2;
        }
      else
        {
	  return 1;
        }

    case 124:
    case 122:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 5;
        }
      else if ((which_alternative != 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  return 3;
        }
      else
        {
	  return 1;
        }

    case 361:
    case 360:
    case 120:
    case 119:
    case 118:
    case 117:
    case 111:
    case 106:
    case 105:
    case 103:
    case 102:
    case 100:
      if (((rs6000_cpu_attr) == (CPU_PPC603)))
        {
	  return 37 /* 0x25 */;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC601)))
        {
	  return 36 /* 0x24 */;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC403)))
        {
	  return 33 /* 0x21 */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620)))))
        {
	  return 20 /* 0x14 */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) || (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 19 /* 0x13 */;
        }
      else if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  return 13 /* 0xd */;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  return 6;
        }
      else
        {
	  return 1;
        }

    case 354:
    case 353:
    case 352:
    case 327:
    case 326:
    case 324:
    case 323:
    case 320:
    case 319:
    case 316:
    case 315:
    case 116:
    case 115:
    case 94:
    case 93:
      if ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603)))))
        {
	  return 5;
        }
      else if ((((((rs6000_cpu_attr) == (CPU_PPC604))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || (((rs6000_cpu_attr) == (CPU_PPC750)))) || (((rs6000_cpu_attr) == (CPU_PPC403))))
        {
	  return 4;
        }
      else if (((((rs6000_cpu_attr) == (CPU_MPCCORE))) || (((rs6000_cpu_attr) == (CPU_PPC604E)))) || (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 2;
        }
      else
        {
	  return 1;
        }

    case 649:
    case 647:
    case 646:
    case 610:
    case 571:
    case 569:
    case 388:
    case 387:
    case 384:
    case 383:
    case 380:
    case 379:
    case 376:
    case 375:
    case 373:
    case 372:
    case 370:
    case 369:
    case 367:
    case 366:
    case 364:
    case 363:
    case 234:
    case 233:
    case 232:
    case 231:
    case 224:
    case 223:
    case 221:
    case 220:
    case 218:
    case 217:
    case 215:
    case 214:
    case 213:
    case 212:
    case 208:
    case 207:
    case 205:
    case 204:
    case 203:
    case 202:
    case 198:
    case 197:
    case 195:
    case 194:
    case 192:
    case 191:
    case 189:
    case 188:
    case 183:
    case 98:
    case 97:
    case 96:
    case 95:
    case 80:
    case 79:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  return 3;
        }
      else
        {
	  return 1;
        }

    case 671:
    case 670:
    case 669:
    case 668:
    case 665:
    case 664:
    case 658:
    case 657:
    case 655:
    case 654:
    case 653:
    case 652:
    case 643:
    case 642:
    case 639:
    case 638:
    case 636:
    case 635:
    case 632:
    case 631:
    case 630:
    case 629:
    case 625:
    case 624:
    case 622:
    case 619:
    case 618:
    case 616:
    case 613:
    case 612:
    case 608:
    case 607:
    case 604:
    case 603:
    case 601:
    case 600:
    case 599:
    case 595:
    case 594:
    case 590:
    case 589:
    case 588:
    case 587:
    case 581:
    case 580:
    case 577:
    case 576:
    case 561:
    case 560:
    case 558:
    case 557:
    case 456:
    case 425:
    case 416:
    case 415:
    case 413:
    case 412:
    case 410:
    case 409:
    case 407:
    case 406:
    case 404:
    case 403:
    case 400:
    case 399:
    case 395:
    case 394:
    case 359:
    case 358:
    case 350:
    case 349:
    case 341:
    case 340:
    case 338:
    case 337:
    case 334:
    case 333:
    case 182:
    case 172:
    case 171:
    case 170:
    case 169:
    case 163:
    case 161:
    case 158:
    case 156:
    case 153:
    case 151:
    case 148:
    case 146:
    case 143:
    case 141:
    case 137:
    case 135:
    case 130:
    case 128:
    case 110:
    case 109:
    case 90:
    case 89:
    case 69:
    case 68:
    case 66:
    case 65:
    case 61:
    case 59:
    case 55:
    case 53:
    case 50:
    case 49:
    case 46:
    case 45:
    case 40:
    case 39:
    case 36:
    case 35:
    case 30:
    case 29:
    case 26:
    case 25:
    case 22:
    case 21:
    case 18:
    case 17:
    case 14:
    case 13:
    case 10:
    case 9:
    case 6:
    case 5:
    case 3:
    case 2:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  return 3;
        }
      else
        {
	  return 1;
        }

    case 48:
    case 44:
    case 34:
    case 24:
    case 20:
    case 16:
    case 12:
    case 8:
    case 1:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) && ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  return 2;
        }
      else
        {
	  return 1;
        }

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      return 1;

    }
}

int
bpu_unit_ready_cost (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case 703:
    case 702:
    case 701:
    case 700:
    case 699:
    case 698:
    case 697:
    case 696:
    case 695:
    case 694:
    case 693:
    case 692:
    case 687:
    case 686:
    case 682:
    case 681:
    case 679:
    case 678:
    case 677:
    case 676:
    case 675:
    case 674:
    case 532:
    case 529:
    case 528:
    case 527:
    case 526:
    case 525:
    case 524:
    case 523:
    case 522:
    case 521:
    case 520:
    case 517:
    case 516:
      return 1;

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative == 11))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative != 11))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 11))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative != 11))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 11))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative != 11))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 11))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative != 11))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative == 11))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative != 11))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) && (which_alternative == 11))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) && (which_alternative != 11))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC403))) && (which_alternative == 11))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC403))) && (which_alternative != 11))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative == 11))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative != 11))
        {
	  return 5;
        }
      else
        {
	  return 1;
        }

    case 429:
    case 427:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative == 6))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative != 6))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 6))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative != 6))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 6))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative != 6))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 6))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative != 6))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative == 6))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative != 6))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) && (which_alternative == 6))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) && (which_alternative != 6))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC403))) && (which_alternative == 6))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC403))) && (which_alternative != 6))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative == 6))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative != 6))
        {
	  return 5;
        }
      else
        {
	  return 1;
        }

    case 423:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative == 10))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative != 10))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 10))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative != 10))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 10))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative != 10))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 10))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative != 10))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative == 10))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative != 10))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) && (which_alternative == 10))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) && (which_alternative != 10))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC403))) && (which_alternative == 10))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC403))) && (which_alternative != 10))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative == 10))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative != 10))
        {
	  return 5;
        }
      else
        {
	  return 1;
        }

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC750))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_MPCCORE))))))))))))
        {
	  return 5;
        }
      else
        {
	  return 1;
        }

    }
}

int
fpu2_unit_ready_cost (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case 567:
    case 566:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  return 5;
        }
      else
        {
	  return 26 /* 0x1a */;
        }

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 2;
        }
      else
        {
	  return 26 /* 0x1a */;
        }

    case 442:
    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 6) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 2;
        }
      else
        {
	  return 26 /* 0x1a */;
        }

    case 445:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 2;
        }
      else
        {
	  return 26 /* 0x1a */;
        }

    case 277:
    case 252:
    case 251:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  return 17 /* 0x11 */;
        }
      else
        {
	  return 26 /* 0x1a */;
        }

    case 310:
    case 309:
    case 308:
    case 289:
    case 288:
    case 281:
    case 280:
    case 279:
    case 278:
    case 276:
    case 275:
    case 274:
    case 273:
    case 272:
    case 271:
    case 270:
    case 269:
    case 260:
    case 259:
    case 258:
    case 257:
    case 256:
    case 255:
    case 254:
    case 253:
    case 249:
    case 248:
    case 246:
    case 245:
    case 243:
    case 242:
    case 240:
    case 239:
    case 238:
    case 237:
    case 236:
    case 235:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  return 2;
        }
      else
        {
	  return 26 /* 0x1a */;
        }

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      return 26 /* 0x1a */;

    }
}

unsigned int
fpu2_unit_blockage_range (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      return 65562 /* min 1, max 26 */;

    }
}

int
imuldiv_unit_ready_cost (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case 361:
    case 360:
    case 120:
    case 119:
    case 118:
    case 117:
    case 111:
    case 106:
    case 105:
    case 103:
    case 102:
    case 100:
      if (((rs6000_cpu_attr) == (CPU_PPC750)))
        {
	  return 19 /* 0x13 */;
        }
      else if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  return 13 /* 0xd */;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  return 6;
        }
      else
        {
	  return 20 /* 0x14 */;
        }

    case 354:
    case 353:
    case 352:
    case 327:
    case 326:
    case 324:
    case 323:
    case 320:
    case 319:
    case 316:
    case 315:
    case 116:
    case 115:
    case 94:
    case 93:
      if (((rs6000_cpu_attr) == (CPU_PPC620)))
        {
	  return 4;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC604E)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) || (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_MPCCORE))))
        {
	  return 2;
        }
      else
        {
	  return 20 /* 0x14 */;
        }

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      return 20 /* 0x14 */;

    }
}

unsigned int
imuldiv_unit_blockage_range (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      return 65555 /* min 1, max 19 */;

    }
}

int
iu2_unit_ready_cost (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case 592:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 3;
        }
      else if ((which_alternative == 1) && (((((rs6000_cpu_attr) == (CPU_PPC750))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))))
        {
	  return 1;
        }
      else if ((which_alternative == 0) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 3;
        }
      else if ((which_alternative == 0) && (((((rs6000_cpu_attr) == (CPU_PPC750))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 460:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 2;
        }
      else if (((which_alternative == 0) && ((((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_PPC750)))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC604E))))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2)))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 459:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 2;
        }
      else if (((which_alternative == 1) && ((((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_PPC750)))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC604E))))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || ((which_alternative == 0) && (((rs6000_cpu_attr) == (CPU_RIOS2)))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 458:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((which_alternative != 0) && (which_alternative != 1)) && (which_alternative != 2)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 2;
        }
      else if (((which_alternative == 2) && ((((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_PPC750)))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC604E))))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || (((which_alternative == 0) || (which_alternative == 1)) && (((rs6000_cpu_attr) == (CPU_RIOS2)))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (((which_alternative == 8) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2)))))
        {
	  return 2;
        }
      else if ((((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 10) || (which_alternative == 12))))))) && ((((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_PPC750)))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC604E))))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || (((which_alternative == 9) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 442:
    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2)))))
        {
	  return 2;
        }
      else if ((((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || (which_alternative == 5)))) && ((((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_PPC750)))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC604E))))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || (((which_alternative == 8) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 443:
    case 441:
    case 435:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 2;
        }
      else if ((((which_alternative != 1) && (which_alternative != 2)) && ((((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_PPC750)))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC604E))))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2)))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 445:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (((which_alternative == 4) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2)))))
        {
	  return 2;
        }
      else if ((((which_alternative != 1) && ((which_alternative != 2) && ((which_alternative != 3) && ((which_alternative != 4) && (which_alternative != 5))))) && ((((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_PPC750)))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC604E))))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || (((which_alternative == 5) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 431:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 3;
        }
      else if ((which_alternative == 3) && (((((rs6000_cpu_attr) == (CPU_PPC750))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))))
        {
	  return 1;
        }
      else if ((which_alternative == 6) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 2;
        }
      else if ((((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 2) || ((which_alternative == 4) || (which_alternative == 5))))) && ((((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_PPC750)))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC604E))))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || ((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_RIOS2)))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 429:
    case 427:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 2;
        }
      else if ((((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || (which_alternative == 7))))) && ((((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_PPC750)))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC604E))))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2)))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 423:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 2;
        }
      else if ((((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 7) || ((which_alternative == 8) || ((which_alternative == 9) || (which_alternative == 11))))))))) && ((((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_PPC750)))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC604E))))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS2)))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 391:
    case 390:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 3;
        }
      else if ((which_alternative == 3) && (((((rs6000_cpu_attr) == (CPU_PPC750))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))))
        {
	  return 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || (which_alternative == 2))) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 3;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || (which_alternative == 2))) && (((((rs6000_cpu_attr) == (CPU_PPC750))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 515:
    case 514:
    case 513:
    case 512:
    case 511:
    case 510:
    case 509:
    case 498:
    case 496:
    case 494:
    case 492:
    case 491:
    case 489:
    case 488:
    case 487:
    case 485:
    case 483:
    case 482:
    case 481:
    case 480:
    case 478:
    case 477:
    case 475:
    case 474:
    case 472:
    case 471:
    case 469:
    case 468:
    case 462:
    case 420:
    case 304:
    case 299:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  return 2;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 499:
    case 497:
    case 495:
    case 493:
    case 490:
    case 486:
    case 484:
    case 465:
    case 464:
    case 303:
    case 298:
    case 297:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 124:
    case 122:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 3;
        }
      else if ((which_alternative == 3) && (((((rs6000_cpu_attr) == (CPU_PPC750))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))))
        {
	  return 1;
        }
      else if ((which_alternative != 3) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 3;
        }
      else if ((which_alternative != 3) && (((((rs6000_cpu_attr) == (CPU_PPC750))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 703:
    case 702:
    case 701:
    case 700:
    case 699:
    case 698:
    case 697:
    case 696:
    case 695:
    case 694:
    case 693:
    case 692:
    case 687:
    case 686:
    case 682:
    case 681:
    case 679:
    case 678:
    case 677:
    case 676:
    case 675:
    case 674:
    case 567:
    case 566:
    case 532:
    case 529:
    case 528:
    case 527:
    case 526:
    case 525:
    case 524:
    case 523:
    case 522:
    case 521:
    case 520:
    case 517:
    case 516:
    case 361:
    case 360:
    case 310:
    case 309:
    case 308:
    case 289:
    case 288:
    case 282:
    case 281:
    case 280:
    case 279:
    case 278:
    case 277:
    case 276:
    case 275:
    case 274:
    case 273:
    case 272:
    case 271:
    case 270:
    case 269:
    case 263:
    case 262:
    case 260:
    case 259:
    case 258:
    case 257:
    case 256:
    case 255:
    case 254:
    case 253:
    case 252:
    case 251:
    case 249:
    case 248:
    case 246:
    case 245:
    case 243:
    case 242:
    case 240:
    case 239:
    case 238:
    case 237:
    case 236:
    case 235:
    case 120:
    case 119:
    case 118:
    case 117:
    case 111:
    case 106:
    case 105:
    case 103:
    case 102:
    case 100:
      return 13 /* 0xd */;

    case 354:
    case 353:
    case 352:
    case 327:
    case 326:
    case 324:
    case 323:
    case 320:
    case 319:
    case 316:
    case 315:
    case 116:
    case 115:
    case 94:
    case 93:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  return 2;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC750)))
        {
	  return 4;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case 48:
    case 44:
    case 34:
    case 24:
    case 20:
    case 16:
    case 12:
    case 8:
    case 1:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  return 2;
        }
      else if ((which_alternative == 1) && ((((((rs6000_cpu_attr) == (CPU_RIOS2))) || (((rs6000_cpu_attr) == (CPU_PPC750)))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC604E))))) || (((rs6000_cpu_attr) == (CPU_PPC604)))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    case 710:
    case 708:
    case 688:
    case 673:
    case 672:
    case 667:
    case 666:
    case 663:
    case 662:
    case 661:
    case 660:
    case 659:
    case 656:
    case 651:
    case 650:
    case 648:
    case 645:
    case 644:
    case 641:
    case 640:
    case 637:
    case 634:
    case 633:
    case 628:
    case 627:
    case 626:
    case 623:
    case 621:
    case 620:
    case 617:
    case 615:
    case 614:
    case 611:
    case 609:
    case 606:
    case 605:
    case 602:
    case 598:
    case 597:
    case 596:
    case 593:
    case 591:
    case 586:
    case 585:
    case 584:
    case 583:
    case 582:
    case 579:
    case 575:
    case 574:
    case 573:
    case 572:
    case 570:
    case 568:
    case 563:
    case 562:
    case 531:
    case 503:
    case 501:
    case 500:
    case 449:
    case 418:
    case 417:
    case 414:
    case 411:
    case 408:
    case 405:
    case 402:
    case 398:
    case 393:
    case 389:
    case 386:
    case 382:
    case 378:
    case 374:
    case 371:
    case 368:
    case 365:
    case 362:
    case 357:
    case 351:
    case 348:
    case 345:
    case 343:
    case 339:
    case 336:
    case 332:
    case 330:
    case 329:
    case 328:
    case 313:
    case 312:
    case 311:
    case 301:
    case 296:
    case 294:
    case 291:
    case 230:
    case 229:
    case 227:
    case 226:
    case 225:
    case 222:
    case 219:
    case 216:
    case 211:
    case 210:
    case 206:
    case 201:
    case 200:
    case 196:
    case 193:
    case 190:
    case 187:
    case 186:
    case 185:
    case 184:
    case 181:
    case 179:
    case 178:
    case 177:
    case 176:
    case 175:
    case 174:
    case 168:
    case 167:
    case 166:
    case 165:
    case 160:
    case 155:
    case 150:
    case 145:
    case 140:
    case 134:
    case 127:
    case 121:
    case 108:
    case 91:
    case 88:
    case 86:
    case 85:
    case 83:
    case 82:
    case 78:
    case 64:
    case 63:
    case 58:
    case 52:
    case 38:
    case 28:
    case 4:
      if ((((rs6000_cpu_attr) == (CPU_RIOS2))) || ((((rs6000_cpu_attr) == (CPU_PPC750))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604)))))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    default:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  return 3;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))))
        {
	  return 1;
        }
      else
        {
	  return 13 /* 0xd */;
        }

    }
}

unsigned int
iu2_unit_blockage_range (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      return 65549 /* min 1, max 13 */;

    }
}

int
fpu_unit_ready_cost (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case 567:
    case 566:
      if ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || ((((rs6000_cpu_attr) == (CPU_PPC750))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))))
        {
	  return 5;
        }
      else if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  return 9;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  return 1;
        }
      else
        {
	  return 33 /* 0x21 */;
        }

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative == 7)) || (((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 7)) || (((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative == 7)) || (((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 7)) || ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 7))))))
        {
	  return 3;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) && (which_alternative == 7))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) && (which_alternative == 9))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS1))) && (which_alternative == 7))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS1))) && (which_alternative == 9))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative == 7))
        {
	  return 4;
        }
      else
        {
	  return 33 /* 0x21 */;
        }

    case 442:
    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative == 6)) || (((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 6)) || (((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative == 6)) || (((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 6)) || ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 6))))))
        {
	  return 3;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) && (which_alternative == 6))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) && (which_alternative == 8))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS1))) && (which_alternative == 6))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS1))) && (which_alternative == 8))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative == 6))
        {
	  return 4;
        }
      else
        {
	  return 33 /* 0x21 */;
        }

    case 445:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative == 3)) || (((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 3)) || (((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative == 3)) || (((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 3)) || ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 3))))))
        {
	  return 3;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) && (which_alternative == 3))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) && (which_alternative == 5))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS1))) && (which_alternative == 3))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_RIOS1))) && (which_alternative == 5))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative == 3))
        {
	  return 4;
        }
      else
        {
	  return 33 /* 0x21 */;
        }

    case 499:
    case 495:
    case 303:
      if ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 1;
        }
      else
        {
	  return 33 /* 0x21 */;
        }

    case 282:
    case 263:
    case 262:
      if (((rs6000_cpu_attr) == (CPU_PPC620)))
        {
	  return 31 /* 0x1f */;
        }
      else
        {
	  return 33 /* 0x21 */;
        }

    case 277:
    case 252:
      if ((((rs6000_cpu_attr) == (CPU_PPC620))) || ((((rs6000_cpu_attr) == (CPU_PPC750))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || (((rs6000_cpu_attr) == (CPU_PPC601)))))))
        {
	  return 31 /* 0x1f */;
        }
      else if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  return 19 /* 0x13 */;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  return 17 /* 0x11 */;
        }
      else
        {
	  return 33 /* 0x21 */;
        }

    case 251:
      if ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))))
        {
	  return 18 /* 0x12 */;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC601)))
        {
	  return 17 /* 0x11 */;
        }
      else if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  return 19 /* 0x13 */;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  return 10 /* 0xa */;
        }
      else
        {
	  return 33 /* 0x21 */;
        }

    case 281:
    case 280:
    case 279:
    case 278:
    case 276:
    case 260:
    case 258:
    case 256:
    case 254:
    case 249:
      if (((rs6000_cpu_attr) == (CPU_PPC603)))
        {
	  return 4;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC620)))
        {
	  return 3;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC750)))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))
        {
	  return 3;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC601)))
        {
	  return 5;
        }
      else if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  return 2;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  return 5;
        }
      else
        {
	  return 33 /* 0x21 */;
        }

    case 310:
    case 309:
    case 308:
    case 289:
    case 288:
    case 275:
    case 274:
    case 273:
    case 272:
    case 271:
    case 270:
    case 269:
    case 259:
    case 257:
    case 255:
    case 253:
    case 248:
    case 246:
    case 245:
    case 243:
    case 242:
    case 240:
    case 239:
    case 238:
    case 237:
    case 236:
    case 235:
      if ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || ((((rs6000_cpu_attr) == (CPU_PPC750))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604)))))))
        {
	  return 3;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC601)))
        {
	  return 4;
        }
      else if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  return 2;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  return 4;
        }
      else
        {
	  return 33 /* 0x21 */;
        }

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      return 33 /* 0x21 */;

    }
}

unsigned int
fpu_unit_blockage_range (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      return 65569 /* min 1, max 33 */;

    }
}

int
iu_unit_ready_cost (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case 592:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC601)))) || (((rs6000_cpu_attr) == (CPU_PPC403)))))
        {
	  return 3;
        }
      else if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 5;
        }
      else if (((which_alternative == 1) && ((((((rs6000_cpu_attr) == (CPU_PPC750))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || (((rs6000_cpu_attr) == (CPU_MPCCORE))))) || ((which_alternative == 0) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC601)))) || (((rs6000_cpu_attr) == (CPU_PPC403))))))
        {
	  return 3;
        }
      else if ((which_alternative == 0) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 4;
        }
      else if ((which_alternative == 0) && ((((((rs6000_cpu_attr) == (CPU_PPC750))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))
        {
	  return 3;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 567:
    case 566:
      if ((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  return 1;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 460:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && (((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403)))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))
        {
	  return 2;
        }
      else if (((which_alternative == 0) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403))))) || ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))) || ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))))
        {
	  return 1;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 459:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 2) && (((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403)))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))
        {
	  return 2;
        }
      else if (((which_alternative == 1) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403))))) || ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))) || ((which_alternative == 0) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))))
        {
	  return 1;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 458:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((which_alternative != 0) && (which_alternative != 1)) && (which_alternative != 2)) && (((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403)))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))
        {
	  return 2;
        }
      else if (((which_alternative == 2) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403))))) || ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))) || (((which_alternative == 0) || (which_alternative == 1)) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))))
        {
	  return 1;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 8) && (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  return 3;
        }
      else if (((which_alternative == 8) && (((rs6000_cpu_attr) == (CPU_RIOS1)))) || ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))))
        {
	  return 2;
        }
      else if ((((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 10) || (which_alternative == 12))))))) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC601)))) || (((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))) || (((which_alternative == 9) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))) || ((which_alternative == 2) && (((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403)))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))))
        {
	  return 1;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 442:
    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  return 3;
        }
      else if (((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_RIOS1)))) || ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))))
        {
	  return 2;
        }
      else if ((((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || (which_alternative == 5)))) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC601)))) || (((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))) || (((which_alternative == 8) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))) || ((which_alternative == 2) && (((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403)))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))))
        {
	  return 1;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 443:
    case 441:
    case 435:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && (((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403)))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))
        {
	  return 2;
        }
      else if ((((which_alternative != 1) && (which_alternative != 2)) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403))))) || ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))) || ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))))
        {
	  return 1;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 445:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 4) && (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  return 3;
        }
      else if (((which_alternative == 4) && (((rs6000_cpu_attr) == (CPU_RIOS1)))) || ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))))
        {
	  return 2;
        }
      else if ((((which_alternative != 1) && ((which_alternative != 2) && ((which_alternative != 3) && ((which_alternative != 4) && (which_alternative != 5))))) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC601)))) || (((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))) || (((which_alternative == 5) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))) || ((which_alternative == 2) && (((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403)))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))))
        {
	  return 1;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 431:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 3) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC601)))) || (((rs6000_cpu_attr) == (CPU_PPC403)))))
        {
	  return 3;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 4;
        }
      else if ((which_alternative == 3) && ((((((rs6000_cpu_attr) == (CPU_PPC750))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))
        {
	  return 3;
        }
      else if ((which_alternative == 6) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1))))))
        {
	  return 2;
        }
      else if ((((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 2) || ((which_alternative == 4) || (which_alternative == 5))))) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC601)))) || (((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))) || ((which_alternative == 7) && (((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403)))) || (((rs6000_cpu_attr) == (CPU_RIOS1))))))
        {
	  return 1;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 429:
    case 427:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && (((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403)))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))
        {
	  return 2;
        }
      else if ((((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || (which_alternative == 7))))) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403))))) || ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))) || ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))))
        {
	  return 1;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 423:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 2) && (((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403)))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))
        {
	  return 2;
        }
      else if ((((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 7) || ((which_alternative == 8) || ((which_alternative == 9) || (which_alternative == 11))))))))) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403))))) || ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))) || ((which_alternative == 3) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))))
        {
	  return 1;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 391:
    case 390:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 3) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC601)))) || (((rs6000_cpu_attr) == (CPU_PPC403)))))
        {
	  return 3;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 5;
        }
      else if (((which_alternative == 3) && ((((((rs6000_cpu_attr) == (CPU_PPC750))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || (((rs6000_cpu_attr) == (CPU_MPCCORE))))) || (((which_alternative == 0) || ((which_alternative == 1) || (which_alternative == 2))) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC601)))) || (((rs6000_cpu_attr) == (CPU_PPC403))))))
        {
	  return 3;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || (which_alternative == 2))) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 4;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || (which_alternative == 2))) && ((((((rs6000_cpu_attr) == (CPU_PPC750))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))
        {
	  return 3;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 515:
    case 514:
    case 513:
    case 512:
    case 511:
    case 510:
    case 509:
    case 496:
    case 492:
    case 491:
    case 489:
    case 488:
    case 487:
    case 485:
    case 483:
    case 482:
    case 481:
    case 480:
    case 478:
    case 477:
    case 475:
    case 474:
    case 472:
    case 471:
    case 469:
    case 468:
    case 462:
    case 420:
    case 304:
      if ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))
        {
	  return 2;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 498:
    case 494:
    case 299:
      if (((rs6000_cpu_attr) == (CPU_PPC601)))
        {
	  return 3;
        }
      else if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  return 2;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 499:
    case 497:
    case 495:
    case 493:
    case 490:
    case 486:
    case 484:
    case 465:
    case 464:
    case 303:
    case 298:
    case 297:
      if ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))
        {
	  return 1;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 703:
    case 702:
    case 701:
    case 700:
    case 699:
    case 698:
    case 697:
    case 696:
    case 695:
    case 694:
    case 693:
    case 692:
    case 687:
    case 686:
    case 682:
    case 681:
    case 679:
    case 678:
    case 677:
    case 676:
    case 675:
    case 674:
    case 532:
    case 529:
    case 528:
    case 527:
    case 526:
    case 525:
    case 524:
    case 523:
    case 522:
    case 521:
    case 520:
    case 517:
    case 516:
    case 310:
    case 309:
    case 308:
    case 289:
    case 288:
    case 282:
    case 281:
    case 280:
    case 279:
    case 278:
    case 277:
    case 276:
    case 275:
    case 274:
    case 273:
    case 272:
    case 271:
    case 270:
    case 269:
    case 263:
    case 262:
    case 260:
    case 259:
    case 258:
    case 257:
    case 256:
    case 255:
    case 254:
    case 253:
    case 252:
    case 251:
    case 249:
    case 248:
    case 246:
    case 245:
    case 243:
    case 242:
    case 240:
    case 239:
    case 238:
    case 237:
    case 236:
    case 235:
      return 37 /* 0x25 */;

    case 124:
    case 122:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 3) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC601)))) || (((rs6000_cpu_attr) == (CPU_PPC403)))))
        {
	  return 3;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 5;
        }
      else if (((which_alternative == 3) && ((((((rs6000_cpu_attr) == (CPU_PPC750))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || (((rs6000_cpu_attr) == (CPU_MPCCORE))))) || ((which_alternative != 3) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC601)))) || (((rs6000_cpu_attr) == (CPU_PPC403))))))
        {
	  return 3;
        }
      else if ((which_alternative != 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  return 4;
        }
      else if ((which_alternative != 3) && ((((((rs6000_cpu_attr) == (CPU_PPC750))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC604))))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))
        {
	  return 3;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 361:
    case 360:
    case 120:
    case 119:
    case 118:
    case 117:
    case 111:
    case 106:
    case 105:
    case 103:
    case 102:
    case 100:
      if (((rs6000_cpu_attr) == (CPU_PPC601)))
        {
	  return 36 /* 0x24 */;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC403)))
        {
	  return 33 /* 0x21 */;
        }
      else if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  return 19 /* 0x13 */;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 354:
    case 353:
    case 352:
    case 327:
    case 326:
    case 324:
    case 323:
    case 320:
    case 319:
    case 316:
    case 315:
    case 116:
    case 115:
    case 94:
    case 93:
      if ((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  return 5;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC403)))
        {
	  return 4;
        }
      else if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  return 5;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 649:
    case 647:
    case 646:
    case 610:
    case 571:
    case 569:
    case 388:
    case 387:
    case 384:
    case 383:
    case 380:
    case 379:
    case 376:
    case 375:
    case 373:
    case 372:
    case 370:
    case 369:
    case 367:
    case 366:
    case 364:
    case 363:
    case 234:
    case 233:
    case 232:
    case 231:
    case 224:
    case 223:
    case 221:
    case 220:
    case 218:
    case 217:
    case 215:
    case 214:
    case 213:
    case 212:
    case 208:
    case 207:
    case 205:
    case 204:
    case 203:
    case 202:
    case 198:
    case 197:
    case 195:
    case 194:
    case 192:
    case 191:
    case 189:
    case 188:
    case 183:
    case 98:
    case 97:
    case 96:
    case 95:
    case 80:
    case 79:
      if ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403)))))
        {
	  return 3;
        }
      else if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  return 5;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))))
        {
	  return 3;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 671:
    case 670:
    case 669:
    case 668:
    case 665:
    case 664:
    case 658:
    case 657:
    case 655:
    case 654:
    case 653:
    case 652:
    case 643:
    case 642:
    case 639:
    case 638:
    case 636:
    case 635:
    case 632:
    case 631:
    case 630:
    case 629:
    case 625:
    case 624:
    case 622:
    case 619:
    case 618:
    case 616:
    case 613:
    case 612:
    case 608:
    case 607:
    case 604:
    case 603:
    case 601:
    case 600:
    case 599:
    case 595:
    case 594:
    case 590:
    case 589:
    case 588:
    case 587:
    case 581:
    case 580:
    case 577:
    case 576:
    case 561:
    case 560:
    case 558:
    case 557:
    case 456:
    case 425:
    case 416:
    case 415:
    case 413:
    case 412:
    case 410:
    case 409:
    case 407:
    case 406:
    case 404:
    case 403:
    case 400:
    case 399:
    case 395:
    case 394:
    case 359:
    case 358:
    case 350:
    case 349:
    case 341:
    case 340:
    case 338:
    case 337:
    case 334:
    case 333:
    case 182:
    case 172:
    case 171:
    case 170:
    case 169:
    case 163:
    case 161:
    case 158:
    case 156:
    case 153:
    case 151:
    case 148:
    case 146:
    case 143:
    case 141:
    case 137:
    case 135:
    case 130:
    case 128:
    case 110:
    case 109:
    case 90:
    case 89:
    case 69:
    case 68:
    case 66:
    case 65:
    case 61:
    case 59:
    case 55:
    case 53:
    case 50:
    case 49:
    case 46:
    case 45:
    case 40:
    case 39:
    case 36:
    case 35:
    case 30:
    case 29:
    case 26:
    case 25:
    case 22:
    case 21:
    case 18:
    case 17:
    case 14:
    case 13:
    case 10:
    case 9:
    case 6:
    case 5:
    case 3:
    case 2:
      if ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403)))))
        {
	  return 3;
        }
      else if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  return 4;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))))
        {
	  return 3;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case 48:
    case 44:
    case 34:
    case 24:
    case 20:
    case 16:
    case 12:
    case 8:
    case 1:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) && (((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403)))) || (((rs6000_cpu_attr) == (CPU_RIOS1)))))
        {
	  return 2;
        }
      else if ((which_alternative == 1) && (((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC403))))) || ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_MPCCORE))))))
        {
	  return 1;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      if ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))))
        {
	  return 1;
        }
      else
        {
	  return 37 /* 0x25 */;
        }

    }
}

unsigned int
iu_unit_blockage_range (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      return 65572 /* min 1, max 36 */;

    }
}

int
lsu_unit_ready_cost (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case 460:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_PPC620))))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_PPC604E))))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_PPC604))))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_PPC603))))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_MPCCORE))))
        {
	  return 1;
        }
      else
        {
	  return 3;
        }

    case 459:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_PPC620))))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 0))
        {
	  return 1;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_PPC604E))))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 0))
        {
	  return 1;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_PPC604))))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 0))
        {
	  return 1;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative == 0))
        {
	  return 1;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_PPC603))))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative == 0))
        {
	  return 1;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_MPCCORE))))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative == 0))
        {
	  return 1;
        }
      else
        {
	  return 3;
        }

    case 458:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (((which_alternative != 0) && (which_alternative != 1)) && (which_alternative != 2)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC620))) && ((which_alternative == 0) || (which_alternative == 1)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (((which_alternative != 0) && (which_alternative != 1)) && (which_alternative != 2)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && ((which_alternative == 0) || (which_alternative == 1)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (((which_alternative != 0) && (which_alternative != 1)) && (which_alternative != 2)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && ((which_alternative == 0) || (which_alternative == 1)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && (((which_alternative != 0) && (which_alternative != 1)) && (which_alternative != 2)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && ((which_alternative == 0) || (which_alternative == 1)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && (((which_alternative != 0) && (which_alternative != 1)) && (which_alternative != 2)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && ((which_alternative == 0) || (which_alternative == 1)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (((which_alternative != 0) && (which_alternative != 1)) && (which_alternative != 2)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && ((which_alternative == 0) || (which_alternative == 1)))
        {
	  return 1;
        }
      else
        {
	  return 3;
        }

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC620))) && ((which_alternative == 9) || (which_alternative == 2)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && ((which_alternative == 9) || (which_alternative == 2)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && ((which_alternative == 9) || (which_alternative == 2)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && ((which_alternative == 8) || (which_alternative == 1)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && ((which_alternative == 9) || (which_alternative == 2)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && ((which_alternative == 8) || (which_alternative == 1)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && ((which_alternative == 9) || (which_alternative == 2)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && ((which_alternative == 8) || (which_alternative == 1)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && ((which_alternative == 9) || (which_alternative == 2)))
        {
	  return 1;
        }
      else
        {
	  return 3;
        }

    case 442:
    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC620))) && ((which_alternative == 8) || (which_alternative == 2)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && ((which_alternative == 8) || (which_alternative == 2)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && ((which_alternative == 8) || (which_alternative == 2)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && ((which_alternative == 7) || (which_alternative == 1)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && ((which_alternative == 8) || (which_alternative == 2)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && ((which_alternative == 7) || (which_alternative == 1)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && ((which_alternative == 8) || (which_alternative == 2)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && ((which_alternative == 7) || (which_alternative == 1)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && ((which_alternative == 8) || (which_alternative == 2)))
        {
	  return 1;
        }
      else
        {
	  return 3;
        }

    case 445:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC620))) && ((which_alternative == 5) || (which_alternative == 2)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && ((which_alternative == 5) || (which_alternative == 2)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && ((which_alternative == 5) || (which_alternative == 2)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && ((which_alternative == 4) || (which_alternative == 1)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && ((which_alternative == 5) || (which_alternative == 2)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && ((which_alternative == 4) || (which_alternative == 1)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && ((which_alternative == 5) || (which_alternative == 2)))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && ((which_alternative == 4) || (which_alternative == 1)))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && ((which_alternative == 5) || (which_alternative == 2)))
        {
	  return 1;
        }
      else
        {
	  return 3;
        }

    case 431:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 6))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 7))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 6))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 7))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 6))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 7))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative == 6))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative == 7))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative == 6))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative == 7))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative == 6))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative == 7))
        {
	  return 1;
        }
      else
        {
	  return 3;
        }

    case 443:
    case 441:
    case 435:
    case 429:
    case 427:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 2))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 2))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 2))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative == 2))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative == 2))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative == 1))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative == 2))
        {
	  return 1;
        }
      else
        {
	  return 3;
        }

    case 423:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 2))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 3))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 2))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 3))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 2))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 3))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative == 2))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative == 3))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative == 2))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative == 3))
        {
	  return 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative == 2))
        {
	  return 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative == 3))
        {
	  return 1;
        }
      else
        {
	  return 3;
        }

    case 515:
    case 514:
    case 513:
    case 512:
    case 511:
    case 510:
    case 509:
    case 496:
    case 492:
    case 491:
    case 489:
    case 488:
    case 487:
    case 485:
    case 483:
    case 482:
    case 481:
    case 480:
    case 478:
    case 477:
    case 475:
    case 474:
    case 472:
    case 471:
    case 469:
    case 468:
    case 462:
    case 420:
    case 304:
      if ((((rs6000_cpu_attr) == (CPU_PPC620))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC750))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_MPCCORE))))))))
        {
	  return 2;
        }
      else
        {
	  return 3;
        }

    case 498:
    case 494:
    case 299:
      if ((((rs6000_cpu_attr) == (CPU_PPC750))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))))
        {
	  return 2;
        }
      else
        {
	  return 3;
        }

    case 499:
    case 497:
    case 495:
    case 493:
    case 490:
    case 486:
    case 484:
    case 465:
    case 464:
    case 303:
    case 298:
    case 297:
      if ((((rs6000_cpu_attr) == (CPU_PPC620))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC750))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_MPCCORE))))))))
        {
	  return 1;
        }
      else
        {
	  return 3;
        }

    case 48:
    case 44:
    case 34:
    case 24:
    case 20:
    case 16:
    case 12:
    case 8:
    case 1:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (((((rs6000_cpu_attr) == (CPU_PPC620))) && (which_alternative == 0)) || (((((rs6000_cpu_attr) == (CPU_PPC604E))) && (which_alternative == 0)) || (((((rs6000_cpu_attr) == (CPU_PPC604))) && (which_alternative == 0)) || (((((rs6000_cpu_attr) == (CPU_PPC750))) && (which_alternative == 0)) || (((((rs6000_cpu_attr) == (CPU_PPC603))) && (which_alternative == 0)) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) && (which_alternative == 0)))))))
        {
	  return 2;
        }
      else
        {
	  return 3;
        }

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      return 3;

    }
}

int
function_units_used (insn)
     rtx insn;
{
  register enum attr_type attr_type = get_attr_type (insn);
  register unsigned long accum = 0;

  accum |= ((((attr_type == TYPE_LOAD) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))) || ((((attr_type == TYPE_STORE) || (attr_type == TYPE_FPSTORE)) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))) || ((attr_type == TYPE_FPLOAD) && (((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC750))))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))))) ? (1) : (0));
  accum |= ((((attr_type == TYPE_LOAD) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601)))))) || ((((attr_type == TYPE_STORE) || (attr_type == TYPE_FPSTORE)) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601)))))) || (((attr_type == TYPE_FPLOAD) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_PPC601))))) || (((attr_type == TYPE_INTEGER) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603)))))))) || (((attr_type == TYPE_IMUL) && ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))) || (((attr_type == TYPE_IDIV) && ((((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_PPC403)))) || (((rs6000_cpu_attr) == (CPU_PPC601)))) || (((rs6000_cpu_attr) == (CPU_PPC603))))) || (((attr_type == TYPE_COMPARE) && (((rs6000_cpu_attr) == (CPU_RIOS1)))) || (((attr_type == TYPE_DELAYED_COMPARE) && (((rs6000_cpu_attr) == (CPU_RIOS1)))) || ((((attr_type == TYPE_COMPARE) || (attr_type == TYPE_DELAYED_COMPARE)) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))))) || ((attr_type == TYPE_FPCOMPARE) && ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603)))))))))))))) ? (2) : (0));
  accum |= ((((attr_type == TYPE_FPSTORE) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_PPC601))))) || (((attr_type == TYPE_FPCOMPARE) && (((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))) || (((rs6000_cpu_attr) == (CPU_MPCCORE))))) || ((((attr_type == TYPE_FP) || (attr_type == TYPE_DMUL)) && (((rs6000_cpu_attr) == (CPU_RIOS1)))) || (((attr_type == TYPE_FP) && (((((rs6000_cpu_attr) == (CPU_MPCCORE))) || (((rs6000_cpu_attr) == (CPU_PPC601)))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))) || (((attr_type == TYPE_DMUL) && ((((((rs6000_cpu_attr) == (CPU_MPCCORE))) || (((rs6000_cpu_attr) == (CPU_PPC601)))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC750))))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))) || ((((attr_type == TYPE_SDIV) || (attr_type == TYPE_DDIV)) && (((rs6000_cpu_attr) == (CPU_RIOS1)))) || (((attr_type == TYPE_SDIV) && (((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_MPCCORE)))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620)))))))) || (((attr_type == TYPE_DDIV) && (((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))) || (((rs6000_cpu_attr) == (CPU_PPC603))))) || (((attr_type == TYPE_SSQRT) && (((rs6000_cpu_attr) == (CPU_PPC620)))) || ((attr_type == TYPE_DSQRT) && (((rs6000_cpu_attr) == (CPU_PPC620))))))))))))) ? (4) : (0));
  accum |= (((((attr_type == TYPE_LOAD) || (attr_type == TYPE_FPLOAD)) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || ((((attr_type == TYPE_STORE) || (attr_type == TYPE_FPSTORE)) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || (((attr_type == TYPE_INTEGER) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || (((attr_type == TYPE_IMUL) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || (((attr_type == TYPE_IDIV) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || (((attr_type == TYPE_INTEGER) && (((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))) || (((rs6000_cpu_attr) == (CPU_PPC750))))) || (((attr_type == TYPE_IMUL) && (((rs6000_cpu_attr) == (CPU_PPC750)))) || (((attr_type == TYPE_COMPARE) || (attr_type == TYPE_DELAYED_COMPARE)) && ((((rs6000_cpu_attr) == (CPU_RIOS2))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))))))))) ? (8) : (0));
  accum |= ((((attr_type == TYPE_IMUL) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || (((attr_type == TYPE_IDIV) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || (((attr_type == TYPE_IMUL) && (((rs6000_cpu_attr) == (CPU_MPCCORE)))) || (((attr_type == TYPE_IDIV) && (((rs6000_cpu_attr) == (CPU_MPCCORE)))) || (((attr_type == TYPE_IMUL) && (((((rs6000_cpu_attr) == (CPU_PPC604))) || (((rs6000_cpu_attr) == (CPU_PPC620)))) || (((rs6000_cpu_attr) == (CPU_PPC604E))))) || (((attr_type == TYPE_IDIV) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620)))))) || (((attr_type == TYPE_IMUL) && (((rs6000_cpu_attr) == (CPU_PPC750)))) || ((attr_type == TYPE_IDIV) && (((rs6000_cpu_attr) == (CPU_PPC750))))))))))) ? (16) : (0));
  accum |= ((((attr_type == TYPE_MTJMPR) && (((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_RIOS2)))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))) || ((attr_type == TYPE_JMPREG) || (attr_type == TYPE_BRANCH))) ? (64) : (0));
  accum |= ((((attr_type == TYPE_FPCOMPARE) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || (((attr_type == TYPE_FP) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || (((attr_type == TYPE_DMUL) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || ((((attr_type == TYPE_SDIV) || (attr_type == TYPE_DDIV)) && (((rs6000_cpu_attr) == (CPU_RIOS2)))) || (((attr_type == TYPE_SSQRT) || (attr_type == TYPE_DSQRT)) && (((rs6000_cpu_attr) == (CPU_RIOS2)))))))) ? (32) : (0));

  if (accum && accum == (accum & -accum))
    {
      int i;
      for (i = 0; accum >>= 1; ++i) continue;
      accum = i;
    }
  else
    accum = ~accum;
  return accum;
}

enum attr_type
get_attr_type (insn)
     rtx insn;
{
  switch (recog_memoized (insn))
    {
    case 458:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) || (which_alternative == 1))
        {
	  return TYPE_STORE;
        }
      else if (which_alternative == 2)
        {
	  return TYPE_INTEGER;
        }
      else
        {
	  return TYPE_LOAD;
        }

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  return TYPE_INTEGER;
        }
      else if (which_alternative == 1)
        {
	  return TYPE_LOAD;
        }
      else if (which_alternative == 2)
        {
	  return TYPE_STORE;
        }
      else if ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || (which_alternative == 6))))
        {
	  return TYPE_INTEGER;
        }
      else if (which_alternative == 7)
        {
	  return TYPE_FP;
        }
      else if (which_alternative == 8)
        {
	  return TYPE_FPLOAD;
        }
      else if (which_alternative == 9)
        {
	  return TYPE_FPSTORE;
        }
      else if (which_alternative == 10)
        {
	  return TYPE_INTEGER;
        }
      else if (which_alternative == 11)
        {
	  return TYPE_MTJMPR;
        }
      else
        {
	  return TYPE_INTEGER;
        }

    case 442:
    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  return TYPE_INTEGER;
        }
      else if (which_alternative == 1)
        {
	  return TYPE_LOAD;
        }
      else if (which_alternative == 2)
        {
	  return TYPE_STORE;
        }
      else if ((which_alternative == 3) || ((which_alternative == 4) || (which_alternative == 5)))
        {
	  return TYPE_INTEGER;
        }
      else if (which_alternative == 6)
        {
	  return TYPE_FP;
        }
      else if (which_alternative == 7)
        {
	  return TYPE_FPLOAD;
        }
      else
        {
	  return TYPE_FPSTORE;
        }

    case 443:
    case 441:
    case 435:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  return TYPE_INTEGER;
        }
      else if (which_alternative == 1)
        {
	  return TYPE_LOAD;
        }
      else if (which_alternative == 2)
        {
	  return TYPE_STORE;
        }
      else
        {
	  return TYPE_INTEGER;
        }

    case 445:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  return TYPE_INTEGER;
        }
      else if (which_alternative == 1)
        {
	  return TYPE_LOAD;
        }
      else if (which_alternative == 2)
        {
	  return TYPE_STORE;
        }
      else if (which_alternative == 3)
        {
	  return TYPE_FP;
        }
      else if (which_alternative == 4)
        {
	  return TYPE_FPLOAD;
        }
      else if (which_alternative == 5)
        {
	  return TYPE_FPSTORE;
        }
      else
        {
	  return TYPE_INTEGER;
        }

    case 431:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) || ((which_alternative == 1) || (which_alternative == 2)))
        {
	  return TYPE_INTEGER;
        }
      else if (which_alternative == 3)
        {
	  return TYPE_COMPARE;
        }
      else if ((which_alternative == 4) || (which_alternative == 5))
        {
	  return TYPE_INTEGER;
        }
      else if (which_alternative == 6)
        {
	  return TYPE_LOAD;
        }
      else
        {
	  return TYPE_STORE;
        }

    case 429:
    case 427:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  return TYPE_INTEGER;
        }
      else if (which_alternative == 1)
        {
	  return TYPE_LOAD;
        }
      else if (which_alternative == 2)
        {
	  return TYPE_STORE;
        }
      else if ((which_alternative == 3) || ((which_alternative == 4) || (which_alternative == 5)))
        {
	  return TYPE_INTEGER;
        }
      else if (which_alternative == 6)
        {
	  return TYPE_MTJMPR;
        }
      else
        {
	  return TYPE_INTEGER;
        }

    case 423:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) || (which_alternative == 1))
        {
	  return TYPE_INTEGER;
        }
      else if (which_alternative == 2)
        {
	  return TYPE_LOAD;
        }
      else if (which_alternative == 3)
        {
	  return TYPE_STORE;
        }
      else if ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 7) || ((which_alternative == 8) || (which_alternative == 9))))))
        {
	  return TYPE_INTEGER;
        }
      else if (which_alternative == 10)
        {
	  return TYPE_MTJMPR;
        }
      else
        {
	  return TYPE_INTEGER;
        }

    case 391:
    case 390:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) || ((which_alternative == 1) || (which_alternative == 2)))
        {
	  return TYPE_COMPARE;
        }
      else
        {
	  return TYPE_DELAYED_COMPARE;
        }

    case 124:
    case 122:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) || ((which_alternative == 1) || (which_alternative == 2)))
        {
	  return TYPE_COMPARE;
        }
      else if (which_alternative == 3)
        {
	  return TYPE_DELAYED_COMPARE;
        }
      else if ((which_alternative == 4) || ((which_alternative == 5) || (which_alternative == 6)))
        {
	  return TYPE_COMPARE;
        }
      else
        {
	  return TYPE_COMPARE;
        }

    case 1:
    case 8:
    case 12:
    case 16:
    case 20:
    case 24:
    case 34:
    case 44:
    case 48:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  return TYPE_LOAD;
        }
      else
        {
	  return TYPE_INTEGER;
        }

    case 459:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  return TYPE_STORE;
        }
      else if (which_alternative == 1)
        {
	  return TYPE_INTEGER;
        }
      else
        {
	  return TYPE_LOAD;
        }

    case 460:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  return TYPE_INTEGER;
        }
      else if (which_alternative == 1)
        {
	  return TYPE_LOAD;
        }
      else
        {
	  return TYPE_STORE;
        }

    case 592:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (which_alternative == 0)
        {
	  return TYPE_COMPARE;
        }
      else
        {
	  return TYPE_DELAYED_COMPARE;
        }

    case 516:
    case 517:
    case 679:
    case 681:
    case 682:
    case 686:
    case 687:
      return TYPE_JMPREG;

    case 263:
    case 282:
      return TYPE_DSQRT;

    case 262:
      return TYPE_SSQRT;

    case 252:
    case 277:
      return TYPE_DDIV;

    case 251:
      return TYPE_SDIV;

    case 249:
    case 254:
    case 256:
    case 258:
    case 260:
    case 276:
    case 278:
    case 279:
    case 280:
    case 281:
      return TYPE_DMUL;

    case 235:
    case 236:
    case 237:
    case 238:
    case 239:
    case 240:
    case 242:
    case 243:
    case 245:
    case 246:
    case 248:
    case 253:
    case 255:
    case 257:
    case 259:
    case 269:
    case 270:
    case 271:
    case 272:
    case 273:
    case 274:
    case 275:
    case 288:
    case 289:
    case 308:
    case 309:
    case 310:
      return TYPE_FP;

    case 566:
    case 567:
      return TYPE_FPCOMPARE;

    case 79:
    case 80:
    case 95:
    case 96:
    case 97:
    case 98:
    case 183:
    case 188:
    case 189:
    case 191:
    case 192:
    case 194:
    case 195:
    case 197:
    case 198:
    case 202:
    case 203:
    case 204:
    case 205:
    case 207:
    case 208:
    case 212:
    case 213:
    case 214:
    case 215:
    case 217:
    case 218:
    case 220:
    case 221:
    case 223:
    case 224:
    case 231:
    case 232:
    case 233:
    case 234:
    case 363:
    case 364:
    case 366:
    case 367:
    case 369:
    case 370:
    case 372:
    case 373:
    case 375:
    case 376:
    case 379:
    case 380:
    case 383:
    case 384:
    case 387:
    case 388:
    case 569:
    case 571:
    case 610:
    case 646:
    case 647:
    case 649:
      return TYPE_DELAYED_COMPARE;

    case 2:
    case 3:
    case 5:
    case 6:
    case 9:
    case 10:
    case 13:
    case 14:
    case 17:
    case 18:
    case 21:
    case 22:
    case 25:
    case 26:
    case 29:
    case 30:
    case 35:
    case 36:
    case 39:
    case 40:
    case 45:
    case 46:
    case 49:
    case 50:
    case 53:
    case 55:
    case 59:
    case 61:
    case 65:
    case 66:
    case 68:
    case 69:
    case 89:
    case 90:
    case 109:
    case 110:
    case 128:
    case 130:
    case 135:
    case 137:
    case 141:
    case 143:
    case 146:
    case 148:
    case 151:
    case 153:
    case 156:
    case 158:
    case 161:
    case 163:
    case 169:
    case 170:
    case 171:
    case 172:
    case 182:
    case 333:
    case 334:
    case 337:
    case 338:
    case 340:
    case 341:
    case 349:
    case 350:
    case 358:
    case 359:
    case 394:
    case 395:
    case 399:
    case 400:
    case 403:
    case 404:
    case 406:
    case 407:
    case 409:
    case 410:
    case 412:
    case 413:
    case 415:
    case 416:
    case 425:
    case 456:
    case 557:
    case 558:
    case 560:
    case 561:
    case 576:
    case 577:
    case 580:
    case 581:
    case 587:
    case 588:
    case 589:
    case 590:
    case 594:
    case 595:
    case 599:
    case 600:
    case 601:
    case 603:
    case 604:
    case 607:
    case 608:
    case 612:
    case 613:
    case 616:
    case 618:
    case 619:
    case 622:
    case 624:
    case 625:
    case 629:
    case 630:
    case 631:
    case 632:
    case 635:
    case 636:
    case 638:
    case 639:
    case 642:
    case 643:
    case 652:
    case 653:
    case 654:
    case 655:
    case 657:
    case 658:
    case 664:
    case 665:
    case 668:
    case 669:
    case 670:
    case 671:
      return TYPE_COMPARE;

    case 520:
    case 521:
    case 522:
    case 523:
    case 524:
    case 525:
    case 526:
    case 527:
    case 528:
    case 529:
    case 532:
    case 674:
    case 675:
    case 676:
    case 677:
    case 678:
    case 692:
    case 693:
    case 694:
    case 695:
    case 696:
    case 697:
    case 698:
    case 699:
    case 700:
    case 701:
    case 702:
    case 703:
      return TYPE_BRANCH;

    case 100:
    case 102:
    case 103:
    case 105:
    case 106:
    case 111:
    case 117:
    case 118:
    case 119:
    case 120:
    case 360:
    case 361:
      return TYPE_IDIV;

    case 93:
    case 94:
    case 115:
    case 116:
    case 315:
    case 316:
    case 319:
    case 320:
    case 323:
    case 324:
    case 326:
    case 327:
    case 352:
    case 353:
    case 354:
      return TYPE_IMUL;

    case 303:
    case 495:
    case 499:
      return TYPE_FPSTORE;

    case 299:
    case 494:
    case 498:
      return TYPE_FPLOAD;

    case 297:
    case 298:
    case 464:
    case 465:
    case 484:
    case 486:
    case 490:
    case 493:
    case 497:
      return TYPE_STORE;

    case 304:
    case 420:
    case 462:
    case 468:
    case 469:
    case 471:
    case 472:
    case 474:
    case 475:
    case 477:
    case 478:
    case 480:
    case 481:
    case 482:
    case 483:
    case 485:
    case 487:
    case 488:
    case 489:
    case 491:
    case 492:
    case 496:
    case 509:
    case 510:
    case 511:
    case 512:
    case 513:
    case 514:
    case 515:
      return TYPE_LOAD;

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      return TYPE_INTEGER;

    }
}

static int
fpu2_unit_blockage (executing_insn, candidate_insn)
     rtx executing_insn;
     rtx candidate_insn;
{
  rtx insn;
  int casenum;

  insn = executing_insn;
  switch (recog_memoized (insn))
    {
    case 567:
    case 566:
      casenum = 0;
      break;

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      casenum = 1;
      break;

    case 442:
    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      casenum = 1;
      break;

    case 445:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      casenum = 1;
      break;

    case 277:
    case 252:
    case 251:
      casenum = 3;
      break;

    case 281:
    case 280:
    case 279:
    case 278:
    case 276:
    case 260:
    case 258:
    case 256:
    case 254:
    case 249:
      casenum = 2;
      break;

    case 310:
    case 309:
    case 308:
    case 289:
    case 288:
    case 275:
    case 274:
    case 273:
    case 272:
    case 271:
    case 270:
    case 269:
    case 259:
    case 257:
    case 255:
    case 253:
    case 248:
    case 246:
    case 245:
    case 243:
    case 242:
    case 240:
    case 239:
    case 238:
    case 237:
    case 236:
    case 235:
      casenum = 1;
      break;

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      casenum = 4;
      break;

    }

  insn = candidate_insn;
  switch (casenum)
    {
    case 0:
      return 1;

    case 1:
      return 1;

    case 2:
      return 1;

    case 3:
      return 17 /* 0x11 */;

    case 4:
      return 26 /* 0x1a */;

    default:
      abort ();
    }
}

static int
fpu2_unit_conflict_cost (executing_insn, candidate_insn)
     rtx executing_insn;
     rtx candidate_insn;
{
  rtx insn;
  int casenum;

  insn = executing_insn;
  switch (recog_memoized (insn))
    {
    case 567:
    case 566:
      casenum = 0;
      break;

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      casenum = 1;
      break;

    case 442:
    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      casenum = 1;
      break;

    case 445:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      casenum = 1;
      break;

    case 277:
    case 252:
    case 251:
      casenum = 3;
      break;

    case 281:
    case 280:
    case 279:
    case 278:
    case 276:
    case 260:
    case 258:
    case 256:
    case 254:
    case 249:
      casenum = 2;
      break;

    case 310:
    case 309:
    case 308:
    case 289:
    case 288:
    case 275:
    case 274:
    case 273:
    case 272:
    case 271:
    case 270:
    case 269:
    case 259:
    case 257:
    case 255:
    case 253:
    case 248:
    case 246:
    case 245:
    case 243:
    case 242:
    case 240:
    case 239:
    case 238:
    case 237:
    case 236:
    case 235:
      casenum = 1;
      break;

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      casenum = 4;
      break;

    }

  insn = candidate_insn;
  switch (casenum)
    {
    case 0:
      return 1;

    case 1:
      return 1;

    case 2:
      return 1;

    case 3:
      return 17 /* 0x11 */;

    case 4:
      return 26 /* 0x1a */;

    default:
      abort ();
    }
}

static int
imuldiv_unit_blockage (executing_insn, candidate_insn)
     rtx executing_insn;
     rtx candidate_insn;
{
  rtx insn;
  int casenum;

  insn = executing_insn;
  switch (recog_memoized (insn))
    {
    case 361:
    case 360:
    case 120:
    case 119:
    case 118:
    case 117:
    case 111:
    case 106:
    case 105:
    case 103:
    case 102:
    case 100:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  casenum = 1;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  casenum = 3;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620)))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 8;
        }
      break;

    case 354:
    case 353:
    case 352:
    case 327:
    case 326:
    case 324:
    case 323:
    case 320:
    case 319:
    case 316:
    case 315:
    case 116:
    case 115:
    case 94:
    case 93:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  casenum = 0;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  casenum = 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) || (((rs6000_cpu_attr) == (CPU_PPC620))))
        {
	  casenum = 4;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC604E)))
        {
	  casenum = 5;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC750)))
        {
	  casenum = 7;
        }
      else
        {
	  casenum = 8;
        }
      break;

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      casenum = 8;
      break;

    }

  insn = candidate_insn;
  switch (casenum)
    {
    case 0:
      return 2;

    case 1:
      return 13 /* 0xd */;

    case 2:
      return 1;

    case 3:
      return 6;

    case 4:
      return 2;

    case 5:
      return 1;

    case 6:
      return 19 /* 0x13 */;

    case 7:
      return 2;

    case 8:
      return 19 /* 0x13 */;

    default:
      abort ();
    }
}

static int
imuldiv_unit_conflict_cost (executing_insn, candidate_insn)
     rtx executing_insn;
     rtx candidate_insn;
{
  rtx insn;
  int casenum;

  insn = executing_insn;
  switch (recog_memoized (insn))
    {
    case 361:
    case 360:
    case 120:
    case 119:
    case 118:
    case 117:
    case 111:
    case 106:
    case 105:
    case 103:
    case 102:
    case 100:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  casenum = 1;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  casenum = 3;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620)))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 8;
        }
      break;

    case 354:
    case 353:
    case 352:
    case 327:
    case 326:
    case 324:
    case 323:
    case 320:
    case 319:
    case 316:
    case 315:
    case 116:
    case 115:
    case 94:
    case 93:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  casenum = 0;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  casenum = 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) || (((rs6000_cpu_attr) == (CPU_PPC620))))
        {
	  casenum = 4;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC604E)))
        {
	  casenum = 5;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC750)))
        {
	  casenum = 7;
        }
      else
        {
	  casenum = 8;
        }
      break;

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      casenum = 8;
      break;

    }

  insn = candidate_insn;
  switch (casenum)
    {
    case 0:
      return 2;

    case 1:
      return 13 /* 0xd */;

    case 2:
      return 1;

    case 3:
      return 6;

    case 4:
      return 2;

    case 5:
      return 1;

    case 6:
      return 19 /* 0x13 */;

    case 7:
      return 2;

    case 8:
      return 19 /* 0x13 */;

    default:
      abort ();
    }
}

static int
iu2_unit_blockage (executing_insn, candidate_insn)
     rtx executing_insn;
     rtx candidate_insn;
{
  rtx insn;
  int casenum;

  insn = executing_insn;
  switch (recog_memoized (insn))
    {
    case 460:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 0) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if ((which_alternative == 0) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if ((which_alternative == 0) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 459:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 0) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 458:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((which_alternative != 0) && (which_alternative != 1)) && (which_alternative != 2)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 0) || (which_alternative == 1)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (((which_alternative == 1) || (which_alternative == 8)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 2) || (which_alternative == 9)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 10) || (which_alternative == 12))))))) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 10) || (which_alternative == 12))))))) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 10) || (which_alternative == 12))))))) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 442:
    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (((which_alternative == 1) || (which_alternative == 7)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 2) || (which_alternative == 8)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || (which_alternative == 5)))) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || (which_alternative == 5)))) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || (which_alternative == 5)))) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 443:
    case 441:
    case 435:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if (((which_alternative != 1) && (which_alternative != 2)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if (((which_alternative != 1) && (which_alternative != 2)) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if (((which_alternative != 1) && (which_alternative != 2)) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 445:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (((which_alternative == 1) || (which_alternative == 4)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 2) || (which_alternative == 5)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if (((which_alternative != 1) && ((which_alternative != 2) && ((which_alternative != 3) && ((which_alternative != 4) && (which_alternative != 5))))) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if (((which_alternative != 1) && ((which_alternative != 2) && ((which_alternative != 3) && ((which_alternative != 4) && (which_alternative != 5))))) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if (((which_alternative != 1) && ((which_alternative != 2) && ((which_alternative != 3) && ((which_alternative != 4) && (which_alternative != 5))))) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 431:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 6) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 2) || ((which_alternative == 4) || (which_alternative == 5))))) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 2) || ((which_alternative == 4) || (which_alternative == 5))))) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 2) || ((which_alternative == 4) || (which_alternative == 5))))) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 8;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 429:
    case 427:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || (which_alternative == 7))))) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || (which_alternative == 7))))) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || (which_alternative == 7))))) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 423:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 7) || ((which_alternative == 8) || ((which_alternative == 9) || (which_alternative == 11))))))))) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 7) || ((which_alternative == 8) || ((which_alternative == 9) || (which_alternative == 11))))))))) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 7) || ((which_alternative == 8) || ((which_alternative == 9) || (which_alternative == 11))))))))) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 515:
    case 514:
    case 513:
    case 512:
    case 511:
    case 510:
    case 509:
    case 498:
    case 496:
    case 494:
    case 492:
    case 491:
    case 489:
    case 488:
    case 487:
    case 485:
    case 483:
    case 482:
    case 481:
    case 480:
    case 478:
    case 477:
    case 475:
    case 474:
    case 472:
    case 471:
    case 469:
    case 468:
    case 462:
    case 420:
    case 304:
    case 299:
      casenum = 0;
      break;

    case 499:
    case 497:
    case 495:
    case 493:
    case 490:
    case 486:
    case 484:
    case 465:
    case 464:
    case 303:
    case 298:
    case 297:
      casenum = 1;
      break;

    case 703:
    case 702:
    case 701:
    case 700:
    case 699:
    case 698:
    case 697:
    case 696:
    case 695:
    case 694:
    case 693:
    case 692:
    case 687:
    case 686:
    case 682:
    case 681:
    case 679:
    case 678:
    case 677:
    case 676:
    case 675:
    case 674:
    case 567:
    case 566:
    case 532:
    case 529:
    case 528:
    case 527:
    case 526:
    case 525:
    case 524:
    case 523:
    case 522:
    case 521:
    case 520:
    case 517:
    case 516:
    case 310:
    case 309:
    case 308:
    case 289:
    case 288:
    case 282:
    case 281:
    case 280:
    case 279:
    case 278:
    case 277:
    case 276:
    case 275:
    case 274:
    case 273:
    case 272:
    case 271:
    case 270:
    case 269:
    case 263:
    case 262:
    case 260:
    case 259:
    case 258:
    case 257:
    case 256:
    case 255:
    case 254:
    case 253:
    case 252:
    case 251:
    case 249:
    case 248:
    case 246:
    case 245:
    case 243:
    case 242:
    case 240:
    case 239:
    case 238:
    case 237:
    case 236:
    case 235:
      casenum = 9;
      break;

    case 361:
    case 360:
    case 120:
    case 119:
    case 118:
    case 117:
    case 111:
    case 106:
    case 105:
    case 103:
    case 102:
    case 100:
      casenum = 4;
      break;

    case 354:
    case 353:
    case 352:
    case 327:
    case 326:
    case 324:
    case 323:
    case 320:
    case 319:
    case 316:
    case 315:
    case 116:
    case 115:
    case 94:
    case 93:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  casenum = 3;
        }
      else
        {
	  casenum = 7;
        }
      break;

    case 48:
    case 44:
    case 34:
    case 24:
    case 20:
    case 16:
    case 12:
    case 8:
    case 1:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    case 710:
    case 708:
    case 688:
    case 673:
    case 672:
    case 667:
    case 666:
    case 663:
    case 662:
    case 661:
    case 660:
    case 659:
    case 656:
    case 651:
    case 650:
    case 648:
    case 645:
    case 644:
    case 641:
    case 640:
    case 637:
    case 634:
    case 633:
    case 628:
    case 627:
    case 626:
    case 623:
    case 621:
    case 620:
    case 617:
    case 615:
    case 614:
    case 611:
    case 609:
    case 606:
    case 605:
    case 602:
    case 598:
    case 597:
    case 596:
    case 593:
    case 591:
    case 586:
    case 585:
    case 584:
    case 583:
    case 582:
    case 579:
    case 575:
    case 574:
    case 573:
    case 572:
    case 570:
    case 568:
    case 563:
    case 562:
    case 531:
    case 503:
    case 501:
    case 500:
    case 449:
    case 418:
    case 417:
    case 414:
    case 411:
    case 408:
    case 405:
    case 402:
    case 398:
    case 393:
    case 389:
    case 386:
    case 382:
    case 378:
    case 374:
    case 371:
    case 368:
    case 365:
    case 362:
    case 357:
    case 351:
    case 348:
    case 345:
    case 343:
    case 339:
    case 336:
    case 332:
    case 330:
    case 329:
    case 328:
    case 313:
    case 312:
    case 311:
    case 301:
    case 296:
    case 294:
    case 291:
    case 230:
    case 229:
    case 227:
    case 226:
    case 225:
    case 222:
    case 219:
    case 216:
    case 211:
    case 210:
    case 206:
    case 201:
    case 200:
    case 196:
    case 193:
    case 190:
    case 187:
    case 186:
    case 185:
    case 184:
    case 181:
    case 179:
    case 178:
    case 177:
    case 176:
    case 175:
    case 174:
    case 168:
    case 167:
    case 166:
    case 165:
    case 160:
    case 155:
    case 150:
    case 145:
    case 140:
    case 134:
    case 127:
    case 121:
    case 108:
    case 91:
    case 88:
    case 86:
    case 85:
    case 83:
    case 82:
    case 78:
    case 64:
    case 63:
    case 58:
    case 52:
    case 38:
    case 28:
    case 4:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  casenum = 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620)))))
        {
	  casenum = 5;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC750)))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    default:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  casenum = 8;
        }
      else
        {
	  casenum = 9;
        }
      break;

    }

  insn = candidate_insn;
  switch (casenum)
    {
    case 0:
      return 1;

    case 1:
      return 1;

    case 2:
      return 1;

    case 3:
      return 2;

    case 4:
      return 13 /* 0xd */;

    case 5:
      return 1;

    case 6:
      return 1;

    case 7:
      return 2;

    case 8:
      return 1;

    case 9:
      return 1;

    default:
      abort ();
    }
}

static int
iu2_unit_conflict_cost (executing_insn, candidate_insn)
     rtx executing_insn;
     rtx candidate_insn;
{
  rtx insn;
  int casenum;

  insn = executing_insn;
  switch (recog_memoized (insn))
    {
    case 460:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 0) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if ((which_alternative == 0) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if ((which_alternative == 0) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 459:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 0) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 458:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((which_alternative != 0) && (which_alternative != 1)) && (which_alternative != 2)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 0) || (which_alternative == 1)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (((which_alternative == 1) || (which_alternative == 8)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 2) || (which_alternative == 9)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 10) || (which_alternative == 12))))))) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 10) || (which_alternative == 12))))))) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 10) || (which_alternative == 12))))))) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 442:
    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (((which_alternative == 1) || (which_alternative == 7)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 2) || (which_alternative == 8)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || (which_alternative == 5)))) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || (which_alternative == 5)))) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || (which_alternative == 5)))) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 443:
    case 441:
    case 435:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if (((which_alternative != 1) && (which_alternative != 2)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if (((which_alternative != 1) && (which_alternative != 2)) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if (((which_alternative != 1) && (which_alternative != 2)) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 445:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (((which_alternative == 1) || (which_alternative == 4)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 2) || (which_alternative == 5)) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if (((which_alternative != 1) && ((which_alternative != 2) && ((which_alternative != 3) && ((which_alternative != 4) && (which_alternative != 5))))) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if (((which_alternative != 1) && ((which_alternative != 2) && ((which_alternative != 3) && ((which_alternative != 4) && (which_alternative != 5))))) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if (((which_alternative != 1) && ((which_alternative != 2) && ((which_alternative != 3) && ((which_alternative != 4) && (which_alternative != 5))))) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 431:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 6) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 2) || ((which_alternative == 4) || (which_alternative == 5))))) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 2) || ((which_alternative == 4) || (which_alternative == 5))))) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 2) || ((which_alternative == 4) || (which_alternative == 5))))) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 8;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 429:
    case 427:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || (which_alternative == 7))))) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || (which_alternative == 7))))) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || (which_alternative == 7))))) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 423:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 2) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 7) || ((which_alternative == 8) || ((which_alternative == 9) || (which_alternative == 11))))))))) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 7) || ((which_alternative == 8) || ((which_alternative == 9) || (which_alternative == 11))))))))) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 7) || ((which_alternative == 8) || ((which_alternative == 9) || (which_alternative == 11))))))))) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case 515:
    case 514:
    case 513:
    case 512:
    case 511:
    case 510:
    case 509:
    case 498:
    case 496:
    case 494:
    case 492:
    case 491:
    case 489:
    case 488:
    case 487:
    case 485:
    case 483:
    case 482:
    case 481:
    case 480:
    case 478:
    case 477:
    case 475:
    case 474:
    case 472:
    case 471:
    case 469:
    case 468:
    case 462:
    case 420:
    case 304:
    case 299:
      casenum = 0;
      break;

    case 499:
    case 497:
    case 495:
    case 493:
    case 490:
    case 486:
    case 484:
    case 465:
    case 464:
    case 303:
    case 298:
    case 297:
      casenum = 1;
      break;

    case 703:
    case 702:
    case 701:
    case 700:
    case 699:
    case 698:
    case 697:
    case 696:
    case 695:
    case 694:
    case 693:
    case 692:
    case 687:
    case 686:
    case 682:
    case 681:
    case 679:
    case 678:
    case 677:
    case 676:
    case 675:
    case 674:
    case 567:
    case 566:
    case 532:
    case 529:
    case 528:
    case 527:
    case 526:
    case 525:
    case 524:
    case 523:
    case 522:
    case 521:
    case 520:
    case 517:
    case 516:
    case 310:
    case 309:
    case 308:
    case 289:
    case 288:
    case 282:
    case 281:
    case 280:
    case 279:
    case 278:
    case 277:
    case 276:
    case 275:
    case 274:
    case 273:
    case 272:
    case 271:
    case 270:
    case 269:
    case 263:
    case 262:
    case 260:
    case 259:
    case 258:
    case 257:
    case 256:
    case 255:
    case 254:
    case 253:
    case 252:
    case 251:
    case 249:
    case 248:
    case 246:
    case 245:
    case 243:
    case 242:
    case 240:
    case 239:
    case 238:
    case 237:
    case 236:
    case 235:
      casenum = 9;
      break;

    case 361:
    case 360:
    case 120:
    case 119:
    case 118:
    case 117:
    case 111:
    case 106:
    case 105:
    case 103:
    case 102:
    case 100:
      casenum = 4;
      break;

    case 354:
    case 353:
    case 352:
    case 327:
    case 326:
    case 324:
    case 323:
    case 320:
    case 319:
    case 316:
    case 315:
    case 116:
    case 115:
    case 94:
    case 93:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  casenum = 3;
        }
      else
        {
	  casenum = 7;
        }
      break;

    case 48:
    case 44:
    case 34:
    case 24:
    case 20:
    case 16:
    case 12:
    case 8:
    case 1:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS2))))
        {
	  casenum = 2;
        }
      else if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620))))))
        {
	  casenum = 5;
        }
      else if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    case 710:
    case 708:
    case 688:
    case 673:
    case 672:
    case 667:
    case 666:
    case 663:
    case 662:
    case 661:
    case 660:
    case 659:
    case 656:
    case 651:
    case 650:
    case 648:
    case 645:
    case 644:
    case 641:
    case 640:
    case 637:
    case 634:
    case 633:
    case 628:
    case 627:
    case 626:
    case 623:
    case 621:
    case 620:
    case 617:
    case 615:
    case 614:
    case 611:
    case 609:
    case 606:
    case 605:
    case 602:
    case 598:
    case 597:
    case 596:
    case 593:
    case 591:
    case 586:
    case 585:
    case 584:
    case 583:
    case 582:
    case 579:
    case 575:
    case 574:
    case 573:
    case 572:
    case 570:
    case 568:
    case 563:
    case 562:
    case 531:
    case 503:
    case 501:
    case 500:
    case 449:
    case 418:
    case 417:
    case 414:
    case 411:
    case 408:
    case 405:
    case 402:
    case 398:
    case 393:
    case 389:
    case 386:
    case 382:
    case 378:
    case 374:
    case 371:
    case 368:
    case 365:
    case 362:
    case 357:
    case 351:
    case 348:
    case 345:
    case 343:
    case 339:
    case 336:
    case 332:
    case 330:
    case 329:
    case 328:
    case 313:
    case 312:
    case 311:
    case 301:
    case 296:
    case 294:
    case 291:
    case 230:
    case 229:
    case 227:
    case 226:
    case 225:
    case 222:
    case 219:
    case 216:
    case 211:
    case 210:
    case 206:
    case 201:
    case 200:
    case 196:
    case 193:
    case 190:
    case 187:
    case 186:
    case 185:
    case 184:
    case 181:
    case 179:
    case 178:
    case 177:
    case 176:
    case 175:
    case 174:
    case 168:
    case 167:
    case 166:
    case 165:
    case 160:
    case 155:
    case 150:
    case 145:
    case 140:
    case 134:
    case 127:
    case 121:
    case 108:
    case 91:
    case 88:
    case 86:
    case 85:
    case 83:
    case 82:
    case 78:
    case 64:
    case 63:
    case 58:
    case 52:
    case 38:
    case 28:
    case 4:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  casenum = 2;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620)))))
        {
	  casenum = 5;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC750)))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 9;
        }
      break;

    default:
      if (((rs6000_cpu_attr) == (CPU_RIOS2)))
        {
	  casenum = 8;
        }
      else
        {
	  casenum = 9;
        }
      break;

    }

  insn = candidate_insn;
  switch (casenum)
    {
    case 0:
      return 1;

    case 1:
      return 1;

    case 2:
      return 1;

    case 3:
      return 2;

    case 4:
      return 13 /* 0xd */;

    case 5:
      return 1;

    case 6:
      return 1;

    case 7:
      return 2;

    case 8:
      return 1;

    case 9:
      return 1;

    default:
      abort ();
    }
}

static int
fpu_unit_blockage (executing_insn, candidate_insn)
     rtx executing_insn;
     rtx candidate_insn;
{
  rtx insn;
  int casenum;

  insn = executing_insn;
  switch (recog_memoized (insn))
    {
    case 567:
    case 566:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))
        {
	  casenum = 2;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  casenum = 3;
        }
      else
        {
	  casenum = 20 /* 0x14 */;
        }
      break;

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 9) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_PPC601)))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 4;
        }
      else if ((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_MPCCORE))))
        {
	  casenum = 5;
        }
      else if ((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  casenum = 6;
        }
      else if ((which_alternative == 7) && ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))
        {
	  casenum = 7;
        }
      else
        {
	  casenum = 20 /* 0x14 */;
        }
      break;

    case 442:
    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 8) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_PPC601)))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 6) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 4;
        }
      else if ((which_alternative == 6) && (((rs6000_cpu_attr) == (CPU_MPCCORE))))
        {
	  casenum = 5;
        }
      else if ((which_alternative == 6) && (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  casenum = 6;
        }
      else if ((which_alternative == 6) && ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))
        {
	  casenum = 7;
        }
      else
        {
	  casenum = 20 /* 0x14 */;
        }
      break;

    case 445:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 5) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_PPC601)))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 4;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_MPCCORE))))
        {
	  casenum = 5;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  casenum = 6;
        }
      else if ((which_alternative == 3) && ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))
        {
	  casenum = 7;
        }
      else
        {
	  casenum = 20 /* 0x14 */;
        }
      break;

    case 499:
    case 495:
    case 303:
      casenum = 0;
      break;

    case 262:
      casenum = 19 /* 0x13 */;
      break;

    case 277:
    case 252:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 12 /* 0xc */;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  casenum = 16 /* 0x10 */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))
        {
	  casenum = 17 /* 0x11 */;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC603)))
        {
	  casenum = 18 /* 0x12 */;
        }
      else
        {
	  casenum = 20 /* 0x14 */;
        }
      break;

    case 251:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 12 /* 0xc */;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC601)))
        {
	  casenum = 13 /* 0xd */;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  casenum = 14 /* 0xe */;
        }
      else
        {
	  casenum = 15 /* 0xf */;
        }
      break;

    case 281:
    case 280:
    case 279:
    case 278:
    case 276:
    case 260:
    case 258:
    case 256:
    case 254:
    case 249:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 4;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  casenum = 8;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC601)))
        {
	  casenum = 9;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 10 /* 0xa */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620)))))
        {
	  casenum = 11 /* 0xb */;
        }
      else
        {
	  casenum = 20 /* 0x14 */;
        }
      break;

    case 310:
    case 309:
    case 308:
    case 289:
    case 288:
    case 275:
    case 274:
    case 273:
    case 272:
    case 271:
    case 270:
    case 269:
    case 259:
    case 257:
    case 255:
    case 253:
    case 248:
    case 246:
    case 245:
    case 243:
    case 242:
    case 240:
    case 239:
    case 238:
    case 237:
    case 236:
    case 235:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 4;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  casenum = 5;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC601)))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 7;
        }
      break;

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      casenum = 20 /* 0x14 */;
      break;

    }

  insn = candidate_insn;
  switch (casenum)
    {
    case 0:
      return 1;

    case 1:
      return 1;

    case 2:
      return 1;

    case 3:
      return 1;

    case 4:
      return 1;

    case 5:
      return 4;

    case 6:
      return 1;

    case 7:
      return 1;

    case 8:
      return 5;

    case 9:
      return 2;

    case 10:
      return 2;

    case 11:
      return 1;

    case 12:
      return 19 /* 0x13 */;

    case 13:
      return 17 /* 0x11 */;

    case 14:
      return 10 /* 0xa */;

    case 15:
      return 18 /* 0x12 */;

    case 16:
      return 17 /* 0x11 */;

    case 17:
      return 31 /* 0x1f */;

    case 18:
      return 33 /* 0x21 */;

    case 19:
      return 31 /* 0x1f */;

    case 20:
      return 31 /* 0x1f */;

    default:
      abort ();
    }
}

static int
fpu_unit_conflict_cost (executing_insn, candidate_insn)
     rtx executing_insn;
     rtx candidate_insn;
{
  rtx insn;
  int casenum;

  insn = executing_insn;
  switch (recog_memoized (insn))
    {
    case 567:
    case 566:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 1;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))
        {
	  casenum = 2;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  casenum = 3;
        }
      else
        {
	  casenum = 20 /* 0x14 */;
        }
      break;

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 9) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_PPC601)))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 4;
        }
      else if ((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_MPCCORE))))
        {
	  casenum = 5;
        }
      else if ((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  casenum = 6;
        }
      else if ((which_alternative == 7) && ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))
        {
	  casenum = 7;
        }
      else
        {
	  casenum = 20 /* 0x14 */;
        }
      break;

    case 442:
    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 8) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_PPC601)))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 6) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 4;
        }
      else if ((which_alternative == 6) && (((rs6000_cpu_attr) == (CPU_MPCCORE))))
        {
	  casenum = 5;
        }
      else if ((which_alternative == 6) && (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  casenum = 6;
        }
      else if ((which_alternative == 6) && ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))
        {
	  casenum = 7;
        }
      else
        {
	  casenum = 20 /* 0x14 */;
        }
      break;

    case 445:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 5) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || (((rs6000_cpu_attr) == (CPU_PPC601)))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 4;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_MPCCORE))))
        {
	  casenum = 5;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  casenum = 6;
        }
      else if ((which_alternative == 3) && ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))
        {
	  casenum = 7;
        }
      else
        {
	  casenum = 20 /* 0x14 */;
        }
      break;

    case 499:
    case 495:
    case 303:
      casenum = 0;
      break;

    case 262:
      casenum = 19 /* 0x13 */;
      break;

    case 277:
    case 252:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 12 /* 0xc */;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  casenum = 16 /* 0x10 */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))
        {
	  casenum = 17 /* 0x11 */;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC603)))
        {
	  casenum = 18 /* 0x12 */;
        }
      else
        {
	  casenum = 20 /* 0x14 */;
        }
      break;

    case 251:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 12 /* 0xc */;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC601)))
        {
	  casenum = 13 /* 0xd */;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  casenum = 14 /* 0xe */;
        }
      else
        {
	  casenum = 15 /* 0xf */;
        }
      break;

    case 281:
    case 280:
    case 279:
    case 278:
    case 276:
    case 260:
    case 258:
    case 256:
    case 254:
    case 249:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 4;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  casenum = 8;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC601)))
        {
	  casenum = 9;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC603))) || (((rs6000_cpu_attr) == (CPU_PPC750))))
        {
	  casenum = 10 /* 0xa */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || (((rs6000_cpu_attr) == (CPU_PPC620)))))
        {
	  casenum = 11 /* 0xb */;
        }
      else
        {
	  casenum = 20 /* 0x14 */;
        }
      break;

    case 310:
    case 309:
    case 308:
    case 289:
    case 288:
    case 275:
    case 274:
    case 273:
    case 272:
    case 271:
    case 270:
    case 269:
    case 259:
    case 257:
    case 255:
    case 253:
    case 248:
    case 246:
    case 245:
    case 243:
    case 242:
    case 240:
    case 239:
    case 238:
    case 237:
    case 236:
    case 235:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 4;
        }
      else if (((rs6000_cpu_attr) == (CPU_MPCCORE)))
        {
	  casenum = 5;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC601)))
        {
	  casenum = 6;
        }
      else
        {
	  casenum = 7;
        }
      break;

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      casenum = 20 /* 0x14 */;
      break;

    }

  insn = candidate_insn;
  switch (casenum)
    {
    case 0:
      return 1;

    case 1:
      return 1;

    case 2:
      return 1;

    case 3:
      return 1;

    case 4:
      return 1;

    case 5:
      return 4;

    case 6:
      return 1;

    case 7:
      return 1;

    case 8:
      return 5;

    case 9:
      return 2;

    case 10:
      return 2;

    case 11:
      return 1;

    case 12:
      return 19 /* 0x13 */;

    case 13:
      return 17 /* 0x11 */;

    case 14:
      return 10 /* 0xa */;

    case 15:
      return 18 /* 0x12 */;

    case 16:
      return 17 /* 0x11 */;

    case 17:
      return 31 /* 0x1f */;

    case 18:
      return 33 /* 0x21 */;

    case 19:
      return 31 /* 0x1f */;

    case 20:
      return 31 /* 0x1f */;

    default:
      abort ();
    }
}

static int
iu_unit_blockage (executing_insn, candidate_insn)
     rtx executing_insn;
     rtx candidate_insn;
{
  rtx insn;
  int casenum;

  insn = executing_insn;
  switch (recog_memoized (insn))
    {
    case 592:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 11 /* 0xb */;
        }
      else if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 12 /* 0xc */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))))
        {
	  casenum = 13 /* 0xd */;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 460:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 0) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 459:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 0) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 458:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((which_alternative != 0) && (which_alternative != 1)) && (which_alternative != 2)) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 0) || (which_alternative == 1)) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 2) || (which_alternative == 9)) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 8) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 2;
        }
      else if ((which_alternative == 8) && (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  casenum = 3;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 10) || (which_alternative == 12))))))) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 442:
    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 2) || (which_alternative == 8)) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 2;
        }
      else if ((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  casenum = 3;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || (which_alternative == 5)))) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 443:
    case 441:
    case 435:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if (((which_alternative != 1) && (which_alternative != 2)) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 445:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 2) || (which_alternative == 5)) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 4) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 2;
        }
      else if ((which_alternative == 4) && (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  casenum = 3;
        }
      else if (((which_alternative != 1) && ((which_alternative != 2) && ((which_alternative != 3) && ((which_alternative != 4) && (which_alternative != 5))))) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 431:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 6) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 7) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 2) || ((which_alternative == 4) || (which_alternative == 5))))) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 11 /* 0xb */;
        }
      else if ((which_alternative == 3) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  casenum = 13 /* 0xd */;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 429:
    case 427:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || (which_alternative == 7))))) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 423:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 3) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 7) || ((which_alternative == 8) || ((which_alternative == 9) || (which_alternative == 11))))))))) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 391:
    case 390:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (((which_alternative == 0) || ((which_alternative == 1) || (which_alternative == 2))) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 11 /* 0xb */;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 12 /* 0xc */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))))
        {
	  casenum = 13 /* 0xd */;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 515:
    case 514:
    case 513:
    case 512:
    case 511:
    case 510:
    case 509:
    case 496:
    case 492:
    case 491:
    case 489:
    case 488:
    case 487:
    case 485:
    case 483:
    case 482:
    case 481:
    case 480:
    case 478:
    case 477:
    case 475:
    case 474:
    case 472:
    case 471:
    case 469:
    case 468:
    case 462:
    case 420:
    case 304:
      casenum = 0;
      break;

    case 498:
    case 494:
    case 299:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 2;
        }
      else
        {
	  casenum = 3;
        }
      break;

    case 499:
    case 497:
    case 495:
    case 493:
    case 490:
    case 486:
    case 484:
    case 465:
    case 464:
    case 303:
    case 298:
    case 297:
      casenum = 1;
      break;

    case 703:
    case 702:
    case 701:
    case 700:
    case 699:
    case 698:
    case 697:
    case 696:
    case 695:
    case 694:
    case 693:
    case 692:
    case 687:
    case 686:
    case 682:
    case 681:
    case 679:
    case 678:
    case 677:
    case 676:
    case 675:
    case 674:
    case 567:
    case 566:
    case 532:
    case 529:
    case 528:
    case 527:
    case 526:
    case 525:
    case 524:
    case 523:
    case 522:
    case 521:
    case 520:
    case 517:
    case 516:
    case 310:
    case 309:
    case 308:
    case 289:
    case 288:
    case 282:
    case 281:
    case 280:
    case 279:
    case 278:
    case 277:
    case 276:
    case 275:
    case 274:
    case 273:
    case 272:
    case 271:
    case 270:
    case 269:
    case 263:
    case 262:
    case 260:
    case 259:
    case 258:
    case 257:
    case 256:
    case 255:
    case 254:
    case 253:
    case 252:
    case 251:
    case 249:
    case 248:
    case 246:
    case 245:
    case 243:
    case 242:
    case 240:
    case 239:
    case 238:
    case 237:
    case 236:
    case 235:
      casenum = 14 /* 0xe */;
      break;

    case 124:
    case 122:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative != 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 11 /* 0xb */;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 12 /* 0xc */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))))
        {
	  casenum = 13 /* 0xd */;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 361:
    case 360:
    case 120:
    case 119:
    case 118:
    case 117:
    case 111:
    case 106:
    case 105:
    case 103:
    case 102:
    case 100:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 7;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC403)))
        {
	  casenum = 8;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC601)))
        {
	  casenum = 9;
        }
      else
        {
	  casenum = 10 /* 0xa */;
        }
      break;

    case 354:
    case 353:
    case 352:
    case 327:
    case 326:
    case 324:
    case 323:
    case 320:
    case 319:
    case 316:
    case 315:
    case 116:
    case 115:
    case 94:
    case 93:
      if (((rs6000_cpu_attr) == (CPU_PPC403)))
        {
	  casenum = 5;
        }
      else
        {
	  casenum = 6;
        }
      break;

    case 649:
    case 647:
    case 646:
    case 610:
    case 571:
    case 569:
    case 388:
    case 387:
    case 384:
    case 383:
    case 380:
    case 379:
    case 376:
    case 375:
    case 373:
    case 372:
    case 370:
    case 369:
    case 367:
    case 366:
    case 364:
    case 363:
    case 234:
    case 233:
    case 232:
    case 231:
    case 224:
    case 223:
    case 221:
    case 220:
    case 218:
    case 217:
    case 215:
    case 214:
    case 213:
    case 212:
    case 208:
    case 207:
    case 205:
    case 204:
    case 203:
    case 202:
    case 198:
    case 197:
    case 195:
    case 194:
    case 192:
    case 191:
    case 189:
    case 188:
    case 183:
    case 98:
    case 97:
    case 96:
    case 95:
    case 80:
    case 79:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 12 /* 0xc */;
        }
      else
        {
	  casenum = 13 /* 0xd */;
        }
      break;

    case 671:
    case 670:
    case 669:
    case 668:
    case 665:
    case 664:
    case 658:
    case 657:
    case 655:
    case 654:
    case 653:
    case 652:
    case 643:
    case 642:
    case 639:
    case 638:
    case 636:
    case 635:
    case 632:
    case 631:
    case 630:
    case 629:
    case 625:
    case 624:
    case 622:
    case 619:
    case 618:
    case 616:
    case 613:
    case 612:
    case 608:
    case 607:
    case 604:
    case 603:
    case 601:
    case 600:
    case 599:
    case 595:
    case 594:
    case 590:
    case 589:
    case 588:
    case 587:
    case 581:
    case 580:
    case 577:
    case 576:
    case 561:
    case 560:
    case 558:
    case 557:
    case 456:
    case 425:
    case 416:
    case 415:
    case 413:
    case 412:
    case 410:
    case 409:
    case 407:
    case 406:
    case 404:
    case 403:
    case 400:
    case 399:
    case 395:
    case 394:
    case 359:
    case 358:
    case 350:
    case 349:
    case 341:
    case 340:
    case 338:
    case 337:
    case 334:
    case 333:
    case 182:
    case 172:
    case 171:
    case 170:
    case 169:
    case 163:
    case 161:
    case 158:
    case 156:
    case 153:
    case 151:
    case 148:
    case 146:
    case 143:
    case 141:
    case 137:
    case 135:
    case 130:
    case 128:
    case 110:
    case 109:
    case 90:
    case 89:
    case 69:
    case 68:
    case 66:
    case 65:
    case 61:
    case 59:
    case 55:
    case 53:
    case 50:
    case 49:
    case 46:
    case 45:
    case 40:
    case 39:
    case 36:
    case 35:
    case 30:
    case 29:
    case 26:
    case 25:
    case 22:
    case 21:
    case 18:
    case 17:
    case 14:
    case 13:
    case 10:
    case 9:
    case 6:
    case 5:
    case 3:
    case 2:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 11 /* 0xb */;
        }
      else
        {
	  casenum = 13 /* 0xd */;
        }
      break;

    case 48:
    case 44:
    case 34:
    case 24:
    case 20:
    case 16:
    case 12:
    case 8:
    case 1:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      casenum = 4;
      break;

    }

  insn = candidate_insn;
  switch (casenum)
    {
    case 0:
      return 1;

    case 1:
      return 1;

    case 2:
      return 1;

    case 3:
      return 1;

    case 4:
      return 1;

    case 5:
      return 4;

    case 6:
      return 5;

    case 7:
      return 19 /* 0x13 */;

    case 8:
      return 33 /* 0x21 */;

    case 9:
      return 36 /* 0x24 */;

    case 10:
      return 36 /* 0x24 */;

    case 11:
      return 1;

    case 12:
      return 1;

    case 13:
      return 1;

    case 14:
      return 2;

    default:
      abort ();
    }
}

static int
iu_unit_conflict_cost (executing_insn, candidate_insn)
     rtx executing_insn;
     rtx candidate_insn;
{
  rtx insn;
  int casenum;

  insn = executing_insn;
  switch (recog_memoized (insn))
    {
    case 592:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 11 /* 0xb */;
        }
      else if ((which_alternative == 1) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 12 /* 0xc */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))))
        {
	  casenum = 13 /* 0xd */;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 460:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 0) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 459:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 0) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 458:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((((which_alternative != 0) && (which_alternative != 1)) && (which_alternative != 2)) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 0) || (which_alternative == 1)) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 448:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 2) || (which_alternative == 9)) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 8) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 2;
        }
      else if ((which_alternative == 8) && (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  casenum = 3;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 10) || (which_alternative == 12))))))) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 442:
    case 440:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 2) || (which_alternative == 8)) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 2;
        }
      else if ((which_alternative == 7) && (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  casenum = 3;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || (which_alternative == 5)))) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 443:
    case 441:
    case 435:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if (((which_alternative != 1) && (which_alternative != 2)) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 445:
    case 434:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if (((which_alternative == 2) || (which_alternative == 5)) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if ((which_alternative == 4) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 2;
        }
      else if ((which_alternative == 4) && (((rs6000_cpu_attr) == (CPU_PPC601))))
        {
	  casenum = 3;
        }
      else if (((which_alternative != 1) && ((which_alternative != 2) && ((which_alternative != 3) && ((which_alternative != 4) && (which_alternative != 5))))) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 431:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 6) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 7) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 2) || ((which_alternative == 4) || (which_alternative == 5))))) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 11 /* 0xb */;
        }
      else if ((which_alternative == 3) && ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750)))))))))))
        {
	  casenum = 13 /* 0xd */;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 429:
    case 427:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 3) || ((which_alternative == 4) || ((which_alternative == 5) || (which_alternative == 7))))) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 423:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 2) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 3) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 1;
        }
      else if (((which_alternative == 0) || ((which_alternative == 1) || ((which_alternative == 4) || ((which_alternative == 5) || ((which_alternative == 6) || ((which_alternative == 7) || ((which_alternative == 8) || ((which_alternative == 9) || (which_alternative == 11))))))))) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 391:
    case 390:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if (((which_alternative == 0) || ((which_alternative == 1) || (which_alternative == 2))) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 11 /* 0xb */;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 12 /* 0xc */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))))
        {
	  casenum = 13 /* 0xd */;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 515:
    case 514:
    case 513:
    case 512:
    case 511:
    case 510:
    case 509:
    case 496:
    case 492:
    case 491:
    case 489:
    case 488:
    case 487:
    case 485:
    case 483:
    case 482:
    case 481:
    case 480:
    case 478:
    case 477:
    case 475:
    case 474:
    case 472:
    case 471:
    case 469:
    case 468:
    case 462:
    case 420:
    case 304:
      casenum = 0;
      break;

    case 498:
    case 494:
    case 299:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 2;
        }
      else
        {
	  casenum = 3;
        }
      break;

    case 499:
    case 497:
    case 495:
    case 493:
    case 490:
    case 486:
    case 484:
    case 465:
    case 464:
    case 303:
    case 298:
    case 297:
      casenum = 1;
      break;

    case 703:
    case 702:
    case 701:
    case 700:
    case 699:
    case 698:
    case 697:
    case 696:
    case 695:
    case 694:
    case 693:
    case 692:
    case 687:
    case 686:
    case 682:
    case 681:
    case 679:
    case 678:
    case 677:
    case 676:
    case 675:
    case 674:
    case 567:
    case 566:
    case 532:
    case 529:
    case 528:
    case 527:
    case 526:
    case 525:
    case 524:
    case 523:
    case 522:
    case 521:
    case 520:
    case 517:
    case 516:
    case 310:
    case 309:
    case 308:
    case 289:
    case 288:
    case 282:
    case 281:
    case 280:
    case 279:
    case 278:
    case 277:
    case 276:
    case 275:
    case 274:
    case 273:
    case 272:
    case 271:
    case 270:
    case 269:
    case 263:
    case 262:
    case 260:
    case 259:
    case 258:
    case 257:
    case 256:
    case 255:
    case 254:
    case 253:
    case 252:
    case 251:
    case 249:
    case 248:
    case 246:
    case 245:
    case 243:
    case 242:
    case 240:
    case 239:
    case 238:
    case 237:
    case 236:
    case 235:
      casenum = 14 /* 0xe */;
      break;

    case 124:
    case 122:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative != 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 11 /* 0xb */;
        }
      else if ((which_alternative == 3) && (((rs6000_cpu_attr) == (CPU_RIOS1))))
        {
	  casenum = 12 /* 0xc */;
        }
      else if ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || ((((rs6000_cpu_attr) == (CPU_PPC603))) || ((((rs6000_cpu_attr) == (CPU_PPC604))) || ((((rs6000_cpu_attr) == (CPU_PPC604E))) || ((((rs6000_cpu_attr) == (CPU_PPC620))) || (((rs6000_cpu_attr) == (CPU_PPC750))))))))))
        {
	  casenum = 13 /* 0xd */;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case 361:
    case 360:
    case 120:
    case 119:
    case 118:
    case 117:
    case 111:
    case 106:
    case 105:
    case 103:
    case 102:
    case 100:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 7;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC403)))
        {
	  casenum = 8;
        }
      else if (((rs6000_cpu_attr) == (CPU_PPC601)))
        {
	  casenum = 9;
        }
      else
        {
	  casenum = 10 /* 0xa */;
        }
      break;

    case 354:
    case 353:
    case 352:
    case 327:
    case 326:
    case 324:
    case 323:
    case 320:
    case 319:
    case 316:
    case 315:
    case 116:
    case 115:
    case 94:
    case 93:
      if (((rs6000_cpu_attr) == (CPU_PPC403)))
        {
	  casenum = 5;
        }
      else
        {
	  casenum = 6;
        }
      break;

    case 649:
    case 647:
    case 646:
    case 610:
    case 571:
    case 569:
    case 388:
    case 387:
    case 384:
    case 383:
    case 380:
    case 379:
    case 376:
    case 375:
    case 373:
    case 372:
    case 370:
    case 369:
    case 367:
    case 366:
    case 364:
    case 363:
    case 234:
    case 233:
    case 232:
    case 231:
    case 224:
    case 223:
    case 221:
    case 220:
    case 218:
    case 217:
    case 215:
    case 214:
    case 213:
    case 212:
    case 208:
    case 207:
    case 205:
    case 204:
    case 203:
    case 202:
    case 198:
    case 197:
    case 195:
    case 194:
    case 192:
    case 191:
    case 189:
    case 188:
    case 183:
    case 98:
    case 97:
    case 96:
    case 95:
    case 80:
    case 79:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 12 /* 0xc */;
        }
      else
        {
	  casenum = 13 /* 0xd */;
        }
      break;

    case 671:
    case 670:
    case 669:
    case 668:
    case 665:
    case 664:
    case 658:
    case 657:
    case 655:
    case 654:
    case 653:
    case 652:
    case 643:
    case 642:
    case 639:
    case 638:
    case 636:
    case 635:
    case 632:
    case 631:
    case 630:
    case 629:
    case 625:
    case 624:
    case 622:
    case 619:
    case 618:
    case 616:
    case 613:
    case 612:
    case 608:
    case 607:
    case 604:
    case 603:
    case 601:
    case 600:
    case 599:
    case 595:
    case 594:
    case 590:
    case 589:
    case 588:
    case 587:
    case 581:
    case 580:
    case 577:
    case 576:
    case 561:
    case 560:
    case 558:
    case 557:
    case 456:
    case 425:
    case 416:
    case 415:
    case 413:
    case 412:
    case 410:
    case 409:
    case 407:
    case 406:
    case 404:
    case 403:
    case 400:
    case 399:
    case 395:
    case 394:
    case 359:
    case 358:
    case 350:
    case 349:
    case 341:
    case 340:
    case 338:
    case 337:
    case 334:
    case 333:
    case 182:
    case 172:
    case 171:
    case 170:
    case 169:
    case 163:
    case 161:
    case 158:
    case 156:
    case 153:
    case 151:
    case 148:
    case 146:
    case 143:
    case 141:
    case 137:
    case 135:
    case 130:
    case 128:
    case 110:
    case 109:
    case 90:
    case 89:
    case 69:
    case 68:
    case 66:
    case 65:
    case 61:
    case 59:
    case 55:
    case 53:
    case 50:
    case 49:
    case 46:
    case 45:
    case 40:
    case 39:
    case 36:
    case 35:
    case 30:
    case 29:
    case 26:
    case 25:
    case 22:
    case 21:
    case 18:
    case 17:
    case 14:
    case 13:
    case 10:
    case 9:
    case 6:
    case 5:
    case 3:
    case 2:
      if (((rs6000_cpu_attr) == (CPU_RIOS1)))
        {
	  casenum = 11 /* 0xb */;
        }
      else
        {
	  casenum = 13 /* 0xd */;
        }
      break;

    case 48:
    case 44:
    case 34:
    case 24:
    case 20:
    case 16:
    case 12:
    case 8:
    case 1:
      extract_insn (insn);
      if (! constrain_operands (reload_completed))
        fatal_insn_not_found (insn);
      if ((which_alternative == 0) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || (((rs6000_cpu_attr) == (CPU_PPC601))))))
        {
	  casenum = 0;
        }
      else if ((which_alternative == 1) && ((((rs6000_cpu_attr) == (CPU_RIOS1))) || ((((rs6000_cpu_attr) == (CPU_MPCCORE))) || ((((rs6000_cpu_attr) == (CPU_PPC403))) || ((((rs6000_cpu_attr) == (CPU_PPC601))) || (((rs6000_cpu_attr) == (CPU_PPC603))))))))
        {
	  casenum = 4;
        }
      else
        {
	  casenum = 14 /* 0xe */;
        }
      break;

    case -1:
      if (GET_CODE (PATTERN (insn)) != ASM_INPUT
          && asm_noperands (PATTERN (insn)) < 0)
        fatal_insn_not_found (insn);
    default:
      casenum = 4;
      break;

    }

  insn = candidate_insn;
  switch (casenum)
    {
    case 0:
      return 1;

    case 1:
      return 1;

    case 2:
      return 1;

    case 3:
      return 1;

    case 4:
      return 1;

    case 5:
      return 4;

    case 6:
      return 5;

    case 7:
      return 19 /* 0x13 */;

    case 8:
      return 33 /* 0x21 */;

    case 9:
      return 36 /* 0x24 */;

    case 10:
      return 36 /* 0x24 */;

    case 11:
      return 1;

    case 12:
      return 1;

    case 13:
      return 1;

    case 14:
      return 2;

    default:
      abort ();
    }
}

struct function_unit_desc function_units[] = {
  {"lsu", 1, 1, 0, 1, 1, lsu_unit_ready_cost, 0, 1, 0, 0}, 
  {"iu", 2, 1, 0, 0, 36, iu_unit_ready_cost, iu_unit_conflict_cost, 36, iu_unit_blockage_range, iu_unit_blockage}, 
  {"fpu", 4, 1, 0, 0, 33, fpu_unit_ready_cost, fpu_unit_conflict_cost, 33, fpu_unit_blockage_range, fpu_unit_blockage}, 
  {"iu2", 8, 2, 0, 0, 13, iu2_unit_ready_cost, iu2_unit_conflict_cost, 13, iu2_unit_blockage_range, iu2_unit_blockage}, 
  {"imuldiv", 16, 1, 0, 0, 19, imuldiv_unit_ready_cost, imuldiv_unit_conflict_cost, 19, imuldiv_unit_blockage_range, imuldiv_unit_blockage}, 
  {"fpu2", 32, 2, 0, 0, 26, fpu2_unit_ready_cost, fpu2_unit_conflict_cost, 26, fpu2_unit_blockage_range, fpu2_unit_blockage}, 
  {"bpu", 64, 1, 0, 1, 1, bpu_unit_ready_cost, 0, 1, 0, 0}, 
};

int length_unit_log = 2;
