test_cases:
  -
    input:
      bytes: [ 0x08, 0x41, 0x66, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "add,<= r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x07, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "add,c r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x57, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "add,c,>= r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x07, 0x23 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "add,dc,* r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x27, 0x23 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "add,dc,*= r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x0a, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "add,l r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x4a, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "add,l,< r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x0e, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "add,tsv r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x7e, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "add,tsv,> r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x0f, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "add,c,tsv r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x3f, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "add,c,tsv,<> r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x0f, 0x23 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "add,dc,tsv,* r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x5f, 0x23 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "add,dc,tsv,*>= r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x06, 0xc3 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "shladd r1, 3, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x0a, 0xc3 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "shladd,l r1, 3, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x0e, 0xc3 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "shladd,tsv r1, 3, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0xce, 0xc3 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "shladd,tsv,sv r1, 3, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x04, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "sub r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x04, 0xc3 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "sub,tc r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x05, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "sub,b r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x0c, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "sub,tsv r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x0c, 0xc3 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "sub,tsv,tc r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x0d, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "sub,b,tsv r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x6d, 0x23 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "sub,db,tsv,*<= r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x02, 0x43 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "or r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x22, 0x43 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "or,= r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x02, 0x83 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "xor r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x62, 0x83 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "xor,<= r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x02, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "and r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x62, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "and,<= r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x00, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "andcm r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x60, 0x03 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "andcm,<= r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x09, 0x83 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "uaddcm r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x49, 0x83 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "uaddcm,sbz r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x09, 0xc3 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "uaddcm,tc r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x03, 0x83 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "uxor r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x43, 0x83 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "uxor,sbz r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x04, 0x43 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "ds r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0xa4, 0x43 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "ds,<<= r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x08, 0x83 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "cmpclr r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x41, 0x98, 0x83 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "cmpclr,>>= r1, rp, r3"
  -
    input:
      bytes: [ 0x08, 0x20, 0x0b, 0x82 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "dcor r1, rp"
  -
    input:
      bytes: [ 0x08, 0x20, 0x0b, 0xc2 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "dcor,i r1, rp"
  -
    input:
      bytes: [ 0x08, 0x20, 0x4b, 0xc2 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "dcor,i,sbz r1, rp"
  -
    input:
      bytes: [ 0xb4, 0x22, 0x01, 0xbc ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "addi 0xde, r1, rp"
  -
    input:
      bytes: [ 0xb4, 0x22, 0x09, 0xbc ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "addi,tsv 0xde, r1, rp"
  -
    input:
      bytes: [ 0xb0, 0x22, 0x01, 0xbc ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "addi,tc 0xde, r1, rp"
  -
    input:
      bytes: [ 0xb0, 0x22, 0x09, 0xbc ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "addi,tsv,tc 0xde, r1, rp"
  -
    input:
      bytes: [ 0xb0, 0x22, 0x69, 0xbc ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "addi,tsv,tc,<= 0xde, r1, rp"
  -
    input:
      bytes: [ 0x94, 0x22, 0x01, 0xbc ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "subi 0xde, r1, rp"
  -
    input:
      bytes: [ 0x94, 0x22, 0x09, 0xbc ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "subi,tsv 0xde, r1, rp"
  -
    input:
      bytes: [ 0x94, 0x22, 0x29, 0xbc ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "subi,tsv,= 0xde, r1, rp"
  -
    input:
      bytes: [ 0x90, 0x43, 0x01, 0xbc ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "cmpiclr 0xde, rp, r3"
  -
    input:
      bytes: [ 0x90, 0x43, 0x91, 0xbc ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "cmpiclr,>>= 0xde, rp, r3"
  -
    input:
      bytes: [ 0xd0, 0x41, 0x0f, 0x83 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "shrpd,* r1, rp, 3, r3"
  -
    input:
      bytes: [ 0xd0, 0x41, 0x4f, 0x83 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "shrpd,*< r1, rp, 3, r3"
  -
    input:
      bytes: [ 0xd0, 0x41, 0x0b, 0x83 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "shrpw r1, rp, 3, r3"
  -
    input:
      bytes: [ 0xd0, 0x41, 0x4b, 0x83 ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "shrpw,< r1, rp, 3, r3"
  -
    input:
      bytes: [ 0xd0, 0x22, 0x16, 0x1c ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "extrd,s,* r1, sar, 4, rp"
  -
    input:
      bytes: [ 0xd8, 0x22, 0x07, 0xdc ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "extrd,s,* r1, 0x1e, 4, rp"
  -
    input:
      bytes: [ 0xd8, 0x22, 0x03, 0xdc ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "extrd,u,* r1, 0x1e, 4, rp"
  -
    input:
      bytes: [ 0xd8, 0x22, 0xc3, 0xdc ]
      arch: "CS_ARCH_HPPA"
      options: [ "CS_MODE_BIG_ENDIAN", "CS_MODE_HPPA_20" ]
    expected:
      insns:
        -
          asm_text: "extrd,u,*>= r1, 0x1e, 4, rp"
