test_cases:
  -
    input:
      bytes: [ 0xed, 0x96, 0x14, 0x01 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "fmov.s $ft5, $ft15"
  -
    input:
      bytes: [ 0x92, 0x56, 0x02, 0x0d ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "fsel $ft10, $ft12, $ft13, $fcc4"
  -
    input:
      bytes: [ 0x46, 0xa4, 0x14, 0x01 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "movgr2fr.w $fa6, $tp"
  -
    input:
      bytes: [ 0xca, 0xb6, 0x14, 0x01 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "movfr2gr.s $a6, $ft14"
  -
    input:
      bytes: [ 0x80, 0xc0, 0x14, 0x01 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "movgr2fcsr $fcsr0, $a0"
  -
    input:
      bytes: [ 0x04, 0xc8, 0x14, 0x01 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "movfcsr2gr $a0, $fcsr0"
  -
    input:
      bytes: [ 0x81, 0xc0, 0x14, 0x01 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "movgr2fcsr $fcsr1, $a0"
  -
    input:
      bytes: [ 0x24, 0xc8, 0x14, 0x01 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "movfcsr2gr $a0, $fcsr1"
  -
    input:
      bytes: [ 0x82, 0xc0, 0x14, 0x01 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "movgr2fcsr $fcsr2, $a0"
  -
    input:
      bytes: [ 0x44, 0xc8, 0x14, 0x01 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "movfcsr2gr $a0, $fcsr2"
  -
    input:
      bytes: [ 0x83, 0xc0, 0x14, 0x01 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "movgr2fcsr $fcsr3, $a0"
  -
    input:
      bytes: [ 0x64, 0xc8, 0x14, 0x01 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "movfcsr2gr $a0, $fcsr3"
  -
    input:
      bytes: [ 0x64, 0xd1, 0x14, 0x01 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "movfr2cf $fcc4, $ft3"
  -
    input:
      bytes: [ 0x10, 0xd4, 0x14, 0x01 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "movcf2fr $ft8, $fcc0"
  -
    input:
      bytes: [ 0x25, 0xd8, 0x14, 0x01 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "movgr2cf $fcc5, $ra"
  -
    input:
      bytes: [ 0xf5, 0xdc, 0x14, 0x01 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "movcf2gr $r21, $fcc7"
