test_cases:
  -
    input:
      bytes: [ 0x61, 0x10, 0x00, 0x00 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "clo.w $ra, $sp"
  -
    input:
      bytes: [ 0x47, 0x15, 0x00, 0x00 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "clz.w $a3, $a6"
  -
    input:
      bytes: [ 0xc2, 0x18, 0x00, 0x00 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "cto.w $tp, $a2"
  -
    input:
      bytes: [ 0xc5, 0x1e, 0x00, 0x00 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "ctz.w $a1, $fp"
  -
    input:
      bytes: [ 0x1d, 0x40, 0x08, 0x00 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "bytepick.w $s6, $zero, $t4, 0"
  -
    input:
      bytes: [ 0x74, 0x31, 0x00, 0x00 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "revb.2h $t8, $a7"
  -
    input:
      bytes: [ 0x75, 0x4b, 0x00, 0x00 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "bitrev.4b $r21, $s4"
  -
    input:
      bytes: [ 0xb9, 0x50, 0x00, 0x00 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "bitrev.w $s2, $a1"
  -
    input:
      bytes: [ 0x68, 0x09, 0x67, 0x00 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "bstrins.w $a4, $a7, 7, 2"
  -
    input:
      bytes: [ 0x21, 0x91, 0x6a, 0x00 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "bstrpick.w $ra, $a5, 0xa, 4"
  -
    input:
      bytes: [ 0x74, 0x49, 0x13, 0x00 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "maskeqz $t8, $a7, $t6"
  -
    input:
      bytes: [ 0xb4, 0xe9, 0x13, 0x00 ]
      arch: "CS_ARCH_LOONGARCH"
      options: [ "CS_MODE_LOONGARCH64" ]
    expected:
      insns:
        -
          asm_text: "masknez $t8, $t1, $s3"
