test_cases:
  -
    input:
      bytes: [ 0x79, 0xf2, 0xf5, 0x49 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "bclri.b $w21, $w30, 2"
  -
    input:
      bytes: [ 0x79, 0xe0, 0xae, 0x09 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "bclri.h $w24, $w21, 0"
  -
    input:
      bytes: [ 0x79, 0xc3, 0xf5, 0xc9 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "bclri.w $w23, $w30, 3"
  -
    input:
      bytes: [ 0x79, 0x80, 0x5a, 0x49 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "bclri.d $w9, $w11, 0"
  -
    input:
      bytes: [ 0x7b, 0x71, 0x66, 0x49 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "binsli.b $w25, $w12, 1"
  -
    input:
      bytes: [ 0x7b, 0x60, 0xb5, 0x49 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "binsli.h $w21, $w22, 0"
  -
    input:
      bytes: [ 0x7b, 0x40, 0x25, 0x89 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "binsli.w $w22, $w4, 0"
  -
    input:
      bytes: [ 0x7b, 0x06, 0x11, 0x89 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "binsli.d $w6, $w2, 6"
  -
    input:
      bytes: [ 0x7b, 0xf0, 0x9b, 0xc9 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "binsri.b $w15, $w19, 0"
  -
    input:
      bytes: [ 0x7b, 0xe1, 0xf2, 0x09 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "binsri.h $w8, $w30, 1"
  -
    input:
      bytes: [ 0x7b, 0xc5, 0x98, 0x89 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "binsri.w $w2, $w19, 5"
  -
    input:
      bytes: [ 0x7b, 0x81, 0xa4, 0x89 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "binsri.d $w18, $w20, 1"
  -
    input:
      bytes: [ 0x7a, 0xf0, 0x9e, 0x09 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "bnegi.b $w24, $w19, 0"
  -
    input:
      bytes: [ 0x7a, 0xe3, 0x5f, 0x09 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "bnegi.h $w28, $w11, 3"
  -
    input:
      bytes: [ 0x7a, 0xc5, 0xd8, 0x49 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "bnegi.w $w1, $w27, 5"
  -
    input:
      bytes: [ 0x7a, 0x81, 0xa9, 0x09 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "bnegi.d $w4, $w21, 1"
  -
    input:
      bytes: [ 0x7a, 0x70, 0x44, 0x89 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "bseti.b $w18, $w8, 0"
  -
    input:
      bytes: [ 0x7a, 0x62, 0x76, 0x09 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "bseti.h $w24, $w14, 2"
  -
    input:
      bytes: [ 0x7a, 0x44, 0x92, 0x49 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "bseti.w $w9, $w18, 4"
  -
    input:
      bytes: [ 0x7a, 0x01, 0x79, 0xc9 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "bseti.d $w7, $w15, 1"
  -
    input:
      bytes: [ 0x78, 0x72, 0xff, 0xca ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "sat_s.b $w31, $w31, 2"
  -
    input:
      bytes: [ 0x78, 0x60, 0x9c, 0xca ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "sat_s.h $w19, $w19, 0"
  -
    input:
      bytes: [ 0x78, 0x40, 0xec, 0xca ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "sat_s.w $w19, $w29, 0"
  -
    input:
      bytes: [ 0x78, 0x00, 0xb2, 0xca ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "sat_s.d $w11, $w22, 0"
  -
    input:
      bytes: [ 0x78, 0xf3, 0x68, 0x4a ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "sat_u.b $w1, $w13, 3"
  -
    input:
      bytes: [ 0x78, 0xe4, 0xc7, 0x8a ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "sat_u.h $w30, $w24, 4"
  -
    input:
      bytes: [ 0x78, 0xc0, 0x6f, 0xca ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "sat_u.w $w31, $w13, 0"
  -
    input:
      bytes: [ 0x78, 0x85, 0x87, 0x4a ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "sat_u.d $w29, $w16, 5"
  -
    input:
      bytes: [ 0x78, 0x71, 0x55, 0xc9 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "slli.b $w23, $w10, 1"
  -
    input:
      bytes: [ 0x78, 0x61, 0x92, 0x49 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "slli.h $w9, $w18, 1"
  -
    input:
      bytes: [ 0x78, 0x44, 0xea, 0xc9 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "slli.w $w11, $w29, 4"
  -
    input:
      bytes: [ 0x78, 0x01, 0xa6, 0x49 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "slli.d $w25, $w20, 1"
  -
    input:
      bytes: [ 0x78, 0xf1, 0xee, 0x09 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srai.b $w24, $w29, 1"
  -
    input:
      bytes: [ 0x78, 0xe0, 0x30, 0x49 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srai.h $w1, $w6, 0"
  -
    input:
      bytes: [ 0x78, 0xc1, 0xd1, 0xc9 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srai.w $w7, $w26, 1"
  -
    input:
      bytes: [ 0x78, 0x83, 0xcd, 0x09 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srai.d $w20, $w25, 3"
  -
    input:
      bytes: [ 0x79, 0x70, 0xc9, 0x4a ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srari.b $w5, $w25, 0"
  -
    input:
      bytes: [ 0x79, 0x64, 0x31, 0xca ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srari.h $w7, $w6, 4"
  -
    input:
      bytes: [ 0x79, 0x45, 0x5c, 0x4a ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srari.w $w17, $w11, 5"
  -
    input:
      bytes: [ 0x79, 0x05, 0xcd, 0x4a ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srari.d $w21, $w25, 5"
  -
    input:
      bytes: [ 0x79, 0x72, 0x00, 0x89 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srli.b $w2, $w0, 2"
  -
    input:
      bytes: [ 0x79, 0x62, 0xff, 0xc9 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srli.h $w31, $w31, 2"
  -
    input:
      bytes: [ 0x79, 0x44, 0x49, 0x49 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srli.w $w5, $w9, 4"
  -
    input:
      bytes: [ 0x79, 0x05, 0xd6, 0xc9 ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srli.d $w27, $w26, 5"
  -
    input:
      bytes: [ 0x79, 0xf0, 0x1c, 0x8a ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srlri.b $w18, $w3, 0"
  -
    input:
      bytes: [ 0x79, 0xe3, 0x10, 0x4a ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srlri.h $w1, $w2, 3"
  -
    input:
      bytes: [ 0x79, 0xc2, 0xb2, 0xca ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srlri.w $w11, $w22, 2"
  -
    input:
      bytes: [ 0x79, 0x86, 0x56, 0x0a ]
      arch: "CS_ARCH_MIPS"
      options: [ "CS_MODE_MIPS32", "CS_MODE_BIG_ENDIAN" ]
    expected:
      insns:
        -
          asm_text: "srlri.d $w24, $w10, 6"
