<?xml version="1.0" encoding="iso-8859-1"?>

<architecture name="c62x" version="0.1">

  <omega>8</omega>

  <slot_row_prefix>\t</slot_row_prefix>
  <slot_row_suffix>\n</slot_row_suffix>
  <slot_row_sepparator> || </slot_row_sepparator>
  <nop_instruction>idle</nop_instruction>


  <resources>
    <resource id = "L1"/>
    <resource id = "L2"/>
    <resource id = "S1"/>
    <resource id = "S2"/>
    <resource id = "D1"/>
    <resource id = "D2"/>
    <resource id = "M1"/>
    <resource id = "M2"/>
    <resource id = "X1"/>
    <resource id = "X2"/>
  </resources>

  <remove>
    <op id = "CVUI4"/>
    <op id = "ARGI4"/>
    <op id = "ARGU4"/>
    <op id = "CVII2"/>
    <op id = "CVII4"/>
  </remove>

  <registers>
    <reg id="A0" size = "32"/>
    <reg id="A1" size = "32"/>
    <reg id="A2" size = "32"/>
    <reg id="A3" size = "32"/>
    <reg id="A4" size = "32"/>
    <reg id="A5" size = "32"/>
    <reg id="A6" size = "32"/>
    <reg id="A7" size = "32"/>
    <reg id="A8" size = "32"/>
    <reg id="A9" size = "32"/>
    <reg id="A10" size = "32"/>
    <reg id="A11" size = "32"/>
    <reg id="A12" size = "32"/>
    <reg id="A13" size = "32"/>
    <reg id="A14" size = "32"/>
    <reg id="A15" size = "32"/>
    <reg id="B0" size = "32"/>
    <reg id="B1" size = "32"/>
    <reg id="B2" size = "32"/>
    <reg id="B3" size = "32"/>
    <reg id="B4" size = "32"/>
    <reg id="B5" size = "32"/>
    <reg id="B6" size = "32"/>
    <reg id="B7" size = "32"/>
    <reg id="B8" size = "32"/>
    <reg id="B9" size = "32"/>
    <reg id="B10" size = "32"/>
    <reg id="B11" size = "32"/>
    <reg id="B12" size = "32"/>
    <reg id="B13" size = "32"/>
    <reg id="B14" size = "32"/>
    <reg id="B15" size = "32"/>      
  </registers>

  <residences>
    <residence id = "RA"> <!-- Register file A -->
      <reg id="A0"/>
      <reg id="A1"/>
      <reg id="A2"/>
      <reg id="A3"/>
      <reg id="A4"/>
      <reg id="A5"/>
      <reg id="A6"/>
      <reg id="A7"/>
      <reg id="A8"/>
      <reg id="A9"/>
      <reg id="A10"/>
      <reg id="A11"/>
      <reg id="A12"/>
      <reg id="A13"/>
      <reg id="A14"/>
      <reg id="A15"/>
    </residence>

    <residence id = "RB"> <!-- Register file B -->
      <reg id="B0"/>
      <reg id="B1"/>
      <reg id="B2"/>
      <reg id="B3"/>
      <reg id="B4"/>
      <reg id="B5"/>
      <reg id="B6"/>
      <reg id="B7"/>
      <reg id="B8"/>
      <reg id="B9"/>
      <reg id="B10"/>
      <reg id="B11"/>
      <reg id="B12"/>
      <reg id="B13"/>
      <reg id="B14"/>
      <reg id="B15"/>      
    </residence>

    <residence id = "CONST"/>

    <residence id = "SYMBOL"/>

  </residences>

  <funits>
    <fu id="L1" occupation="1" latency="1"/>
    <fu id="S1" occupation="1" latency="1"/>
    <fu id="M1" occupation="1" latency="1"/>
    <fu id="D1" occupation="1" latency="1"/>
    <fu id="L2" occupation="1" latency="1"/>
    <fu id="S2" occupation="1" latency="1"/>
    <fu id="M2" occupation="1" latency="1"/>
    <fu id="D2" occupation="1" latency="1"/>
  </funits>

  <instructionset>

    <instruction id = "CNSTI2" op = "2069">
      <target id = "CNSTI2" dest1 = "CONST"/>
    </instruction>

    <instruction id = "CNSTI4" op = "4117">
      <target id = "CNSTI4" dest1 = "CONST"/>
    </instruction>
    <instruction id = "CNSTU4" op = "4118">
      <target id = "CNSTU4" dest1 = "CONST"/>
    </instruction>
    <instruction id = "ADDRFP4" op = "4375">
      <target id = "ADDRFP4" dest1 = "SYMBOL"/>
    </instruction>

    <instruction id = "ADDRGP4" op = "4359">
      <target id = "ADDRGP4" dest1 = "SYMBOL"/>
    </instruction>
    
    <instruction id = "ADDRLP4" op = "4391">
      <target id = "ADDRLP4" dest1 = "SYMBOL"/>
    </instruction>

    <instruction id = "ADDI4" op = "4405">

      <target id = "ADD .L1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix L1="1"/>
        <format>ADD .L1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .L2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix L2="1"/>
        <format>ADD .L2 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .S1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix S1="1"/>
        <format>ADD .S1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .S2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix S2="1"/>
        <format>ADD .S2 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .D1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix D1="1"/>
        <format>ADD .D1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .D2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix D2="1"/>
        <format>ADD .D2 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .L1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix L1="1"/>
        <format>ADD .L1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .L2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix L2="1"/>
        <format>ADD .L2 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .S1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix S1="1"/>
        <format>ADD .S1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .S2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix S2="1"/>
        <format>ADD .S2 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .D1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix D1="1"/>
        <format>ADD .D1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .D2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix D2="1"/>
        <format>ADD .D2 #{src1},{src2},{dest1}</format>
      </target>



      <target id = "ADD .L1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix L1="1"/>
        <format>ADD .L1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "ADD .L2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix L2="1"/>
        <format>ADD .L2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "ADD .S1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix S1="1"/>
        <format>ADD .S1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "ADD .S2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix S2="1"/>
        <format>ADD .S2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "ADD .D1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix D1="1"/>
        <format>ADD .D1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "ADD .D2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix D2="1"/>
        <format>ADD .D2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "ADD .L1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix L1= "1" X1 = "1"/>
        <format>ADD .L1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .L2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix L2 = "1" X2 = "1"/>
        <format>ADD .L2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .S1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix S1 = "1" X1 = "1"/>
        <format>ADD .S1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .S2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix S2 = "1" X2 = "1"/>
        <format>ADD .S2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .D1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix D1 = "1" X1 = "1"/>
        <format>ADD .D1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .D2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix D2 = "1" X2 = "1"/>
        <format>ADD .D2X {src1},{src2},{dest1}</format>
      </target>

    </instruction>

    <instruction id = "ADDP4" op = "4407">

      <target id = "ADD .L1" dest1 = "RA" src1 = "SYMBOL" src2 = "CONST">
        <cycle_matrix L1="1"/>
        <format>ADD .L1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .L2" dest1 = "RB" src1 = "SYMBOL" src2 = "CONST">
        <cycle_matrix L2="1"/>
        <format>ADD .L2 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .L1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix L1="1"/>
        <format>ADD .L1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .L2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix L2="1"/>
        <format>ADD .L2 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .S1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix S1="1"/>
        <format>ADD .S1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .S2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix S2="1"/>
        <format>ADD .S2 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .D1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix D1="1"/>
        <format>ADD .D1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .D2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix D2="1"/>
        <format>ADD .D2 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .L1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix L1="1"/>
        <format>ADD .L1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "ADD .L2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix L2="1"/>
        <format>ADD .L2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "ADD .S1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix S1="1"/>
        <format>ADD .S1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "ADD .S2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix S2="1"/>
        <format>ADD .S2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "ADD .D1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix D1="1"/>
        <format>ADD .D1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "ADD .D2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix D2="1"/>
        <format>ADD .D2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "ADD .L1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix L1="1"/>
        <format>ADD .L1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .L2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix L2="1"/>
        <format>ADD .L2 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .S1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix S1="1"/>
        <format>ADD .S1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .S2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix S2="1"/>
        <format>ADD .S2 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .D1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix D1="1"/>
        <format>ADD .D1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .D2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix D2="1"/>
        <format>ADD .D2 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .L1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix L1= "1" X1 = "1"/>
        <format>ADD .L1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .L2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix L2 = "1" X2 = "1"/>
        <format>ADD .L2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .S1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix S1 = "1" X1 = "1"/>
        <format>ADD .S1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .S2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix S2 = "1" X2 = "1"/>
        <format>ADD .S2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .D1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix D1 = "1" X1 = "1"/>
        <format>ADD .D1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .D2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix D2 = "1" X2 = "1"/>
        <format>ADD .D2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .L1" dest1 = "RA" src1 = "RA" src2 = "SYMBOL">
        <cycle_matrix L1="1"/>
        <format>ADD .L1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .L2" dest1 = "RB" src1 = "RB" src2 = "SYMBOL">
        <cycle_matrix L2="1"/>
        <format>ADD .L2 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .S1" dest1 = "RA" src1 = "RA" src2 = "SYMBOL">
        <cycle_matrix S1="1"/>
        <format>ADD .S1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .S2" dest1 = "RB" src1 = "RB" src2 = "SYMBOL">
        <cycle_matrix S2="1"/>
        <format>ADD .S2 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .D1" dest1 = "RA" src1 = "RA" src2 = "SYMBOL">
        <cycle_matrix D1="1"/>
        <format>ADD .D1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "ADD .D2" dest1 = "RB" src1 = "RB" src2 = "SYMBOL">
        <cycle_matrix D2="1"/>
        <format>ADD .D2 {src1},{src2},{dest1}</format>
      </target>
    </instruction>

    <instruction id = "ASGNI2" op = "2101">

      <target id = "MV .L1" src1 = "SYMBOL" src2 = "CONST">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 _{src1},#{src2}</format>
      </target>

      <target id = "MV .L1" src1 = "CONST" src2 = "SYMBOL">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 #{src1},_{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "SYMBOL" src2 = "CONST">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 _{src1},#{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "CONST" src2 = "SYMBOL">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 #{src1},_{src2}</format>
      </target>

      <target id = "MV .L1" src1 = "SYMBOL" src2 = "RA">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 _{src1},{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "SYMBOL" src2 = "RB">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 _{src1},{src2}</format>
      </target>

      <target id = "MV .L1" src1 = "RA" src2 = "SYMBOL">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 {src1},_{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "RB" src2 = "SYMBOL">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 {src1},_{src2}</format>
      </target>

      <target id = "MV .L1" src1 = "RA" src2 = "RA">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 {src1},{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "RB" src2 = "RB">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 {src1},{src2}</format>
      </target>

      <target id = "MV .S1" src1 = "RA" src2 = "RA">
        <cycle_matrix S1 = "1"/>
        <format>MV .S1 {src1},{src2}</format>
      </target>

      <target id = "MV .S2" src1 = "RB" src2 = "RB">
        <cycle_matrix S2 = "1"/>
        <format>MV .S2 {src1},{src2}</format>
      </target>

      <target id = "MV .D1" src1 = "RA" src2 = "RA">
        <cycle_matrix D1 = "1"/>
        <format>MV .D1 {src1},{src2}</format>
      </target>

      <target id = "MV .D2" src1 = "RB" src2 = "RB">
        <cycle_matrix D2 = "1"/>
        <format>MV .D2 {src1},{src2}</format>
      </target>

    </instruction>

    <instruction id = "ASGNI4" op = "4149">


      <target id = "MV .L1" src1 = "SYMBOL" src2 = "CONST">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 _{src1},#{src2}</format>
      </target>

      <target id = "MV .L1" src1 = "CONST" src2 = "SYMBOL">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 #{src1},_{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "SYMBOL" src2 = "CONST">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 _{src1},#{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "CONST" src2 = "SYMBOL">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 #{src1},_{src2}</format>
      </target>

      <target id = "MV .L1" src1 = "SYMBOL" src2 = "RA">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 _{src1},{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "SYMBOL" src2 = "RB">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 _{src1},{src2}</format>
      </target>

      <target id = "MV .L1" src1 = "RA" src2 = "SYMBOL">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 {src1},_{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "RB" src2 = "SYMBOL">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 {src1},_{src2}</format>
      </target>


      <target id = "MV .L1" src1 = "RA" src2 = "RA">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 {src1},{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "RB" src2 = "RB">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 {src1},{src2}</format>
      </target>

      <target id = "MV .S1" src1 = "RA" src2 = "RA">
        <cycle_matrix S1 = "1"/>
        <format>MV .S1 {src1},{src2}</format>
      </target>

      <target id = "MV .S2" src1 = "RB" src2 = "RB">
        <cycle_matrix S2 = "1"/>
        <format>MV .S2 {src1},{src2}</format>
      </target>

      <target id = "MV .D1" src1 = "RA" src2 = "RA">
        <cycle_matrix D1 = "1"/>
        <format>MV .D1 {src1},{src2}</format>
      </target>

      <target id = "MV .D2" src1 = "RB" src2 = "RB">
        <cycle_matrix D2 = "1"/>
        <format>MV .D2 {src1},{src2}</format>
      </target>

    </instruction>

    <instruction id = "ASGNP4" op = "4151">


      <target id = "MV .L1" src1 = "SYMBOL" src2 = "CONST">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 _{src1},#{src2}</format>
      </target>

      <target id = "MV .L1" src1 = "CONST" src2 = "SYMBOL">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 #{src1},_{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "SYMBOL" src2 = "CONST">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 _{src1},#{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "CONST" src2 = "SYMBOL">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 #{src1},_{src2}</format>
      </target>


      <target id = "MV .L1" src1 = "SYMBOL" src2 = "RA">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 _{src1},{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "SYMBOL" src2 = "RB">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 _{src1},{src2}</format>
      </target>

      <target id = "MV .L1" src1 = "RA" src2 = "SYMBOL">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 {src1},_{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "RB" src2 = "SYMBOL">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 {src1},_{src2}</format>
      </target>


      <target id = "MV .L1" src1 = "RA" src2 = "RA">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 {src1},{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "RB" src2 = "RB">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 {src1},{src2}</format>
      </target>

      <target id = "MV .S1" src1 = "RA" src2 = "RA">
        <cycle_matrix S1 = "1"/>
        <format>MV .S1 {src1},{src2}</format>
      </target>

      <target id = "MV .S2" src1 = "RB" src2 = "RB">
        <cycle_matrix S2 = "1"/>
        <format>MV .S2 {src1},{src2}</format>
      </target>

      <target id = "MV .D1" src1 = "RA" src2 = "RA">
        <cycle_matrix D1 = "1"/>
        <format>MV .D1 {src1},{src2}</format>
      </target>

      <target id = "MV .D2" src1 = "RB" src2 = "RB">
        <cycle_matrix D2 = "1"/>
        <format>MV .D2 {src1},{src2}</format>
      </target>

    </instruction>

    <instruction id = "INDIRI2" op = "2117">

      <target id = "LD .D1" dest1 = "RA" src1 = "RA">
        <cycle_matrix D1 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D1 *{src1},{dest1}</format>
      </target>

      <target id = "LD .D2" dest1 = "RB" src1 = "RB">
        <cycle_matrix D2 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D2 *{src1},{dest1}</format>
      </target>

      <target id = "LD .D1" dest1 = "RA" src1 = "SYMBOL">
        <cycle_matrix D1 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D1 _{src1},{dest1}</format>
      </target>

      <target id = "LD .D2" dest1 = "RB" src1 = "SYMBOL">
        <cycle_matrix D2 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D2 _{src1},{dest1}</format>
      </target>

    </instruction>

    <instruction id = "INDIRI4" op = "4165">

      <target id = "LD .D1" dest1 = "RA" src1 = "RA">
        <cycle_matrix D1 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D1 *{src1},{dest1}</format>
      </target>

      <target id = "LD .D2" dest1 = "RB" src1 = "RB">
        <cycle_matrix D2 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D2 *{src1},{dest1}</format>
      </target>

      <target id = "LD .D1" dest1 = "RA" src1 = "SYMBOL">
        <cycle_matrix D1 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D1 _{src1},{dest1}</format>
      </target>

      <target id = "LD .D2" dest1 = "RB" src1 = "SYMBOL">
        <cycle_matrix D2 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D2 _{src1},{dest1}</format>
      </target>

    </instruction>

    <instruction id = "INDIRU4" op = "4166">

      <target id = "LD .D1" dest1 = "RA" src1 = "RA">
        <cycle_matrix D1 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D1 *{src1},{dest1}</format>
      </target>

      <target id = "LD .D2" dest1 = "RB" src1 = "RB">
        <cycle_matrix D2 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D2 *{src1},{dest1}</format>
      </target>

      <target id = "LD .D1" dest1 = "RA" src1 = "SYMBOL">
        <cycle_matrix D1 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D1 _{src1},{dest1}</format>
      </target>

      <target id = "LD .D2" dest1 = "RB" src1 = "SYMBOL">
        <cycle_matrix D2 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D2 _{src1},{dest1}</format>
      </target>

    </instruction>
    <instruction id = "INDIRU1" op = "1094">

      <target id = "LD .D1" dest1 = "RA" src1 = "RA">
        <cycle_matrix D1 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D1 *{src1},{dest1}</format>
      </target>

      <target id = "LD .D2" dest1 = "RB" src1 = "RB">
        <cycle_matrix D2 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D2 *{src1},{dest1}</format>
      </target>

      <target id = "LD .D1" dest1 = "RA" src1 = "SYMBOL">
        <cycle_matrix D1 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D1 _{src1},{dest1}</format>
      </target>

      <target id = "LD .D2" dest1 = "RB" src1 = "SYMBOL">
        <cycle_matrix D2 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D2 _{src1},{dest1}</format>
      </target>

    </instruction>



    <instruction id = "INDIRP4" op = "4167">

      <target id = "LD .D1" dest1 = "RA" src1 = "RA">
        <cycle_matrix D1 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D1 *{src1},{dest1}</format>
      </target>

      <target id = "LD .D2" dest1 = "RB" src1 = "RB">
        <cycle_matrix D2 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D2 *{src1},{dest1}</format>
      </target>

      <target id = "LD .D1" dest1 = "RA" src1 = "SYMBOL">
        <cycle_matrix D1 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D1 _{src1},{dest1}</format>
      </target>

      <target id = "LD .D2" dest1 = "RB" src1 = "SYMBOL">
        <cycle_matrix D2 = "1">
          <latency l = "4"/>
        </cycle_matrix>
        <format>LDW .D2 _{src1},{dest1}</format>
      </target>

    </instruction>

    <instruction id = "CALLI4" op = "4309">
      <target id = "CALL" src1 = "SYMBOL"/>
    </instruction>


    <instruction id = "MULI4" op = "4565">

      <target id = "MPY .M1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix M1 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>MPY .M1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "MPY .M2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix M2 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>MPY .M2 {src1},{src2},{dest1}</format>
      </target>
      
      <target id = "MPY .M1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix M1 = "1" X1 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>MPY .M1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "MPY .M1X" dest1 = "RA" src1 = "RB" src2 = "RA">
        <cycle_matrix M1 = "1" X1 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>MPY .M1X {src1},{src2},{dest1}</format>
      </target>


      <target id = "MPY .M2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix M2 = "1" X2 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>MPY .M2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "MPY .M2X" dest1 = "RB" src1 = "RA" src2 = "RB">
        <cycle_matrix M2 = "1" X2 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>MPY .M2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "MPY .M1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix M1 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>MPY .M1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "MPY .M2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix M2 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>MPY .M2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "MPY .M1" dest1 = "RA" src2 = "RA" src1 = "CONST">
        <cycle_matrix M1 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>MPY .M1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "MPY .M2" dest1 = "RB" src2 = "RB" src1 = "CONST">
        <cycle_matrix M2 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>MPY .M2 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "MPY .M1" dest1 = "RA" src2 = "RA" src1 = "CONST">
        <cycle_matrix M1 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>MPY .M1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "MPY .M2" dest1 = "RB" src2 = "RB" src1 = "CONST">
        <cycle_matrix M2 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>MPY .M2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "MPY .M1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix M1 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>MPY .M1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "MPY .M2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix M2 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>MPY .M2 #{src1},{src2},{dest1}</format>
      </target>
    </instruction>


    <instruction id = "RSHI4" op = "4469">

      <target id = "SHR .S1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix S1 = "1"/>
        <format>SHR .S1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "SHR .S2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix S2 = "1"/>
        <format>SHR .S2 {src1},{src2},{dest1}</format>
      </target>
      
      <target id = "SHR .S1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix S1 = "1" X1 = "1"/>
        <format>SHR .S1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SHR .S1X" dest1 = "RA" src1 = "RB" src2 = "RA">
        <cycle_matrix S1 = "1" X1 = "1"/>
        <format>SHR .M1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SHR .S2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix S2 = "1" X2 = "1"/>
        <format>SHR .S2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SHR .S2X" dest1 = "RB" src1 = "RA" src2 = "RB">
        <cycle_matrix S2 = "1" X2 = "1"/>
        <format>SHR .S2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SHR .S1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix S1 = "1"/>
        <format>SHR .S1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SHR .S1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix S1 = "1"/>
        <format>SHR .S1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "SHR .S2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix S2 = "1"/>
        <format>SHR .S2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SHR .S2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix S2 = "1"/>
        <format>SHR .S2 #{src1},{src2},{dest1}</format>
      </target>

    </instruction>

    <instruction id = "CALLV" op = "216">

      <target id = "CALLV" src1 = "SYMBOL">
        <format>CALL {src1}</format>
      </target>

    </instruction>

    <instruction id = "SUBU4" op = "4422">

      <target id = "SUB .L1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix L1="1"/>
        <format>SUB .L1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .L2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix L2="1"/>
        <format>SUB .L2 {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .S1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix S1="1"/>
        <format>SUB .S1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .S2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix S2="1"/>
        <format>SUB .S2 {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .D1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix D1="1"/>
        <format>SUB .D1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .D2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix D2="1"/>
        <format>SUB .D2 {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .L1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix L1="1"/>
        <format>SUB .L1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .L2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix L2="1"/>
        <format>SUB .L2 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .S1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix S1="1"/>
        <format>SUB .S1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .S2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix S2="1"/>
        <format>SUB .S2 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .D1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix D1="1"/>
        <format>SUB .D1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .D2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix D2="1"/>
        <format>SUB .D2 #{src1},{src2},{dest1}</format>
      </target>



      <target id = "SUB .L1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix L1="1"/>
        <format>SUB .L1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SUB .L2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix L2="1"/>
        <format>SUB .L2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SUB .S1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix S1="1"/>
        <format>SUB .S1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SUB .S2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix S2="1"/>
        <format>SUB .S2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SUB .D1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix D1="1"/>
        <format>SUB .D1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SUB .D2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix D2="1"/>
        <format>SUB .D2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SUB .L1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix L1= "1" X1 = "1"/>
        <format>SUB .L1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .L2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix L2 = "1" X2 = "1"/>
        <format>SUB .L2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .S1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix S1 = "1" X1 = "1"/>
        <format>SUB .S1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .S2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix S2 = "1" X2 = "1"/>
        <format>SUB .S2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .D1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix D1 = "1" X1 = "1"/>
        <format>SUB .D1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .D2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix D2 = "1" X2 = "1"/>
        <format>SUB .D2X {src1},{src2},{dest1}</format>
      </target>

    </instruction>

    <instruction id = "SUBI4" op = "4421">

      <target id = "SUB .L1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix L1="1"/>
        <format>SUB .L1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .L2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix L2="1"/>
        <format>SUB .L2 {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .S1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix S1="1"/>
        <format>SUB .S1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .S2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix S2="1"/>
        <format>SUB .S2 {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .D1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix D1="1"/>
        <format>SUB .D1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .D2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix D2="1"/>
        <format>SUB .D2 {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .L1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix L1="1"/>
        <format>SUB .L1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .L2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix L2="1"/>
        <format>SUB .L2 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .S1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix S1="1"/>
        <format>SUB .S1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .S2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix S2="1"/>
        <format>SUB .S2 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .D1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix D1="1"/>
        <format>SUB .D1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .D2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix D2="1"/>
        <format>SUB .D2 #{src1},{src2},{dest1}</format>
      </target>



      <target id = "SUB .L1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix L1="1"/>
        <format>SUB .L1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SUB .L2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix L2="1"/>
        <format>SUB .L2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SUB .S1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix S1="1"/>
        <format>SUB .S1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SUB .S2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix S2="1"/>
        <format>SUB .S2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SUB .D1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix D1="1"/>
        <format>SUB .D1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SUB .D2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix D2="1"/>
        <format>SUB .D2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SUB .L1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix L1= "1" X1 = "1"/>
        <format>SUB .L1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .L2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix L2 = "1" X2 = "1"/>
        <format>SUB .L2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .S1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix S1 = "1" X1 = "1"/>
        <format>SUB .S1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .S2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix S2 = "1" X2 = "1"/>
        <format>SUB .S2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .D1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix D1 = "1" X1 = "1"/>
        <format>SUB .D1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SUB .D2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix D2 = "1" X2 = "1"/>
        <format>SUB .D2X {src1},{src2},{dest1}</format>
      </target>

    </instruction>



    <instruction id = "NEI4" op = "4661">

      <target id = "!CMPEQ .L1" src1 = "CONST" src2 = "RA">
        <cycle_matrix L1 = "1"/>
        <format>!CMPEQ .L1 #{src1},{src2}</format>
      </target>

      <target id = "!CMPEQ .L1" src1 = "RA" src2 = "CONST">
        <cycle_matrix L1 = "1"/>
        <format>!CMPEQ .L1 {src1},#{src2}</format>
      </target>

      <target id = "!CMPEQ .L2" src1 = "CONST" src2 = "RB">
        <cycle_matrix L2 = "1"/>
        <format>!CMPEQ .L2 #{src1},{src2}</format>
      </target>

      <target id = "!CMPEQ .L2" src1 = "RB" src2 = "CONST">
        <cycle_matrix L2 = "1"/>
        <format>!CMPEQ .L2 {src1},#{src2}</format>
      </target>

    </instruction>

    <instruction id = "LSHI4" op = "4437">

      <target id = "SHL .S1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix S1 = "1"/>
        <format>SHL .S1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "SHL .S2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix S2 = "1"/>
        <format>SHL .S2 {src1},{src2},{dest1}</format>
      </target>
      
      <target id = "SHL .S1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix S1 = "1" X1 = "1"/>
        <format>SHL .S1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SHL .S1X" dest1 = "RA" src1 = "RB" src2 = "RA">
        <cycle_matrix S1 = "1" X1 = "1"/>
        <format>SHL .M1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SHL .S2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix S2 = "1" X2 = "1"/>
        <format>SHL .S2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SHL .S2X" dest1 = "RB" src1 = "RA" src2 = "RB">
        <cycle_matrix S2 = "1" X2 = "1"/>
        <format>SHL .S2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SHL .S1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix S1 = "1"/>
        <format>SHL .S1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SHL .S1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix S1 = "1"/>
        <format>SHL .S1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "SHL .S2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix S2 = "1"/>
        <format>SHL .S2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SHL .S2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix S2 = "1"/>
        <format>SHL .S2 #{src1},{src2},{dest1}</format>
      </target>

    </instruction>

    <instruction id = "GEI4" op = "4597">

      <target id = "CMPGT .L1" src1 = "CONST" src2 = "RA">
        <cycle_matrix L1 = "1"/>
        <format>CMPGT .L1 #{src1},{src2}</format>
      </target>

      <target id = "CMPGT .L1" src1 = "RA" src2 = "CONST">
        <cycle_matrix L1 = "1"/>
        <format>CMPGT .L1 {src1},#{src2}</format>
      </target>

      <target id = "CMPGT .L2" src1 = "CONST" src2 = "RB">
        <cycle_matrix L2 = "1"/>
        <format>CMPGT .L2 #{src1},{src2}</format>
      </target>

      <target id = "CMPGT .L2" src1 = "RB" src2 = "CONST">
        <cycle_matrix L2 = "1"/>
        <format>CMPGT .L2 {src1},#{src2}</format>
      </target>

      <target id = "CMPGT .L1" src1 = "RA" src2 = "RA">
        <cycle_matrix L1 = "1"/>
        <format>CMPGT .L1 {src1},{src2}</format>
      </target>

      <target id = "CMPGT .L2" src1 = "RB" src2 = "RB">
        <cycle_matrix L2 = "1"/>
        <format>CMPGT .L2 {src1},{src2}</format>
      </target>

      <target id = "CMPGT .L2X" src1 = "RA" src2 = "RB">
        <cycle_matrix L2 = "1" X2 = "1"/>
        <format>CMPGT .L2X {src1},{src2}</format>
      </target>

      <target id = "CMPGT .L2X" src1 = "RB" src2 = "RA">
        <cycle_matrix L2 = "1" X2 = "1"/>
        <format>CMPGT .L2X {src1},{src2}</format>
      </target>

      <target id = "CMPGT .L1X" src1 = "RA" src2 = "RB">
        <cycle_matrix L1 = "1" X1 = "1"/>
        <format>CMPGT .L1X {src1},{src2}</format>
      </target>

      <target id = "CMPGT .L1X" src1 = "RB" src2 = "RA">
        <cycle_matrix L1 = "1" X1 = "1"/>
        <format>CMPGT .L1X {src1},{src2}</format>
      </target>


    </instruction>

    <instruction id = "GTI4" op = "4613">

      <target id = "!CMPLT .L1" src1 = "CONST" src2 = "RA">
        <cycle_matrix L1 = "1"/>
        <format>!CMPLT .L1 #{src1},{src2}</format>
      </target>

      <target id = "!CMPLT .L1" src1 = "RA" src2 = "CONST">
        <cycle_matrix L1 = "1"/>
        <format>!CMPLT .L1 {src1},#{src2}</format>
      </target>

      <target id = "!CMPLT .L2" src1 = "CONST" src2 = "RB">
        <cycle_matrix L2 = "1"/>
        <format>!CMPLT .L2 #{src1},{src2}</format>
      </target>

      <target id = "!CMPLT .L2" src1 = "RB" src2 = "CONST">
        <cycle_matrix L2 = "1"/>
        <format>!CMPLT .L2 {src1},#{src2}</format>
      </target>

      <target id = "!CMPLT .L1" src1 = "RA" src2 = "RA">
        <cycle_matrix L1 = "1"/>
        <format>!CMPLT .L1 {src1},{src2}</format>
      </target>

      <target id = "!CMPLT .L2" src1 = "RB" src2 = "RB">
        <cycle_matrix L2 = "1"/>
        <format>!CMPLT .L2 {src1},{src2}</format>
      </target>

      <target id = "!CMPLT .L2X" src1 = "RA" src2 = "RB">
        <cycle_matrix L2 = "1" X2 = "1"/>
        <format>!CMPLT .L2X {src1},{src2}</format>
      </target>

      <target id = "!CMPLT .L2X" src1 = "RB" src2 = "RA">
        <cycle_matrix L2 = "1" X2 = "1"/>
        <format>!CMPLT .L2X {src1},{src2}</format>
      </target>

      <target id = "!CMPLT .L1X" src1 = "RA" src2 = "RB">
        <cycle_matrix L1 = "1" X1 = "1"/>
        <format>!CMPLT .L1X {src1},{src2}</format>
      </target>

      <target id = "!CMPLT .L1X" src1 = "RB" src2 = "RA">
        <cycle_matrix L1 = "1" X1 = "1"/>
        <format>!CMPLT .L1X {src1},{src2}</format>
      </target>

    </instruction>

    <instruction id = "DIVI4" op = "4549">

      <target id = "DVI .M1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix M1 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>DVI .M1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "DVI .M2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix M2 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>DVI .M2 {src1},{src2},{dest1}</format>
      </target>
      
      <target id = "DVI .M1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix M1 = "1" X1 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>DVI .M1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "DVI .M1X" dest1 = "RA" src1 = "RB" src2 = "RA">
        <cycle_matrix M1 = "1" X1 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>DVI .M1X {src1},{src2},{dest1}</format>
      </target>


      <target id = "DVI .M2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix M2 = "1" X2 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>DVI .M2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "DVI .M2X" dest1 = "RB" src1 = "RA" src2 = "RB">
        <cycle_matrix M2 = "1" X2 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>DVI .M2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "DVI .M1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix M1 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>DVI .M1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "DVI .M2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix M2 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>DVI .M2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "DVI .M1" dest1 = "RA" src2 = "RA" src1 = "CONST">
        <cycle_matrix M1 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>DVI .M1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "DVI .M2" dest1 = "RB" src2 = "RB" src1 = "CONST">
        <cycle_matrix M2 = "1">
          <latency l = "1"/>
        </cycle_matrix>
        <format>DVI .M2 #{src1},{src2},{dest1}</format>
      </target>

    </instruction>

    <instruction id = "ASGNU4" op = "4150">


      <target id = "MV .L1" src1 = "SYMBOL" src2 = "CONST">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 _{src1},#{src2}</format>
      </target>

      <target id = "MV .L1" src1 = "CONST" src2 = "SYMBOL">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 #{src1},_{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "SYMBOL" src2 = "CONST">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 _{src1},#{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "CONST" src2 = "SYMBOL">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 #{src1},_{src2}</format>
      </target>

      <target id = "MV .L1" src1 = "SYMBOL" src2 = "RA">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 _{src1},{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "SYMBOL" src2 = "RB">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 _{src1},{src2}</format>
      </target>

      <target id = "MV .L1" src1 = "RA" src2 = "SYMBOL">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 {src1},_{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "RB" src2 = "SYMBOL">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 {src1},_{src2}</format>
      </target>


      <target id = "MV .L1" src1 = "RA" src2 = "RA">
        <cycle_matrix L1 = "1"/>
        <format>MV .L1 {src1},{src2}</format>
      </target>

      <target id = "MV .L2" src1 = "RB" src2 = "RB">
        <cycle_matrix L2 = "1"/>
        <format>MV .L2 {src1},{src2}</format>
      </target>

      <target id = "MV .S1" src1 = "RA" src2 = "RA">
        <cycle_matrix S1 = "1"/>
        <format>MV .S1 {src1},{src2}</format>
      </target>

      <target id = "MV .S2" src1 = "RB" src2 = "RB">
        <cycle_matrix S2 = "1"/>
        <format>MV .S2 {src1},{src2}</format>
      </target>

      <target id = "MV .D1" src1 = "RA" src2 = "RA">
        <cycle_matrix D1 = "1"/>
        <format>MV .D1 {src1},{src2}</format>
      </target>

      <target id = "MV .D2" src1 = "RB" src2 = "RB">
        <cycle_matrix D2 = "1"/>
        <format>MV .D2 {src1},{src2}</format>
      </target>

    </instruction>

    <instruction id = "BORU4" op = "4518">

      <target id = "OR .L1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix L1="1"/>
        <format>OR .L1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "OR .L2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix L2="1"/>
        <format>OR .L2 {src1},{src2},{dest1}</format>
      </target>

      <target id = "OR .S1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix S1="1"/>
        <format>OR .S1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "OR .S2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix S2="1"/>
        <format>OR .S2 {src1},{src2},{dest1}</format>
      </target>


      <target id = "OR .L1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix L1="1"/>
        <format>OR .L1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "OR .L2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix L2="1"/>
        <format>OR .L2 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "OR .S1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix S1="1"/>
        <format>OR .S1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "OR .S2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix S2="1"/>
        <format>OR .S2 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "OR .L1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix L1="1"/>
        <format>OR .L1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "OR .L2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix L2="1"/>
        <format>OR .L2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "OR .S1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix S1="1"/>
        <format>OR .S1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "OR .S2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix S2="1"/>
        <format>OR .S2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "OR .L1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix L1= "1" X1 = "1"/>
        <format>OR .L1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "OR .L2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix L2 = "1" X2 = "1"/>
        <format>OR .L2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "OR .S1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix S1 = "1" X1 = "1"/>
        <format>OR .S1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "OR .S2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix S2 = "1" X2 = "1"/>
        <format>OR .S2X {src1},{src2},{dest1}</format>
      </target>

    </instruction>

    <instruction id = "RSHU4" op = "4470">

      <target id = "SHR .S1" dest1 = "RA" src1 = "RA" src2 = "RA">
        <cycle_matrix S1 = "1"/>
        <format>SHR .S1 {src1},{src2},{dest1}</format>
      </target>

      <target id = "SHR .S2" dest1 = "RB" src1 = "RB" src2 = "RB">
        <cycle_matrix S2 = "1"/>
        <format>SHR .S2 {src1},{src2},{dest1}</format>
      </target>
      
      <target id = "SHR .S1X" dest1 = "RA" src1 = "RA" src2 = "RB">
        <cycle_matrix S1 = "1" X1 = "1"/>
        <format>SHR .S1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SHR .S1X" dest1 = "RA" src1 = "RB" src2 = "RA">
        <cycle_matrix S1 = "1" X1 = "1"/>
        <format>SHR .M1X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SHR .S2X" dest1 = "RB" src1 = "RB" src2 = "RA">
        <cycle_matrix S2 = "1" X2 = "1"/>
        <format>SHR .S2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SHR .S2X" dest1 = "RB" src1 = "RA" src2 = "RB">
        <cycle_matrix S2 = "1" X2 = "1"/>
        <format>SHR .S2X {src1},{src2},{dest1}</format>
      </target>

      <target id = "SHR .S1" dest1 = "RA" src1 = "RA" src2 = "CONST">
        <cycle_matrix S1 = "1"/>
        <format>SHR .S1 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SHR .S1" dest1 = "RA" src1 = "CONST" src2 = "RA">
        <cycle_matrix S1 = "1"/>
        <format>SHR .S1 #{src1},{src2},{dest1}</format>
      </target>

      <target id = "SHR .S2" dest1 = "RB" src1 = "RB" src2 = "CONST">
        <cycle_matrix S2 = "1"/>
        <format>SHR .S2 {src1},#{src2},{dest1}</format>
      </target>

      <target id = "SHR .S2" dest1 = "RB" src1 = "CONST" src2 = "RB">
        <cycle_matrix S2 = "1"/>
        <format>SHR .S2 #{src1},{src2},{dest1}</format>
      </target>

    </instruction>

    <instruction id = "LABELV">
      <target id = "LABELV" dest1="SYMBOL">
        <format>{dest1.SYM0.X.NAME}:</format>
      </target>
    </instruction> 

  </instructionset>

  <transfer>

    <target id="RA->RB .L2" dest1="RB" src1="RA">
      <cycle_matrix L2 = "1" X2 = "1"/>
      <format>MV .L2X {dest1},{src1}</format>
    </target>

    <target id="RB->RA .L1" dest1 = "RA" src1 = "RB">
      <cycle_matrix L1 = "1" X1 = "1"/>
      <format>MV .L1X {dest1},{src1}</format>
    </target>
<!--
    <target id="RA->RB .S2" dest1="RB" src1="RA">
      <cycle_matrix S2 = "1" X2 = "1"/>
      <format>MV .S2X {dest1},{src1}</format>
    </target>

    <target id="RA->RB .D2" dest1="RB" src1="RA">
      <cycle_matrix D2 = "1" X2 = "1"/>
      <format>MV .D2X {dest1},{src1}</format>
    </target>

    <target id="RB->RA .S1" dest1 = "RA" src1 = "RB">
      <cycle_matrix S1 = "1" X1 = "1"/>
      <format>MV .S1X {dest1},{src1}</format>
    </target>

    <target id="RB->RA .D1" dest1 = "RA" src1 = "RB">
      <cycle_matrix D1 = "1" X1 = "1"/>
      <format>MV .D1X {dest1},{src1}</format>
    </target>
-->

  </transfer>

</architecture>
