test_cases:
  -
    input:
      bytes: [ 0x04, 0x04, 0x00, 0x05 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "gcsrrd $a0, 1"
  -
    input:
      bytes: [ 0x24, 0x04, 0x00, 0x05 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "gcsrwr $a0, 1"
  -
    input:
      bytes: [ 0xa4, 0x04, 0x00, 0x05 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "gcsrxchg $a0, $a1, 1"
  -
    input:
      bytes: [ 0x01, 0x24, 0x48, 0x06 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "gtlbflush"
  -
    input:
      bytes: [ 0x01, 0x80, 0x2b, 0x00 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "hvcl 1"
